INHOUDSOPGAWE:

Framboos Pi Praat met ESP8266 met behulp van MQTT: 8 stappe
Framboos Pi Praat met ESP8266 met behulp van MQTT: 8 stappe

Video: Framboos Pi Praat met ESP8266 met behulp van MQTT: 8 stappe

Video: Framboos Pi Praat met ESP8266 met behulp van MQTT: 8 stappe
Video: Webinar ESP32 and the IoT 2024, Desember
Anonim
Framboos Pi Praat met ESP8266 met behulp van MQTT
Framboos Pi Praat met ESP8266 met behulp van MQTT

In hierdie projek sal ek verduidelik wat die MQTT -protokol is en hoe dit gebruik word om tussen toestelle te kommunikeer, en dan, as 'n praktiese demonstrasie, sal ek demonstreer hoe u 'n kliënt- en makelstelsel opstel, waar 'n ESP8266 -module sowel as RPi praat vir mekaar of stuur 'n boodskap as 'n knoppie gedruk word.

Materiaal benodig

1. Framboos Pi 3

2. NodeMCU

3. LED

4. Knoppie

5. Weerstande (10k, 475 ohm)

Stap 1: Wat is MQTT en hoe werk dit

MQTT

MQTT is 'n masjien-tot-masjien (M2M) data-oordragprotokol. MQTT is geskep met die doel om data van baie toestelle te versamel en dan die data na die IT -infrastruktuur te vervoer. Dit is liggewig en daarom ideaal vir afstandmonitering, veral in M2M -verbindings wat 'n klein kodevoetafdruk vereis of waar netwerkbandwydte beperk is.

Hoe MQTT werk

MQTT is 'n publiseer-/intekenprotokol waarmee toestelle van 'n netwerk kan publiseer aan 'n makelaar. Kliënte maak verbinding met hierdie makelaar, wat dan kommunikasie tussen die twee toestelle bemiddel. Elke toestel kan op spesifieke onderwerpe inteken, of registreer. As 'n ander kliënt 'n boodskap oor 'n ingetekende onderwerp publiseer, stuur die makelaar die boodskap deur na enige kliënt wat ingeteken het.

MQTT is tweerigting, en handhaaf bewustheid van statiese sessies. As 'n rand-van-netwerk-toestel die konneksie verloor, word alle kliënte wat ingeteken het, in kennis gestel met die 'Last Will and Testament'-funksie van die MQTT-bediener, sodat enige gemagtigde kliënt in die stelsel 'n nuwe waarde kan publiseer na die rand van die netwerktoestel, wat tweerigtingverbinding behou.

Die projek is in 3 dele verdeel

Eerstens skep ons 'n MQTT -bediener op RPi en installeer ons 'n paar biblioteke.

Tweedens sal ons biblioteke in Arduino IDE installeer sodat NodeMCU met MQTT werk, die kode oplaai en kyk of die bediener werk of nie.

Uiteindelik skep ons 'n script in Rpi, laai die vereiste kode op in NodeMCU en voer die python -script uit om leds van bediener sowel as van kliënt se kant af te beheer. Hier is die bediener RPi en die kliënt NodeMCU.

Stap 2: Framboos Pi

Framboos Pi
Framboos Pi
Framboos Pi
Framboos Pi
Framboos Pi
Framboos Pi
Framboos Pi
Framboos Pi

1. Om die nuutste MQTT -bediener en kliënt in RPi te installeer, moet u eers die ondertekeningsleutel van die repository -pakket invoer om die nuwe bewaarplek te gebruik.

wget https://repo.mosquitto.org/debian/mosquitto-repo.gpg.keysudo apt-key voeg mosquitto-repo.gpg.key by

2. Stel die bewaarplek beskikbaar vir apt.

cd /etc/apt/sources.list.d/

3. Afhangende van die weergawe van Debian wat u gebruik.

sudo wget https://repo.mosquitto.org/debian/mosquitto-wheezy.listsudo wget

sudo wget

sudo apt-get update

4. Installeer die Mosquitto -bediener met die opdrag.

sudo apt-get install mosquitto

As u foute ondervind met die installering van Mosquitto soos hierdie.

#################################################################

Die volgende pakkette het onvoldoende afhanklikheid: muskiet: hang af: libssl1.0.0 (> = 1.0.1) maar dit kan nie geïnstalleer word nie Hang af: libwebsockets3 (> = 1.2) maar dit is nie installeerbaar nie E: Kan nie probleme regstel nie, u het gebreek pakkette.

#################################################################

Gebruik dan hierdie opdrag om probleme op te los.

sudo apt --fix-gebreekte installasie

5. Nadat u die MQTT -bediener geïnstalleer het, installeer die kliënt met die opdrag

sudo apt-get install mosquitto-kliënte

U kan die dienste met behulp van die opdrag nagaan.

systemctl status muskiet.diens

Soos ons MQTT -bediener en kliënt geïnstalleer is. Nou kan ons dit kontroleer deur in te teken en te publiseer. Om in te teken en te publiseer, kan u opdragte nagaan of die webwerf besoek soos hieronder aangedui.

Muskiet Sub

Mosquitto Pub

Gebruik die onderstaande opdrag om die paho-mqtt-biblioteek te installeer.

sudo pip installeer paho-mqtt

Paho

Stap 3: Hoe om 'n statiese IP -adres op te stel

Hoe om 'n statiese IP -adres op te stel
Hoe om 'n statiese IP -adres op te stel

Gaan na gids cd /etc en maak lêer dhcpcd.conf oop met behulp van enige redakteur. Skryf hierdie vier reëls aan die einde.

koppelvlak eth0 static ip_address = 192.168.1.100 // ip wat u wil gebruik

koppelvlak wlan0

statiese ip_address = 192.168.1.68

statiese routers = 192.168.1.1 // u standaard gateway

statiese domeinnaam_bedieners = 192.168.1.1

Stoor dit daarna en herlaai u pi.

Stap 4: NodeMCU

NodeMCU
NodeMCU
NodeMCU
NodeMCU
NodeMCU
NodeMCU
NodeMCU
NodeMCU

Installeer vereiste biblioteke in Arduino IDE vir NodeMCU

1. Gaan na Skets ==> Sluit biblioteek in ==> Bestuur biblioteke.

2. Soek mqtt en installeer biblioteek deur Adafruit, of u kan enige biblioteek installeer.

3. Dit hang af van die sleephond -biblioteek, so ons benodig ook hierdie biblioteek.

Die program word hierbo gegee, net om te kyk of dit werk of nie. Hier het ek geen script in RPi geskep nie. Ons gebruik net opdragte om in te teken en te publiseer. Ons sal later 'n script skep om dit te beheer.

mosquitto_pub -h raspberrypi -t "/leds/pi" -m "ON"

mosquitto_pub -h raspberrypi -t "/leds/pi" -m "OFF"

mosquitto_pub -h raspberrypi -t "/leds/pi" -m "TOGGLE"

mosquitto_pub -h raspberrypi -t "/leds/esp8266" -m "ON"

mosquitto_pub -h raspberrypi -t "/leds/esp8266" -m "OFF"

mosquitto_pub -h raspberrypi -t "/leds/esp8266" -m "TOGGLE"

-h ==> gasheernaam-t ==> onderwerp

-m ==> boodskap

Nadat u die Mqtt_check -program nagegaan het, laai die volledige program op in NodeMCU

Stap 5: Python Script

Python Script
Python Script
Python Script
Python Script

Soos ek hierbo bespreek het, benodig ons 'n python -script om leds te beheer met behulp van knoppies. So, ons gaan script skep. Die skrif word hierbo gegee.

As u die skrip uitvoer, moet u skrif lyk soos in die prentjie, as die resultaatkode nie nul is nie, is dit 'n fout, kan u die fout op die webwerf van Paho nagaan.

Stap 6: Verbindings en stroombaan diagram

Aansluitings en stroombaan diagram
Aansluitings en stroombaan diagram
Aansluitings en stroombaan diagram
Aansluitings en stroombaan diagram

Koppelvlak van knoppie, LED met NodeMCU

NodeMCU ===> ButtonGnd ===> Gnd

3.3V ===> PIN1

GPIO4 (D2) ===> PIN2

NodeMCU ===> LED

Gnd ===> Katode (-ve)

GPIO5 (D1) ===> Anode (+ve)

Koppelvlak van knoppie, LED met RPi

RPi ===> ButtonGnd ===> PIN1

GPIO 23 ===> PIN2

RPi ===> LED

Gnd ==> Katode (-ve)

GPIO 24 ===> Anode (+ve)

Stap 7: Resultaat

Image
Image
Uitslag
Uitslag

Maak seker dat u skrip werk, anders kan die LED nie met knoppies beheer word nie.

Aanbeveel: