Tartalomjegyzék:

ESP-NOW Home Automation Esp8266 Raspberry Pi MQTT: 4 lépés
ESP-NOW Home Automation Esp8266 Raspberry Pi MQTT: 4 lépés

Videó: ESP-NOW Home Automation Esp8266 Raspberry Pi MQTT: 4 lépés

Videó: ESP-NOW Home Automation Esp8266 Raspberry Pi MQTT: 4 lépés
Videó: Home Automation based on Local MQTT server using Raspberry Pi and NodeMCUBoard | ESP8266 Projects 2024, November
Anonim
ESP-NOW Home Automation Esp8266 Raspberry Pi MQTT
ESP-NOW Home Automation Esp8266 Raspberry Pi MQTT

Ebben az utasításban megmutatom, hogyan használtam az ESP-NOW-t otthoni automatizálásomban. A vázlatban láthatja a kommunikációs folyamatokat

Megmutatom neked:

  • hogyan működik a feladó
  • hogyan működik a vevő
  • hogyan működik a Raspberry Pi -vel folytatott soros kommunikáció

Nem mutatom be, hogyan működik az MQTT és az otthoni automatizálásom, erre találhat jó útmutatást.

Hitelek: Ezt az Instructable -t a következők ihlették:

A #172 videó Andreas Spiess

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

1. lépés: Biztonsági mentés WiFi-n és MQTT-n keresztül

Biztonsági mentés WiFi-n és MQTT-n keresztül
Biztonsági mentés WiFi-n és MQTT-n keresztül

Rájöttem, hogy az ESP-NOW rendkívül gyors és meglehetősen megbízható, de néha meghibásodik. A programomban hozzáadtam egy biztonsági mentést normál WiFi és MQTT kapcsolaton keresztül.

2. lépés: A távoli/feladó

A távoli/feladó
A távoli/feladó
A távoli/feladó
A távoli/feladó
A távoli/feladó
A távoli/feladó
A távoli/feladó
A távoli/feladó

Az első sémában láthatja, hogyan működik a feladó programja:

  1. Az esp8266 bekapcsoláskor vagy visszaállításkor indul
  2. Az ESP-NOW inicializálva van
  3. A modul meghatározott ideig küldi az ESP-NOW-t
  4. A modul ellenőrzi, hogy az ESP-NOW üzenetet a fogadó fogadta-e visszahívási funkcióban.

    1. Ha az ESP-NOW üzenet érkezett, a modul alacsony energiaigényű mély alvó állapotba kerül
    2. Ha az ESP-NOW üzenet nem érkezett meg, a modul WiFi kapcsolatot és MQTT kapcsolatot indít tartalék kapcsolatként.

A feladó programja a Github -ban található (Master_sender.ino). A programok mind a témát, mind az üzenetet elküldik az MQTT otthoni automatizáláshoz egy kombinált ESP-NOW üzenetben, kombinálva egy "&" jellel, hogy könnyen fel lehessen osztani a vevőkészüléket.

Két különböző távirányítót/küldőt készítettem:

1. feladó: Az esp8266 mély alvó állapotban van, és a visszaállítás aktiválja. A gombban lévő LED világít és elhalványul, amikor a modul elkészült. Ha az akkumulátor feszültsége alacsony, a LED villog. Ha az ESP-NOW nem sikerült, a LED villog, mielőtt WiFi/MQTT kapcsolatokra vált. Az esp8266 egy HT7333 feszültségszabályozóval ellátott LiPo akkumulátorról működik 3,3 V -ra

2. feladó: Az esp8266 kikapcsol, és a gomb megnyomásával kap áramot. Általában az ESP-NOW kapcsolat a gomb "kattintása" után jön létre. Az esp8266 közvetlenül LiPo akkumulátorról működik. Nem tudom, hogy az esp8266 megsérül -e a teljesen feltöltött akkumulátor (akár 4,2 V -os) nagyfeszültségétől, ha csak néhány 100 ms -os áramellátást kap. Magasabb, mint a specifikációk (3.0 - 3.6V).

Megjegyzés: ha az akkumulátor töltöttsége alacsony, az ESP-NOW meghibásodik.

3. lépés: A vevő - hardver (esp8266 és Raspberry Pi)

A vevő - hardver (esp8266 és Raspberry Pi)
A vevő - hardver (esp8266 és Raspberry Pi)
A vevő - hardver (esp8266 és Raspberry Pi)
A vevő - hardver (esp8266 és Raspberry Pi)
A vevő - hardver (esp8266 és Raspberry Pi)
A vevő - hardver (esp8266 és Raspberry Pi)

A vevő leírása két részre oszlik:

  1. Hardver
  2. Szoftver

A hardver

A fogadó esp-01 csatlakozik a Raspberry Pi Zero készülékemhez, amely az otthoni automatizálási rendszeremet (Openhab2) és a Node Red rendszert futtatja.

A vázlatban az egyszerű kapcsolatok láthatók:

  • Az esp-01 RX-je a RasPi TX-hez
  • Az esp-01 TX-je a RasPi RX-hez
  • GND - GND
  • Az esp-01 VCC tápellátását a Raspi 3,3 V-os csapja biztosítja
  • Az esp-01-en mind az RST, mind a CH_PD magasra van húzva.

Csináltam egy interfész csatlakozót a könnyű felszereléshez

Az egyik képen láthatod a vezetékes csatlakozásaimat a Raspberry Pi 3 készülékemhez (ugyanazzal a kimenettel, de egy másik 3.3V -os tűt használtam a CH_PD -hez való csatlakozáshoz).

Az esp-01 programozása a másik Instructable programban leírtak szerint történt (lásd a 3. lépést).

4. lépés: A vevő - szoftver (soros, piros csomópont, MQTT)

A vevő - szoftver (soros, piros csomópont, MQTT)
A vevő - szoftver (soros, piros csomópont, MQTT)
A vevő - szoftver (soros, piros csomópont, MQTT)
A vevő - szoftver (soros, piros csomópont, MQTT)
A vevő - szoftver (soros, piros csomópont, MQTT)
A vevő - szoftver (soros, piros csomópont, MQTT)

Program az esp8266 -on

Az esp-01 vevő programja megtalálható a Github-ban (Master_sender.ino). A program nagyon egyszerű, csak a fogadott ESP-NOW üzenetet nyomtatja ki a soros porton a Raspberry Pi-re.

Soros port

A Raspberry Pi rendszeren aktiválni kell a soros portot (raspbian esetén futtassa a „sudo raspi-config” parancsot) a normál soros kommunikációhoz.

A soros port neve:

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

A soros portot a 'dmesg | futtatásával ellenőrizheti grep tty 'vagy' ls /dev '

Csomópont Piros

A piros csomópontban válassza ki a soros bemeneti csomópontot, és állítsa be a soros portot (lásd a mellékelt képeket). Vegye figyelembe a soros kapcsolat adatátviteli sebességét, ennek meg kell egyeznie az esp8266 programozott átviteli sebességével.

A soros csomópont kimenetét egy függvénycsomópont alakítja át, amely felosztja az üzenetet a & jelre, és beállítja az msg.topic és az msg.payload értékeket. A függvény kimenete az mqtt kimeneti csomóponthoz kerül, amely elküldi az üzenetet az MQTT szervernek. Ne feledje, hogy az mqtt csomópont téma mezője üres, mert a téma az üzenetben van beállítva.

Ajánlott: