Cuprins:

ESP-NOW Home Automation Esp8266 Raspberry Pi MQTT: 4 pași
ESP-NOW Home Automation Esp8266 Raspberry Pi MQTT: 4 pași

Video: ESP-NOW Home Automation Esp8266 Raspberry Pi MQTT: 4 pași

Video: ESP-NOW Home Automation Esp8266 Raspberry Pi MQTT: 4 pași
Video: ESP-NOW MQTT шлюз 2024, Iulie
Anonim
ESP-NOW Home Automation Esp8266 Raspberry Pi MQTT
ESP-NOW Home Automation Esp8266 Raspberry Pi MQTT

În acest Instructable vă arăt cum am folosit ESP-ACUM în automatizarea casei mele. În schemă puteți vedea fluxurile de comunicare

Iti arat:

  • cum funcționează expeditorul
  • cum funcționează receptorul
  • cum funcționează comunicarea în serie cu un Raspberry Pi

Nu arăt cum funcționează MQTT și automatizarea casei mele, puteți găsi alte instrucțiuni bune pentru asta.

Credite: Acest instructable a fost inspirat din:

Video # 172 de Andreas Spiess

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

Pasul 1: Backup prin WiFi și MQTT

Backup prin WiFi și MQTT
Backup prin WiFi și MQTT

Am aflat că ESP-ACUM este extrem de rapid și destul de fiabil, dar uneori eșuează. În programul meu am adăugat o copie de rezervă prin WiFi normal și conexiune MQTT.

Pasul 2: Telecomanda / expeditorul

Telecomanda / expeditorul
Telecomanda / expeditorul
Telecomanda / expeditorul
Telecomanda / expeditorul
Telecomanda / expeditorul
Telecomanda / expeditorul
Telecomanda / expeditorul
Telecomanda / expeditorul

În prima schemă vedeți cum funcționează programul expeditorului:

  1. Esp8266 pornește de la pornire sau de la resetare
  2. ESP-ACUM este inițializat
  3. Modulul trimite ESP-ACUM pentru un timp definit
  4. Modulul verifică dacă mesajul ESP-ACUM a fost primit de către receptor într-o funcție de apel invers.

    1. Dacă a fost primit mesajul ESP-ACUM, modulul intră într-un somn adânc de putere redusă
    2. Dacă mesajul ESP-NOW nu a fost primit, modulul pornește o conexiune WiFi și o conexiune MQTT ca o conexiune de rezervă.

Programul pentru expeditor este în Github (Master_sender.ino). Programele transmit atât subiectul, cât și mesajul pentru automatizarea casei MQTT într-un singur mesaj ESP-ACUM combinat, combinat la semnul „&” pentru o împărțire ușoară la receptor.

Am făcut două telecomenzi / expeditori diferiți:

Expeditor 1: Esp8266 este în somn profund și este activat printr-o resetare. Ledul din buton se aprinde și se estompează când modulul este terminat. Dacă tensiunea bateriei este scăzută, ledul clipește. Dacă ESP-NOW a eșuat, ledul clipește înainte de a trece la conexiunile WiFi / MQTT. Esp8266 este alimentat de la o baterie LiPo cu un regulator de tensiune HT7333 la 3,3V

Expeditor 2: Esp8266 este oprit și este alimentat prin apăsarea butonului. În mod normal, conexiunea ESP-ACUM se face după ce butonul „face clic”. Esp8266 este alimentat direct de la o baterie LiPo. Nu știu dacă dispozitivul esp8266 este deteriorat de tensiunea ridicată a unei baterii complet încărcate (până la 4,2 V) atunci când este alimentat la doar câțiva 100 ms. Este mai mare decât specificațiile (3,0 - 3,6V).

Notă: dacă bateria este descărcată, ESP-ACUM nu reușește.

Pasul 3: Receptorul - Hardware (esp8266 și Raspberry Pi)

Receptorul - Hardware (esp8266 și Raspberry Pi)
Receptorul - Hardware (esp8266 și Raspberry Pi)
Receptorul - Hardware (esp8266 și Raspberry Pi)
Receptorul - Hardware (esp8266 și Raspberry Pi)
Receptorul - Hardware (esp8266 și Raspberry Pi)
Receptorul - Hardware (esp8266 și Raspberry Pi)

Descrierea receptorului este împărțită în două părți:

  1. Hardware
  2. Software

Hardware-ul

Receptorul esp-01 este conectat la Raspberry Pi Zero, care rulează sistemul meu de automatizare la domiciliu (Openhab2) și Node Red.

În schemă sunt prezentate conexiunile simple:

  • RX-ul esp-01 la TX al RasPi
  • TX de la esp-01 la RX de RasPi
  • GND la GND
  • Esp-01 VCC este alimentat de pinul de 3,3V al Raspi
  • Pe sp-01 atât RST cât și CH_PD sunt ridicate.

Am făcut un conector de interfață pentru a-l monta cu ușurință

Într-o singură imagine puteți vedea conexiunile mele de cablu la Raspberry Pi 3 (care are același pinout, dar am folosit un alt pin de 3,3V pentru a mă conecta la CH_PD).

Esp-01 a fost programat așa cum s-a arătat în celălalt instructabil al meu (vezi pasul 3).

Pasul 4: Receptorul - Software (Serial, Node Red, MQTT)

Receptorul - Software (Serial, Node Red, MQTT)
Receptorul - Software (Serial, Node Red, MQTT)
Receptorul - Software (Serial, Node Red, MQTT)
Receptorul - Software (Serial, Node Red, MQTT)
Receptorul - Software (Serial, Node Red, MQTT)
Receptorul - Software (Serial, Node Red, MQTT)

Program pe esp8266

Programul pentru receptorul esp-01 se află în Github (Master_sender.ino). Programul este foarte simplu, imprimă mesajul ESP-NOW primit pe portul Serial pe Raspberry Pi.

Port serial

Pe Raspberry Pi, trebuie să activați portul serial (pe raspbian, executați „sudo raspi-config”) pentru o comunicare serială normală.

Numele portului serial este:

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

Puteți verifica portul serial executând 'dmesg | grep tty 'sau' ls / dev '

Nod roșu

În Node Red, selectați intrarea serială Node și configurați portul serial (consultați imaginile atașate). Rețineți viteza de transmisie a conexiunii seriale, aceasta trebuie să se potrivească cu viteza de transmisie programată în esp8266.

Ieșirea nodului serial este transformată de un nod funcțional care împarte mesajul la semnul „&” și setează msg.topic și msg.payload. Ieșirea funcției este condusă către nodul de ieșire mqtt care trimite mesajul către serverul MQTT. Rețineți că câmpul subiect al nodului mqtt este gol, deoarece subiectul este setat în mesaj.

Recomandat: