Talaan ng mga Nilalaman:
- Mga gamit
- Hakbang 1: Sukatin ang Temperatura at Humidity
- Hakbang 2: Lumikha at I-configure ang Project
- Hakbang 3: Mag-install ng Mga Aklatan
- Hakbang 4: Ikonekta ang isang DHT11 Sensor
- Hakbang 5: Pagpapadala ng Data sa Cloud
- Hakbang 6: Mga Diagnostics
- Hakbang 7: Simulan at i-debug ang Proyekto
- Hakbang 8: Pag-configure ng Dashboard
- Hakbang 9: Konklusyon
Video: Pagkonekta ng isang DHT11 / DHT22 Sensor sa Cloud Gamit ang isang ESP8266-based Board: 9 Mga Hakbang
2024 May -akda: John Day | [email protected]. Huling binago: 2024-01-30 13:12
Sa nakaraang artikulo, ikinonekta ko ang aking board na NodeMCU na nakabatay sa ESP8266 sa isang serbisyo sa Cloud4RPi. Ngayon, oras na para sa isang tunay na proyekto!
Mga gamit
Mga kinakailangan sa hardware:
- Anumang board batay sa isang chip na ESP8266 (halimbawa, NodeMCU)
- Isang sensor ng DHT11 o DHT22
Software at serbisyo:
- Library ng sensor ng DHT ng Adafruit - v1.3.7
- Pinagsamang Sensor ng Adafruit - v1.0.3
- cloud4rpi-esp-arduino - v0.1.0
- Cloud4RPI - Cloud control panel para sa mga IoT device
- PlatformIO IDE para sa VSCode
Hakbang 1: Sukatin ang Temperatura at Humidity
Mayroon na akong sensor ng DHT11, kaya't nagpasya akong gamitin ito para sa pagsukat ng temperatura at halumigmig. Pumili tayo ng isang Arduino library upang mabasa ang data ng sensor.
Naglalaman ang rehistro ng Arduino ng maraming mga aklatan, kung saan pinili ko ang pinaka-tanyag.
Ayon sa kanilang Repository ng GitHub, kinakailangan din kaming magdagdag ng isang pakete ng Unified Sensor ng Adafruit.
Hakbang 2: Lumikha at I-configure ang Project
Inilarawan ko na kung paano lumikha ng isang proyekto sa PlatformIO at mag-install ng mga aklatan sa unang bahagi. Ang proyekto ko ay tinatawag na "MyNodeMCU". Ang istraktura ay ipinapakita sa itaas.
Ang proyektong ito ay isang bahagyang binago na halimbawa ng Cloud4RPi. Napagpasyahan kong iimbak ang mga token ng aparato at mga kredensyal ng Wi-Fi sa file ng pagsasaayos sa halip na code.
Ang file ng platform.io ay ganito ang hitsura:
[platformio] default_envs = nodemcuv2 [env: nodemcuv2] platform = espressif8266 framework = arduino board = nodemcuv2
Hakbang 3: Mag-install ng Mga Aklatan
Ang pag-install ng mga aklatan ay medyo simple. Maaari mo itong gawin mula sa graphic interface ng IDE, o sa pamamagitan ng pagdaragdag ng kinakailangang mga pangalan ng library sa seksyon ng lib_deps ng platform.io file:
; … Lib_deps = cloud4rpi-esp-arduino Adafruit Unified Sensor DHT sensor library build_flags = -D MQTT_MAX_PACKET_SIZE = 1024 -D MQTT_MAX_TRANSFER_SIZE = 128 -D CLOUD4RPI_DEBUG = 0 -D SSID_NAME = \D _ _ _ _ _ " D CLOUD4RPI_TOKEN = / "_ IYONG_DEVICE_TOKEN _ \"
Ang mga idinagdag na aklatan ay awtomatikong mai-install sa subfolder ng isang proyekto.
Ang pangunahing.cpp header ay ang mga sumusunod:
#include #include #include #include "DHT.h"
Hakbang 4: Ikonekta ang isang DHT11 Sensor
Nagbibigay ang Adafruit ng isang halimbawa ng DHTtester.ino ng isang koneksyon sa sensor.
Pinasimulan ng code na ito ang isang sensor at tumutukoy sa isang istraktura upang maiimbak ang resulta ng pagsukat (kung sakaling ito ay matagumpay):
#define DHTPIN 2 // Digital pin na konektado sa sensor ng DHT # tukuyin ang DHTTYPE DHT11 // DHT 11 // … DHT dht (DHTPIN, DHTTYPE); dht.begin (); //… struct DHT_Result {float h; lumutang t; }; DHT_Result dhtResult;
Ipinapakita ng susunod na pagpapaandar kung paano basahin ang data ng sensor at iimbak ito sa istraktura ng data na inilarawan sa itaas
void readSensors () {float h = dht.readHumidity (); // Basahin ang temperatura bilang Celsius (ang default) float t = dht.readTemperature ();
// Suriin kung may nabasa na nabigo at lumabas
kung (isnan (h) || isnan (t)) {Serial.println (F ("Nabigong basahin mula sa sensor ng DHT!")); bumalik; } dhtResult.h = h; dhtResult.t = t; }
Hakbang 5: Pagpapadala ng Data sa Cloud
Kapag mayroon kaming data na iyon, ang susunod na hakbang ay upang ipadala ito sa serbisyo ng Cloud4RPi.
Inilalarawan ng pahina ng Cloud4RPi para sa Arduino ang library API, na isang hanay ng mga pamamaraan na ginamit upang:
- lumikha, magbasa at mag-update ng mga variable,
- magpadala ng mga variable na halaga sa cloud gamit ang MQTT protocol.
Sinusuportahan ng library ang tatlong mga variable na uri: Bool, Numeric, at String.
Nagsisimula ang daloy ng trabaho sa library sa paglikha ng isang halimbawa ng API gamit ang Device Token mula sa cloud4rpi.io website (sumangguni sa bahagi 1 ng artikulo para sa mga detalye).
#kung tinukoy (CLOUD4RPI_TOKEN) Cloud4RPi c4r (CLOUD4RPI_TOKEN); #else Cloud4RPi c4r ("!!! _ NO_DEVICE_TOKEN _ !!!"); #tapusin kung
Pagkatapos, ideklara ang mga variable para sa pagbabasa ng DHT11:
c4r.declareNumericVariable ("DHT11_Temp"); c4r.declareNumericVariable ("DHT11_Hum");
Pagkatapos, kumuha ng data mula sa sensor, i-save ang mga ito sa mga variable at i-publish ang data sa Cloud4RPi:
c4r.setVariable ("DHT11_Temp", dhtResult.t); c4r.setVariable ("DHT11_Hum", dhtResult.h); c4r.publishData ();
Ang temperatura at halumigmig ay hindi nagbabago nang mabilis, kaya't hindi kinakailangan ang pagpapadala ng higit sa isang halaga bawat 5 minuto.
Hakbang 6: Mga Diagnostics
Sinusuportahan ng Cloud4RPi ang data ng diagnostic kasama ang mga variable na halaga. Gumamit ako ng uptime, lakas ng signal ng Wi-Fi, at IP address bilang data ng diagnostic:
c4r.declareDiagVariable ("IP_Address"); c4r.declareDiagVariable ("RSSI"); // Lakas ng signal ng WiFi c4r.declareDiagVariable ("Uptime");
Tandaan: Ang pagpapaandar ng millis na ginagamit ko upang makakuha ng uptime na pag-reset sa zero bawat ~ 50 araw. Alin ang higit sa sapat para sa aking proyekto.
Nagtatakda ang sumusunod na code ng mga halaga ng variable ng diagnostic:
c4r.setDiagVariable ("RSSI", (String) WiFi. RSSI () + "dBm"); c4r.setDiagVariable ("IP_Address", WiFi.localIP (). toString ()); c4r.setDiagVariable ("Uptime", uptimeHumanReadable (currentMillis)); c4r.publishDiag ();
Ang uptimeHumanReadable na pagpapaandar ay nagpapalit ng milliseconds sa isang maginhawang form:
String uptimeHumanReadable (unsigned long milliseconds) {static char uptimeStr [32]; unsigned long secs = milliseconds / 1000; unsigned mahabang min = seg / 60; unsigned int oras = min / 60; unsigned int araw = oras / 24; seg - = min * 60; mga minuto - = oras * 60; oras - = araw * 24; sprintf (uptimeStr, "% d araw% 2.2d:% 2.2d:% 2.2d", (byte) araw, (byte) na oras, (byte) min, (byte) secs); ibalik ang String (uptimeStr); }
Ang pagpapaandar ay naglalabas ng isang string tulad nito 5 araw 10:23:14 sa halip na isang kakaibang malaking bilang.
Hakbang 7: Simulan at i-debug ang Proyekto
Matapos maipon ang nilikha na code at i-flashing ito sa NodeMCU, kumokonekta ang aparato sa isang cloud service at nagsimulang magpadala ng data.
Maaari mong madagdagan ang pagiging masasabi ng logging sa pamamagitan ng pagtatakda ng variable ng preprocessor ng CLOUD4RPI_DEBUG sa 1 (idagdag ang -D CLOUD4RPI_DEBUG = 1 upang buuin ang seksyon ng build_flags sa platform.io file).
Susunod, buksan ang site ng cloud4rpi.io at pansinin ang bagong aparato online. Buksan ito upang makita ang lahat ng mga halagang nabuong natanggap mula sa aparato: sensor at mga diagnostic.
Hakbang 8: Pag-configure ng Dashboard
Sa hakbang na ito, ang koneksyon ng data sa cloud ay pagpapatakbo. Ngayon, i-configure natin ang visual na representasyon ng data.
Ginamit ko ang pagsasaayos ng Dashboard UI upang likhain ang sumusunod na dashboard.
Ang dashboard ay maibabahagi, kaya agad kong ibinabahagi ito sa aking kaibigan.
Hakbang 9: Konklusyon
Ang buong code ng proyekto ay magagamit sa kabuuan.
Iyon lang ang para sa ngayon!
Ang mga katanungan at mungkahi ay malugod na tinatanggap sa mga komento.
Inirerekumendang:
Isang Halloween Scare Machine Gamit ang isang PIR, isang 3D Printed Pumpkin at ang Troll Arduino Compatible Audio Pranker / practical Joke Board .: 5 Mga Hakbang
Isang Halloween Scare Machine Gamit ang isang PIR, isang 3D Printed Pumpkin at ang Troll Arduino Compatible Audio Pranker / practical Joke Board .: Ang Troll board na nilikha ni Patrick Thomas Mitchell ng EngineeringShock Electronics, at buong pinondohan sa Kickstarter hindi pa masyadong nakakaraan. Nakuha ko ang aking gantimpala ng ilang linggo maaga upang makatulong na sumulat ng ilang mga halimbawa ng paggamit at bumuo ng isang library ng Arduino sa isang pagtatangka
Internet Clock: Ipakita ang Petsa at Oras Gamit ang isang OLED Gamit ang ESP8266 NodeMCU Sa NTP Protocol: 6 na Hakbang
Internet Clock: Display Date and Time With an OLED Gamit ang ESP8266 NodeMCU With NTP Protocol: Kumusta mga tao sa mga itinuturo na ito na magtatayo kami ng isang orasan sa internet na magkakaroon ng oras mula sa internet kaya't ang proyektong ito ay hindi mangangailangan ng anumang RTC upang tumakbo, kakailanganin lamang nito ang isang nagtatrabaho koneksyon sa internet At para sa proyektong ito kailangan mo ng isang esp8266 na magkakaroon ng
Paano Gumawa ng isang Drone Gamit ang Arduino UNO - Gumawa ng isang Quadcopter Gamit ang Microcontroller: 8 Hakbang (na may Mga Larawan)
Paano Gumawa ng isang Drone Gamit ang Arduino UNO | Gumawa ng isang Quadcopter Gamit ang Microcontroller: PanimulaBisitahin ang Aking Youtube Channel Ang isang Drone ay isang napakamahal na gadget (produkto) na bibilhin. Sa post na ito tatalakayin ko, kung paano ko ito magagawa sa murang ?? At Paano mo magagawa ang iyong sarili tulad nito sa murang presyo … Sa India ang lahat ng mga materyales (motor, ESC
Bumuo ng isang Apple HomeKit Temperature Sensor (DHT22) Device Gamit ang isang RaspberryPI at isang DHT22: 11 Mga Hakbang
Bumuo ng isang Apple HomeKit Temperature Sensor (DHT22) Device Gamit ang isang RaspberryPI at isang DHT22: Naghahanap ako ng isang mababang sensor ng temperatura / kahalumigmigan na magagamit ko upang masubaybayan kung ano ang nangyayari sa aking crawlspace, dahil nalaman kong sa tagsibol na ito ay basang-basa ito , at nagkaroon ng maraming mamasa-masa. Kaya't naghahanap ako para sa isang makatwirang naka-presyo na sensor na kaya kong
Kontrolin ang Arduino Gamit ang Smartphone Sa pamamagitan ng USB Gamit ang Blynk App: 7 Mga Hakbang (na may Mga Larawan)
Kontrolin ang Arduino Gamit ang Smartphone Sa Pamamagitan ng USB Sa Blynk App: Sa tutorial na ito, matututunan namin kung paano gamitin ang Blynk app at Arduino upang makontrol ang lampara, ang kumbinasyon ay sa pamamagitan ng USB serial port. Ang layunin ng pagtuturo na ito ay upang ipakita ang pinakasimpleng solusyon sa malayo-pagkontrol ng iyong Arduino o c