INHOUDSOPGAWE:

ESP-NOU Tuisautomatisering Esp8266 Raspberry Pi MQTT: 4 stappe
ESP-NOU Tuisautomatisering Esp8266 Raspberry Pi MQTT: 4 stappe

Video: ESP-NOU Tuisautomatisering Esp8266 Raspberry Pi MQTT: 4 stappe

Video: ESP-NOU Tuisautomatisering Esp8266 Raspberry Pi MQTT: 4 stappe
Video: tutorial install home assistant on stb 2024, November
Anonim
ESP-NOU Tuisautomatisering Esp8266 Raspberry Pi MQTT
ESP-NOU Tuisautomatisering Esp8266 Raspberry Pi MQTT

In hierdie Instructable wys ek jou hoe ek ESP-NOW in my huisautomatisering gebruik het. In die skematiese kan u die kommunikasie vloei sien

Ek wys jou:

  • hoe die sender werk
  • hoe die ontvanger werk
  • hoe die seriële kommunikasie met 'n Raspberry Pi werk

Ek wys nie hoe MQTT en my tuisautomatisering werk nie; u kan ander goeie instruksies daarvoor vind.

Krediete: This Instructable is geïnspireer deur:

Video #172 deur Andreas Spiess

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

Stap 1: Rugsteun via WiFi en MQTT

Rugsteun via WiFi en MQTT
Rugsteun via WiFi en MQTT

Ek het uitgevind dat ESP-NOW uiters vinnig en redelik betroubaar is, maar soms misluk. In my program het ek 'n rugsteun bygevoeg via normale WiFi- en MQTT-verbinding.

Stap 2: Die afstandsbediening/sender

Die afstandsbediening/sender
Die afstandsbediening/sender
Die afstandsbediening/sender
Die afstandsbediening/sender
Die afstandsbediening/sender
Die afstandsbediening/sender
Die afstandsbediening/sender
Die afstandsbediening/sender

In die eerste skema sien u hoe die program van die sender werk:

  1. Die esp8266 begin met opstart of herstel
  2. ESP-NOW word geïnisialiseer
  3. Die module stuur ESP-NOW vir 'n bepaalde tyd
  4. Die module kyk of die ESP-NOW-boodskap deur die ontvanger ontvang is in 'n terugbelfunksie.

    1. As die ESP-NOW-boodskap ontvang is, gaan die module in 'n diepe slaapperiode
    2. As die ESP-NOW-boodskap nie ontvang is nie, begin die module 'n WiFi-verbinding en 'n MQTT-verbinding as 'n rugsteunverbinding.

Die program vir die sender is in my Github (Master_sender.ino). Die programme stuur beide die onderwerp en die boodskap vir die MQTT-tuisautomatisering in een gekombineerde ESP-NOW-boodskap, gekombineer met 'n '&' teken vir 'n maklike skeiding by die ontvanger.

Ek het twee verskillende afstandbeheer/senders gemaak:

Sender 1: Die esp8266 slaap diep en word geaktiveer deur 'n reset. Die led in die knoppie brand en verdof wanneer die module klaar is. As die spanning van die battery te laag is, knipper die LED. As die ESP-NOW misluk, knipper die LED voordat dit oorskakel na WiFi/MQTT-verbindings. Die esp8266 word aangedryf deur 'n LiPo -battery met 'n HT7333 spanningsreguleerder tot 3,3V

Sender 2: Die esp8266 word afgeskakel en word aangeskakel deur op die knoppie te druk. Normaalweg word die ESP-NOW-verbinding gemaak nadat die knoppie 'klik' het. Die esp8266 word direk van 'n LiPo -battery aangedryf. Ek weet nie of die esp8266 beskadig raak deur die hoë spanning van 'n volgelaaide battery (tot 4,2 V) as dit net 'n paar 100 ms aangeskakel word nie. Dit is hoër as die spesifikasies (3.0 - 3.6V).

Let wel: as die batterykrag laag is, misluk die ESP-NOW.

Stap 3: Die ontvanger - hardeware (esp8266 en Raspberry Pi)

Die ontvanger - hardeware (esp8266 en Framboos Pi)
Die ontvanger - hardeware (esp8266 en Framboos Pi)
Die ontvanger - hardeware (esp8266 en Framboos Pi)
Die ontvanger - hardeware (esp8266 en Framboos Pi)
Die ontvanger - hardeware (esp8266 en Framboos Pi)
Die ontvanger - hardeware (esp8266 en Framboos Pi)

Die beskrywing van die ontvanger is in twee dele verdeel:

  1. Hardeware
  2. Sagteware

Die hardeware

Die ontvangende esp-01 is gekoppel aan my Raspberry Pi Zero wat my tuis-outomatiseringstelsel (Openhab2) en Node Red bestuur.

In die skema word die eenvoudige verbindings getoon:

  • RX van die esp-01 tot TX van die RasPi
  • TX van die esp-01 na RX van die RasPi
  • GND tot GND
  • Die esp-01 VCC word aangedryf deur die 3.3V-pen van die Raspi
  • Op die esp-01 word beide RST en CH_PD hoog getrek.

Ek het 'n koppelvlakaansluiting gemaak om dit maklik te monteer

Op een foto kan u my draadverbindings na my Raspberry Pi 3 sien (wat dieselfde pinout het, maar ek het nog 'n 3.3V -pin gebruik om aan CH_PD te koppel).

Die esp-01 is geprogrammeer soos getoon in my ander Instructable (sien stap 3).

Stap 4: Die ontvanger - sagteware (Serial, Node Red, MQTT)

Die ontvanger - sagteware (reeks, Node Red, MQTT)
Die ontvanger - sagteware (reeks, Node Red, MQTT)
Die ontvanger - sagteware (reeks, Node Red, MQTT)
Die ontvanger - sagteware (reeks, Node Red, MQTT)
Die ontvanger - sagteware (reeks, Node Red, MQTT)
Die ontvanger - sagteware (reeks, Node Red, MQTT)

Program op esp8266

Die program vir die esp-01 ontvanger is in my Github (Master_sender.ino). Die program is regtig eenvoudig; dit druk slegs die ontvangde ESP-NOW-boodskap op die Serial-poort af na die Raspberry Pi.

Seriële poort

Op die Raspberry Pi moet u die seriële poort (op raspbian, 'sudo raspi-config') aktiveer vir normale seriële kommunikasie.

Die naam van die reekspoort is:

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

U kan die seriële poort nagaan deur 'dmesg | grep tty 'of' ls /dev '

Knoop Rooi

Kies in Node Red die seriële invoerknoop en stel die seriële poort in (sien die aangehegte foto's). Let op die baudrate van die seriële verbinding, dit moet ooreenstem met die baudrate soos geprogrammeer in die esp8266.

Die uitset van die seriële node word getransformeer deur 'n funksie -knoop wat die boodskap by die '&' teken verdeel en die msg.topic en die msg.payload stel. Die uitset van die funksie word na die mqtt -uitsetknoop gelei wat die boodskap na die MQTT -bediener stuur. Let op die onderwerpveld van die mqtt -knoop is leeg, want die onderwerp is in die boodskap gestel.

Aanbeveel: