INHOUDSOPGAWE:
2025 Outeur: John Day | [email protected]. Laas verander: 2025-01-13 06:56
Ek hou daarvan om troeteldierkatte aan te hou. Na 'n dag se intense werk kan die kat my ontspan as ek by die huis kom. Na harde opleiding het hierdie kat 'n goeie gewoonte om gereeld in die "restaurant" te eet. Maar onlangs moet ek 'n paar dae reis, en niemand sorg vir die kat tuis nie, so ek wil MQTT gebruik vir afstandbeheer. As die kat eet, kan dit my herinner en my verseker wees
MQTT
MQTT is 'n kliënt-bediener-gebaseerde oordragprotokol vir publiseer / inteken van boodskappe. Die MQTT -protokol is lig, eenvoudig, oop en maklik om te implementeer, en hierdie funksies maak dit wyd toepaslik.
Publiseer en teken in
Die MQTT -protokol definieer twee tipes entiteite in die netwerk: 'n boodskapmakelaar en sommige kliënte. Die agent is 'n bediener wat alle boodskappe van die kliënt ontvang en dan hierdie boodskappe na die betrokke teikenkliënt stuur. Die kliënt is enigiets wat met die agent kan kommunikeer om boodskappe te stuur en te ontvang. Die kliënt kan 'n IoT-sensor op die perseel wees of 'n toepassing wat IoT-data in 'n datasentrum verwerk.
Stap 1: Voorrade
Hardeware:
MakePython ESP32
MakePython ESP32 is 'n ESP32 -bord met 'n geïntegreerde SSD1306 OLED -skerm.
servomotor
HC-SR04
Sagteware:
uPyCraft IDE
Klik om uPyCraft IDE vir Windows af te laai
Stap 2: Bedrading
MakePython ESP32 - Servo
- 3V3 - VCC (rooi lyn)
- GND - GND (bruin lyn)
- IO14 - Sein (oranje lyn)
MakePython ESP32-HC-SR04
- 3V3 - VCC
- IO13 - Trig
- IO12 - Echo
- GND - GND
Stap 3: Kodeer
Laai die kode hier af en voer dit uit.
Maak die volgende veranderinge aan die main.py -lêer en stoor en voer dit uit.
Verander SSID en PSW om WiFi aan te sluit
SSID = 'Makerfabs' #REPLACE_WITH_YOUR_SSID
PSW = '20160704' #REPLACE_WITH_YOUR_PASSWORD
Verander die IP van u MQTT -makelaar en bepaal die onderwerpe vir publikasie en intekening
mqtt_server = '39.106.151.85 '#REPLACE_WITH_YOUR_MQTT_BROKER_IP
topic_sub = b'feed 'topic_pub = b'state'
Koppel aan en teken in op onderwerpe
def connect_and_subscribe ():
globale client_id, mqtt_server, topic_sub client = MQTTClient (client_id, mqtt_server) client.set_callback (sub_cb) client.connect () client.subscribe (topic_sub) print ('Gekoppel aan %s MQTT makelaar, ingeteken op %s onderwerp' %(mqtt_server), topic_sub)) terugkeerkliënt
boodskappe te publiseer
kliënt = connect_and_subscribe ()
kliënt.publiseer (topic_pub, msg)
Stap 4: MQTT -instellings
U kan die MQTT -kliënt hier aflaai en installeer, sodat u afstandbeheer op u selfoon of rekenaar kan uitvoer.
- Maak oop en klik om MQTT -kliënt te skep
- Noem invoervoer
- Kies protokol mqtt / tcp
- Gasheerinvoer: 39.106.151.85:1883
- Klik op stoor
Stap 5: Publiseer en teken in
Na die aansluiting, onderwerp om insette te publiseer: voer. Vragladinginvoer: aan, en klik dan op publiseer
Die servomotor draai en begin voed.
Onderwerp om die ingangstoestand in te teken, en klik dan op subscribe
As die kat naby die voerder is om te eet, ontvang die intekeningonderwerp: kat eet …, die kat ontvang nadat hy vertrek het: Die kat is weg.
Selfs as u die kat tuis laat, hoef u nie bekommerd te wees dat hy honger word nie.