3.7 KiB
Publicera temperatur - Virtuell IoT-hårdvara och Raspberry Pi
I denna del av lektionen kommer du att publicera temperaturvärden som upptäcks av Raspberry Pi eller Virtuell IoT-enhet via MQTT så att de senare kan användas för att beräkna GDD.
Publicera temperaturen
När temperaturen har lästs kan den publiceras via MQTT till någon "server"-kod som kommer att läsa värdena och lagra dem redo att användas för en GDD-beräkning.
Uppgift - publicera temperaturen
Programmera enheten att publicera temperaturdata.
-
Öppna projektet för appen
temperature-sensor
om det inte redan är öppet. -
Upprepa stegen du gjorde i lektion 4 för att ansluta till MQTT och skicka telemetri. Du kommer att använda samma offentliga Mosquitto-broker.
Stegen för detta är:
- Lägg till MQTT pip-paketet
- Lägg till koden för att ansluta till MQTT-brokern
- Lägg till koden för att publicera telemetri
⚠️ Se instruktionerna för att ansluta till MQTT och instruktionerna för att skicka telemetri från lektion 4 om det behövs.
-
Se till att
client_name
återspeglar namnet på detta projekt:client_name = id + 'temperature_sensor_client'
-
För telemetrin, istället för att skicka ett ljusvärde, skicka temperaturvärdet som lästs från DHT-sensorn i en egenskap i JSON-dokumentet kallad
temperature
:_, temp = sensor.read() telemetry = json.dumps({'temperature' : temp})
-
Temperaturvärdet behöver inte läsas särskilt ofta - det kommer inte att ändras mycket på kort tid, så ställ in
time.sleep
till 10 minuter:time.sleep(10 * 60);
💁 Funktionen
sleep
tar tiden i sekunder, så för att göra det lättare att läsa skickas värdet som resultatet av en beräkning. 60 sekunder på en minut, så 10 x (60 sekunder på en minut) ger en fördröjning på 10 minuter. -
Kör koden på samma sätt som du körde koden från den tidigare delen av uppgiften. Om du använder en virtuell IoT-enhet, se till att CounterFit-appen körs och att fukt- och temperatursensorerna har skapats på rätt pinnar.
pi@raspberrypi:~/temperature-sensor $ python3 app.py MQTT connected! Sending telemetry {"temperature": 25} Sending telemetry {"temperature": 25}
💁 Du kan hitta denna kod i mappen code-publish-temperature/virtual-device eller mappen code-publish-temperature/pi.
😀 Du har framgångsrikt publicerat temperaturen som telemetri från din enhet.
Ansvarsfriskrivning:
Detta dokument har översatts med hjälp av AI-översättningstjänsten Co-op Translator. Även om vi strävar efter noggrannhet, bör du vara medveten om att automatiska översättningar kan innehålla fel eller inexaktheter. Det ursprungliga dokumentet på dess originalspråk bör betraktas som den auktoritativa källan. För kritisk information rekommenderas professionell mänsklig översättning. Vi ansvarar inte för eventuella missförstånd eller feltolkningar som uppstår vid användning av denna översättning.