فهرست مطالب:

ایجاد یک سنسور کیفیت هوا Ino IoT بدون نیاز به ابر: 10 مرحله
ایجاد یک سنسور کیفیت هوا Ino IoT بدون نیاز به ابر: 10 مرحله

تصویری: ایجاد یک سنسور کیفیت هوا Ino IoT بدون نیاز به ابر: 10 مرحله

تصویری: ایجاد یک سنسور کیفیت هوا Ino IoT بدون نیاز به ابر: 10 مرحله
تصویری: The Internet of Things by James Whittaker of Microsoft 2024, نوامبر
Anonim
ایجاد یک سنسور کیفیت هوا Ino IoT بدون نیاز به ابر
ایجاد یک سنسور کیفیت هوا Ino IoT بدون نیاز به ابر
یک سنسور کیفیت هوا Ino IoT ایجاد کنید بدون نیاز به ابر
یک سنسور کیفیت هوا Ino IoT ایجاد کنید بدون نیاز به ابر
ایجاد یک سنسور کیفیت هوا Ino IoT بدون نیاز به ابر
ایجاد یک سنسور کیفیت هوا Ino IoT بدون نیاز به ابر
ایجاد یک سنسور کیفیت هوا Ino IoT بدون نیاز به ابر
ایجاد یک سنسور کیفیت هوا Ino IoT بدون نیاز به ابر

کیفیت هوای داخلی یا خارجی بستگی به بسیاری از منابع آلودگی و همچنین آب و هوا دارد.

این دستگاه با استفاده از 2 تراشه حسگر برخی از متداول ترین و برخی از جالب ترین پارامترها را ضبط می کند.

  • درجه حرارت
  • رطوبت
  • فشار
  • گاز ارگانیک
  • ریز ذرات

سنسورهای مورد استفاده در اینجا 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. برای نصب نصب پشتیبانی esp8266 از Board Manager استفاده کنید. دستورالعمل دقیق را می توانید در اینجا پیدا کنید:
  3. تنظیمات هیئت مدیره برای NodeMCU 1.0 با 1MByte SPIFFS فایل سیستم همانطور که در تصویر نشان داده شده است

مرحله 2: شامل کتابخانه های مورد نیاز

شامل کتابخانه های مورد نیاز
شامل کتابخانه های مورد نیاز

کتابخانه HomeDing برای کارکرد سنسورها و نمایشگرها به کتابخانه های اضافی متداول متکی است.

هنگام نصب کتابخانه HomeDing ، پنجره ای با این کتابخانه های مورد نیاز مشاهده خواهید کرد که می توانند به صورت خودکار در تصویر نصب شوند و نصب همه آنها آسان است.

گاهی اوقات (به دلایل نامعلوم) نصب کتابخانه ها ناموفق است ، بنابراین همه کتابخانه های مورد نیاز باید به صورت دستی نصب شوند.

جزئیات بیشتر درباره کتابخانه های مورد نیاز را می توانید در وب سایت اسناد به آدرس https://homeding.github.io/#page=/elements.md پیدا کنید.

این فهرست کتابخانه های مورد نیاز فعلی است:

  • Adafruit NeoPixel
  • LiquidCrystal_PCF8574.h
  • ESP8266 و ESP32 Oled Driver برای صفحه نمایش SSD1306
  • RotaryEncoder
  • کتابخانه حسگر DHT برای ESPx
  • OneWire

سنسور لیزری ذرات هوا PMS5003 با استفاده از یک سیگنال خطی 9600 baud ارتباط برقرار می کند. این سیگنال با استفاده از کتابخانه SoftwareSerial که با نصب ابزار ESP8266 همراه است ، ضبط می شود. مطمئن شوید که نسخه قدیمی آن به عنوان کتابخانه نصب نشده است.

مرحله 3: طرح نمونه استاندارد را سفارشی کنید

طرح استاندارد نمونه را سفارشی کنید
طرح استاندارد نمونه را سفارشی کنید

مثال استاندارد در حال حاضر برخی از سنسورهای متداول تر را به عنوان عناصر شامل تنها پیکربندی مورد نیاز است.

این امر در مورد سنسور BME680 که توسط BME680 Element پشتیبانی می شود صدق می کند.

سنسور PMS5003 کمتر رایج است و باید با درج عنصر PMS در سیستم عامل فعال شود. این کار با تعریف #تعریف HOMEDING_INCLUDE_PMS در بخش ثبت عناصر طرح ، انجام می شود.

#تعریف HOMEDING_INCLUDE_BME680#تعریف HOMEDING_INCLUDE_PMS

برای سهولت در افزودن دستگاه جدید به شبکه ، می توانید SSID و عبارت عبور وای فای خانگی خود را در فایل secrets.h در کنار فایل طرح استاندارد.ino اضافه کنید. اما می توانید از مدیریت WiFi داخلی برای افزودن دستگاه به شبکه بدون این پیکربندی سخت کد استفاده کنید.

اکنون همه چیز در مورد اجرای طرح انجام شده است و می توان سیستم عامل را کامپایل و بارگذاری کرد.

مرحله 4: رابط کاربری وب را بارگذاری کنید

مثال استاندارد دارای یک پوشه داده است که شامل تمام فایل های UI وب است.

قبل از بارگذاری این فایل ها ، ممکن است بخواهید فایل env.json و config.json را به این مقاله اضافه کنید زیرا این کار را آسان تر می کند.

محتوای این فایل ها چیزی است که دستگاه IoT را خاص کرده و به عنوان یک سنسور کیفیت هوا رفتار می کند. در این داستان به تفصیل توضیح داده شده است.

از ابزار بارگذاری فایل ESP8266 استفاده کنید و همه فایلها را بارگذاری کنید. برای فعال سازی پیکربندی نیاز به راه اندازی مجدد دارد.

مرحله 5: سنسور BME680 را اضافه کنید

سنسور BME680 را اضافه کنید
سنسور BME680 را اضافه کنید
سنسور BME680 را اضافه کنید
سنسور BME680 را اضافه کنید
سنسور BME680 را اضافه کنید
سنسور BME680 را اضافه کنید

سنسور BME680 با استفاده از گذرگاه I2C با برد ارتباط برقرار می کند.

از آنجا که احتمالاً با سایر برنامه های افزودنی مانند سایر حسگرها یا نمایشگرها به اشتراک گذاشته می شود ، در سطح دستگاه در env.json به همراه نام شبکه دستگاه پیکربندی شده است. در اینجا نمونه ای از تنظیمات دستگاه و I2C استخراج شده است:

"دستگاه": {

"0": {"name": "airding" ، "description": "سنسور کیفیت هوا" ، … "i2c-scl": "D2" ، "i2c-sda": "D1"}}

روی صفحه نان می توانید کابل های اتصال به سنسور را مشاهده کنید: 3.3V = قرمز ، GND = سیاه ، SCL = زرد ، SDA = آبی

پیکربندی BME680 را می توان در config.json استفاده کرد:

"bme680": {

"bd": {"address": "0x77"، "readtime": "10s"}}

اقدامات را بعداً اضافه می کنیم.

برای آزمایش تنظیمات فقط از یک مرورگر استفاده کنید و https://airding/board.htm را باز کنید و مقادیر واقعی سنسور را مشاهده خواهید کرد و تقریباً هر 10 ثانیه به روز می شود:

مرحله 6: سنسور PMS5003 را اضافه کنید

سنسور PMS5003 را اضافه کنید
سنسور PMS5003 را اضافه کنید

من یک سنسور با اتصال دوستدار ورق دریافت نکردم ، بنابراین مجبور شدم یکی از اتصالات روی کابل را با استفاده از آهن لحیم کاری خود مستقیماً به صفحه nodemcu وصل کنم. هنوز هم می توانید آن را در تصاویر نهایی ببینید.

قدرت این سنسور باید از Vin گرفته شود که معمولاً توسط گذرگاه USB تغذیه می شود. GND یکسان است اما در کنار پین Vin نیز موجود است.

داده های سنسور در قالب سریال استاندارد 9600 baud منتقل می شوند بنابراین پین های rx و tx و زمان خواندن باید پیکربندی شوند:

"pms": {

"pm25": {"description": "pm25 sensor particle"، "pinrx": "D6"، "pintx": "D5"، "readtime": "10s"}}

اقدامات را بعداً اضافه می کنیم.

برای آزمایش مجدد تنظیمات ، فقط دستگاه را راه اندازی مجدد کرده و از مرورگر استفاده کنید و https://airding/board.htm را باز کنید و مقدار واقعی pm35 سنسور نمایش داده شده را مشاهده خواهید کرد و تقریباً هر 10 ثانیه به روز می شود ، اما این مقدار معمولاً اغلب تغییر نمی کند

با قرار دادن نور شمع در کنار سنسور می توانید مقادیر بالاتری را بدست آورید زیرا شمع بیشتر این ذرات را تولید می کند.

اکنون می توانید همه چیز را در یک محفظه زیبا قرار دهید زیرا سایر پیکربندی ها و حتی به روز رسانی نرم افزار را می توان از راه دور انجام داد.

مرحله 7: اضافه کردن برخی از ویژگی های شبکه

عصاره پیکربندی زیر در env.json فعال است

  • به روزرسانی سیستم عامل به صورت آنی
  • اجازه می دهد تا شبکه را با استفاده از پروتکل شبکه SSDP تشخیص داده و زمان فعلی را از سرور ntp بازیابی کند.

{

… "ota": {"0": {"port": 8266 ، "passwd": "123" ، "description": "به روزرسانی های OTA" از طریق هوا "گوش دهید"}} ، "ssdp": {"0 ": {" سازنده ":" yourname "}} ،" ntptime ": {" 0 ": {" readtime ":" 36h "،" zone ": 2}}}

شما باید منطقه زمانی را با موقعیت مکانی خود تنظیم کنید. اگر شک دارید می توانید از وب سایت https://www.timeanddate.com/ برای دریافت افست از UTC/GMT استفاده کنید. "2" برای تابستان آلمان مناسب است.

همچنین می توانید پس از مطالعه دستورالعمل های مربوط به حالت ذخیره در اسناد در https://homeding.github.io/index.htm#page=/savemo… ، رمز عبور ota را تنظیم کنید.

پس از راه اندازی مجدد ممکن است دستگاه پخش کننده را در شبکه پیدا کنید و پس از دریافت پاسخ از سرور ntp زمان محلی در دسترس است.

مرحله 8: افزودن مقداری ثبت

فقط مقادیر واقعی ممکن است به اندازه کافی نباشد بنابراین می توان از عناصر بیشتری استفاده کرد.

برای این داستان از عنصر Log و NPTTime Element برای ثبت سابقه مقادیر حسگر در یک فایل log استفاده می شود و کارت UI وب برای این عنصر می تواند آن را به صورت نمودار نمایش دهد.

پیکربندی زیر 2 عنصر log را برای گاز و ذرات ایجاد می کند:

{

"log": {"pm": {"description": "log of pm25"، "filename": "/pmlog.txt"، "sizeize": "10000"}، "aq": {"description": " گزارش کیفیت گاز "،" نام فایل ":" /aqlog.txt "،" اندازه فایل ":" 10000 "}}}

مرحله 9: اقدامات

اقدامات
اقدامات

اکنون باید مقادیر واقعی را با استفاده از اقدامات به عناصر log منتقل کنیم. این اقدامات از یک نماد URL برای انتقال یک kay و مقدار به عنصر هدف استفاده می کنند. بسیاری از عناصر از عملکردهای ساطع شده بر روی رویدادهای خاصی که مانند گرفتن مقدار حسگر جدید اتفاق می افتد ، پشتیبانی می کنند.

اقدامات در عنصری که اقدامات را ارسال می کند پیکربندی شده است 2 ورودی مورد نیاز است:

  • رویداد ارزش افزوده pms/p25 با استفاده از یک عمل مقدار ، مقدار واقعی را به عنصر log/pm ارسال می کند.
  • رویداد bme680/bd ongas با استفاده از یک عمل مقدار ، مقدار واقعی را به عنصر log/pm ارسال می کند.

{

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

اکنون همه عناصر پیکربندی شده اند.

مرحله 10: تصاویر و فایلهای پیکربندی

تصاویر و فایلهای پیکربندی
تصاویر و فایلهای پیکربندی
تصاویر و فایلهای پیکربندی
تصاویر و فایلهای پیکربندی
تصاویر و فایلهای پیکربندی
تصاویر و فایلهای پیکربندی

در اینجا تصاویری از آخرین سنسور کیفیت IoT هوای من وجود دارد.

قبل از بارگذاری ، فایلهای پیکربندی برای بارگیری باید به *.json (بدون.txt) تغییر نام دهند.

پیوندها و مراجع

  • مخزن کد منبع HomeDing:
  • مستندات:
  • مثال استاندارد:
  • عنصر BME680:
  • عنصر PMS:
  • عنصر ورود به سیستم:
  • NtpTime Element:

توصیه شده: