جدول المحتويات:
- الخطوة 1: فاتورة المواد
- الخطوة 2: جهاز استشعار درجة الحرارة DS18B20
- الخطوة 3: توصيل المستشعرات بـ NodeMCU
- الخطوة 4: تثبيت المكتبات الملائمة
- الخطوة الخامسة: اختبار المستشعرات
- الخطوة 6: استخدام Blynk
- الخطوة 7: الخاتمة
فيديو: أصبح إنترنت الأشياء بسيطًا: مراقبة أجهزة الاستشعار المتعددة: 7 خطوات
2024 مؤلف: John Day | [email protected]. آخر تعديل: 2024-01-30 07:40
قبل بضعة أسابيع ، نشرت هنا برنامجًا تعليميًا حول مراقبة درجة الحرارة باستخدام DS18B20 ، وهو مستشعر رقمي يتصل عبر ناقل بسلك واحد ، ويرسل البيانات عبر الإنترنت باستخدام NodeMCU و Blynk:
أصبح إنترنت الأشياء بسيطًا: مراقبة درجة الحرارة في أي مكان
لكن ما فاتنا في الاستكشاف ، كان إحدى المزايا العظيمة لهذا النوع من أجهزة الاستشعار وهي إمكانية جمع بيانات متعددة ، من أجهزة استشعار متعددة متصلة بنفس ناقل السلك الواحد. والآن حان الوقت لاستكشافه أيضًا.
سنقوم بتوسيع ما تم تطويره في البرنامج التعليمي الأخير ، ومراقبة الآن جهازي استشعار DS18B20 ، تم تكوين أحدهما في Celcius والآخر في فهرنهايت. سيتم إرسال البيانات إلى تطبيق Blynk ، كما هو موضح في مخطط الكتلة أعلاه.
الخطوة 1: فاتورة المواد
- NodeMCU ESP 12-E (*)
- 2 X DS18B20 مستشعر درجة الحرارة
- المقاوم 4.7 كيلو أوم
- اللوح
- الأسلاك
(*) يمكن استخدام أي نوع من أجهزة ESP هنا. الأكثر شيوعًا هي NodeMCU V2 أو V3. كلاهما سيعمل بشكل جيد دائمًا.
الخطوة 2: جهاز استشعار درجة الحرارة DS18B20
سنستخدم في هذا البرنامج التعليمي نسخة مقاومة للماء من مستشعر DS18B20. إنه مفيد جدًا لدرجة الحرارة البعيدة في الظروف الرطبة ، على سبيل المثال في التربة الرطبة. المستشعر معزول ويمكنه إجراء القياسات حتى 125 درجة مئوية (لا ينصح Adafrut باستخدامه فوق 100 درجة مئوية بسبب غلاف الكابل PVC الخاص به).
DS18B20 هو مستشعر رقمي يجعله جيدًا للاستخدام حتى لمسافات طويلة! تتميز مستشعرات درجة الحرارة الرقمية المكونة من سلك واحد بأنها دقيقة إلى حد ما (± 0.5 درجة مئوية على جزء كبير من النطاق) ويمكن أن تعطي ما يصل إلى 12 بتًا من الدقة من المحول الرقمي إلى التناظري المدمج. إنها تعمل بشكل رائع مع NodeMCU باستخدام دبوس رقمي واحد ، ويمكنك حتى توصيل عدة منها بنفس الدبوس ، كل واحد لديه معرف 64 بت فريد تم نسخه في المصنع للتمييز بينها.
يعمل المستشعر من 3.0 إلى 5.0 فولت ، مما يعني أنه يمكن تشغيله مباشرة من أحد دبابيس NodeMCU 3.3 فولت.
يحتوي المستشعر على 3 أسلاك:
- أسود: GND
- الأحمر: VCC
- الأصفر: بيانات سلك واحد
هنا ، يمكنك العثور على البيانات الكاملة: DS18B20 Datasheet
الخطوة 3: توصيل المستشعرات بـ NodeMCU
- قم بتوصيل الأسلاك الثلاثة من كل جهاز استشعار في لوحة التوصيل الصغيرة كما هو موضح في الصورة أعلاه. لقد استخدمت موصلات خاصة لإصلاح كبل المستشعر بشكل أفضل.
-
لاحظ أن كلا المستشعرين متوازيان. إذا كان لديك أكثر من مستشعرين ، فيجب أن تفعل الشيء نفسه.
- أحمر ==> 3.3 فولت
- أسود ==> GND
- أصفر ==> D4
- استخدم المقاوم 4.7K أوم بين VCC (3.3V) والبيانات (D4)
الخطوة 4: تثبيت المكتبات الملائمة
من أجل استخدام DS18B20 بشكل صحيح ، سيكون من الضروري وجود مكتبتين:
- OneWire
- دالاس درجة الحرارة
قم بتثبيت كلتا المكتبتين في مستودع Arduino IDE Library الخاص بك.
لاحظ أنه يجب أن تكون مكتبة OneWire هي المكتبة الخاصة ، وأن يتم تعديلها لاستخدامها مع ESP8266 ، وإلا ستحصل على خطأ أثناء التجميع. ستجد الإصدار الأخير في الرابط أعلاه.
الخطوة الخامسة: اختبار المستشعرات
لاختبار أجهزة الاستشعار ، قم بتنزيل الملف أدناه من GitHub الخاص بي:
NodeMCU_DS18B20_Dual_Se nsor_test.ino
/**************************************************************
* اختبار مرسل درجة الحرارة المتعددة * * 2 × مستشعر OneWire: DS18B20 * متصل بـ NodeMCU D4 (أو Arduino Pin 2) * * تم تطويره بواسطة Marcelo Rovai - 25 أغسطس 2017 **************** **********************************************/ #يشمل # قم بتضمين #define ONE_WIRE_BUS 2 // DS18B20 على NodeMCU pin D4 OneWire oneWire (ONE_WIRE_BUS) ؛ DallasTemperature DS18B20 (وسلك واحد) ؛ إعداد باطل () {Serial.begin (115200) ؛ DS18B20.begin () ، Serial.println ("اختبار بيانات جهاز الاستشعار المزدوج") ؛ } void loop () {float temp_0؛ تعويم temp_1 ؛ DS18B20.requestTemperatures () ، temp_0 = DS18B20.getTempCByIndex (0) ، // سوف يلتقط المستشعر 0 درجة الحرارة بالدرجة المئوية المئوية temp_1 = DS18B20.getTempFByIndex (1) ؛ // سوف يلتقط المستشعر 0 درجة الحرارة في فهرنهايت Serial.print ("Temp_0:") ؛ Serial.print (temp_0) ؛ Serial.print ("oC. Temp_1:") ؛ Serial.print (temp_1) ؛ Serial.println ("oF") ؛ تأخير (1000) ؛ }
بالنظر إلى الكود أعلاه ، يجب أن نلاحظ أن أهم الأسطر هي:
temp_0 = DS18B20.getTempCByIndex (0) ، // سوف يلتقط المستشعر 0 درجة الحرارة بالدرجة المئوية
temp_1 = DS18B20.getTempFByIndex (1) ، // سوف يلتقط المستشعر 0 درجة الحرارة بالفهرنهايت
أول واحد سيعيد قيمة من المستشعر [0] (انظر "الفهرس (0)") في Celcius (انظر جزء الكود: "getTempC". السطر الثاني مرتبط بجهاز الاستشعار [1] وسيعيد البيانات في فهرنهايت. يمكن أن يكون لديك هنا مستشعرات "n" لأن لديك "فهرس" مختلف لكل واحد منهم.
قم الآن بتحميل الكود في NodeMCU الخاص بك وراقب درجة الحرارة باستخدام Serial Monitor.
الصورة أعلاه تظهر النتيجة المتوقعة. أمسك كل من المستشعرات في يدك ، ستلاحظ ارتفاع درجة الحرارة.
الخطوة 6: استخدام Blynk
بمجرد أن تبدأ في التقاط بيانات درجة الحرارة ، حان الوقت لرؤيتها من أي مكان. سنفعل هذا باستخدام Blynk. لذلك ، سيتم عرض جميع البيانات الملتقطة في الوقت الفعلي على جهازك المحمول وسنقوم أيضًا ببناء مستودع تاريخي لذلك.
اتبع الخطوات التالية:
- قم بإنشاء مشروع جديد.
- أعطها اسمًا (في حالتي "مراقب درجة الحرارة المزدوجة")
- حدد جهاز جديد - ESP8266 (WiFi) باسم "أجهزتي"
- انسخ رمز المصادقة لاستخدامه في الرمز (يمكنك إرساله إلى بريدك الإلكتروني).
-
يشتمل على أداتي "مقياس" ، تحدد:
- يتم استخدام دبوس افتراضي مع كل مستشعر: V10 (المستشعر [0]) و V11 (المستشعر [1])
- نطاق درجة الحرارة: -5 إلى 100 درجة مئوية لجهاز الاستشعار [0]
- نطاق درجة الحرارة: 25 إلى 212 درجة مئوية لجهاز الاستشعار [1]
- معدل تكرار قراءة البيانات: ثانية واحدة
- يتضمن أداة "رسم بياني للتاريخ" تحدد V10 و V11 كدبابيس افتراضية
- اضغط على "تشغيل" (المثلث في الزاوية اليمنى لأعلى)
بالطبع ، سوف يتصل بك تطبيق Blynk بأن NodeMCU خارج الخط. حان الوقت لتحميل الكود الكامل على Arduino IDE الخاص بك. يمكنك الحصول عليه هنا:
NodeMCU_Dual_Sensor_Blynk_Ext.ino
قم بتغيير "البيانات الوهمية" باستخدام بيانات الاعتماد الخاصة بك.
/ * أوراق اعتماد Blynk * /
char auth = "BLYNK AUTH CODE الخاص بك هنا" ؛ / * بيانات اعتماد WiFi * / char ssid = "SSID الخاص بك" ؛ char pass = "YOUR PASSWORD" ؛
وهذا كل شيء!
خوار الكود الكامل. إنه في الأساس الكود السابق ، حيث أدخلنا معلمات Blynk ووظائف محددة. لاحظ السطرين الأخيرين من الكود. هذه هي الأهم هنا. إذا كان لديك المزيد من أجهزة الاستشعار التي تجمع البيانات ، فيجب أن يكون لديك أيضًا خطوط جديدة مكافئة مثل تلك الخطوط (مع تحديد دبابيس افتراضية جديدة ذات صلة).
/**************************************************************
* IoT Multi Temperature Monitor مع Blynk * مكتبة Blynk مرخصة بموجب ترخيص MIT * رمز المثال هذا في المجال العام. * * مستشعر متعدد الأسلاك الواحدة: DS18B20 * تم تطويره بواسطة مارسيلو روفاي - 25 أغسطس 2017 ************************************ **************************** / / * ESP & Blynk * / #include #include #define BLYNK_PRINT Serial // التعليق على هذا تعطيل المطبوعات وتوفير مساحة / * بيانات اعتماد Blynk * / char auth = "BLYNK AUTH CODE الخاص بك هنا"؛ / * بيانات اعتماد WiFi * / char ssid = "SSID الخاص بك" ؛ char pass = "YOUR PASSWORD" ؛ / * TIMER * / # تضمين مؤقت SimpleTimer ؛ / * DS18B20 مستشعر درجة الحرارة * / #include #include #define ONE_WIRE_BUS 2 // DS18B20 على arduino pin2 يتوافق مع D4 على اللوحة المادية OneWire oneWire (ONE_WIRE_BUS) ؛ DallasTemperature DS18B20 (وسلك واحد) ؛ كثافة العمليات temp_0 ؛ int temp_1 ؛ إعداد باطل () {Serial.begin (115200) ؛ Blynk.begin (auth ، ssid ، pass) ؛ DS18B20.begin () ، timer.setInterval (1000L، getSendData) ، Serial.println ("") ؛ Serial.println ("اختبار بيانات جهاز الاستشعار المزدوج") ؛ } حلقة فارغة () {timer.run () ؛ // يبدأ SimpleTimer Blynk.run () ؛ } / ************************************************** *** * إرسال بيانات الاستشعار إلى Blynk ******************************************* ********* / void getSendData () {DS18B20.requestTemperatures () ؛ temp_0 = DS18B20.getTempCByIndex (0) ، // سوف يلتقط المستشعر 0 درجة الحرارة بالدرجة المئوية المئوية temp_1 = DS18B20.getTempFByIndex (1) ؛ // سوف يلتقط المستشعر 0 درجة الحرارة في فهرنهايت Serial.print ("Temp_0:") ؛ Serial.print (temp_0) ؛ Serial.print ("oC. Temp_1:") ؛ Serial.print (temp_1) ؛ Serial.println ("oF") ؛ Blynk.virtualWrite (10 ، temp_0) ؛ // Virtual pin V10 Blynk.virtualWrite (11 ، temp_1) ؛ // رقم التعريف الشخصي V11}
بمجرد تحميل الرمز وتشغيله ، تحقق من تطبيق Blynk. يجب أن يعمل الآن أيضًا كما هو موضح أعلاه شاشة الطباعة من جهاز iPhone الخاص بي.
الخطوة 7: الخاتمة
كما هو الحال دائمًا ، آمل أن يساعد هذا المشروع الآخرين في العثور على طريقهم في عالم الإلكترونيات والروبوتات المثير وإنترنت الأشياء!
يرجى زيارة GitHub الخاص بي للحصول على الملفات المحدثة: NodeMCU Dual Temp Monitor
لمزيد من المشاريع ، يرجى زيارة مدونتي: MJRoBot.org
Saludos من جنوب العالم!
نراكم في بلدي التعليمات القادمة!
شكرا لك،
مارسيلو
موصى به:
وحدة طاقة إنترنت الأشياء: إضافة ميزة قياس طاقة إنترنت الأشياء إلى وحدة التحكم في شحن الطاقة الشمسية لدي: 19 خطوة (بالصور)
وحدة طاقة إنترنت الأشياء: إضافة ميزة قياس طاقة إنترنت الأشياء إلى وحدة التحكم في شحن الطاقة الشمسية الخاصة بي: مرحبًا بالجميع ، أتمنى أن تكونوا جميعًا رائعون! في هذا الدليل ، سأوضح لك كيف صنعت وحدة قياس طاقة إنترنت الأشياء التي تحسب كمية الطاقة التي تولدها الألواح الشمسية الخاصة بي ، والتي يتم استخدامها بواسطة جهاز التحكم في الشحن الشمسي الخاص بي
أساسيات إنترنت الأشياء: توصيل إنترنت الأشياء الخاص بك بالسحابة باستخدام نظام تشغيل Mongoose: 5 خطوات
أساسيات إنترنت الأشياء: توصيل إنترنت الأشياء الخاص بك بالسحابة باستخدام نظام التشغيل Mongoose: إذا كنت شخصًا يعمل في مجال الإصلاح والإلكترونيات ، في كثير من الأحيان ، ستصادف مصطلح إنترنت الأشياء ، والذي يُختصر عادةً باسم IoT ، وهذا هو يشير إلى مجموعة من الأجهزة التي يمكنها الاتصال بالإنترنت! أن تكون مثل هذا الشخص
مراقبة تجمع إنترنت الأشياء باستخدام لوحة الأشياء: 8 خطوات
مراقبة IoT Pool with ThingsBoard: سيوضح هذا التوجيه كيفية مراقبة الأس الهيدروجيني و ORP ودرجة حرارة تجمع أو منتجع صحي وتحميل البيانات إلى خدمة التصور والتخزين في ThingsBoard.io
UbiDots - توصيل ESP32 ونشر بيانات أجهزة الاستشعار المتعددة: 6 خطوات
UbiDots - توصيل ESP32 ونشر بيانات أجهزة الاستشعار المتعددة: ESP32 و ESP 8266 مألوفان جدًا في مجال إنترنت الأشياء. هذه نوع من النعمة لمشاريع إنترنت الأشياء. ESP 32 عبارة عن جهاز مزود بشبكات WiFi و BLE مدمجة. فقط أعط SSID وكلمة المرور وتكوينات IP ودمج الأشياء في
CloudyData - ESP8266 إلى Google Sheets أصبح بسيطًا: 10 خطوات (بالصور)
CloudyData - ESP8266 to Google Sheets Made Simple: لقد كنت أبحث عن تخزين البيانات السحابية لفترة طويلة خلال السنوات الماضية: من المثير للاهتمام مراقبة البيانات من أي نوع من أجهزة الاستشعار ، ولكن من المثير للاهتمام أكثر إذا كانت هذه البيانات متوفرة في كل مكان بدون أي صعوبة في التخزين مثل استخدام SD