Taula de continguts:

ESP-NOW Domòtica Esp8266 Raspberry Pi MQTT: 4 passos
ESP-NOW Domòtica Esp8266 Raspberry Pi MQTT: 4 passos

Vídeo: ESP-NOW Domòtica Esp8266 Raspberry Pi MQTT: 4 passos

Vídeo: ESP-NOW Domòtica Esp8266 Raspberry Pi MQTT: 4 passos
Vídeo: MQTT ESP8266 NodeMCU Home Automation System with cheapest Cloud MQTT broker Reyax RYC1001 - IoT 2021 2024, Desembre
Anonim
ESP-NOW Domòtica Esp8266 Raspberry Pi MQTT
ESP-NOW Domòtica Esp8266 Raspberry Pi MQTT

En aquest instructiu us mostro com he utilitzat ESP-NOW a la meva domòtica. A l'esquema es poden veure els fluxos de comunicació

T'ensenyo:

  • com funciona l’emissor
  • com funciona el receptor
  • com funciona la comunicació en sèrie amb un Raspberry Pi

No mostro el funcionament de MQTT i la meva domòtica, hi podeu trobar altres bones instruccions.

Crèdits: aquest instructiu es va inspirar en:

Vídeo # 172 d’Andreas Spiess

www.esploradores.com/practica-6-conexion-es…

Pas 1: Còpia de seguretat mitjançant WiFi i MQTT

Còpia de seguretat mitjançant WiFi i MQTT
Còpia de seguretat mitjançant WiFi i MQTT

Vaig descobrir que ESP-NOW és extremadament ràpid i bastant fiable, però de vegades falla. Al meu programa he afegit una còpia de seguretat mitjançant una connexió WiFi i MQTT normal.

Pas 2: el remot / remitent

El remot / remitent
El remot / remitent
El remot / remitent
El remot / remitent
El remot / remitent
El remot / remitent
El remot / remitent
El remot / remitent

Al primer esquema veieu com funciona el programa del remitent:

  1. L'esp8266 s'inicia des de l'engegada o des del reinici
  2. ESP-NOW s'inicialitza
  3. El mòdul envia ESP-NOW durant un temps definit
  4. El mòdul comprova si el receptor ha rebut el missatge ESP-NOW en una funció de devolució de trucada.

    1. Si es va rebre el missatge ESP-NOW, el mòdul es queda en son profund de baixa potència
    2. Si no es va rebre el missatge ESP-NOW, el mòdul inicia una connexió WiFi i una connexió MQTT com a connexió de còpia de seguretat.

El programa per al remitent es troba al meu Github (Master_sender.ino). Els programes envien tant el tema com el missatge per a la domòtica MQTT en un missatge combinat ESP-NOW, combinat en un signe '&' per a una divisió fàcil al receptor.

Vaig crear dos remotors / remitents diferents:

Remitent 1: l’esp8266 està en son profund i s’activa mitjançant un restabliment. El led del botó s’il·lumina i s’apaga quan es completa el mòdul. Si el voltatge de la bateria és baix, el LED parpelleja. Si l’ESP-NOW ha fallat, el LED parpelleja abans de canviar a connexions WiFi / MQTT. L'esp8266 s'alimenta d'una bateria LiPo amb un regulador de voltatge HT7333 a 3,3V

Remitent 2: l’esp8266 s’apaga i s’alimenta prement el botó. Normalment, la connexió ESP-NOW es fa després que el botó "faci clic". L'esp8266 s'alimenta directament des d'una bateria LiPo. No sé si l’esp8266 es fa malbé per l’alta tensió d’una bateria completament carregada (fins a 4,2 V) quan s’encén uns pocs 100 ms. És superior a les especificacions (3,0 - 3,6 V).

Nota: si la bateria és baixa, l’ESP-NOW falla.

Pas 3: el receptor: maquinari (esp8266 i Raspberry Pi)

El receptor: maquinari (esp8266 i Raspberry Pi)
El receptor: maquinari (esp8266 i Raspberry Pi)
El receptor: maquinari (esp8266 i Raspberry Pi)
El receptor: maquinari (esp8266 i Raspberry Pi)
El receptor: maquinari (esp8266 i Raspberry Pi)
El receptor: maquinari (esp8266 i Raspberry Pi)

La descripció del receptor es divideix en dues parts:

  1. Maquinari
  2. Programari

El maquinari

L’esp-01 receptor està connectat al meu Raspberry Pi Zero que executa el meu sistema domòtic (Openhab2) i Node Red.

A l'esquema es mostren les connexions simples:

  • RX de l'esp-01 a TX del RasPi
  • TX de l'esp-01 a RX del RasPi
  • GND a GND
  • L’esp-01 VCC s’alimenta del pin de 3,3 V del Raspi
  • A l'esp-01, tant RST com CH_PD estan elevats.

Vaig fer un connector d'interfície per muntar-lo fàcilment

En una imatge podeu veure les meves connexions per cable al meu Raspberry Pi 3 (que té el mateix pinout, però he utilitzat un altre pin de 3,3 V per connectar-me a CH_PD).

L'esp-01 es va programar tal com es mostra a la meva altra instrucció (vegeu el pas 3).

Pas 4: el receptor: programari (sèrie, vermell de node, MQTT)

El receptor: programari (sèrie, vermell de node, MQTT)
El receptor: programari (sèrie, vermell de node, MQTT)
El receptor: programari (sèrie, vermell de node, MQTT)
El receptor: programari (sèrie, vermell de node, MQTT)
El receptor: programari (sèrie, vermell de node, MQTT)
El receptor: programari (sèrie, vermell de node, MQTT)

Programa a esp8266

El programa per al receptor esp-01 és al meu Github (Master_sender.ino). El programa és realment senzill, només imprimeix el missatge ESP-NOW rebut al port sèrie al Raspberry Pi.

Port sèrie

Al Raspberry Pi, heu d'activar el port sèrie (a raspbian, executeu 'sudo raspi-config') per a una comunicació serial normal.

El nom del port sèrie és:

  • Raspberry Pi Zero: / dev / ttyAMA0
  • Raspberry Pi 3: / dev / ttyS0

Podeu comprovar el port sèrie executant 'dmesg | grep tty 'o' ls / dev '

Node vermell

A Node Red, seleccioneu el node d'entrada sèrie i configureu el port sèrie (vegeu les imatges adjuntes). Tingueu en compte la velocitat de transmissió de la connexió sèrie, que ha de coincidir amb la velocitat de transmissió programada a l’esp8266.

La sortida del node sèrie es transforma mitjançant un node de funció que divideix el missatge en el signe '&' i estableix el msg.topic i el msg.payload. La sortida de la funció es dirigeix cap al node de sortida mqtt que envia el missatge al servidor MQTT. Tingueu en compte que el camp del tema del node mqtt està en blanc, perquè el tema està definit al missatge.

Recomanat: