Mundarija:

Ichki IoT havo sifati sensori yaratish uchun bulut kerak emas: 10 qadam
Ichki IoT havo sifati sensori yaratish uchun bulut kerak emas: 10 qadam

Video: Ichki IoT havo sifati sensori yaratish uchun bulut kerak emas: 10 qadam

Video: Ichki IoT havo sifati sensori yaratish uchun bulut kerak emas: 10 qadam
Video: Xotirani kuchaytiruvchi 10 ta SIR. Hamma uchun birdek to'gri keladi! 10 daqiqada 2024, Noyabr
Anonim
IoT havo sifatini aniqlash uchun ichki bino yaratish uchun bulut kerak emas
IoT havo sifatini aniqlash uchun ichki bino yaratish uchun bulut kerak emas
IoT havo sifatini aniqlash uchun uy ichidagi bulutni yaratish shart emas
IoT havo sifatini aniqlash uchun uy ichidagi bulutni yaratish shart emas
IoT havo sifatini aniqlash uchun uy ichidagi bulutni yaratish shart emas
IoT havo sifatini aniqlash uchun uy ichidagi bulutni yaratish shart emas
IoT havo sifatini aniqlash uchun ichki bino yaratish uchun bulut kerak emas
IoT havo sifatini aniqlash uchun ichki bino yaratish uchun bulut kerak emas

Ichki yoki tashqi havoning sifati ko'p ifloslanish manbalariga, shuningdek ob -havoga bog'liq.

Ushbu qurilma ikkita sensorli chip yordamida ba'zi umumiy va eng qiziqarli parametrlarni oladi.

  • Harorat
  • Namlik
  • Bosim
  • Organik gaz
  • Mikro-zarrachalar

Bu erda harorat, namlik, bosim va organik gaz qiymatlarini olish uchun BME680 va mikro zarrachalarning zichligini olish uchun PMS5003 ishlatiladi.

HomeDing kutubxonasidan foydalanib, faqat uy tarmog'iga ulangan va uni tarmoqdagi istalgan brauzer orqali boshqaradigan qurilmani yaratish oson. U eng keng tarqalgan sensorli chiplar, qurilmalar va boshqa xizmatlardan foydalanishga imkon beruvchi elementlar tanlovi bilan birga keladi.

Bu, shuningdek, sensor ma'lumotlarini ko'rsatish va qurilma bilan o'zaro aloqada bo'lish uchun bulutli echimdan foydalanish o'rniga, qurilmaning ichki qismini joylashtirish uchun to'liq echimni olib keladi.

Ta'minotlar

Ushbu loyihani yaratish uchun sizga ESP8266 asosidagi nodemcu taxtasi va havo sifatini o'lchash uchun sensorlar to'plami kerak bo'ladi. Ushbu loyihada qo'llaniladigan HomeDing kutubxonasi harorat, namlik, bosim va sifat uchun umumiy sensorlar chiplarini qo'llab -quvvatlaydi. Bu erda BMP680 chipi ishlatiladi.

  • Quvvat manbai uchun USB vilkasi va micro-usb kabeli.
  • ESP8266 protsessorli 1 ta nodemcu karta.
  • 1 BME680 sensorli sindiruvchi taxtasi.
  • PMS5003 tipidagi 1 PM2.5 havo zarrachali lazer sensori

BME680 sensorini DHT22 sensori bilan almashtirish oson, chunki ular kutubxona tomonidan qo'llab -quvvatlanadi.

1 -qadam: Arduino muhitini ESP8266 uchun tayyorlang

Arduino muhitini ESP8266 uchun tayyorlang
Arduino muhitini ESP8266 uchun tayyorlang
  1. Arduino IDE -ning so'nggi versiyasini o'rnating (hozirgi versiya 1.8.2).
  2. Esp8266 qo'llab-quvvatlashini o'rnatish uchun boshqaruv menejeridan foydalaning. Batafsil ko'rsatmani bu erda topishingiz mumkin:
  3. Skrinshotda ko'rsatilgandek, 1MByte SPIFFS fayl tizimi bilan NodeMCU 1.0 uchun taxta variantlarini o'rnating.

2 -qadam: Kerakli kutubxonalarni qo'shing

Kerakli kutubxonalarni qo'shing
Kerakli kutubxonalarni qo'shing

HomeDing kutubxonasi datchiklar va displeylarning ishlashi uchun ba'zi umumiy qo'shimcha kutubxonalarga tayanadi.

HomeDing kutubxonasini o'rnatganingizda, siz kerakli kutubxonalarga ega bo'lgan popupni ko'rasiz, ularni avtomatik ravishda rasmda ko'rsatish mumkin va ularni hammasini o'rnatish oson.

Ba'zida (noma'lum sabablarga ko'ra) kutubxonalarni o'rnatish muvaffaqiyatsiz bo'ladi, shuning uchun barcha kerakli kutubxonalarni qo'lda o'rnatish kerak bo'ladi.

Kerakli kutubxonalar haqida batafsil ma'lumotni https://homeding.github.io/#page=/elements.md manzilidagi hujjatlar veb -saytida topishingiz mumkin.

Bu hozirgi talab qilinadigan kutubxonalar ro'yxati:

  • Adafruit NeoPixel
  • LiquidCrystal_PCF8574.h
  • SSD1306 displeyi uchun ESP8266 va ESP32 Oled drayveri
  • Rotary kodlovchi
  • ESPx uchun DHT sensorlar kutubxonasi
  • OneWire

PMS5003 havo zarrachalari lazer sensori 9600 bayt ketma -ket chiziqli signal yordamida aloqa qiladi. Bu signal ESP8266 vositalarini o'rnatish bilan birga kelgan SoftwareSerial kutubxonasi yordamida olinadi. Kutubxona sifatida eski versiyasi o'rnatilmaganligiga ishonch hosil qiling.

3 -qadam: Standart namunaviy eskizni moslashtiring

Standart namunaviy eskizni moslashtiring
Standart namunaviy eskizni moslashtiring

Standart misol allaqachon ba'zi keng tarqalgan sensorlarni element sifatida o'z ichiga oladi, shuning uchun faqat ba'zi konfiguratsiya talab qilinadi.

Bu BME680 elementi tomonidan qo'llab -quvvatlanadigan BME680 sensori uchun amal qiladi.

PMS5003 sensori kamroq tarqalgan va uni dasturiy ta'minotga PMS elementini qo'shish orqali faollashtirish kerak. Bu eskizning elementlar registri bo'limida #define HOMEDING_INCLUDE_PMS ni aniqlash orqali amalga oshiriladi.

#HOMEDING_INCLUDE_BME680 ni belgilang#HOMEDING_INCLUDE_PMS ni aniqlang

Tarmoqqa yangi qurilmani qo'shishning soddaligi uchun standard.ino sketch faylining yonidagi secret.h fayliga uy Wi -Fi -ning SSID va parolini qo'shishingiz mumkin. Qurilmani tarmoqqa ushbu qattiq kodli konfiguratsiyasiz qo'shish uchun siz o'rnatilgan WiFi menejeridan ham foydalanishingiz mumkin.

Endi eskizni amalga oshirish bilan bog'liq hamma narsa bajarildi va dasturiy ta'minotni kompilyatsiya qilish va yuklash mumkin.

4 -qadam: Internet interfeysini yuklang

Standart misol veb -interfeys uchun barcha fayllarni o'z ichiga olgan ma'lumotlar papkasi bilan birga keladi.

Bu fayllarni yuklamasdan oldin siz bu maqolada topiladigan env.json va config.json fayllarini qo'shishni xohlashingiz mumkin, chunki bu ishni osonlashtiradi.

Ushbu fayllarning mazmuni IoT qurilmasini havo sifati sensori sifatida o'ziga xos qiladi. Bu hikoyada batafsil tushuntirilgan.

ESP8266 faylni yuklash yordam dasturidan foydalaning va barcha fayllarni yuklang. Konfiguratsiyani faollashtirish uchun uni qayta yuklash kerak.

5 -qadam: BME680 sensorini qo'shing

BME680 sensorini qo'shing
BME680 sensorini qo'shing
BME680 sensorini qo'shing
BME680 sensorini qo'shing
BME680 sensorini qo'shing
BME680 sensorini qo'shing

BME680 sensori taxta bilan I2C avtobusi yordamida aloqa o'rnatadi.

Bu boshqa sensorlar yoki displeylar kabi boshqa kengaytmalar bilan ulashilganligi sababli, qurilma darajasida env.json da qurilmaning tarmoq nomi bilan konfiguratsiya qilingan. Mana, qurilma va I2C sozlamalarining namunasi:

"qurilma": {

"0": {"name": "airding", "description": "Havo sifati sensori",… "i2c-scl": "D2", "i2c-sda": "D1"}}

Non panelida siz sensorga ulanish kabellarini ko'rishingiz mumkin: 3.3V = qizil, GND = qora, SCL = sariq, SDA = ko'k

BME680 konfiguratsiyasi config.json -da ishlatilishi mumkin:

"bme680": {

"bd": {"manzil": "0x77", "o'qish vaqti": "10s"}}

Amallarni keyinroq qo'shamiz.

O'rnatishni sinab ko'rish uchun brauzerdan foydalaning va https://airding/board.htm -ni oching va siz sensorning haqiqiy qiymatlarini ko'rasiz va ular har 10 soniyada yangilanadi:

6 -qadam: PMS5003 sensorini qo'shing

PMS5003 sensorini qo'shing
PMS5003 sensorini qo'shing

Menda taxtali qulay ulagichli sensori yo'q edi, shuning uchun kabeldagi ulagichlardan birini kesib olishim kerak edi, uni nodemcu taxtasiga to'g'ridan -to'g'ri ulash uchun lehimlantiruvchi temirdan foydalaning. Siz buni hali oxirgi rasmlarda ko'rishingiz mumkin.

Ushbu sensorning kuchi odatda USB -avtobus orqali ishlaydigan Vindan olinishi kerak. GND xuddi shunday, lekin Vin pinining yonida ham mavjud.

Sensordan olingan ma'lumotlar standart 9600 bayt ketma -ket formatida uzatiladi, shuning uchun rx va tx pinlari va o'qish vaqti sozlanishi kerak:

"pms": {

"pm25": {"description": "pm25 zarracha sensori", "pinrx": "D6", "pintx": "D5", "o'qish vaqti": "10s"}}

Amallarni keyinroq qo'shamiz.

O'rnatishni qayta tekshirish uchun qurilmani qayta ishga tushiring va brauzerdan foydalaning va https://airding/board.htm -ni oching va siz sensorning haqiqiy pm35 qiymatini ko'rasiz va ular har 10 soniyada yangilanadi, lekin bu qiymat odatda tez -tez o'zgarmaydi.

Datchik yoniga shamni qo'yish orqali yuqori qiymatlarga ega bo'lishingiz mumkin, chunki sham bu zarrachalarning ko'pini ishlab chiqaradi.

Endi siz hamma narsani yaxshi uyga qo'yishingiz mumkin, chunki boshqa barcha konfiguratsiyalar va hatto dasturiy ta'minot yangilanishlari masofadan turib amalga oshirilishi mumkin.

7 -qadam: Ba'zi tarmoq xususiyatlarini qo'shish

Env.json -dagi quyidagi konfiguratsiya ekstrakti yoqilmoqda

  • dasturiy ta'minotni havo orqali yangilash
  • SSDP tarmoq protokoli yordamida tarmoqni aniqlash imkonini beradi va joriy vaqtni ntp serveridan oladi.

{

… "Ota": {"0": {"port": 8266, "passwd": "123", "description": "OTA yangilanishlarini" efirda tinglang "}}," ssdp ": {" 0 ": {" Ishlab chiqaruvchi ":" sizning ismingiz "}}," ntptime ": {" 0 ": {" o'qish vaqti ":" 36 soat "," zona ": 2}}}

Vaqt mintaqasini joylashuvingizga moslashtirishingiz kerak. Agar shubhangiz bo'lsa, https://www.timeanddate.com/ veb -saytidan foydalanib, UTC/GMT bo'yicha ofsetni olishingiz mumkin. "2" yozi Germaniya uchun to'g'ri keladi.

Siz shuningdek, https://homeding.github.io/index.htm#page=/savemo… manzilidagi hujjatlardagi saqlash rejimiga oid ko'rsatmalarni o'qib, ota parolini o'zgartirishingiz mumkin.

Qayta ishga tushirilgandan so'ng, siz tarmoqdagi shamollatish moslamasini topishingiz mumkin va ntp serveridan javob olgandan so'ng, mahalliy vaqt mavjud.

8 -qadam: Ba'zi jurnallarni qo'shish

Faqat haqiqiy qiymatlar etarli bo'lmasligi mumkin, shuning uchun yana bir nechta elementlardan foydalanish mumkin.

Bu hikoya uchun jurnal elementi va NPTTime elementi jurnal qiymatidagi sensor qiymatlari tarixini yozib olish uchun ishlatiladi va bu element uchun Web UI kartasi uni grafik sifatida ko'rsatishi mumkin.

Quyidagi konfiguratsiya gaz va zarrachalar uchun 2 ta log elementini yaratadi:

{

"log": {"pm": {"description": "pm25 jurnali", "fayl nomi": "/pmlog.txt", "filesize": "10000"}, "aq": {"description": " Gaz sifati jurnali "," fayl nomi ":" /aqlog.txt "," fayl hajmi ":" 10000 "}}}

9 -qadam: Amallar

Harakatlar
Harakatlar

Endi amallar yordamida haqiqiy qiymatlarni jurnal elementlariga o'tkazishimiz kerak. Amallar maqsadli elementga kay va qiymat berish uchun URL belgisidan foydalanadi. Ko'pgina elementlar sensorning yangi qiymatini olish kabi sodir bo'ladigan ba'zi hodisalar bo'yicha harakatlarni chiqarishni qo'llab -quvvatlaydi.

Harakatlar 2 ta yozuvni talab qiladigan elementda tuzilgan:

  • Pms/p25 onvalue hodisasi qiymat qiymatini ishlatib, haqiqiy qiymatni log/pm elementiga yuboradi.
  • Bme680/bd ongas hodisasi qiymat qiymatini ishlatib, haqiqiy qiymatni log/pm elementiga yuboradi.

{

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

Endi barcha elementlar sozlangan.

10 -qadam: rasmlar va konfiguratsiya fayllari

Rasmlar va konfiguratsiya fayllari
Rasmlar va konfiguratsiya fayllari
Rasmlar va konfiguratsiya fayllari
Rasmlar va konfiguratsiya fayllari
Rasmlar va konfiguratsiya fayllari
Rasmlar va konfiguratsiya fayllari

Mana mening oxirgi IoT havo sifati sensori tasviri.

Yuklab olishdan oldin konfiguratsiya fayllari *.json (no.txt) deb o'zgartirilishi kerak.

Havolalar va havolalar

  • HomeDing manba kodlari ombori:
  • Hujjatlar:
  • Standart misol:
  • BME680 elementi:
  • PMS elementi:
  • Jurnal elementi:
  • NtpTime elementi:

Tavsiya: