Kazalo:

ESP-NOW Domača avtomatizacija Esp8266 Raspberry Pi MQTT: 4 koraki
ESP-NOW Domača avtomatizacija Esp8266 Raspberry Pi MQTT: 4 koraki

Video: ESP-NOW Domača avtomatizacija Esp8266 Raspberry Pi MQTT: 4 koraki

Video: ESP-NOW Domača avtomatizacija Esp8266 Raspberry Pi MQTT: 4 koraki
Video: Домашняя автоматизация своими руками — ESP32, Raspberry Pi, Node Red, MQTT, Умный дом || Проект Интернета вещей. Часть 1. 2024, November
Anonim
ESP-NOW Domača avtomatizacija Esp8266 Raspberry Pi MQTT
ESP-NOW Domača avtomatizacija Esp8266 Raspberry Pi MQTT

V tem navodilu vam pokažem, kako sem uporabil ESP-NOW v svoji avtomatizaciji doma. Na shemi lahko vidite komunikacijske tokove

Ti pokažem:

  • kako pošiljatelj deluje
  • kako deluje sprejemnik
  • kako deluje serijska komunikacija z Raspberry Pi

Ne prikazujem, kako delujeta MQTT in moja avtomatizacija doma, za to lahko najdete druga dobra navodila.

Zasluge: Ta Instructable je navdihnil:

Video #172 avtorja Andreas Spiess

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

Korak: Varnostno kopiranje prek WiFi in MQTT

Varnostno kopiranje prek WiFi in MQTT
Varnostno kopiranje prek WiFi in MQTT

Ugotovil sem, da je ESP-NOW izredno hiter in precej zanesljiv, vendar včasih ne uspe. V svoj program sem dodal varnostno kopijo prek običajne povezave WiFi in MQTT.

2. korak: Daljinski upravljalnik/pošiljatelj

Daljinski upravljalnik/pošiljatelj
Daljinski upravljalnik/pošiljatelj
Daljinski upravljalnik/pošiljatelj
Daljinski upravljalnik/pošiljatelj
Daljinski upravljalnik/pošiljatelj
Daljinski upravljalnik/pošiljatelj
Daljinski upravljalnik/pošiljatelj
Daljinski upravljalnik/pošiljatelj

V prvi shemi vidite, kako deluje program pošiljatelja:

  1. Esp8266 se zažene ob vklopu ali ponastavitvi
  2. ESP-NOW je inicializiran
  3. Modul pošilja ESP-NOW za določen čas
  4. Modul preveri, ali je sprejemnik sprejel sporočilo ESP-NOW v funkciji povratnega klica.

    1. Če je bilo prejeto sporočilo ESP-NOW, modul preide v globoko spanje z nizko porabo energije
    2. Če sporočilo ESP-NOW ni bilo prejeto, modul vzpostavi povezavo WiFi in povezavo MQTT kot varnostno povezavo.

Program za pošiljatelja je v mojem Githubu (Master_sender.ino). Programi pošljejo tako temo kot sporočilo za domačo avtomatizacijo MQTT v enem kombiniranem sporočilu ESP-NOW, združenem z znakom '&' za enostavno razdeljevanje na sprejemniku.

Naredil sem dva različna daljinca/pošiljatelja:

Pošiljatelj 1: esp8266 je v globokem spanju in se aktivira s ponastavitvijo. LED dioda v gumbu zasveti in zatemni, ko je modul končan. Če je napetost baterije prenizka, LED utripa. Če ESP-NOW ne uspe, LED utripa, preden preklopite na povezave WiFi/MQTT. Esp8266 se napaja iz LiPo baterije z napetostnim regulatorjem HT7333 na 3,3 V.

Pošiljatelj 2: esp8266 je izklopljen in se napaja s pritiskom na gumb. Običajno se povezava ESP-NOW vzpostavi po kliku gumba. Esp8266 se napaja neposredno iz LiPo baterije. Ne vem, ali se esp8266 poškoduje zaradi visoke napetosti popolnoma napolnjene baterije (do 4,2 V), ko je vklopljena le nekaj 100 ms. Je višja od specifikacij (3,0 - 3,6 V).

Opomba: če je baterija nizka, ESP-NOW ne uspe.

3. korak: sprejemnik - strojna oprema (esp8266 in Raspberry Pi)

Sprejemnik - strojna oprema (esp8266 in Raspberry Pi)
Sprejemnik - strojna oprema (esp8266 in Raspberry Pi)
Sprejemnik - strojna oprema (esp8266 in Raspberry Pi)
Sprejemnik - strojna oprema (esp8266 in Raspberry Pi)
Sprejemnik - strojna oprema (esp8266 in Raspberry Pi)
Sprejemnik - strojna oprema (esp8266 in Raspberry Pi)

Opis sprejemnika je razdeljen na dva dela:

  1. Strojna oprema
  2. Programska oprema

Strojna oprema

Sprejemni esp-01 je povezan z mojim Raspberry Pi Zero, ki poganja moj sistem za avtomatizacijo doma (Openhab2) in Node Red.

Na shemi so prikazane preproste povezave:

  • RX esp-01 do TX RasPi
  • TX esp-01 do RX RasPi
  • GND v GND
  • Esp-01 VCC napaja 3.3V pin Raspi
  • Na esp-01 sta RST in CH_PD potegnjena visoko.

Za enostavno namestitev sem naredil vmesniški priključek

Na eni sliki lahko vidite moje žične povezave z mojo Raspberry Pi 3 (ki ima enak pinout, vendar sem za povezavo s CH_PD uporabil še en 3.3V pin).

Esp-01 je bil programiran, kot je prikazano v mojem drugem navodilu (glej korak 3).

4. korak: sprejemnik - programska oprema (serijsko, rdeče vozlišče, MQTT)

Sprejemnik - programska oprema (serijsko, rdeče vozlišče, MQTT)
Sprejemnik - programska oprema (serijsko, rdeče vozlišče, MQTT)
Sprejemnik - programska oprema (serijsko, rdeče vozlišče, MQTT)
Sprejemnik - programska oprema (serijsko, rdeče vozlišče, MQTT)
Sprejemnik - programska oprema (serijsko, rdeče vozlišče, MQTT)
Sprejemnik - programska oprema (serijsko, rdeče vozlišče, MQTT)

Program na esp8266

Program za sprejemnik esp-01 je v mojem Githubu (Master_sender.ino). Program je res preprost, samo natisne prejeto sporočilo ESP-NOW na serijska vrata na Raspberry Pi.

Serijska vrata

Na Raspberry Pi morate za normalno serijsko komunikacijo aktivirati serijska vrata (v raspbian-u izvedite 'sudo raspi-config').

Ime serijskih vrat je:

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

Serijska vrata lahko preverite tako, da zaženete 'dmesg | grep tty 'ali' ls /dev '

Rdeče vozlišče

V Node Red izberite Node serijskega vhoda in nastavite serijska vrata (glejte priložene slike). Upoštevajte hitrost prenosa serijske povezave, ta se mora ujemati s hitrostjo prenosa, kot je programirano v esp8266.

Izhod serijskega vozlišča preoblikuje funkcijsko vozlišče, ki razdeli sporočilo na znak '&' in nastavi sporočilo msg.topic in msg.payload. Izhod funkcije se pripelje do izhodnega vozlišča mqtt, ki pošlje sporočilo strežniku MQTT. Upoštevajte, da je polje teme vozlišča mqtt prazno, ker je tema nastavljena v sporočilu.

Priporočena: