- Kinakailangan ang Mga Bahagi
- Diagram ng Circuit
- DHT11 Temperatura at Humidity Sensor
- Programming NodeMCU ESP8266 Live na Temperatura at Pagsubaybay sa Humidity
Ang mga microcontroller ay may maliit na panloob na memorya na kung saan ay hindi sapat upang makatipid ng mga sensor na nabuong data sa mahabang panahon, alinman sa gumamit ka ng ilang panlabas na aparato sa memorya o maaaring mai-save ang data sa ilang ulap gamit ang internet. Gayundin, minsan ay nagiging mahirap na pamahalaan kung ang sensor ay naka-deploy sa ilang matinding kondisyon na lugar kung saan hindi maabot ng tao o mahirap na bisitahin ang madalas doon. Upang maitama ang ganitong uri ng mga problema palagi naming tinitingnan ang mga paraan kung saan nais naming subaybayan ang data ng sensor sa real time mula sa kahit saan nang walang pisikal na presensya sa lugar na iyon.
Ang mga real time na database ay maaaring magamit sa senaryong ito kung saan kailangan lang naming i-interface ang ilang mga controller na maaaring konektado sa internet at maaaring makipagpalitan ng data sa cloud server. Ang data ng server ay maaaring maging kapaki-pakinabang sa pagsubaybay ng pag-uugali ng real time system, database analytics, pagtatasa ng istatistika at pagproseso, at interpretasyon para sa paggamit ng hinaharap. Maraming mga IoT Hardware Platform at Cloud platform na magagamit upang maihatid ang hangaring ito. Kung mahahanap mo ang mga paghihirap sa paghahanap ng tamang Platform para sa iyong IoT application pagkatapos sundin ang link.
Dati ay saklaw na namin ang ThingSpeak, Adafruit IO at maraming iba pang mga software ng IoT. Ngayon ay magtatayo kami ng katulad na proyekto kung saan gagamit kami ng isang sensor ng temperatura at kahalumigmigan DHT11 at isang NodeMCU ESP8266 Module upang mai -log ang temperatura at halumigmig sa real time sa Firebase database server ng Google.
Hahatiin namin ang proyekto sa dalawang seksyon. Una, magsisimula kami sa pag-iipon ng mga bahagi ng hardware at pag-upload dito. At pangalawa gagamitin namin ang Firebase upang mag-setup sa NodeMCU upang makipagpalitan ng data ng real time. Kung bago ka sa ESP8266 o Firebase sundin ang aming nakaraang tutorial sa pagkontrol sa LED gamit ang Firebase.
Kinakailangan ang Mga Bahagi
- Module ng NodeMCU ESP8266
- DHT11 Temperatura at Humidity sensor
Diagram ng Circuit
DHT11 Temperatura at Humidity Sensor
Nagtatampok ang module ng DHT11 ng isang kahalumigmigan at temperatura na kumplikado na may naka-calibrate na digital signal output ay nangangahulugang ang module ng sensor ng DHT11 ay isang pinagsamang module para sa pandama ng halumigmig at temperatura na nagbibigay ng isang naka-calibrate na digital output signal. Binibigyan tayo ng DHT11 ng tumpak na halaga ng halumigmig at temperatura at tinitiyak ang mataas na pagiging maaasahan at pangmatagalang katatagan. Ang sensor na ito ay may sangkap na pagsukat ng halumigmig na uri ng resistive at bahagi ng pagsukat ng temperatura ng uri ng NTC na may built-in na 8-bit microcontroller na may mabilis na tugon at epektibo sa gastos at magagamit sa 4-pin na solong package.
Ginamit namin dati ang ESP12E upang i-update ang mga pagbabasa ng DHT11 sa webserver, maliban sa maaari mong suriin ang lahat ng mga proyekto na nakabatay sa DHT11 kung saan ginamit namin ang DHT11 upang maiugnay sa maraming iba pang mga microcontroller tulad ng Arduino, PIC, Raspberry at built na istasyon ng panahon na ginagamit ang mga ito.
Programming NodeMCU ESP8266 Live na Temperatura at Pagsubaybay sa Humidity
Ang kumpletong programa sa pagtatrabaho ng Video ay ibinibigay sa katapusan. Narito ipinapaliwanag namin ang ilang mahahalagang bahagi ng code.
Una isama ang mga aklatan para sa paggamit ng ESP8266 at firebase.
# isama
Mag-download at mag-install ng mga aklatan sa pamamagitan ng pagsunod sa mga link sa ibaba:
github.com/FirebaseExtended/firebase-arduino/blob/master/src/Firebase.h
github.com/bblanchon/ArduinoJson
Habang pinagsasama-sama , kung nakakuha ka ng error na ang ArduinoJson.h library ay hindi naka-install pagkatapos mangyaring i-install ito gamit ang link na ibinigay sa itaas.
Paprogram namin ang NodeMCU upang kumuha ng mga pagbabasa mula sa sensor ng DHT11 at itulak ito sa Firebase bawat 5 segundo ng agwat. Magtatakda kami ng isang landas para sa pagtulak ng data. Sa ngayon dalawang mga parameter viz. ang kahalumigmigan at temperatura ay ipinapadala sa parehong landas ng magulang at iba't ibang landas ng bata.
Ang dalawang mga parameter na ito ay napakahalaga upang makipag-usap sa firebase. Ang pagtatakda ng mga parameter na ito ay magbibigay-daan sa pagpapalitan ng data sa pagitan ng at ESP8266 at firebase. Upang makita ang mga parameter na ito para sa iyong proyekto, sundin ang aming nakaraang tutorial sa Firebase Setup.
#define FIREBASE_HOST "your-project.firebaseio.com" // ang address ng pangalan ng proyekto mula sa firebase id #define FIREBASE_AUTH "Uejx9ROxxxxxxxxxxxxxxxxxxxxxxxxfQDDkhN" // ang lihim na key na nabuo mula sa firebase
Matapos matagumpay na hanapin ang mga kredensyal, palitan lamang ang nasa itaas na code.
Ipasok ang iyong Wi-Fi SSID at Password upang kumonekta sa iyong network.
#define WIFI_SSID "network_name" // input your home or public wifi name #define WIFI_PASSWORD "password" // password of wifi ssid
Tukuyin ang data pin ng DHT sa NodeMCU. Maaari mong gamitin ang anumang Digital GPIO pin sa NodeMCU.
# tukuyin ang DHTPIN D4
Ang DHT library ay ginawa para sa lahat ng mga variant ng DHT at may pagpipilian na aling sensor ng DHT na nais mong gamitin para sa eg DHT11 o DHT22. Piliin lamang ang tamang sensor ng DHT at magpatuloy.
#define DHTTYPE DHT11 // piliin ang uri ng dht bilang DHT 11 o DHT22 DHT dht (DHTPIN, DHTTYPE);
Kumonekta sa napiling Wi-Fi network at kumonekta rin sa firebase database server.
WiFi.begin (WIFI_SSID, WIFI_PASSWORD); Firebase.begin (FIREBASE_HOST, FIREBASE_AUTH);
Simulan ang pagkuha ng pagbabasa sa pin D4 ng NodeMCU.
dht.begin ();
Kumuha ng mga pagbabasa ng kahalumigmigan at temperatura mula sa sensor ng DHT at i-save bilang float na halaga.
float h = dht.readHumidity (); // Ang temperatura sa pagbabasa o halumigmig ay tumatagal ng halos 250 milliseconds! float t = dht.readTemperature (); // Basahin ang temperatura bilang Celsius (ang default)
Suriin lamang kung ang sensor ng DHT ay maayos na wired o hindi ito nasira at maaaring mabasa ng controller mula dito. Kung ang mga pagbasa ay hindi nagpapakita kung gayon marahil ang sensor ay nasira, ipakita lamang ang isang mensahe ng error at bumalik upang suriin muli nang hindi magpatuloy.
kung (isnan (h) - isnan (t)) {// Suriin kung may nabasa na nabigo at lumabas nang maaga (upang subukang muli). Serial.println (F ("Nabigong basahin mula sa sensor ng DHT!")); bumalik; }
I-print ang data ng sensor sa serial monitor para sa pag-debug at i-save ang mga halaga ng temperatura at halumigmig sa form na string upang maipadala ito sa firebase. Tandaan din na ang minimum na pagkaantala na kinakailangan sa pagitan ng dalawang pagbabasa mula sa sensor ng DHT11 ay 2 segundo, kaya palaging gumamit ng pagkaantala na higit sa 2 segundo. Upang malaman ang higit pa tungkol sa DHT11 maaari kang tumingin sa opisyal na datasheet.
Serial.print ("Humidity:"); Serial.print (h); String fireHumid = String (h) + String ("%"); // convert integer halumigmig sa string halumigmig Serial.print ("% Temperatura:"); Serial.print (t); Serial.println ("° C"); String fireTemp = String (t) + String ("° C"); pagkaantala (4000);
Sa wakas, ipadala ang data ng temperatura at halumigmig sa firebase sa path na "your-project.firebaseio.com/DHT11/Humidity/".
Firebase.pushString ("/ DHT11 / Humidity", fireHumid); // setup path at ipadala ang mga pagbasa Firebase.pushString ("/ DHT11 / Temperature", fireTemp); // setup path at magpadala ng mga pagbasa
Maaari mong makita ang lahat ng data sa iyong firebase account. Pumunta lamang sa seksyong " Database " sa " Iyong Project " sa " Aking console " Sa Firebase.
Upang i-setup ang Firebase para sa pagpapadala at pagsubaybay sa data maaari kang mag-refer sa aming nakaraang tutorial.
Kumpletuhin ang code at Video para sa IoT batay sa temperatura at pagsubaybay sa Humidity ay ibinibigay sa ibaba.