Orodha ya maudhui:

Kuunganisha Sensorer ya DHT11 / DHT22 kwa Wingu na Bodi ya ESP8266: Hatua 9
Kuunganisha Sensorer ya DHT11 / DHT22 kwa Wingu na Bodi ya ESP8266: Hatua 9

Video: Kuunganisha Sensorer ya DHT11 / DHT22 kwa Wingu na Bodi ya ESP8266: Hatua 9

Video: Kuunganisha Sensorer ya DHT11 / DHT22 kwa Wingu na Bodi ya ESP8266: Hatua 9
Video: Display WiFi Access Points on LCD with ESP8266 signal strength as percentage 2024, Juni
Anonim
Kuunganisha Sensorer ya DHT11 / DHT22 kwenye Wingu na Bodi ya msingi ya ESP8266
Kuunganisha Sensorer ya DHT11 / DHT22 kwenye Wingu na Bodi ya msingi ya ESP8266

Katika nakala iliyopita, niliunganisha bodi yangu ya NodeMCU ya ESP8266 kwa huduma ya Cloud4RPi. Sasa, ni wakati wa mradi halisi!

Vifaa

Mahitaji ya vifaa:

  • Bodi yoyote kulingana na chip ya ESP8266 (kwa mfano, NodeMCU)
  • Sensorer ya DHT11 au DHT22

Programu na huduma:

  • Maktaba ya sensorer ya DHT na Adafruit - v1.3.7
  • Sura ya Umoja wa Adafruit - v1.0.3
  • cloud4rpi-esp-arduino - v0.1.0
  • Cloud4RPI - Jopo la kudhibiti wingu kwa vifaa vya IoT
  • PlatformIO IDE ya VSCode

Hatua ya 1: Pima Joto na Unyevu

Pima Joto na Unyevu
Pima Joto na Unyevu

Tayari nilikuwa na sensorer ya DHT11, kwa hivyo niliamua kuitumia kwa vipimo vya joto na unyevu. Wacha tuchague maktaba ya Arduino ili kusoma data ya sensorer.

Usajili wa Arduino una maktaba kadhaa, ambayo nilichagua ile maarufu zaidi.

Kulingana na hazina yao ya GitHub, tunatakiwa pia kuongeza kifurushi cha Sura ya Sawa ya Adafruit.

Hatua ya 2: Unda na Sanidi Mradi

Unda na Sanidi Mradi
Unda na Sanidi Mradi

Nimeelezea tayari jinsi ya kuunda mradi wa PlatformIO na kusanikisha maktaba katika sehemu ya kwanza. Mradi wangu unaitwa "MyNodeMCU". Muundo umeonyeshwa hapo juu.

Mradi huu ni mfano wa Cloud4RPi uliobadilishwa kidogo. Niliamua kuhifadhi tokeni ya kifaa na vitambulisho vya Wi-Fi kwenye faili ya usanidi badala ya nambari.

Faili ya platform.io inaonekana kama ifuatavyo:

[platformio] default_envs = nodemcuv2 [env: nodemcuv2] jukwaa = espressif8266 mfumo = bodi ya arduino = nodemcuv2

Hatua ya 3: Sakinisha Maktaba

Sakinisha Maktaba
Sakinisha Maktaba

Ufungaji wa maktaba ni rahisi sana. Unaweza kuifanya kutoka kwa kielelezo cha picha cha IDE, au kwa kuongeza majina yanayohitajika ya maktaba kwenye sehemu ya lib_deps ya faili ya platform.io:

; … Lib_deps = cloud4rpi-esp-arduino Adafruit Unified Sensor DHT sensor maktaba build_flags = -D MQTT_MAX_PACKET_SIZE = 1024 -D MQTT_MAX_TRANSFER_SIZE = 128 -D CLOUD4RPI_DEBUG = 0 -D SSID_NAME = "" = " D CLOUD4RPI_TOKEN = / "_ YAKO_YA_KUCHEKESHA _ \"

Maktaba zilizoongezwa zitawekwa kiatomati kwenye folda ndogo ya mradi.

Kichwa kuu.cpp kinaonekana kama ifuatavyo:

# pamoja na # pamoja na # pamoja na # pamoja na "DHT.h"

Hatua ya 4: Unganisha Sense ya DHT11

Adafruit hutoa mfano wa DHTtester.ino wa unganisho la sensa.

Nambari hii inaanzisha sensorer na hufafanua muundo wa kuhifadhi matokeo ya kipimo (ikiwa ingefanikiwa):

#fafanua DHTPIN 2 // Pini ya dijiti iliyounganishwa na sensor ya DHT # fafanua DHTTYPE DHT11 // DHT 11 //… DHT dht (DHTPIN, DHTTYPE); kuanza (); //… muundo DHT_Result {kuelea h; kuelea t; }; DHT_Result dhtResult;

Kazi inayofuata inaonyesha jinsi ya kusoma data ya sensorer na kuihifadhi katika muundo wa data iliyoelezwa hapo juu

kusoma utupu Sensors () {kuelea h = dht.readHumidity (); // Soma joto kama Celsius (chaguo-msingi) kuelea t = dht.readTemperature ();

// Angalia ikiwa usomaji wowote umeshindwa na utoke

ikiwa (isnan (h) || isnan (t)) {Serial.println (F ("Imeshindwa kusoma kutoka kwa sensorer ya DHT!")); kurudi; } dhtResult.h = h; dhtResult.t = t; }

Hatua ya 5: Kutuma Takwimu kwenye Wingu

Mara tu tunapokuwa na data hiyo, hatua inayofuata ni kuipeleka kwa huduma ya Cloud4RPi.

Ukurasa wa Cloud4RPi wa Arduino unaelezea API ya maktaba, ambayo ni seti ya njia zinazotumiwa:

  • unda, soma na usasishe vigeugeu,
  • tuma maadili yanayobadilika ndani ya wingu ukitumia itifaki ya MQTT.

Maktaba inasaidia aina tatu tofauti: Bool, Numeric, na String.

Utiririshaji wa maktaba huanza na kuunda mfano wa API ukitumia Token ya Kifaa kutoka kwa wavuti ya cloud4rpi.io (rejea sehemu ya kifungu cha 1 kwa maelezo zaidi).

# ikiwa imefafanuliwa (CLOUD4RPI_TOKEN) Cloud4RPi c4r (CLOUD4RPI_TOKEN); #else Cloud4RPi c4r ("!!! _ NO_DEVICE_TOKEN _ !!!"); # mwisho

Kisha, tangaza vigeugeu kwa usomaji wa DHT11:

c4r.declareNumericVariable ("DHT11_Temp"); c4r.declareNumericVariable ("DHT11_Hum");

Kisha, pata data kutoka kwa sensa, wahifadhi katika vigeuzi na uchapishe data kwa Cloud4RPi:

c4r.setVariable ("DHT11_Temp", dhtResult.t); c4r.setVariable ("DHT11_Hum", dhtResult.h); c4r.chapishaData ();

Joto na unyevu haubadilika haraka, kwa hivyo kutuma zaidi ya thamani moja kwa dakika 5 haihitajiki.

Hatua ya 6: Utambuzi

Cloud4RPi inasaidia data ya utambuzi pamoja na maadili yanayobadilika. Nilitumia muda wa ziada, nguvu ya ishara ya Wi-Fi, na anwani ya IP kama data ya uchunguzi:

c4r.declareDiagVariable ("IP_Address"); c4r.declareDiagVariable ("RSSI"); // nguvu ya ishara ya WiFi c4r.declareDiagVariable ("Uptime");

Kumbuka: Kazi ya millis ninayotumia kupata upets uptime hadi sifuri kila siku ~ 50. Ambayo ni ya kutosha zaidi kwa mradi wangu.

Nambari ifuatayo inaweka nambari za kutofautisha za uchunguzi:

c4r.setDiagVariable ("RSSI", (String) WiFi. RSSI () + "dBm"); c4r.setDiagVariable ("IP_Address", WiFi.localIP (). toString ()); c4r.setDiagVariable ("Uptime", uptimeHumanReadable (currentMillis)); c4r.chapishaDiag ();

Kazi ya uptimeHumanReadable hubadilisha milliseconds kuwa fomu rahisi:

Muda wa kukazaHumanReadable (milliseconds ndefu ambazo hazijasainiwa) {static char uptimeStr [32]; sekunde zisizotiwa saini = milliseconds / 1000; dakika ndefu zisizosainiwa = sekunde / 60; masaa yasiyosajiliwa ya ndani = dakika / 60; siku ambazo hazijasainiwa = masaa / 24; sekunde - = dk * 60; dk - = masaa * 60; masaa - = siku * 24; sprintf (uptimeStr, "% d siku% 2.2d:% 2.2d:% 2.2d", (byte) siku, (byte) masaa, (byte) mins, (byte) sekunde); kurudi Kamba (uptimeStr); }

Kazi hutoa kamba kama hii siku 5 10:23:14 badala ya nambari kubwa ya kushangaza.

Hatua ya 7: Anza na utatue mradi

Anza na utatue mradi
Anza na utatue mradi

Baada ya kukusanya nambari iliyoundwa na kuangaza ndani ya NodeMCU, kifaa huunganisha na huduma ya wingu na kuanza kutuma data.

Unaweza kuongeza ujasusi wa magogo kwa kuweka preprocessor ya CLOUD4RPI_DEBUG inayobadilika kuwa 1 (ongeza -D CLOUD4RPI_DEBUG = 1 kujenga sehemu ya mabendera katika faili ya platform.io).

Ifuatayo, fungua tovuti ya cloud4rpi.io na uone kifaa kipya mkondoni. Fungua ili uone maadili yote yanayobadilishwa kutoka kwa kifaa: sensorer na uchunguzi.

Hatua ya 8: Usanidi wa Dashibodi

Usanidi wa Dashibodi
Usanidi wa Dashibodi

Katika hatua hii, unganisho la data na wingu linafanya kazi. Sasa, wacha tusanidi uwakilishi wa kuona wa data.

Nilitumia UI ya usanidi wa Dashibodi kuunda dashibodi ifuatayo.

Dashibodi inashirikiwa, kwa hivyo mimi huishiriki mara moja na rafiki yangu.

Hatua ya 9: Hitimisho

Hitimisho
Hitimisho

Nambari kamili ya mradi inapatikana katika kiini.

Hiyo ni yote kwa sasa!

Maswali na maoni yanakaribishwa katika maoni.

Ilipendekeza: