جدول المحتويات:

بناء مستشعر جودة الهواء IoT الداخلي بدون سحابة: 10 خطوات
بناء مستشعر جودة الهواء IoT الداخلي بدون سحابة: 10 خطوات

فيديو: بناء مستشعر جودة الهواء IoT الداخلي بدون سحابة: 10 خطوات

فيديو: بناء مستشعر جودة الهواء IoT الداخلي بدون سحابة: 10 خطوات
فيديو: طقعت وهي تصور 😂😂 2024, يونيو
Anonim
قم ببناء مستشعر جودة هواء IoT داخلي لا يتطلب سحابة
قم ببناء مستشعر جودة هواء IoT داخلي لا يتطلب سحابة
قم ببناء مستشعر جودة هواء IoT داخلي لا يتطلب سحابة
قم ببناء مستشعر جودة هواء IoT داخلي لا يتطلب سحابة
قم ببناء مستشعر جودة هواء IoT داخلي لا يتطلب سحابة
قم ببناء مستشعر جودة هواء IoT داخلي لا يتطلب سحابة
قم ببناء مستشعر جودة هواء IoT داخلي لا يتطلب سحابة
قم ببناء مستشعر جودة هواء IoT داخلي لا يتطلب سحابة

تعتمد جودة الهواء الداخلي والخارجي على العديد من مصادر التلوث وكذلك على الطقس.

يلتقط هذا الجهاز بعض المعلمات الشائعة وبعضًا من أكثر المعلمات إثارة للاهتمام باستخدام شريحتين من أجهزة الاستشعار.

  • درجة حرارة
  • رطوبة
  • ضغط
  • الغاز العضوي
  • الجسيمات الدقيقة

المستشعرات المستخدمة هنا هي BME680 للحصول على قيم درجة الحرارة والرطوبة والضغط والغاز العضوي و PMS5003 للحصول على كثافة الجزيئات الدقيقة.

باستخدام مكتبة HomeDing ، من السهل إنشاء جهاز متصل بشبكتك المنزلية فقط ويمكن الوصول إليه والتحكم فيه بواسطة أي متصفح على الشبكة. يأتي مزودًا بمجموعة مختارة من العناصر التي تسمح باستخدام أكثر شرائح الاستشعار والأجهزة والخدمات الأخرى شيوعًا.

كما أنه يوفر حلاً كاملاً لاستضافة جانب الويب داخل الجهاز بدلاً من استخدام حل قائم على السحابة لعرض بيانات المستشعر والتفاعل مع الجهاز.

اللوازم

كل ما تحتاجه لبناء هذا المشروع هو لوحة تعتمد على ESP8266 مثل لوحة nodemcu ومجموعة من أجهزة الاستشعار لقياس جودة الهواء. تدعم مكتبة HomeDing المستخدمة في هذا المشروع بعض شرائح المستشعر الشائعة لدرجة الحرارة والرطوبة والضغط والجودة. هنا يتم استخدام رقاقة BMP680.

  • قابس USB وكابل micro-USB للإمداد بالطاقة.
  • 1 لوحة nodemcu مع وحدة المعالجة المركزية ESP8266.
  • 1 لوحة اندلاع مستشعر BME680.
  • 1 PM2.5 مستشعر ليزر لجسيمات الهواء من النوع PMS5003

من السهل تبديل مستشعر BME680 بمستشعر DHT22 حيث تدعمه المكتبة من بين العديد من الأجهزة الأخرى.

الخطوة 1: إعداد بيئة Arduino لـ ESP8266

قم بإعداد بيئة Arduino لـ ESP8266
قم بإعداد بيئة Arduino لـ ESP8266
  1. قم بتثبيت أحدث إصدار من Arduino IDE (الإصدار 1.8.2 حاليًا).
  2. استخدم Board Manager لتثبيت دعم esp8266 ، ويمكن العثور على تعليمات مفصلة هنا: https://arduino-esp8266.readthedocs.io/en/latest/i …
  3. قم بإعداد خيارات اللوحة لـ NodeMCU 1.0 مع نظام ملفات SPIFFS 1 ميجا بايت كما هو موضح في لقطة الشاشة

الخطوة 2: قم بتضمين المكتبات المطلوبة

قم بتضمين المكتبات المطلوبة
قم بتضمين المكتبات المطلوبة

تعتمد مكتبة HomeDing على بعض المكتبات الإضافية الشائعة لأجهزة الاستشعار وشاشات العرض للعمل.

عندما تقوم بتثبيت مكتبة HomeDing ، سترى نافذة منبثقة بها هذه المكتبات المطلوبة التي يمكن تثبيتها تلقائيًا كما هو موضح في الصورة ومن السهل تثبيتها جميعًا.

في بعض الأحيان (لأسباب غير معروفة) يفشل تثبيت المكتبات لذا يلزم تثبيت جميع المكتبات المطلوبة يدويًا.

يمكن العثور على مزيد من التفاصيل حول المكتبات المطلوبة على موقع التوثيق على

هذه قائمة المكتبات المطلوبة حاليًا:

  • Adafruit NeoPixel
  • LiquidCrystal_PCF8574.h
  • ESP8266 و ESP32 Oled Driver لعرض SSD1306
  • الروتاري التشفير
  • مكتبة مستشعر DHT لـ ESPx
  • OneWire

يتصل مستشعر ليزر جزيئات الهواء PMS5003 باستخدام إشارة خط تسلسلي باود 9600. يتم التقاط هذه الإشارة باستخدام مكتبة SoftwareSerial التي تأتي مع تثبيت أدوات ESP8266. تأكد من عدم تثبيت إصدار أقدم كمكتبة.

الخطوة 3: تخصيص النموذج القياسي للرسم التخطيطي

تخصيص النموذج القياسي للرسم التخطيطي
تخصيص النموذج القياسي للرسم التخطيطي

يشتمل المثال القياسي بالفعل على بعض المستشعرات الأكثر شيوعًا كعناصر ، لذا لن يلزم سوى بعض التكوين.

ينطبق هذا على مستشعر BME680 الذي يدعمه عنصر BME680.

يعتبر مستشعر PMS5003 أقل شيوعًا ويحتاج إلى تنشيطه من خلال تضمين عنصر PMS في البرنامج الثابت. يتم ذلك عن طريق تحديد #define HOMEDING_INCLUDE_PMS في قسم تسجيل العناصر في الرسم التخطيطي

#define HOMEDING_INCLUDE_BME680 # حدد HOMEDING_INCLUDE_PMS

للتبسيط عند إضافة الجهاز الجديد إلى الشبكة ، يمكنك إضافة SSID وعبارة المرور لشبكة WiFi المنزلية في ملف secrets.h بجوار ملف الرسم القياسي. ولكن يمكنك أيضًا استخدام WiFi Manager المدمج لإضافة الجهاز إلى الشبكة بدون هذا التكوين المشفر.

الآن تم الانتهاء من كل شيء يتعلق بتنفيذ المخطط ويمكن تجميع البرامج الثابتة وتحميلها.

الخطوة 4: قم بتحميل Web UI

يأتي المثال القياسي مع مجلد بيانات يحتوي على كل الملفات لواجهة مستخدم الويب.

قبل تحميل هذه الملفات ، قد ترغب في إضافة ملف env.json و config.json الذي يمكنك العثور عليه في هذه المقالة لأن هذا سيجعل الأمور أسهل.

محتوى هذه الملفات هو ما يجعل جهاز إنترنت الأشياء خاصًا ويتصرف كجهاز استشعار جودة الهواء. تم شرحه بالتفصيل في هذه القصة.

استخدم الأداة المساعدة لتحميل الملفات ESP8266 وقم بتحميل جميع الملفات. يحتاج إلى إعادة تشغيل لتفعيل التكوين.

الخطوة 5: أضف مستشعر BME680

أضف مستشعر BME680
أضف مستشعر BME680
أضف مستشعر BME680
أضف مستشعر BME680
أضف مستشعر BME680
أضف مستشعر BME680

يتواصل مستشعر BME680 باللوحة باستخدام ناقل I2C.

نظرًا لأنه من المحتمل أن تتم مشاركة ذلك مع ملحقات أخرى مثل أجهزة الاستشعار أو شاشات العرض الأخرى ، فقد تم تكوينه على مستوى الجهاز في env.json مع اسم شبكة الجهاز. فيما يلي عينة مستخرجة من إعدادات الجهاز و I2C:

"جهاز": {

"0": {"name": "airding"، "description": "Air Quality Sensor"، … "i2c-scl": "D2"، "i2c-sda": "D1"}}

على اللوح يمكنك رؤية كبلات التوصيل بالمستشعر: 3.3 فولت = أحمر ، GND = أسود ، SCL = أصفر ، SDA = أزرق

يمكن استخدام تكوين BME680 في config.json:

"bme680": {

"bd": {"العنوان": "0x77"، "readtime": "10s"}}

سنضيف الإجراءات لاحقًا.

لاختبار الإعداد ، ما عليك سوى استخدام المتصفح وافتح https://airding/board.htm وسترى القيم الفعلية للمستشعر معروضة وسيتم تحديثها كل 10 ثوانٍ تقريبًا:

الخطوة 6: أضف مستشعر PMS5003

أضف مستشعر PMS5003
أضف مستشعر PMS5003

لم أحصل على جهاز استشعار مع موصل سهل اللوح ، لذلك اضطررت إلى قطع أحد الموصلات الموجودة على الكبل باستخدام مكواة اللحام الخاصة بي لتوصيلها مباشرة بلوحة nodemcu. لا يزال بإمكانك رؤيته في الصور النهائية.

يجب أخذ طاقة هذا المستشعر من Vin الذي يتم تشغيله عادةً بواسطة ناقل USB. GND هو نفسه ولكنه متاح أيضًا بجوار دبوس Vin.

يتم نقل البيانات من المستشعر بتنسيق تسلسلي باود 9600 قياسي لذلك يجب تكوين دبابيس rx و tx ووقت القراءة:

"pms": {

"pm25": {"description": "مستشعر الجسيمات pm25"، "pinrx": "D6"، "pintx": "D5"، "readtime": "10s"}}

سنضيف الإجراءات لاحقًا.

لاختبار الإعداد مرة أخرى ، ما عليك سوى إعادة تشغيل الجهاز واستخدام المتصفح وفتح https://airding/board.htm وسترى القيمة الفعلية للمستشعر pm35 المعروضة وسيتم تحديثها كل 10 ثوانٍ تقريبًا ولكن هذه القيمة عادة لا يتغير في كثير من الأحيان.

يمكنك الحصول على قيم أعلى عن طريق وضع ضوء الشمعة بجوار المستشعر لأن الشمعة تنتج الكثير من هذه الجسيمات.

يمكنك الآن وضع كل شيء في مسكن لطيف لأنه يمكن إجراء جميع التكوينات الأخرى وحتى تحديثات البرامج عن بُعد.

الخطوة 7: إضافة بعض ميزات الشبكة

تم تمكين مقتطف التكوين التالي في env.json

  • تحديث البرامج الثابتة عبر الأثير
  • يسمح باكتشاف الشبكة باستخدام بروتوكول شبكة SSDP واسترداد الوقت الحالي من خادم ntp.

{

… "ota": {"0": {"المنفذ": 8266، "passwd": "123"، "description": "استمع إلى تحديثات OTA 'عبر الهواء"}}، "ssdp": {"0 ": {" الشركة المصنعة ":" yourname "}}،" ntptime ": {" 0 ": {" readtime ":" 36h "،" zone ": 2}}}

يجب عليك ضبط المنطقة الزمنية على موقعك. إذا كنت في شك ، يمكنك استخدام موقع الويب https://www.timeanddate.com/ للحصول على الإزاحة من UTC / GMT. "2" مناسب لفصل الصيف في ألمانيا.

يمكنك أيضًا ضبط كلمة مرور ota بعد قراءة التعليمات المتعلقة بوضع الحفظ في الوثائق على https://homeding.github.io/index.htm#page=/savemo …

بعد إعادة التشغيل ، قد تجد جهاز airding على الشبكة وبعد الحصول على رد من خادم ntp ، يكون الوقت المحلي متاحًا.

الخطوة 8: إضافة بعض التسجيل

قد لا تعطي القيم الفعلية فقط ما يكفي لذلك يمكن استخدام المزيد من العناصر.

بالنسبة لهذه القصة ، يتم استخدام عنصر السجل وعنصر NPTTime لتسجيل محفوظات قيم المستشعر في ملف السجل ويمكن لبطاقة واجهة مستخدم الويب الخاصة بهذا العنصر عرضها كرسم بياني.

يُنشئ التكوين التالي عنصري السجل للغاز والجسيمات:

{

"السجل": {"pm": {"description": "Log of pm25"، "filename": "/pmlog.txt"، "الملف": "10000"}، "aq": {"description": " سجل جودة الغاز "،" اسم الملف ":" /aqlog.txt "،" الملف ":" 10000 "}}}

الخطوة 9: الإجراءات

أجراءات
أجراءات

نحتاج الآن إلى نقل القيم الفعلية إلى عناصر السجل باستخدام الإجراءات. تستخدم الإجراءات ترميز URL لتمرير kay والقيمة إلى العنصر الهدف. تدعم العديد من العناصر إجراءات الانبعاث في أحداث معينة تحدث مثل التقاط قيمة مستشعر جديدة.

يتم تكوين الإجراءات في العنصر الذي يصدر الإجراءات 2 مطلوب إدخالات:

  • يرسل الحدث pms / p25 onvalue القيمة الفعلية إلى عنصر log / pm باستخدام إجراء القيمة.
  • يرسل الحدث bme680 / bd ongas القيمة الفعلية إلى عنصر log / pm باستخدام إجراء القيمة.

{

"pms": {"pm25": {… "onvalue": "log / pm؟ value = $ v"}}، "bme680": {"bd": {… "ongas": "log / aq؟ value = $ v "}}}

الآن تم تكوين جميع العناصر.

الخطوة 10: ملفات الصور والتكوين

ملفات الصور والتكوين
ملفات الصور والتكوين
ملفات الصور والتكوين
ملفات الصور والتكوين
ملفات الصور والتكوين
ملفات الصور والتكوين

إليكم بعض الصور لأخر مستشعر جودة الهواء IoT.

يجب إعادة تسمية ملفات التكوين للتنزيل إلى *.json (no.txt) قبل تحميلها.

الروابط والمراجع

  • مستودع كود مصدر HomeDing:
  • التوثيق:
  • مثال قياسي:
  • عنصر BME680:
  • عنصر PMS:
  • عنصر السجل:
  • عنصر NtpTime:

موصى به: