Агуулгын хүснэгт:
- Хангамж
- Алхам 1: Температур ба чийгшлийг хэмжинэ
- Алхам 2: Төсөл үүсгэх, тохируулах
- Алхам 3: Номын сан суулгах
- Алхам 4: DHT11 мэдрэгчийг холбоно уу
- Алхам 5: Үүл рүү өгөгдөл илгээх
- Алхам 6: Оношлогоо
- Алхам 7: Төслийг эхлүүлэх, дибаг хийх
- Алхам 8: Хяналтын самбарын тохиргоо
- Алхам 9: Дүгнэлт
Видео: DHT11/DHT22 мэдрэгчийг үүлэнд ESP8266 суурилсан самбар ашиглан холбох: 9 алхам
2024 Зохиолч: John Day | [email protected]. Хамгийн сүүлд өөрчлөгдсөн: 2024-01-30 11:02
Өмнөх нийтлэлд би ESP8266 дээр суурилсан NodeMCU самбараа Cloud4RPi үйлчилгээнд холбосон. Одоо жинхэнэ төсөл хэрэгжүүлэх цаг боллоо!
Хангамж
Тоног төхөөрөмжийн шаардлага:
- ESP8266 чип дээр суурилсан аливаа самбар (жишээлбэл, NodeMCU)
- DHT11 эсвэл DHT22 мэдрэгч
Програм хангамж ба үйлчилгээ:
- Adafruit -ийн DHT мэдрэгчийн номын сан - v1.3.7
- Adafruit нэгдсэн мэдрэгч - v1.0.3
- cloud4rpi-esp-arduino-v0.1.0
- Cloud4RPI - IoT төхөөрөмжүүдийн үүлний хяналтын самбар
- VSCode -д зориулсан PlatformIO IDE
Алхам 1: Температур ба чийгшлийг хэмжинэ
Би аль хэдийн DHT11 мэдрэгчтэй байсан болохоор температур, чийгшлийг хэмжихэд ашиглахаар шийдсэн. Мэдрэгчийн өгөгдлийг уншихын тулд Arduino номын санг сонгоё.
Arduino бүртгэл нь хэд хэдэн номын санг агуулдаг бөгөөд үүнээс би хамгийн алдартайг нь сонгосон.
Тэдний GitHub репозиторын дагуу бид Adafruit Unified Sensor багцыг нэмж оруулах шаардлагатай байна.
Алхам 2: Төсөл үүсгэх, тохируулах
PlatformIO төслийг хэрхэн үүсгэж, номын санг эхний хэсэгт хэрхэн суулгах талаар би аль хэдийн тайлбарласан болно. Миний төслийг "MyNodeMCU" гэж нэрлэдэг. Бүтцийг дээр харуулав.
Энэ төсөл нь Cloud4RPi-ийн бага зэрэг өөрчлөгдсөн жишээ юм. Төхөөрөмжийн токен болон Wi-Fi итгэмжлэлийг кодын оронд тохиргооны файлд хадгалахаар шийдсэн.
Platform.io файл дараах байдлаар харагдаж байна.
[platformio] default_envs = nodemcuv2 [env: nodemcuv2] платформ = espressif8266 framework = arduino board = nodemcuv2
Алхам 3: Номын сан суулгах
Номын сан суулгах нь маш энгийн. Та үүнийг IDE -ийн график интерфейсээс эсвэл platform.io файлын lib_deps хэсэгт шаардлагатай номын сангийн нэрийг нэмж хийж болно.
; … Lib_deps = cloud4rpi -esp -arduino Adafruit нэгдсэн мэдрэгч DHT мэдрэгчийн номын сан build_flags = -D MQTT_MAX_PACKET_SIZE = 1024 -D MQTT_MAX_TRANSFER_SIZE = 128 -D CLOUD4RPI_DEBUG = / "SSD_ID_IF_D_I_ID_ID_ID_ID_ID_ID_IFI_IFT D CLOUD4RPI_TOKEN = / "ТАНЫ_ДЕВИК_ТОКЕН _ \"
Нэмэгдсэн сангууд нь төслийн дэд хавтсанд автоматаар суулгагдах болно.
Main.cpp толгой дараах байдлаар харагдаж байна.
#include #include #include #include "DHT.h"
Алхам 4: DHT11 мэдрэгчийг холбоно уу
Adafruit нь мэдрэгч холболтын DHTtester.ino жишээгээр хангадаг.
Энэ код нь мэдрэгчийг эхлүүлж, хэмжилтийн үр дүнг хадгалах бүтцийг тодорхойлдог (хэрэв амжилттай болсон бол):
#тодорхойлох DHTPIN 2 // DHT мэдрэгчтэй холбогдсон дижитал зүү#тодорхойлох DHTTYPE DHT11 // DHT 11 //… DHT dht (DHTPIN, DHTTYPE); dht.begin (); //… бүтэц DHT_Result {float h; хөвөх t; }; DHT_Result dhtResult;
Дараагийн функц нь мэдрэгчийн өгөгдлийг хэрхэн уншиж, дээр дурдсан өгөгдлийн бүтцэд хадгалахыг харуулдаг
void readSensors () {float h = dht.readHumidity (); // Температурыг Цельсийн (анхдагч) float t = dht.readTemperature () гэж уншина уу;
// Уншиж чадаагүй эсэхийг шалгаад гарах
if (isnan (h) || isnan (t)) {Serial.println (F ("DHT мэдрэгчээс уншиж чадсангүй!")); буцах; } dhtResult.h = h; dhtResult.t = t; }
Алхам 5: Үүл рүү өгөгдөл илгээх
Бид ийм өгөгдөл авсны дараа дараагийн алхам бол Cloud4RPi үйлчилгээ рүү илгээх явдал юм.
Cloud4RPi for Arduino хуудсанд номын сангийн API -ийг тайлбарласан бөгөөд энэ нь дараах аргуудыг ашигладаг.
- хувьсагч үүсгэх, унших, шинэчлэх,
- MQTT протокол ашиглан үүл рүү хувьсах утгуудыг илгээх.
Номын сан нь Bool, Тоон болон String гэсэн гурван хувьсагч төрлийг дэмждэг.
Номын сангийн ажлын урсгал нь cloud4rpi.io вэбсайтаас Device Token ашиглан API жишээ үүсгэхээс эхэлдэг (дэлгэрэнгүйг нийтлэлийн 1 -р хэсгийг үзнэ үү).
#if тодорхойлогдсон (CLOUD4RPI_TOKEN) Cloud4RPi c4r (CLOUD4RPI_TOKEN); #өөр Cloud4RPi c4r ("!!! _ ТӨЛӨВЛӨГӨӨГҮЙ _ !!!"); #endif
Дараа нь DHT11 уншилтын хувьсагчийг зарлана уу.
c4r.declareNumericVariable ("DHT11_Temp"); c4r.declareNumericVariable ("DHT11_Hum");
Дараа нь мэдрэгчээс өгөгдөл авч, тэдгээрийг хувьсагч болгон хадгалж, өгөгдлийг Cloud4RPi дээр нийтэлнэ үү.
c4r.setVariable ("DHT11_Temp", dhtResult.t); c4r.setVariable ("DHT11_Hum", dhtResult.h); c4r.publishData ();
Температур, чийгшил хурдан өөрчлөгддөггүй тул 5 минутанд нэгээс илүү утгыг илгээх шаардлагагүй болно.
Алхам 6: Оношлогоо
Cloud4RPi нь оношлогооны өгөгдлийг хувьсах утгуудын хамт дэмждэг. Би оношлох өгөгдөл болгон ажиллах цаг, Wi-Fi дохионы хүч, IP хаягийг ашигласан.
c4r.declareDiagVariable ("IP_Address"); c4r.declareDiagVariable ("RSSI"); // WiFi дохионы хүч c4r.declareDiagVariable ("Uptime");
Тэмдэглэл: Миний ажиллах millis функцийг ~ 50 хоног тутамд тэг болгож тохируулдаг. Энэ нь миний төсөлд хангалттай байх болно.
Дараах код нь оношлогооны хувьсагчийн утгыг тогтоодог.
c4r.setDiagVariable ("RSSI", (String) WiFi. RSSI () + "dBm"); c4r.setDiagVariable ("IP_Address", WiFi.localIP (). toString ()); c4r.setDiagVariable ("Uptime", uptimeHumanReadable (currentMillis)); c4r.publishDiag ();
UptimeHumanReadable функц нь миллисекундыг тохиромжтой хэлбэрт хөрвүүлдэг.
String uptimeHumanReadable (гарын үсэг зураагүй урт миллисекунд) {static char uptimeStr [32]; гарын үсэг зураагүй урт секунд = миллисекунд / 1000; гарын үсэг зураагүй урт минут = сек / 60; гарын үсэг зураагүй int цаг = мин / 60; unsigned int days = цаг / 24; секунд -= мин * 60; мин -= цаг * 60; цаг -= хоног * 24; sprintf (uptimeStr, "%d өдөр%2.2d:%2.2d:%2.2d", (байт) өдөр, (байт) цаг, (байт) минут, (байт) секунд); буцах String (uptimeStr); }
Функц нь хачирхалтай том тооны оронд 5 хоног 10:23:14 шиг мөр гаргадаг.
Алхам 7: Төслийг эхлүүлэх, дибаг хийх
Үүсгэсэн кодыг эмхэтгэн NodeMCU -д оруулсны дараа төхөөрөмж үүл үйлчилгээнд холбогдож өгөгдөл илгээж эхэлдэг.
Та CLOUD4RPI_DEBUG урьдчилсан процессорын хувьсагчийг 1 болгож (log.io файл дахь build_flags хэсэгт -D CLOUD4RPI_DEBUG = 1 -ийг нэмж оруулснаар) бүртгэлийн үг хэллэгийг нэмэгдүүлэх боломжтой.
Дараа нь cloud4rpi.io сайтыг нээгээд шинэ төхөөрөмжийг онлайнаар анзаараарай. Төхөөрөмжөөс хүлээн авсан бүх хувьсах утгыг харахын тулд үүнийг нээнэ үү: мэдрэгч ба оношлогоо.
Алхам 8: Хяналтын самбарын тохиргоо
Энэ үе шатанд үүл рүү дата холболт ажиллаж байна. Одоо өгөгдлийн харааны дүрслэлийг тохируулцгаая.
Би хяналтын самбарыг тохируулах UI ашиглан дараах самбарыг үүсгэсэн.
Хяналтын самбар хуваалцах боломжтой тул би үүнийг найзтайгаа шууд хуваалцаж байна.
Алхам 9: Дүгнэлт
Төслийн бүрэн кодыг үндсэн утгаар нь авах боломжтой.
Энэ бүхэн одоогоор байна!
Асуулт, саналыг коммент хэсэгт хүлээж авах боломжтой.
Зөвлөмж болгож буй:
LM35 температур мэдрэгчийг Arduino -той холбох: 4 алхам
LM35 температур мэдрэгчийг Arduino -той холбох: Термометр бол температур хэмжихэд удаан хугацаанд ашиглагддаг төхөөрөмж юм. Энэхүү төсөлд бид орчин үеийн температур, температурын өөрчлөлтийг LCD дэлгэц дээр харуулах Arduino дээр суурилсан дижитал термометр хийлээ. Үүнийг унтрааж болно
Arduino болон ESP8266: 8 алхамтай DS18B20 температур мэдрэгчийг хооронд нь холбох
Arduino ба ESP8266 -тай DS18B20 температур мэдрэгчийг хооронд нь холбох: Хөөе, залуусаа! Akarsh энд байна. Энэ нь DHT11 -тэй төстэй температур мэдрэгч боловч өөр өөр хэрэглээний багцтай. Бид үүнийг харьцуулах болно
Arduino дээр суурилсан контактгүй хэт улаан туяаны термометр - Arduino ашиглан IR суурилсан термометр: 4 алхам
Arduino дээр суурилсан контактгүй хэт улаан туяаны термометр | Arduino ашиглан IR суурилсан термометр: Сайн байна уу залуусаа энэ зааварчилгаанд бид arduino ашиглан контактгүй термометр хийх болно. Заримдаа шингэн/хатуу бодисын температур хэт өндөр эсвэл бага байдаг тул түүнтэй холбоо тогтооход хэцүү байдаг. тэр үед температур
M5stack Esp32 дээр суурилсан M5stick C хөгжүүлэлтийн самбар ашиглан Flappy Bird тоглоом тоглох: 5 алхам
Flappy Bird тоглоомыг M5stack Esp32 дээр суурилсан M5stick C хөгжүүлэлтийн самбараар тоглох: Сайн байна уу залуусаа, өнөөдөр бид m5stack-аас өгсөн m5stick c хөгжүүлэлтийн самбарт flappy bird тоглоомын кодыг хэрхэн оруулахыг сурах болно. Энэхүү жижиг төслийн хувьд танд дараах хоёр зүйл хэрэгтэй болно: m5stick-c хөгжлийн самбар: https://www.utsource.net/itm/p/8663561.h
DHT11/ DHT22 мэдрэгчийг W/ Arduino ашиглах анхан шатны гарын авлага: 9 алхам
DHT11/ DHT22 мэдрэгчийг W/ Arduino ашиглах анхан шатны гарын авлага: Та энэ болон бусад гайхалтай хичээлүүдийг ElectroPeak -ийн албан ёсны вэбсайтаас уншиж болно Энэхүү тоймд энэ гарын авлагаас та DHT11 ба DHT22 мэдрэгчийг хэрхэн тохируулах, орчны температур, чийгшлийг хэмжих талаар суралцах болно. Сурах: DHT11 ба DHT22