3.5 KiB
Hallitse yövaloa Internetin kautta - Virtuaalinen IoT-laitteisto ja Raspberry Pi
Tässä oppitunnin osassa tilaat komentoja, jotka lähetetään MQTT-välityspalvelimelta Raspberry Pi -laitteeseesi tai virtuaaliseen IoT-laitteeseesi.
Tilaa komennot
Seuraava vaihe on tilata MQTT-välityspalvelimelta lähetetyt komennot ja vastata niihin.
Tehtävä
Tilaa komennot.
-
Avaa yövaloprojekti VS Codessa.
-
Jos käytät virtuaalista IoT-laitetta, varmista, että terminaali käyttää virtuaaliympäristöä. Jos käytät Raspberry Pi -laitetta, et käytä virtuaaliympäristöä.
-
Lisää seuraava koodi
client_telemetry_topic
-määrittelyjen jälkeen:server_command_topic = id + '/commands'
server_command_topic
on MQTT-aihe, johon laite tilaa vastaanottaakseen LED-komentoja. -
Lisää seuraava koodi pääsilmukan yläpuolelle,
mqtt_client.loop_start()
-rivin jälkeen: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_command
Tämä koodi määrittelee funktion
handle_command
, joka lukee viestin JSON-dokumenttina ja etsiiled_on
-ominaisuuden arvon. Jos arvo onTrue
, LED sytytetään, muuten se sammutetaan.MQTT-asiakas tilaa aiheen, johon palvelin lähettää viestejä, ja asettaa
handle_command
-funktion kutsuttavaksi, kun viesti vastaanotetaan.💁
on_message
-käsittelijä kutsutaan kaikille tilatuille aiheille. Jos myöhemmin kirjoitat koodia, joka kuuntelee useita aiheita, voit saada aiheen, johon viesti lähetettiin,message
-objektista, joka välitetään käsittelijäfunktiolle. -
Suorita koodi samalla tavalla kuin suoritat koodin tehtävän aiemmassa osassa. Jos käytät virtuaalista IoT-laitetta, varmista, että CounterFit-sovellus on käynnissä ja että valosensori ja LED on luotu oikeille pinneille.
-
Säädä fyysisen tai virtuaalisen laitteen havaitsemia valotasoja. Vastaanotetut viestit ja lähetetyt komennot kirjoitetaan terminaaliin. LED syttyy ja sammuu valotason mukaan.
💁 Löydät tämän koodin code-commands/virtual-device-kansiosta tai code-commands/pi-kansiosta.
😀 Olet onnistuneesti ohjelmoinut laitteesi vastaamaan MQTT-välityspalvelimen komentoihin.
Vastuuvapauslauseke:
Tämä asiakirja on käännetty käyttämällä tekoälypohjaista käännöspalvelua Co-op Translator. Vaikka pyrimme tarkkuuteen, huomioithan, että automaattiset käännökset voivat sisältää virheitä tai epätarkkuuksia. Alkuperäistä asiakirjaa sen alkuperäisellä kielellä tulisi pitää ensisijaisena lähteenä. Kriittisen tiedon osalta suositellaan ammattimaista ihmiskäännöstä. Emme ole vastuussa väärinkäsityksistä tai virhetulkinnoista, jotka johtuvat tämän käännöksen käytöstä.