Sisällysluettelo:

ESP-NOW Home Automation Esp8266 Raspberry Pi MQTT: 4 vaihetta
ESP-NOW Home Automation Esp8266 Raspberry Pi MQTT: 4 vaihetta

Video: ESP-NOW Home Automation Esp8266 Raspberry Pi MQTT: 4 vaihetta

Video: ESP-NOW Home Automation Esp8266 Raspberry Pi MQTT: 4 vaihetta
Video: Home Automation based on Local MQTT server using Raspberry Pi and NodeMCUBoard | ESP8266 Projects 2024, Marraskuu
Anonim
ESP-NOW Home Automation Esp8266 Raspberry Pi MQTT
ESP-NOW Home Automation Esp8266 Raspberry Pi MQTT

Tässä Instructable-ohjelmassa näytän sinulle, kuinka käytin ESP-NOW: ta kotiautomaatiossani. Kaaviossa näet viestintävirrat

Näytän sinulle:

  • miten lähettäjä toimii
  • miten vastaanotin toimii
  • kuinka sarjaliikenne Raspberry Pi: n kanssa toimii

En näytä, miten MQTT ja kodin automaatio toimivat, voit löytää muita hyviä ohjeita siihen.

Laajuus: Tämä Instructable on saanut inspiraationsa:

Video #172, Andreas Spiess

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

Vaihe 1: Varmuuskopiointi WiFi: n ja MQTT: n kautta

Varmuuskopiointi WiFi: n ja MQTT: n kautta
Varmuuskopiointi WiFi: n ja MQTT: n kautta

Huomasin, että ESP-NOW on erittäin nopea ja melko luotettava, mutta joskus epäonnistuu. Ohjelmaani lisäsin varmuuskopion normaalin WiFi- ja MQTT-yhteyden kautta.

Vaihe 2: Kaukosäädin/lähettäjä

Kaukosäädin/lähettäjä
Kaukosäädin/lähettäjä
Kaukosäädin/lähettäjä
Kaukosäädin/lähettäjä
Kaukosäädin/lähettäjä
Kaukosäädin/lähettäjä
Kaukosäädin/lähettäjä
Kaukosäädin/lähettäjä

Ensimmäisessä mallissa näet, kuinka lähettäjän ohjelma toimii:

  1. Esp8266 käynnistyy käynnistyksestä tai nollasta
  2. ESP-NOW alustetaan
  3. Moduuli lähettää ESP-NOW tietyn ajan
  4. Moduuli tarkistaa, onko vastaanottaja vastaanottanut ESP-NOW-viestin takaisinsoittotoiminnon avulla.

    1. Jos ESP-NOW-viesti vastaanotettiin, moduuli siirtyy virransäästötilaan
    2. Jos ESP-NOW-viestiä ei vastaanotettu, moduuli käynnistää WiFi-yhteyden ja MQTT-yhteyden varayhteydeksi.

Lähettäjän ohjelma on Githubissa (Master_sender.ino). Ohjelmat lähettävät sekä aiheen että viestin MQTT-kotiautomaatiolle yhdessä yhdistetyssä ESP-NOW-viestissä yhdistettynä & -merkillä, jotta vastaanotin on helppo jakaa.

Tein kaksi eri kaukosäädintä/lähetintä:

Lähettäjä 1: esp8266 on syvässä unessa ja aktivoidaan nollaustoiminnolla. Painikkeen merkkivalo syttyy ja himmenee, kun moduuli on valmis. Jos akun jännite on alhainen, merkkivalo vilkkuu. Jos ESP-NOW epäonnistui, LED vilkkuu ennen kuin vaihdat WiFi/MQTT-yhteyteen. Esp8266 saa virtansa LiPo -akusta, jossa on HT7333 -jännitesäädin, 3,3 V.

Lähettäjä 2: Esp8266 sammutetaan ja virta kytketään painamalla painiketta. Normaalisti ESP-NOW-yhteys muodostetaan painikkeen napsautuksen jälkeen. Esp8266 saa virtansa suoraan LiPo -akusta. En tiedä, vaurioituuko esp8266 täyteen ladatun akun (jopa 4,2 V) korkeajännitteestä, kun siihen kytketään virta vain muutama 100 ms. Se on korkeampi kuin tekniset tiedot (3,0 - 3,6 V).

Huomaa: jos akun varaus on vähissä, ESP-NOW epäonnistuu.

Vaihe 3: Vastaanotin - laitteisto (esp8266 ja Raspberry Pi)

Vastaanotin - laitteisto (esp8266 ja Raspberry Pi)
Vastaanotin - laitteisto (esp8266 ja Raspberry Pi)
Vastaanotin - laitteisto (esp8266 ja Raspberry Pi)
Vastaanotin - laitteisto (esp8266 ja Raspberry Pi)
Vastaanotin - laitteisto (esp8266 ja Raspberry Pi)
Vastaanotin - laitteisto (esp8266 ja Raspberry Pi)

Vastaanottimen kuvaus on jaettu kahteen osaan:

  1. Laitteisto
  2. Ohjelmisto

Laitteisto

Vastaanottava esp-01 on yhdistetty Raspberry Pi Zero -laitteeseeni, joka käyttää kotiautomaatiojärjestelmääni (Openhab2) ja solmua Red.

Kaaviossa yksinkertaiset liitännät on esitetty:

  • RSP esp-01: stä RasPi: n lähetykseen
  • TX esp-01: stä RasPin RX: ään
  • GND - GND
  • Esp-01 VCC saa virtansa Raspin 3,3 V: n nastasta
  • Esp-01: ssä sekä RST että CH_PD vedetään korkealle.

Tein liitäntäliittimen, joka kiinnittää sen helposti

Yhdessä kuvassa näet lankayhteyteni Raspberry Pi 3 -laitteeseeni (jossa on sama pistoke, mutta käytin toista 3.3V -nastaista yhteyden muodostamiseen CH_PD: hen).

Esp-01 ohjelmoitiin, kuten osoitin toisessa Instructable-ohjelmassa (katso vaihe 3).

Vaihe 4: Vastaanotin - Ohjelmisto (sarja, solmu punainen, MQTT)

Vastaanotin - Ohjelmisto (sarja, solmu punainen, MQTT)
Vastaanotin - Ohjelmisto (sarja, solmu punainen, MQTT)
Vastaanotin - Ohjelmisto (sarja, solmu punainen, MQTT)
Vastaanotin - Ohjelmisto (sarja, solmu punainen, MQTT)
Vastaanotin - Ohjelmisto (sarja, solmu punainen, MQTT)
Vastaanotin - Ohjelmisto (sarja, solmu punainen, MQTT)

Ohjelma esp8266

Esp-01-vastaanottimen ohjelma on Githubissa (Master_sender.ino). Ohjelma on todella yksinkertainen, se tulostaa vain vastaanotetun ESP-NOW-viestin sarjaportista Raspberry Pi -laitteeseen.

Sarjaportti

Raspberry Pi -laitteessa sinun on aktivoitava sarjaportti (raspbianissa suorita sudo raspi-config) normaalia sarjaliikennettä varten.

Sarjaportin nimi on:

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

Voit tarkistaa sarjaportin suorittamalla 'dmesg | grep tty 'tai' ls /dev '

Solmu Punainen

Valitse solmun punaisessa sarjasisäänmenosolmu ja määritä sarjaportti (katso liitteenä olevat kuvat). Huomaa sarjayhteyden siirtonopeus, jonka on vastattava esp8266 -ohjelmoitua siirtonopeutta.

Sarjasolmun ulostulon muuttaa funktiosolmu, joka jakaa viestin & -merkin kohdalle ja asettaa msg.topic ja msg.payload. Funktion lähtö johdetaan mqtt -lähtösolmuun, joka lähettää viestin MQTT -palvelimelle. Huomaa, että mqtt -solmun aihekenttä on tyhjä, koska aihe on määritetty viestissä.

Suositeltava: