Sommario:
- Passaggio 1: backup tramite WiFi e MQTT
- Passaggio 2: il telecomando/mittente
- Passaggio 3: il ricevitore - Hardware (esp8266 e Raspberry Pi)
- Passaggio 4: il ricevitore - Software (seriale, nodo rosso, MQTT)
Video: ESP-NOW Domotica Esp8266 Raspberry Pi MQTT: 4 passaggi
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:03
In questo Instructable ti mostro come ho usato ESP-NOW nella mia domotica. Nello schema puoi vedere i flussi di comunicazione
Io ti mostro:
- come funziona il mittente
- come funziona il ricevitore
- come funziona la comunicazione seriale con un Raspberry Pi
Non mostro come funzionano MQTT e la mia automazione domestica, puoi trovare altre buone istruzioni per questo.
Crediti: questo Instructable è stato ispirato da:
Video #172 di Andreas Spiess
www.esploradores.com/practica-6-conexion-es…
Passaggio 1: backup tramite WiFi e MQTT
Ho scoperto che ESP-NOW è estremamente veloce e abbastanza affidabile, ma a volte fallisce. Nel mio programma ho aggiunto un backup tramite normale connessione WiFi e MQTT.
Passaggio 2: il telecomando/mittente
Nel primo schema vedi come funziona il programma del mittente:
- L'esp8266 si avvia dall'accensione o dal ripristino
- ESP-NOW è inizializzato
- Il modulo invia ESP-NOW per un tempo definito
-
Il modulo verifica se il messaggio ESP-NOW è stato ricevuto dal destinatario in una funzione di richiamata.
- Se è stato ricevuto il messaggio ESP-NOW, il modulo entra in modalità di sospensione profonda a bassa potenza
- Se il messaggio ESP-NOW non è stato ricevuto, il modulo avvia una connessione WiFi e una connessione MQTT come connessione di backup.
Il programma per il mittente è nel mio Github (Master_sender.ino). I programmi inviano sia l'argomento che il messaggio per l'automazione domestica MQTT in un unico messaggio ESP-NOW combinato, combinato con un segno '&' per una facile suddivisione al ricevitore.
Ho realizzato due diversi telecomandi/mittenti:
Mittente 1: esp8266 è in modalità di sospensione profonda e viene attivato da un ripristino. Il led nel pulsante si accende e si attenua quando il modulo è terminato. Se la tensione della batteria è troppo bassa, il led lampeggia. Se l'ESP-NOW fallisce, il led lampeggia prima di passare alle connessioni WiFi/MQTT. L'esp8266 è alimentato da una batteria LiPo con un regolatore di tensione HT7333 a 3,3 V
Mittente 2: l'esp8266 è spento e viene alimentato premendo il pulsante. Normalmente la connessione ESP-NOW viene eseguita dopo il "clic" del pulsante. L'esp8266 è alimentato direttamente da una batteria LiPo. Non so se l'esp8266 viene danneggiato dall'alta tensione di una batteria completamente carica (fino a 4,2 V) quando viene accesa per pochi 100 ms. È superiore alle specifiche (3.0 - 3.6V).
Nota: se la batteria è scarica, ESP-NOW non funziona.
Passaggio 3: il ricevitore - Hardware (esp8266 e Raspberry Pi)
La descrizione del destinatario è divisa in due parti:
- Hardware
- Software
L'hardware
Il ricevitore esp-01 è collegato al mio Raspberry Pi Zero che esegue il mio sistema di automazione domestica (Openhab2) e Node Red.
Nello schema sono mostrati i semplici collegamenti:
- RX dell'esp-01 a TX del RasPi
- TX dell'esp-01 a RX del RasPi
- GND a GND
- L'esp-01 VCC è alimentato dal pin 3.3V del Raspi
- Su esp-01 sia RST che CH_PD sono tirati in alto.
Ho realizzato un connettore di interfaccia per montarlo facilmente
In un'immagine puoi vedere le mie connessioni cablate al mio Raspberry Pi 3 (che ha la stessa piedinatura, ma ho usato un altro pin da 3,3 V per collegarmi a CH_PD).
L'esp-01 è stato programmato come mostrato nel mio altro Instructable (vedi passaggio 3).
Passaggio 4: il ricevitore - Software (seriale, nodo rosso, MQTT)
Programma su esp8266
Il programma per il ricevitore esp-01 è nel mio Github (Master_sender.ino). Il programma è davvero semplice, stampa solo il messaggio ESP-NOW ricevuto sulla porta seriale al Raspberry Pi.
Porta seriale
Sul Raspberry Pi, è necessario attivare la porta seriale (su raspbian, eseguire 'sudo raspi-config') per la normale comunicazione seriale.
Il nome della porta seriale è:
- Raspberry Pi Zero: /dev/ttyAMA0
- Raspberry Pi 3: /dev/ttyS0
Puoi controllare la porta seriale eseguendo 'dmesg | grep tty' o 'ls /dev'
Nodo Rosso
In Node Red, selezionare il Nodo di ingresso seriale e configurare la porta seriale (vedere le immagini allegate). Prendere nota del baudrate della connessione seriale, questo deve corrispondere al baudrate programmato nell'esp8266.
L'output del nodo seriale viene trasformato da un nodo funzione che divide il messaggio in corrispondenza del segno '&' e imposta msg.topic e msg.payload. L'output della funzione viene indirizzato al nodo di output mqtt che invia il messaggio al server MQTT. Notare che il campo argomento del nodo mqtt è vuoto, perché l'argomento è impostato nel messaggio.
Consigliato:
Domotica con Raspberry Pi: 5 passaggi
Domótica Con Raspberry Pi: Si deseas domótica con tu Raspberry Pi, este Hat esta diseñado para ti! La InfiniPi contiene:- Socket XBee compatibile.- 3 entrate con conectores grove.- 1 entrata I2C con conector grove.- 2 salidas de Relé.Con e
DOMOTICA BASATA SU SERVER MQTT LOCALE CON RASPBERRY PI E SCHEDA NODEMCU: 6 Passaggi
DOMOTICA BASATA SU SERVER MQTT LOCALE UTILIZZANDO LA SCHEDA RASPBERRY PI E NODEMCU: Fino ad ora ho realizzato diversi video tutorial riguardanti il controllo degli elettrodomestici su internet. E per questo ho sempre preferito il server Adafruit MQTT perché era facile da usare e anche facile da usare. Ma tutta quella cosa era basata su Internet. Ciò significa che noi
Rilevatore antincendio minuscolo Esp8266 MQTT IFTTT Domotica: 4 passaggi
Tiny Fire Alarm Detector Esp8266 MQTT IFTTT Domotica: volevo rilevare se il mio sistema di rilevamento di fumo domestico è in allarme. Ho otto rilevatori di fumo in casa e sono interconnessi. Se un rilevatore di fumo è in allarme, l'altro riceve un segnale tramite il cavo di segnale di interconnessione. Il mio sensore legge
Iniziare con Esp 8266 Esp-01 con Arduino IDE - Installazione di schede Esp in Arduino Ide e programmazione di Esp: 4 passaggi
Iniziare con Esp 8266 Esp-01 con Arduino IDE | Installazione di schede Esp in Arduino Ide e programmazione Esp: in questo tutorial impareremo come installare le schede esp8266 in Arduino IDE e come programmare esp-01 e caricare il codice in esso. Poiché le schede esp sono così popolari, ho pensato di raddrizzare un istruibile per questo e la maggior parte delle persone affrontano problemi
Lampada IoT fai da te per la domotica -- Esercitazione ESP8266: 13 passaggi (con immagini)
Lampada IoT fai da te per la domotica || Tutorial ESP8266: in questo tutorial realizzeremo una lampada intelligente connessa a Internet. Questo andrà in profondità nell'internet delle cose e aprirà un mondo di automazione domestica! La lampada è connessa WiFi e costruita per avere un protocollo di messaggio aperto. Ciò significa che puoi selezionare