4.2 KiB
Publikovanie teploty - Wio Terminal
V tejto časti lekcie budete publikovať hodnoty teploty zistené pomocou Wio Terminal cez MQTT, aby mohli byť neskôr použité na výpočet GDD.
Publikovanie teploty
Keď je teplota odčítaná, môže byť publikovaná cez MQTT na nejaký 'serverový' kód, ktorý tieto hodnoty prečíta a uloží ich, aby mohli byť použité na výpočet GDD. Mikrokontroléry neodčítavajú čas z internetu a nesledujú čas pomocou reálneho časového hodín automaticky, zariadenie musí byť naprogramované na túto úlohu, za predpokladu, že má potrebný hardvér.
Aby sme veci v tejto lekcii zjednodušili, čas nebude posielaný spolu s údajmi zo senzora, namiesto toho ho môže pridať serverový kód neskôr, keď prijme správy.
Úloha
Naprogramujte zariadenie na publikovanie údajov o teplote.
-
Otvorte projekt
temperature-sensor
pre Wio Terminal. -
Opakujte kroky, ktoré ste vykonali v lekcii 4 na pripojenie k MQTT a odosielanie telemetrie. Budete používať rovnaký verejný Mosquitto broker.
Kroky sú nasledovné:
- Pridajte knižnice Seeed WiFi a MQTT do súboru
.ini
- Pridajte konfiguračný súbor a kód na pripojenie k WiFi
- Pridajte kód na pripojenie k MQTT brokeru
- Pridajte kód na publikovanie telemetrie
⚠️ Pozrite si pokyny na pripojenie k MQTT a pokyny na odosielanie telemetrie z lekcie 4, ak je to potrebné.
- Pridajte knižnice Seeed WiFi a MQTT do súboru
-
Uistite sa, že
CLIENT_NAME
v hlavičkovom súboreconfig.h
odráža tento projekt:const string CLIENT_NAME = ID + "temperature_sensor_client";
-
Pre telemetriu, namiesto odosielania hodnoty svetla, odošlite hodnotu teploty odčítanú zo senzora DHT ako vlastnosť v JSON dokumente nazvanú
temperature
zmenou funkcieloop
vmain.cpp
:float temp_hum_val[2] = {0}; dht.readTempAndHumidity(temp_hum_val); DynamicJsonDocument doc(1024); doc["temperature"] = temp_hum_val[1];
-
Hodnota teploty nemusí byť odčítaná veľmi často - nebude sa meniť výrazne v krátkom čase, preto nastavte
delay
vo funkciiloop
na 10 minút:delay(10 * 60 * 1000);
💁 Funkcia
delay
berie čas v milisekundách, takže aby bolo jednoduchšie čítať hodnotu, je odovzdaná ako výsledok výpočtu. 1 000 ms v sekunde, 60 s v minúte, takže 10 x (60 s v minúte) x (1000 ms v sekunde) dáva 10-minútové oneskorenie. -
Nahrajte toto na váš Wio Terminal a použite sériový monitor na sledovanie odosielania teploty na MQTT broker.
--- 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}
💁 Tento kód nájdete v priečinku code-publish-temperature/wio-terminal.
😀 Úspešne ste publikovali teplotu ako telemetriu zo svojho zariadenia.
Upozornenie:
Tento dokument bol preložený pomocou služby AI prekladu Co-op Translator. Hoci sa snažíme o presnosť, prosím, berte na vedomie, že automatizované preklady môžu obsahovať chyby alebo nepresnosti. Pôvodný dokument v jeho pôvodnom jazyku by mal byť považovaný za autoritatívny zdroj. Pre kritické informácie sa odporúča profesionálny ľudský preklad. Nie sme zodpovední za žiadne nedorozumenia alebo nesprávne interpretácie vyplývajúce z použitia tohto prekladu.