8.1 KiB
താപനില പ്രസിദ്ധീകരിക്കുക - Wio ടെർമിനൽ
പാഠത്തിന്റെ ഈ ഭാഗത്തിൽ, Wio ടെർമിനൽ കണ്ടെത്തിയ താപനില മൂല്യങ്ങൾ MQTT വഴി പ്രസിദ്ധീകരിക്കുകയാണു, അതിലൂടെ പിന്നീട് GDD കണക്ക് ചെയ്യാൻ ഉപയോഗിക്കാം.
താപനില പ്രസിദ്ധീകരിക്കുക
താപനില വായിച്ചതിനു പിന്നാലെ, അത് MQTT വഴി ചില 'സെർവർ' ക്വഡിലേക്ക് പ്രസിദ്ധീകരിക്കാം, അവിടെ മൂല്യങ്ങൾ വായിച്ച് GDD കണക്കിന് ഉപയോഗിക്കാൻ സജ്ജമാക്കും. മൈക്രോ കണ്ട്രോളറുകൾ ഇൻറർനെറ്റിൽ നിന്നും സമയം കൊള്ളാതെ, റിയൽ-ടൈം ക്ലോക്ക് ഉപയോഗിച്ച് സമയമ ട്രാക്ക് ചെയ്യുന്നു, ഡിവൈസ് ഇത് ചെയ്യാൻ പ്രോഗ്രാം ചെയ്യേണ്ടതുണ്ട്, ആവശ്യമായ ഹാർഡ്വെയർ ഉണ്ടെന്ന് കരുതിയാണ്.
ഈ പാഠത്തിനായി കാര്യങ്ങൾ ലളിതമാക്കാൻ, സമയം സെൻസർ ഡേറ്റയുമായി അയക്കില്ല, പകരം സന്ദേശങ്ങൾ സെർവർ ക്കോഡ് സ്വീകരിക്കുമ്പോൾ പിന്നീട് അത് ചേർക്കാം.
ടാസ്ക്
ഡിവൈസ് താപനില ഡാറ്റ പ്രസിദ്ധീകരിക്കാൻ പ്രോഗ്രാം ചെയ്യുക.
-
temperature-sensorWio ടെർമിനൽ പ്രോജക്ട് തുറക്കുക -
MQTT-ക്ക് കണക്ടു ചെയ്യാനും ടെലിമെട്രി അയയ്ക്കാനും പാഠം 4-ൽ ചെയ്ത ഘട്ടങ്ങൾ ആവർത്തിക്കുക, നിങ്ങൾക്ക് സമാനമായ പബ്ലിക് Mosquitto ബ്രോക്കർ ഉപയോഗിക്കാം.
ഇതിന്റെ ഘട്ടങ്ങൾ:
.iniഫയലിൽ Seeed WiFi and MQTT ലൈബ്രറികൾ ചേർക്കുക- WiFi-യോട് കണക്ട് ചെയ്യാനുള്ള കോൺഫിഗ് ഫയൽയും കോഡും ചേർക്കുക
- MQTT ബ്രോക്കറുമായി കണക്ട് ചെയ്യാനുള്ള കോഡ് ചേർക്കുക
- ടെലിമെട്രി പ്രസിദ്ധീകരിക്കുന്ന കോഡ് ചേർക്കുക
⚠️ ആവശ്യമായെങ്കിൽ MQTT-യോട് കണക്ട് ചെയ്യാനുള്ള നിർദ്ദേശങ്ങൾ and ടെലിമെട്രി അയയ്ക്കാനുള്ള നിർദ്ദേശങ്ങൾ പാഠം 4-ൽ നിന്ന് കാണുക.
-
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ഫังก്ഷനിലെdelay10 മിനിറ്റ് ആക്കുക:delay(10 * 60 * 1000);💁
delayഫังก്ഷൻ മില്ലിസെക്കൻഡുകളിലാണ് സമയം എടുക്കുന്നത്, അതുവരെ വായിക്കാൻ എളുപ്പമാക്കാൻ മൂല്യം കണക്കു ഫലം ആയിട്ടാണ് നൽകുന്നത്. 1,000ms ഒരു സെക്കൻഡിൽ, 60s ഒരു മിനിറ്റിൽ, അതിനാൽ 10 x (60s in a minute) x (1000ms in a second) ഒരു 10 മിനിറ്റ് ഡിലേ നൽകിയിരിക്കുന്നു. -
ഇത് നിങ്ങളുടെ 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 ഉപയോഗിച്ച് വിവർത്തനം ചെയ്തതാണ്. നമുക്ക് കൃത്യതയില് ശ്രമിച്ചെങ്കിലും, ഓട്ടോമാറ്റിക് വിവർത്തനങ്ങളിൽ പിശകുകൾ അല്ലെങ്കിൽ അപ്രായോഗികതകൾ ഉണ്ടാകാവുന്നതാണ്. ആദിമ ഭാഷയിലുള്ള മാതൃക ഡോക്യുമെന്റിനെയാണ് അധികാരം കൈവരുന്നത്. സുപ്രധാന വിവരങ്ങൾക്കായി പ്രൊഫഷണൽ മനുഷ്യ വിവർത്തനം നിർദ്ദേശിച്ചിരിക്കുന്നു. ഈ വിവർത്തനത്തിന്റെ ഉപയോഗത്തിൽനിന്ന് ഉണ്ടാകുന്ന തെറ്റിദ്ധാരണകൾക്കും വിശദീകരണക്കുറവുകൾക്കും ഞങ്ങൾ ഉത്തരവാദിത്വമെടുക്കുന്നില്ല.