3.3 KiB
Juhi oma öölampi Interneti kaudu - Virtuaalne IoT riistvara ja Raspberry Pi
Selles õppetunni osas tellid käske, mis saadetakse MQTT brokerilt sinu Raspberry Pi-le või virtuaalsele IoT seadmele.
Käskude tellimine
Järgmine samm on tellida käske, mis saadetakse MQTT brokerilt, ja neile vastata.
Ülesanne
Telli käsud.
-
Ava öölambi projekt VS Code'is.
-
Kui kasutad virtuaalset IoT seadet, veendu, et terminalis töötab virtuaalne keskkond. Kui kasutad Raspberry Pi-d, siis virtuaalset keskkonda ei kasutata.
-
Lisa järgmine kood pärast
client_telemetry_topicmääratlusi:server_command_topic = id + '/commands'server_command_topicon MQTT teema, millele seade tellib LED käskude vastuvõtmiseks. -
Lisa järgmine kood vahetult enne põhitsüklit, pärast
mqtt_client.loop_start()rida:def handle_command(client, userdata, message): payload = json.loads(message.payload.decode()) print("Message received:", payload) if payload['led_on']: led.on() else: led.off() mqtt_client.subscribe(server_command_topic) mqtt_client.on_message = handle_commandSee kood määratleb funktsiooni
handle_command, mis loeb sõnumi JSON dokumendina ja otsibled_onomaduse väärtust. Kui see on määratudTrue, lülitatakse LED sisse, vastasel juhul lülitatakse see välja.MQTT klient tellib teema, millele server saadab sõnumeid, ja määrab funktsiooni
handle_command, mida kutsutakse, kui sõnum vastu võetakse.💁
on_messagekäsitleja kutsutakse kõigi tellitud teemade puhul. Kui hiljem kirjutad koodi, mis kuulab mitut teemat, saad sõnumi objekti kaudu, mis edastatakse käsitleja funktsioonile, teada, millisele teemale sõnum saadeti. -
Käivita kood samamoodi nagu eelmise ülesande osa kood. Kui kasutad virtuaalset IoT seadet, veendu, et CounterFit rakendus töötab ja valgusandur ning LED on loodud õigetele pinidele.
-
Kohanda füüsilise või virtuaalse seadme tuvastatud valguse taset. Terminalis kuvatakse vastuvõetud sõnumid ja saadetud käsud. LED lülitatakse sisse ja välja sõltuvalt valguse tasemest.
💁 Selle koodi leiad code-commands/virtual-device kaustast või code-commands/pi kaustast.
😀 Oled edukalt kodeerinud oma seadme reageerima MQTT brokerilt saadetud käskudele.
Lahtiütlus:
See dokument on tõlgitud AI tõlketeenuse Co-op Translator abil. Kuigi püüame tagada täpsust, palume arvestada, et automaatsed tõlked võivad sisaldada vigu või ebatäpsusi. Algne dokument selle algses keeles tuleks pidada autoriteetseks allikaks. Olulise teabe puhul soovitame kasutada professionaalset inimtõlget. Me ei vastuta selle tõlke kasutamisest tulenevate arusaamatuste või valesti tõlgenduste eest.