Mqtt con Beaglebone ed ESP8266-MQTT su ESP8266 per sensore temperatura

Dopo aver caricato il firmware sul dispositivo esp8266

Mqtt con Beaglebone ed ESP8266-MQTT ESP8266

si passa a collegare tale modulo con un sensore di temperatura ed umidità DHT11. Di seguito i collegamenti utilizzati

Nodemcu DHT11

Nell’esempio che faremo si considererà l’opzione di mettere il nodemcu in sleep. Perché il sistema possa riavviarsi dopo il comando di sleep è necessario collegare il PIN D0 (GPIO16) al PIN RST come specificato nella documentazione nodemcu

Nodemcu sleep

Passiamo ad analizzare il codice da caricare sul dispositivo; consta del file init.lua e del file tempumid.lua.

Analizziamo i punti principali di ciascun file.

  • init.lua

Nel file sono impostate globalmente i parametri dell’access point, l’indirizzo e porta del broker mqtt ed il file da eseguire sull’esp dopo la connessione all’access point. Nel caso non riesca ad acquisire l’indirizzo il sistema viene fatto ripartire.

  • tempumid.lua

Il file temumid.lua gestisce la misura della temperatura ed umidità, la sottoscrizione sul broker mqtt con invio dei dati rilevati. Sono stati impostati dei parametri globali per gestire i topic, i tempi di attesa in tmr.alarm. Sono presenti in particolare i seguenti topic

  • /home/room1/temperature: vengono inviati i dati della temperatura rilevata.
  • /home/room1/humidity: vengono inviati i dati della umidità rilevata.
  • /home/room1/status : viene inviato lo stato del sensore all’avvio ed in risposta dei comandi nel topic /home/room1/command.
  • /home/room1/monitor: periodicamente viene inviato lo stato del sensore.
  • /home/room1/command: Da altri client è possibile inviare dei comandi al sensore.
    • Restart: riavvia il sensore.
    • Sleep n: Tempo di sleep di n secondi.

Vi sono varie funzioni di servizio che gestiscono il tutto. I commenti all’interno del codice descrivono ciascuna funzionalità.

Nel prossimo articolo imposteremo l’esp con il relé

Mqtt con Beaglebone ed ESP8266-MQTT su ESP8266 per Relé