3.6 KiB
Publiser temperatur - Virtuell IoT-maskinvare og Raspberry Pi
I denne delen av leksjonen skal du publisere temperaturverdiene som oppdages av Raspberry Pi eller Virtuell IoT-enhet over MQTT, slik at de senere kan brukes til å beregne GDD.
Publiser temperaturen
Når temperaturen er lest, kan den publiseres over MQTT til noe 'server'-kode som vil lese verdiene og lagre dem klare til bruk i en GDD-beregning.
Oppgave - publiser temperaturen
Programmer enheten til å publisere temperaturdata.
-
Åpne prosjektet for appen
temperature-sensor
hvis det ikke allerede er åpent. -
Gjenta trinnene du gjorde i leksjon 4 for å koble til MQTT og sende telemetri. Du vil bruke den samme offentlige Mosquitto-brokeren.
Trinnene for dette er:
- Legg til MQTT pip-pakken
- Legg til koden for å koble til MQTT-brokeren
- Legg til koden for å publisere telemetri
⚠️ Se instruksjonene for å koble til MQTT og instruksjonene for å sende telemetri fra leksjon 4 hvis nødvendig.
-
Sørg for at
client_name
gjenspeiler navnet på dette prosjektet:client_name = id + 'temperature_sensor_client'
-
For telemetrien, i stedet for å sende en lysverdi, send temperaturverdien som er lest fra DHT-sensoren i en egenskap i JSON-dokumentet kalt
temperature
:_, temp = sensor.read() telemetry = json.dumps({'temperature' : temp})
-
Temperaturverdien trenger ikke leses veldig ofte - den vil ikke endre seg mye på kort tid, så sett
time.sleep
til 10 minutter:time.sleep(10 * 60);
💁 Funksjonen
sleep
tar tiden i sekunder, så for å gjøre det lettere å lese, sendes verdien som resultatet av en beregning. 60 sekunder i et minutt, så 10 x (60 sekunder i et minutt) gir en forsinkelse på 10 minutter. -
Kjør koden på samme måte som du kjørte koden fra forrige del av oppgaven. Hvis du bruker en virtuell IoT-enhet, må du sørge for at CounterFit-appen kjører og at fuktighets- og temperatursensorene er opprettet på de riktige pinnene.
pi@raspberrypi:~/temperature-sensor $ python3 app.py MQTT connected! Sending telemetry {"temperature": 25} Sending telemetry {"temperature": 25}
💁 Du finner denne koden i mappen code-publish-temperature/virtual-device eller mappen code-publish-temperature/pi.
😀 Du har nå publisert temperaturen som telemetri fra enheten din.
Ansvarsfraskrivelse:
Dette dokumentet er oversatt ved hjelp av AI-oversettelsestjenesten Co-op Translator. Selv om vi streber etter nøyaktighet, vær oppmerksom på at automatiserte oversettelser kan inneholde feil eller unøyaktigheter. Det originale dokumentet på sitt opprinnelige språk bør anses som den autoritative kilden. For kritisk informasjon anbefales profesjonell menneskelig oversettelse. Vi er ikke ansvarlige for misforståelser eller feiltolkninger som oppstår ved bruk av denne oversettelsen.