7.6 KiB
Publish temperature - Wio Terminal
ఈ పాఠంలో, మీరు Wio టెర్మినల్ ద్వారా కనుగొన్న ఉష్ణోగ్రత విలువలను MQTT లో ప్రచురించబోతున్నారు, తద్వారా అవి తర్వాత GDD లెక్కించడానికి ఉపయోగించవచ్చు.
ఉష్ణోగ్రత ప్రచురణ
ఉష్ణోగ్రతను చదివిన తర్వాత, అది MQTT ద్వారా కొన్నిఉ 'సర్వర్' కోడ్ కు పంపబడుతుంది, ఇది విలువలను చదవగలదు మరియు GDD లెక్కింపుకు సిద్ధంగా నిల్వ చేస్తుంది. మైక్రోకంట్రోలర్లు ఇంటర్నెట్ నుండి సమయాన్ని చదవరు మరియు రియల్-టైం క్లాక్ తో సమయాన్ని ట్రాక్ చేయరు, డివైస్ దీనికి నిర్దిష్ట హార్డ్వేర్ ఉన్నట్లయితే ప్రోగ్రామ్ చేయబడాలి.
ఈ పాఠాన్ని సులభతరం చేసేందుకు, సెన్సార్ డేటాతో సమయం పంపబడదు, బదులుగా మెసేజ్ లు అందిన తర్వాత సర్వర్ కోడ్ ద్వారా అది జత చేయబడుతుంది.
పని
డివైస్ ను ఉష్ణోగ్రత డేటాను ప్రచురించడానికి ప్రోగ్రామ్ చేయండి.
-
temperature-sensorWio టెర్మినల్ ప్రాజెక్ట్ ని తెరవండి -
MQTT కి కనెక్ట్ అయి టెలిమెట్రీ పంపేందుకు మీకు బందించిన 4వ పాఠంలో చేసిన చర్యలను మళ్ళీ నడపండి, మీరు అదే పబ్లిక్ Mosquitto బ్రోకర్ ను ఉపయోగించబోతున్నారు.
దానికి అవసరమైన దశలు:
- Seeed WiFi మరియు MQTT లైబ్రరీలను
.iniఫైల్ లో చేర్చండి - WiFi కి కనెక్ట్ కావడానికి కాన్ఫిగ్ ఫైల్ ఇంకా కోడును చేర్చండి
- MQTT బ్రోకర్ కి కనెక్ట్ అయ్యే కోడును చేర్చండి
- టెలిమెట్రీ ప్రచురణ కోడును జోడించండి
⚠️ అవసరమైతే 4వ పాఠంలోని MQTT కు కనెక్ట్ అయ్యే సూచనలు మరియు టెలిమెట్రీ పంపే సూచనలు చూడండి.
- Seeed WiFi మరియు MQTT లైబ్రరీలను
-
config.hహెడ్డర్ ఫైల్ లోCLIENT_NAMEఈ ప్రాజెక్టుకుగానీ సరిగా ప్రతిబింబించబడిందని నిర్ధారించుకోండి:const string CLIENT_NAME = ID + "temperature_sensor_client"; -
టెలిమెట్రీ కోసం, లైట్ విలువ పంపించే బదులు, DHT సెన్సార్ నుండి చదివిన ఉష్ణోగ్రత విలువను JSON డాక్యుమెంట్ లో
temperatureఅనే ప్రాపర్టీ గా పంపండి. దీని కోసంmain.cppలోloopఫంక్షన్ మార్చండి:float temp_hum_val[2] = {0}; dht.readTempAndHumidity(temp_hum_val); DynamicJsonDocument doc(1024); doc["temperature"] = temp_hum_val[1]; -
ఉష్ణోగ్రత విలువ చాలాసార్లు చదవాల్సిన అవసరం లేదు - అది తక్కువ సమయంకి ఎక్కువగా మారదు, కనుక
loopఫంక్షన్ లోdelayవిలువను 10 నిముషాలకు సెట్ చేయండి:delay(10 * 60 * 1000);💁
delayఫంక్షన్ మిల్లీసెకన్ల లో సమయం తీసుకుంటుంది, కాబట్టి అర్థం చేసుకోవడానికి విలువ విషయంలో గణన ఫలితంగా ఇస్తారు. ఒక సెకను లో 1,000 మిల్లీసెకన్లు, ఒక నిమిషం కి 60 సెకన్లు, కాబట్టి 10 x (60) x (1000) = 10 నిమిషాల డ Delay. -
దీన్ని మీ Wio టెర్మినల్ కు అప్లోడ్ చేసి, సిరియల్ మానిటర్ ఉపయోగించి MQTT బ్రోకర్ కి ఉష్ణోగ్రత పంపబడుతున్నదాని ని చూడండి.
--- 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}
💁 ఈ కోడ్ ను code-publish-temperature/wio-terminal ఫోల్డర్ లో కూడా చూడొచ్చు.
😀 మీరు విజయవంతంగా మీ డివైస్ నుండి టెలిమెట్రీగా ఉష్ణోగ్రత ప్రచురించగలిగారు.
అప్రమత్తత ప్రకటన:
ఈ దస్త్రం AI అనువాద సేవ Co-op Translator ఉపయోగించి అనువాదం చేయబడింది. మేము ఖచ్చితత్వం కోసం యత్నిస్తుండగా, స్వయంచాలక అనువాదాలలో తప్పులు లేదా అసమగ్రతలు ఉండవచ్చు అని कृపయా గమనించండి. అసలైన దస్త్రం దాని స్థానిక భాషలోనే ప్రామాణిక మూలంగా పరిగణించబడాలి. ముఖ్యమైన సమాచారానికి, నిపుణుల చేత ఆధారభూయమైన అనువాదం చేయించడం సూచించబడుతుంది. ఈ అనువాదం ఉపయోగంతో కలిగే ఏవైనా అపార్థాలు లేదా తప్పుదాపుల కోసం మేము బాధ్యత వహించము.