جدول المحتويات:
- اللوازم
- الخطوة 1: قياس درجة الحرارة والرطوبة
- الخطوة 2: إنشاء المشروع وتكوينه
- الخطوة 3: تثبيت المكتبات
- الخطوة 4: قم بتوصيل مستشعر DHT11
- الخطوة 5: إرسال البيانات إلى السحابة
- الخطوة 6: التشخيص
- الخطوة 7: ابدأ المشروع وتصحيحه
- الخطوة 8: تكوين لوحة القيادة
- الخطوة 9: الخاتمة
فيديو: توصيل مستشعر DHT11 / DHT22 بالسحابة بلوحة تعتمد على ESP8266: 9 خطوات
2024 مؤلف: John Day | [email protected]. آخر تعديل: 2024-01-30 07:38
في المقالة السابقة ، قمت بتوصيل لوحة NodeMCU المستندة إلى ESP8266 بخدمة Cloud4RPi. الآن ، حان وقت مشروع حقيقي!
اللوازم
متطلبات الأجهزة:
- أي لوحة تعتمد على شريحة ESP8266 (على سبيل المثال ، NodeMCU)
- مستشعر DHT11 أو DHT22
البرمجيات والخدمات:
- مكتبة مستشعر DHT بواسطة Adafruit - v1.3.7
- مستشعر Adafruit الموحد - v1.0.3
- cloud4rpi-esp-اردوينو - v0.1.0
- Cloud4RPI - لوحة التحكم السحابية لأجهزة إنترنت الأشياء
- PlatformIO IDE لـ VSCode
الخطوة 1: قياس درجة الحرارة والرطوبة
كان لدي بالفعل جهاز استشعار DHT11 ، لذلك قررت استخدامه لقياسات درجة الحرارة والرطوبة. دعنا نختار مكتبة Arduino لقراءة بيانات المستشعر.
يحتوي سجل Arduino على العديد من المكتبات ، والتي اخترت منها أكثرها شعبية.
وفقًا لمستودع GitHub الخاص بهم ، نحن مطالبون أيضًا بإضافة حزمة Adafruit Unified Sensor.
الخطوة 2: إنشاء المشروع وتكوينه
لقد وصفت بالفعل كيفية إنشاء مشروع PlatformIO وتثبيت المكتبات في الجزء الأول. يسمى مشروعي "MyNodeMCU". الهيكل مبين أعلاه.
هذا المشروع هو مثال Cloud4RPi تم تعديله بشكل طفيف ، لقد قررت تخزين الرمز المميز للجهاز وبيانات اعتماد Wi-Fi في ملف التكوين بدلاً من الرمز.
يبدو ملف platform.io على النحو التالي:
[platformio] default_envs = nodemcuv2 [env: nodemcuv2] platform = espressif8266 framework = لوحة اردوينو = nodemcuv2
الخطوة 3: تثبيت المكتبات
تركيب المكتبات بسيط للغاية. يمكنك القيام بذلك من الواجهة الرسومية لـ IDE ، أو عن طريق إضافة أسماء المكتبة المطلوبة إلى قسم lib_deps من ملف platform.io:
؛ … lib_deps = cloud4rpi-esp-arduino Adafruit Unified Sensor مكتبة مستشعر DHT build_flags = -D MQTT_MAX_PACKET_SIZE = 1024 -D MQTT_MAX_TRANSFER_SIZE = 128 -D CLOUD4RPI_DEBUG = 0 -D SS_ASS / "_WIF_ASS D CLOUD4RPI_TOKEN = / "_ YOUR_DEVICE_TOKEN _ \"
سيتم تثبيت المكتبات المضافة تلقائيًا في المجلد الفرعي للمشروع.
يبدو رأس main.cpp كما يلي:
# تضمين # تضمين # تضمين # تضمين "DHT.h"
الخطوة 4: قم بتوصيل مستشعر DHT11
يوفر Adafruit مثال DHTtester.ino لاتصال المستشعر.
يقوم هذا الكود بتهيئة جهاز الاستشعار وتحديد بنية لتخزين نتيجة القياس (في حالة نجاحها):
#define DHTPIN 2 // دبوس رقمي متصل بمستشعر DHT # حدد DHTTYPE DHT11 // DHT 11 //… DHT dht (DHTPIN ، DHTTYPE) ؛ dht.begin () ، //… Struct DHT_Result {float h؛ تطفو ر } ؛ DHT_Result dhtResult ؛
توضح الوظيفة التالية كيفية قراءة بيانات المستشعر وتخزينها في بنية البيانات الموضحة أعلاه
readSensors () باطلة {float h = dht.readHumidity () ؛ // قراءة درجة الحرارة على أنها مئوية (الافتراضي) float t = dht.readTemperature () ؛
// تحقق مما إذا فشلت أي قراءات واخرج
if (isnan (h) || isnan (t)) {Serial.println (F ("Failed to read from DHT sensor!"))؛ إرجاع؛ } dhtResult.h = h ؛ dhtResult.t = t ؛ }
الخطوة 5: إرسال البيانات إلى السحابة
بمجرد حصولنا على هذه البيانات ، فإن الخطوة التالية هي إرسالها إلى خدمة Cloud4RPi.
تصف صفحة Cloud4RPi for Arduino API للمكتبة ، وهي عبارة عن مجموعة من الأساليب المستخدمة من أجل:
- إنشاء وقراءة وتحديث المتغيرات ،
- إرسال قيم متغيرة إلى السحابة باستخدام بروتوكول MQTT.
تدعم المكتبة ثلاثة أنواع من المتغيرات: Bool و Numeric و String.
يبدأ سير عمل المكتبة بإنشاء مثيل API باستخدام رمز الجهاز من موقع الويب cloud4rpi.io (راجع جزء المقالة 1 للحصول على التفاصيل).
#if تعريف (CLOUD4RPI_TOKEN) Cloud4RPi c4r (CLOUD4RPI_TOKEN) ؛ #else Cloud4RPi c4r ("!!! _ NO_DEVICE_TOKEN _ !!!")؛ #إنهاء إذا
ثم ، أعلن عن متغيرات قراءات 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 ("وقت التشغيل") ؛
ملاحظة: وظيفة المللي التي أستخدمها للحصول على إعادة تعيين وقت التشغيل إلى الصفر كل 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 ؛ عدد الساعات غير الموقعة = دقيقة / 60 ؛ عدد الأيام غير الموقعة = ساعات / 24 ؛ ثانية - = دقيقة * 60 ؛ دقيقة - = ساعات * 60 ؛ ساعات - = أيام * 24 ؛ sprintf (وقت التشغيل Str، "٪ d يوم٪ 2.2d:٪ 2.2d:٪ 2.2d"، (بايت) أيام، (بايت) ساعة، (بايت) دقيقة، (بايت) ثانية)؛ سلسلة العودة (الجهوزية ستر) ؛ }
تقوم الوظيفة بإخراج سلسلة مثل هذه 5 أيام 10:23:14 بدلاً من رقم كبير غريب.
الخطوة 7: ابدأ المشروع وتصحيحه
بعد تجميع الكود الذي تم إنشاؤه ووميضه في NodeMCU ، يتصل الجهاز بخدمة سحابية ويبدأ في إرسال البيانات.
يمكنك زيادة الإسهاب في التسجيل عن طريق تعيين متغير المعالج المسبق CLOUD4RPI_DEBUG إلى 1 (إضافة -D CLOUD4RPI_DEBUG = 1 إلى قسم build_flags في ملف platform.io).
بعد ذلك ، افتح موقع cloud4rpi.io ولاحظ الجهاز الجديد عبر الإنترنت. افتحه لرؤية جميع القيم المتغيرة المستلمة من الجهاز: المستشعر والتشخيصات.
الخطوة 8: تكوين لوحة القيادة
في هذه الخطوة ، يتم تشغيل اتصال البيانات بالسحابة. الآن ، دعنا نهيئ التمثيل المرئي للبيانات.
لقد استخدمت واجهة مستخدم تكوين لوحة التحكم لإنشاء لوحة المعلومات التالية.
لوحة القيادة قابلة للمشاركة ، لذا أشاركها على الفور مع صديقي.
الخطوة 9: الخاتمة
كود المشروع الكامل متاح في جوهره.
هذا كل شئ حتى الان!
الأسئلة والاقتراحات مرحب بها في التعليقات.
موصى به:
كيفية توصيل Raspberry Pi بالسحابة باستخدام Node.js: 7 خطوات
كيفية توصيل Raspberry Pi بالسحابة باستخدام Node.js: هذا البرنامج التعليمي مفيد لأي شخص يتطلع إلى توصيل Raspberry Pi بالسحابة ، خاصة بمنصة AskSensors IoT ، باستخدام Node.js. إذا لم يكن لديك Raspberry Pi؟ إذا لم يكن لديك Raspberry Pi حاليًا ، فسوف أوصيك بالحصول على Raspberry
توصيل Arduino WiFi بالسحابة باستخدام ESP8266: 7 خطوات
توصيل Arduino WiFi بالسحابة باستخدام ESP8266: سنشرح لك في هذا البرنامج التعليمي كيفية توصيل Arduino الخاص بك بسحابة IoT عبر WiFi ، وسنقوم بتكوين إعداد مكون من Arduino ووحدة ESP8266 WiFi كوحدة IoT Thing ونجعلها جاهزة للتواصل مع سحابة AskSensors .L
ESP8266 مراقبة درجة حرارة Nodemcu باستخدام DHT11 على خادم ويب محلي - احصل على درجة حرارة الغرفة ورطوبتها على متصفحك: 6 خطوات
ESP8266 مراقبة درجة حرارة Nodemcu باستخدام DHT11 على خادم ويب محلي | احصل على درجة حرارة الغرفة ورطوبتها على متصفحك: مرحبًا يا شباب اليوم سنصنع الرطوبة & amp؛ نظام مراقبة درجة الحرارة باستخدام ESP 8266 NODEMCU & amp؛ جهاز استشعار درجة الحرارة DHT11. سيتم الحصول على درجة الحرارة والرطوبة من مستشعر DHT11 & amp؛ يمكن رؤيته على متصفح أي صفحة ويب ستتم إدارتها
أساسيات إنترنت الأشياء: توصيل إنترنت الأشياء الخاص بك بالسحابة باستخدام نظام تشغيل Mongoose: 5 خطوات
أساسيات إنترنت الأشياء: توصيل إنترنت الأشياء الخاص بك بالسحابة باستخدام نظام التشغيل Mongoose: إذا كنت شخصًا يعمل في مجال الإصلاح والإلكترونيات ، في كثير من الأحيان ، ستصادف مصطلح إنترنت الأشياء ، والذي يُختصر عادةً باسم IoT ، وهذا هو يشير إلى مجموعة من الأجهزة التي يمكنها الاتصال بالإنترنت! أن تكون مثل هذا الشخص
كيفية توصيل مستقبل FM بلوحة مكبر للصوت: 5 خطوات
كيفية توصيل مستقبل FM بلوحة مكبر الصوت: Hii friend ، سأقول اليوم كيف يمكننا توصيل أي لوحة استقبال FM بلوحة مكبر صوت. في هذه المدونة ، سأستخدم لوحة استقبال CD1619 IC FM هذه لوحة استقبال FM قديمة .هيا بنا نبدأ،