Turinys:

ESP-NOW namų automatika Esp8266 Raspberry Pi MQTT: 4 žingsniai
ESP-NOW namų automatika Esp8266 Raspberry Pi MQTT: 4 žingsniai

Video: ESP-NOW namų automatika Esp8266 Raspberry Pi MQTT: 4 žingsniai

Video: ESP-NOW namų automatika Esp8266 Raspberry Pi MQTT: 4 žingsniai
Video: ESP8266 Smart Light Switch with Servo Motor 2024, Lapkritis
Anonim
ESP-NOW namų automatika Esp8266 Raspberry Pi MQTT
ESP-NOW namų automatika Esp8266 Raspberry Pi MQTT

Šioje instrukcijoje parodysiu, kaip aš naudoju ESP-NOW savo namų automatizavimui. Schemoje galite pamatyti komunikacijos srautus

Aš tau parodysiu:

  • kaip veikia siuntėjas
  • kaip veikia imtuvas
  • kaip veikia serijinis ryšys su „Raspberry Pi“

Aš nerodau, kaip veikia MQTT ir mano namų automatika, galite rasti kitų gerų nurodymų.

Kreditai: šią instrukciją įkvėpė:

Vaizdo įrašą #172 pateikė Andreas Spiess

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

1 veiksmas: sukurkite atsarginę kopiją naudodami „WiFi“ir MQTT

Atsarginė kopija per „WiFi“ir MQTT
Atsarginė kopija per „WiFi“ir MQTT

Sužinojau, kad ESP-NOW yra itin greitas ir gana patikimas, tačiau kartais nepavyksta. Savo programoje pridėjau atsarginę kopiją per įprastą „WiFi“ir MQTT ryšį.

2 žingsnis: nuotolinis/siuntėjas

Nuotolinis/siuntėjas
Nuotolinis/siuntėjas
Nuotolinis/siuntėjas
Nuotolinis/siuntėjas
Nuotolinis/siuntėjas
Nuotolinis/siuntėjas
Nuotolinis/siuntėjas
Nuotolinis/siuntėjas

Pirmoje schemoje matote, kaip veikia siuntėjo programa:

  1. Esp8266 paleidžiamas įjungus arba iš naujo nustatant
  2. ESP-NOW inicijuojamas
  3. Modulis siunčia ESP-NOW tam tikrą laiką
  4. Modulis tikrina, ar ESP-NOW pranešimą gavėjas gavo atgalinio ryšio funkcija.

    1. Jei buvo gautas pranešimas „ESP-NOW“, modulis užmiega mažai energijos
    2. Jei pranešimas ESP-NOW negautas, modulis pradeda „WiFi“ryšį ir MQTT ryšį kaip atsarginį ryšį.

Siuntėjo programa yra mano „Github“(Master_sender.ino). Programos siunčia ir temą, ir pranešimą MQTT namų automatizavimui viename bendrame ESP-NOW pranešime, sujungtame su „&“ženklu, kad būtų lengviau suskaidyti imtuvą.

Aš sukūriau du skirtingus nuotolinio valdymo pultus/siuntėjus:

1 siuntėjas: esp8266 yra gilus miego režimas ir suaktyvinamas iš naujo. Mygtuko lemputė užsidega ir pritemsta, kai modulis baigtas. Jei akumuliatoriaus įtampa yra žema, lemputė mirksi. Jei ESP-NOW nepavyko, indikatorius mirksi prieš pereinant prie „WiFi“/MQTT jungčių. Esp8266 maitinamas iš „LiPo“baterijos su HT7333 įtampos reguliatoriumi iki 3,3 V.

2 siuntėjas: esp8266 yra išjungtas ir įjungiamas paspaudus mygtuką. Paprastai ESP-NOW ryšys užmezgamas paspaudus mygtuką. Esp8266 maitinamas tiesiogiai iš LiPo baterijos. Nežinau, ar esp8266 sugadina visiškai įkrautos baterijos (iki 4,2 V) aukšta įtampa, kai jis įjungiamas vos per 100 ms. Jis yra didesnis nei specifikacijos (3,0 - 3,6 V).

Pastaba: jei akumuliatoriaus energija yra maža, ESP-NOW neveikia.

3 žingsnis: Imtuvas - aparatinė įranga (esp8266 ir Raspberry Pi)

Imtuvas - aparatinė įranga (esp8266 ir Raspberry Pi)
Imtuvas - aparatinė įranga (esp8266 ir Raspberry Pi)
Imtuvas - aparatinė įranga (esp8266 ir Raspberry Pi)
Imtuvas - aparatinė įranga (esp8266 ir Raspberry Pi)
Imtuvas - aparatinė įranga (esp8266 ir Raspberry Pi)
Imtuvas - aparatinė įranga (esp8266 ir Raspberry Pi)

Imtuvo aprašymas yra padalintas į dvi dalis:

  1. Techninė įranga
  2. Programinė įranga

Techninė įranga

Priimantis esp-01 yra prijungtas prie mano „Raspberry Pi Zero“, kuriame veikia mano namų automatizavimo sistema („Openhab2“) ir „Node Red“.

Schemoje parodytos paprastos jungtys:

  • RX nuo esp-01 iki TX iš RasPi
  • „Raspi“esp-01 TX į RX
  • GND į GND
  • Esp-01 VCC maitinamas 3,3 V „Raspi“kaiščiu
  • Esp-01 tiek RST, tiek CH_PD yra pakelti aukštai.

Aš padariau sąsajos jungtį, kad ją būtų lengva pritvirtinti

Vienoje nuotraukoje galite pamatyti mano laidų jungtis prie mano Raspberry Pi 3 (kuris turi tą patį kištuką, bet aš naudoju kitą 3,3 V kaištį, kad prisijungčiau prie CH_PD).

Esp-01 buvo užprogramuotas, kaip parodyta mano kitoje instrukcijoje (žr. 3 veiksmą).

4 žingsnis: Imtuvas - programinė įranga (serijinis, raudonas mazgas, MQTT)

Imtuvas - programinė įranga (serijinis, raudonas mazgas, MQTT)
Imtuvas - programinė įranga (serijinis, raudonas mazgas, MQTT)
Imtuvas - programinė įranga (serijinis, raudonas mazgas, MQTT)
Imtuvas - programinė įranga (serijinis, raudonas mazgas, MQTT)
Imtuvas - programinė įranga (serijinis, raudonas mazgas, MQTT)
Imtuvas - programinė įranga (serijinis, raudonas mazgas, MQTT)

Programa esp8266

Imtuvo esp-01 programa yra mano „Github“(Master_sender.ino). Programa yra tikrai paprasta, ji tik išspausdina gautą ESP-NOW pranešimą serijiniame prievade į „Raspberry Pi“.

Nuoseklusis prievadas

„Raspberry Pi“turite suaktyvinti nuoseklųjį prievadą („raspbian“vykdykite „sudo raspi-config“) normaliam nuosekliam ryšiui.

Serijinio prievado pavadinimas yra:

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

Serijinį prievadą galite patikrinti paleisdami „dmesg | grep tty 'arba' ls /dev '

Raudonas mazgas

„Node Red“pasirinkite serijinį įvesties mazgą ir nustatykite nuoseklųjį prievadą (žr. Pridėtas nuotraukas). Atkreipkite dėmesį į nuoseklaus ryšio duomenų perdavimo spartą, kuri turi atitikti duomenų perdavimo spartą, kaip užprogramuota esp8266.

Serijinio mazgo išvestį paverčia funkcinis mazgas, kuris padalija pranešimą „&“ženklu ir nustato „msg.topic“ir „msg.payload“. Funkcijos išvestis nukreipiama į mqtt išvesties mazgą, kuris siunčia pranešimą į MQTT serverį. Atkreipkite dėmesį, kad „mqtt“mazgo temos laukas tuščias, nes tema nustatyta pranešime.

Rekomenduojamas: