INHOUDSOPGAWE:
- Stap 1: Wat is MQTT en hoe werk dit
- Stap 2: Framboos Pi
- Stap 3: Hoe om 'n statiese IP -adres op te stel
- Stap 4: NodeMCU
- Stap 5: Python Script
- Stap 6: Verbindings en stroombaan diagram
- Stap 7: Resultaat
Video: Framboos Pi Praat met ESP8266 met behulp van MQTT: 8 stappe
2024 Outeur: John Day | [email protected]. Laas verander: 2024-01-30 07:27
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
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
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
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
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
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
Maak seker dat u skrip werk, anders kan die LED nie met knoppies beheer word nie.
Aanbeveel:
Meting van temperatuur met behulp van AD7416ARZ en Framboos Pi: 4 stappe
Meting van temperatuur met behulp van AD7416ARZ en Framboos Pi: AD7416ARZ is 'n 10-bis temperatuur sensor met vier enkanaals analoog na digitale omsetters en 'n ingeboude temperatuursensor daarin. Toegang tot die temperatuursensor op die dele is via multiplexerkanale. Hierdie hoë akkuraatheidstemperatuur
Meting van ligintensiteit met behulp van BH1715 en Framboos Pi: 5 stappe
Meting van ligintensiteit deur gebruik te maak van BH1715 en Raspberry Pi: Gister was ons besig met LCD -skerms, en terwyl ons daaroor werk, besef ons die belangrikheid van ligintensiteitsberekening. Ligintensiteit is nie net belangrik in die fisiese domein van hierdie wêreld nie, maar dit speel ook 'n welbekende rol in die biologie
Meting van versnelling met behulp van ADXL345 en Framboos Pi: 4 stappe
Meting van versnelling met behulp van ADXL345 en Framboos Pi: Die ADXL345 is 'n klein, dun, ultra-lae, drie-as versnellingsmeter met 'n hoë resolusie (13-bis) meting tot ± 16 g. Digitale uitsetdata word geformateer as 'n 16-bis tweeling-aanvulling en is toeganklik via die I2 C digitale koppelvlak. Dit meet die
Praat Arduino - 'N MP3 speel met Arduino sonder enige module - Speel MP3 -lêer vanaf Arduino met behulp van PCM: 6 stappe
Praat Arduino | 'N MP3 speel met Arduino sonder enige module | Mp3 -lêer speel vanaf Arduino met behulp van PCM: In hierdie instruksies leer ons hoe om 'n mp3 -lêer met arduino te speel sonder om 'n klankmodule te gebruik
Praat met kiesers en kunsmatige intelligensie -chat met behulp van Cleverbot: 14 stappe (met foto's)
Praat met Pick en kunsmatige intelligensie -chat met behulp van Cleverbot: hier probeer ek nie net stemopdrag nie, maar ook kunsmatige intelligensie -chat met die rekenaar met behulp van Cleverbot. Eintlik het die idee ontstaan toe kinders kinders in die kleurkassie kombineer as hulle van een kleur na die naaste kleur neem. Maar uiteindelik implementeer