4.0 KiB
Temperatuuri avaldamine - Wio Terminal
Selles õppetunni osas avaldate Wio Terminali tuvastatud temperatuuri väärtused MQTT kaudu, et neid saaks hiljem kasutada GDD arvutamiseks.
Temperatuuri avaldamine
Kui temperatuur on loetud, saab selle MQTT kaudu avaldada mingile 'serveri' koodile, mis loeb väärtused ja salvestab need, et neid saaks GDD arvutamiseks kasutada. Mikrokontrollerid ei loe aega internetist ega jälgi aega reaalaja kellaga automaatselt, seade tuleb selleks programmeerida, eeldades, et sellel on vajalik riistvara.
Selle õppetunni lihtsustamiseks ei saadeta sensorite andmetega aega, selle asemel saab serveri kood selle hiljem sõnumite vastuvõtmisel lisada.
Ülesanne
Programmeerige seade temperatuuriandmete avaldamiseks.
-
Avage
temperature-sensorWio Terminali projekt. -
Korrake 4. õppetunnis tehtud samme, et ühenduda MQTT-ga ja saata telemeetriat. Kasutate sama avalikku Mosquitto brokerit.
Sammud selleks on:
- Lisage
.inifaili Seeed WiFi ja MQTT teegid. - Lisage konfiguratsioonifail ja kood WiFi-ga ühendamiseks.
- Lisage kood MQTT brokeriga ühendamiseks.
- Lisage kood telemeetria avaldamiseks.
⚠️ Vaadake vajadusel juhiseid MQTT-ga ühendamiseks ja juhiseid telemeetria saatmiseks 4. õppetunnist.
- Lisage
-
Veenduge, et
CLIENT_NAMEkonfiguratsioonifailisconfig.hkajastaks seda projekti:const string CLIENT_NAME = ID + "temperature_sensor_client"; -
Telemeetria jaoks, valguse väärtuse saatmise asemel, saatke DHT sensori poolt loetud temperatuuri väärtus JSON dokumendi omaduses nimega
temperature, muutesloopfunktsiooni failismain.cpp:float temp_hum_val[2] = {0}; dht.readTempAndHumidity(temp_hum_val); DynamicJsonDocument doc(1024); doc["temperature"] = temp_hum_val[1]; -
Temperatuuri väärtust ei ole vaja väga tihti lugeda - see ei muutu lühikese aja jooksul palju, seega seadke
loopfunktsioonidelayväärtuseks 10 minutit:delay(10 * 60 * 1000);💁
delayfunktsioon võtab aja millisekundites, seega lihtsustamiseks edastatakse väärtus arvutuse tulemusena. 1,000ms sekundis, 60s minutis, seega 10 x (60s minutis) x (1000ms sekundis) annab 10-minutilise viivituse. -
Laadige see oma Wio Terminali ja kasutage seeria monitori, et näha, kuidas temperatuur saadetakse MQTT brokerile.
--- Available filters and text transformations: colorize, debug, default, direct, hexlify, log2file, nocontrol, printable, send_on_enter, time --- More details at http://bit.ly/pio-monitor-filters --- Miniterm on /dev/cu.usbmodem1201 9600,8,N,1 --- --- Quit: Ctrl+C | Menu: Ctrl+T | Help: Ctrl+T followed by Ctrl+H --- Connecting to WiFi.. Connected! Attempting MQTT connection...connected Sending telemetry {"temperature":25} Sending telemetry {"temperature":25}
💁 Selle koodi leiate kaustast code-publish-temperature/wio-terminal.
😀 Olete edukalt avaldanud temperatuuri telemeetria oma seadmest.
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.