Visualizzare stato del pin ("attivo" o "inattivo") tramite Arduino IoT Cloud

Buongiorno a tutti,
Con un ESP32 ho creato, tramite Arduino IoT Cloud un codice per abilitare da remoto 2 pin.
Ho praticamente completato il mio progettino, ma rimane un problema, vorrei poter visualizzare dal cloud lo stato di un pin in particolare e quindi sono quì a chiedere a chi ha più esperienza di me come posso fare...

Ma partiamo dall'inizio:

Al momento ho 2 variabili boleane:

  1. interrutore_caldaia (Variable Permission: Read & Write) (Update Policy: On change) (PIN 2)
  2. pulsante_temporiz (Variable Permission: Read & Write) (Update Policy: On change) (PIN 0)

la 1° variabile (interrutore_caldaia) è stata associata ad un interruttore (ON - OFF) tramite la dashboard di Arduino IoT Cloud; questo interruttore di permette di di tenere accesa la caldaia per tutto il tempo che voglio io, finchè non metto l'interruttore sullo stato di OFF... fin quì nessun problema (tramite l'icona dell'interruttore vedo lo stato, ON/OFF del pin 2).

Il problema si presenta per la 2° variabile (pulsante_temporiz) che è stata associata ad un pulsante tramite la dashboard del cloud; la variabile è stata programmata per fare in modo che il pin 0, una volta ricevuto il comando dalla dashboard, si attivi per 10 secondi (un domani servirà per tenere accesa la caldaia per 15-30 min)...

Il problema è che vorrei poter vedere dalla dashboard se il pin 0 è attivo.
Ho provato a mettere il widget led (ho provato altri widget, che anche loro non funzionano, ma il led mi sembra il più adatto) sulla dashboard ma il led si attiva per 1 secondo (giusto il tempo del click sul pulsante) e si spegne... vorrei che restasse acceso finché il pin 0 è attivo.

Allego il codice:

#include "thingProperties.h"
bool pin0_on = false;
unsigned long previousMillis = 0; 
const long interval = 10000; 

void setup() {
  // Initialize serial and wait for port to open:
  Serial.begin(9600);
  // This delay gives the chance to wait for a Serial Monitor without blocking if none is found
  delay(1500); 

  // Defined in thingProperties.h
  initProperties();

  // Connect to Arduino IoT Cloud
  ArduinoCloud.begin(ArduinoIoTPreferredConnection);
  
  /*
     The following function allows you to obtain more information
     related to the state of network and IoT Cloud connection and errors
     the higher number the more granular information you’ll get.
     The default is 0 (only errors).
     Maximum is 4
 */
  setDebugMessageLevel(2);
  ArduinoCloud.printDebugInfo();

  pinMode(2, OUTPUT);
  pinMode(0, OUTPUT);
}

void loop() {
  ArduinoCloud.update();
  // Your code here 
  unsigned long currentMillis = millis();
  if (currentMillis - previousMillis >= interval) {
    previousMillis = currentMillis;
    digitalWrite(0, LOW); // Disabilita il pin 0
  }
}

/*
  Since InterrutoreCaldaia is READ_WRITE variable, onInterrutoreCaldaiaChange() is
  executed every time a new value is received from IoT Cloud.
*/
void onInterrutoreCaldaiaChange()  {
  digitalWrite(2, interrutore_caldaia);

}


/*
  Since PulsanteTemporiz is READ_WRITE variable, onPulsanteTemporizChange() is
  executed every time a new value is received from IoT Cloud.
*/
void onPulsanteTemporizChange()  {
  digitalWrite(0, pulsante_temporiz);
  
  digitalWrite(0, HIGH); // Abilita il pin 0
  previousMillis = millis();
  
}

Grazie mille a chi saprà darmi qualche consiglio e buona domenica!

Flavio

Guarda, onestamente non so quanti qui, tra i frequentatori abituali, usino IoT Cloud (io no) e quindi ... per avere una risposta più rapidamente, ti consiglio di porre la tua domanda, esclusivamente in lingua Inglese, nella sezione dedicata ad Arduino IoT Cloud ... :roll_eyes:

Guglielmo

1 Like

Grazie!

Proverò a chiedere nella sezione inglese...
Anche se in questi giorni sto provando a creare una variabile da collegare all'oggetto led della dashboard di arduino iot cloud, in modo da risolvere così... staremo a vedere :sweat_smile:

Buona Serata

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.