Innholdsfortegnelse:

ESP-NÅ Hjemmeautomatisering Esp8266 Raspberry Pi MQTT: 4 trinn
ESP-NÅ Hjemmeautomatisering Esp8266 Raspberry Pi MQTT: 4 trinn

Video: ESP-NÅ Hjemmeautomatisering Esp8266 Raspberry Pi MQTT: 4 trinn

Video: ESP-NÅ Hjemmeautomatisering Esp8266 Raspberry Pi MQTT: 4 trinn
Video: Home Automation Using Raspberry Pi Pico #raspberrypi #raspberrypipico #homeautomation 2024, November
Anonim
ESP-NÅ Hjemmeautomatisering Esp8266 Raspberry Pi MQTT
ESP-NÅ Hjemmeautomatisering Esp8266 Raspberry Pi MQTT

I denne instruksjonsboken viser jeg deg hvordan jeg brukte ESP-NOW i min hjemmeautomatisering. I skjematikken kan du se kommunikasjonsflytene

Jeg viser deg:

  • hvordan avsenderen fungerer
  • hvordan mottakeren fungerer
  • hvordan seriell kommunikasjon med en Raspberry Pi fungerer

Jeg viser ikke hvordan MQTT og hjemmeautomatiseringen min fungerer, du kan finne andre gode instruksjoner for det.

Studiepoeng: Denne instruksen ble inspirert av:

Video #172 av Andreas Spiess

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

Trinn 1: Sikkerhetskopiering via WiFi og MQTT

Sikkerhetskopiering via WiFi og MQTT
Sikkerhetskopiering via WiFi og MQTT

Jeg fant ut at ESP-NÅ er ekstremt rask og ganske pålitelig, men noen ganger mislykkes. I programmet mitt la jeg til en sikkerhetskopi via vanlig WiFi og MQTT-tilkobling.

Trinn 2: Fjernkontrollen/avsenderen

Fjernkontrollen/avsenderen
Fjernkontrollen/avsenderen
Fjernkontrollen/avsenderen
Fjernkontrollen/avsenderen
Fjernkontrollen/avsenderen
Fjernkontrollen/avsenderen
Fjernkontrollen/avsenderen
Fjernkontrollen/avsenderen

I det første opplegget ser du hvordan avsenderens program fungerer:

  1. Esp8266 starter ved oppstart eller fra tilbakestilling
  2. ESP-NOW initialiseres
  3. Modulen sender ESP-NÅ i en definert tid
  4. Modulen sjekker om ESP-NOW-meldingen ble mottatt av mottakeren i en tilbakeringingsfunksjon.

    1. Hvis ESP-NOW-meldingen ble mottatt, går modulen i dyp søvn med lav effekt
    2. Hvis ESP-NOW-meldingen ikke ble mottatt, starter modulen en WiFi-tilkobling og en MQTT-tilkobling som en sikkerhetskopiforbindelse.

Programmet for avsenderen er i min Github (Master_sender.ino). Programmene sender både emnet og meldingen for MQTT-hjemmeautomatisering i én kombinert ESP-NOW-melding, kombinert med et & -tegn for enkel splitting på mottakeren.

Jeg lagde to forskjellige fjernkontroller/avsendere:

Avsender 1: esp8266 er i dyp søvn og aktiveres av en tilbakestilling. Lysdioden i knappen lyser og dempes når modulen er ferdig. Hvis spenningen til batteriet er for lav, blinker lysdioden. Hvis ESP-NOW mislyktes, blinker lysdioden før du bytter til WiFi/MQTT-tilkoblinger. Esp8266 drives av et LiPo -batteri med en HT7333 spenningsregulator til 3,3V

Avsender 2: esp8266 slås av og slås på ved å trykke på knappen. Normalt gjøres ESP-NOW-tilkoblingen etter at knappen "klikker". Esp8266 får strøm direkte fra et LiPo -batteri. Jeg vet ikke om esp8266 blir skadet av høyspenningen til et fulladet batteri (opptil 4,2 V) når den er slått på bare noen få 100 ms. Det er høyere enn spesifikasjonene (3.0 - 3.6V).

Merk: Hvis batteristrømmen er lav, mislykkes ESP-NOW.

Trinn 3: Mottakeren - maskinvare (esp8266 og Raspberry Pi)

Mottakeren - maskinvare (esp8266 og Raspberry Pi)
Mottakeren - maskinvare (esp8266 og Raspberry Pi)
Mottakeren - maskinvare (esp8266 og Raspberry Pi)
Mottakeren - maskinvare (esp8266 og Raspberry Pi)
Mottakeren - maskinvare (esp8266 og Raspberry Pi)
Mottakeren - maskinvare (esp8266 og Raspberry Pi)

Beskrivelsen av mottakeren er delt i to deler:

  1. Maskinvare
  2. Programvare

Maskinvaren

Mottakende esp-01 er koblet til min Raspberry Pi Zero som driver hjemmeautomatiseringssystemet mitt (Openhab2) og Node Red.

I skjematikken vises de enkle tilkoblingene:

  • RX av esp-01 til TX av RasPi
  • TX av esp-01 til RX av RasPi
  • GND til GND
  • Esp-01 VCC drives av 3.3V-pinnen på Raspi
  • På esp-01 er både RST og CH_PD trukket høyt.

Jeg laget en grensesnittkontakt for å montere den enkelt

På ett bilde kan du se ledningstilkoblingene mine til Raspberry Pi 3 (som har samme pinout, men jeg brukte en annen 3.3V pin for å koble til CH_PD).

Esp-01 ble programmert som vist i min andre Instructable (se trinn 3).

Trinn 4: Mottakeren - Programvare (Serial, Node Red, MQTT)

Mottakeren - Programvare (Serial, Node Red, MQTT)
Mottakeren - Programvare (Serial, Node Red, MQTT)
Mottakeren - Programvare (Serial, Node Red, MQTT)
Mottakeren - Programvare (Serial, Node Red, MQTT)
Mottakeren - Programvare (Serial, Node Red, MQTT)
Mottakeren - Programvare (Serial, Node Red, MQTT)

Program på esp8266

Programmet for esp-01-mottakeren er i min Github (Master_sender.ino). Programmet er veldig enkelt, det skriver bare ut den mottatte ESP-NOW-meldingen på serieporten til Raspberry Pi.

Seriell port

På Raspberry Pi må du aktivere seriell port (på raspbian, utføre 'sudo raspi-config') for normal seriell kommunikasjon.

Navnet på den serielle porten er:

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

Du kan kontrollere den serielle porten ved å kjøre 'dmesg | grep tty 'eller' ls /dev '

Node rød

I Node Red, velg den serielle inngangsnoden og konfigurer den serielle porten (se vedlagte bilder). Legg merke til baudhastigheten til den serielle tilkoblingen, denne må stemme overens med baudhastigheten som er programmert i esp8266.

Utgangen til den serielle noden transformeres av en funksjonsnode som deler meldingen ved '&' - tegnet og angir msg.topic og msg.payload. Utgangen fra funksjonen ledes inn til mqtt -utgangsnoden som sender meldingen til MQTT -serveren. Vær oppmerksom på at emnefeltet i mqtt -noden er tomt, fordi emnet er angitt i meldingen.

Anbefalt: