Talaan ng mga Nilalaman:

Bumuo ng isang Inhouse IoT Air Quality Sensor Walang Kinakailangan sa Cloud: 10 Hakbang
Bumuo ng isang Inhouse IoT Air Quality Sensor Walang Kinakailangan sa Cloud: 10 Hakbang

Video: Bumuo ng isang Inhouse IoT Air Quality Sensor Walang Kinakailangan sa Cloud: 10 Hakbang

Video: Bumuo ng isang Inhouse IoT Air Quality Sensor Walang Kinakailangan sa Cloud: 10 Hakbang
Video: 30 COOLEST Tech Gadgets you’ll NEED in 2024 – MUST HAVE 2024, Nobyembre
Anonim
Bumuo ng isang Inhouse IoT Air Quality Sensor Walang Kinakailangan sa Cloud
Bumuo ng isang Inhouse IoT Air Quality Sensor Walang Kinakailangan sa Cloud
Bumuo ng isang Inhouse IoT Air Quality Sensor Walang Kinakailangan sa Cloud
Bumuo ng isang Inhouse IoT Air Quality Sensor Walang Kinakailangan sa Cloud
Bumuo ng isang Inhouse IoT Air Quality Sensor Walang Kinakailangan sa Cloud
Bumuo ng isang Inhouse IoT Air Quality Sensor Walang Kinakailangan sa Cloud
Bumuo ng isang Inhouse IoT Air Quality Sensor Walang Kinakailangan sa Cloud
Bumuo ng isang Inhouse IoT Air Quality Sensor Walang Kinakailangan sa Cloud

Ang kalidad ng panloob o panlabas na hangin ay nakasalalay sa maraming mapagkukunan ng polusyon at pati na rin ng panahon.

Nakukuha ng aparatong ito ang ilan sa mga karaniwan at ilan sa mga pinaka-kagiliw-giliw na mga parameter sa pamamagitan ng paggamit ng 2 chips ng sensor.

  • Temperatura
  • Humidity
  • Presyon
  • Organic Gas
  • Mga Micro-Particle

Ang mga sensor na ginamit dito ay ang BME680 para sa pagkuha ng temperatura, halumigmig, presyon at mga halaga ng organikong gas at ang PMS5003 upang makakuha ng kakapalan ng mga micro particle.

Sa pamamagitan ng paggamit ng HomeDing library madali itong bumuo ng isang aparato na konektado sa iyong home Network lamang at maaabot at makokontrol ng anumang browser sa network. Ito ay may kasamang pagpipilian ng Mga Elemento na nagpapahintulot sa paggamit ng pinakakaraniwang mga chips ng sensor, aparato at iba pang mga serbisyo.

Nagdudulot din ito ng isang kumpletong solusyon para sa pagho-host ng isang panig sa web sa loob ng aparato sa halip na gumamit ng isang cloud based na solusyon upang maipakita ang data ng sensor at makipag-ugnay sa aparato.

Mga gamit

Ang kailangan mo lang upang buuin ang proyektong ito ay isang nakabatay sa board na ESP8266 tulad ng board ng nodemcu at hanay ng mga sensor upang masukat ang kalidad ng hangin. Ang library ng HomeDing na ginamit sa proyektong ito ay sumusuporta sa ilan sa mga karaniwang sensor chip para sa temperatura, halumigmig, presyon at kalidad. Dito ginagamit ang chip na BMP680.

  • Isang USB plug at isang micro-usb cable para sa power supply.
  • 1 nodemcu board na may CPU na ESP8266.
  • 1 board breakout ng sensor ng BME680.
  • 1 PM2.5 air particle laser sensor type PMS5003

Madaling palitan ang sensor ng BME680 gamit ang isang sensor ng DHT22 dahil sinusuportahan din sila ng silid-aklatan bukod sa marami pang iba.

Hakbang 1: Ihanda ang Arduino na Kapaligiran para sa ESP8266

Ihanda ang Arduino na Kapaligiran para sa ESP8266
Ihanda ang Arduino na Kapaligiran para sa ESP8266
  1. I-install ang pinakabagong bersyon ng Arduino IDE (kasalukuyang bersyon 1.8.2).
  2. Gumamit ng Board Manager upang mai-install ang pag-install ng suporta sa esp8266. Ang isang detalyadong tagubilin ay matatagpuan dito:
  3. I-setup ang mga pagpipilian sa board para sa isang NodeMCU 1.0 na may 1MByte SPIFFS File System tulad ng ipinakita sa screenshot

Hakbang 2: Magsama ng Mga Kinakailangan na Aklatan

Isama ang Mga Kinakailangan na Aklatan
Isama ang Mga Kinakailangan na Aklatan

Ang library ng HomeDing ay umaasa sa ilang karaniwang mga labis na aklatan para gumana ang mga sensor at display.

Kapag na-install mo ang library ng HomeDing makikita mo ang isang popup kasama ang mga kinakailangang aklatan na maaaring awtomatikong mai-install na ipinakita sa larawan at madali itong mai-install lahat.

Minsan (na hindi alam ang mga kadahilanan) nabigo ang pag-install ng mga aklatan kaya lahat ng kinakailangang mga aklatan ay kailangang mai-install nang manu-mano.

Ang mga karagdagang detalye tungkol sa mga kinakailangang aklatan ay matatagpuan sa website ng dokumentasyon sa

Ito ang listahan ng mga kasalukuyang kinakailangang aklatan:

  • Adafruit NeoPixel
  • LiquidCrystal_PCF8574.h
  • Ang ESP8266 at ESP32 Oled Driver para sa display na SSD1306
  • RotaryEncoder
  • Library ng sensor ng DHT para sa ESPx
  • OneWire

Ang PMS5003 air particle laser sensor ay nakikipag-usap gamit ang isang 9600 baud serial line signal. Ang signal na ito ay nakunan sa pamamagitan ng paggamit ng library ng SoftwareSerial na kasama ng pag-install ng mga tool ng ESP8266. Tiyaking hindi naka-install ang isang mas matandang bersyon bilang isang silid-aklatan.

Hakbang 3: Ipasadya ang Karaniwang Halimbawa ng Sketch

Ipasadya ang Karaniwang Sketch ng Halimbawa
Ipasadya ang Karaniwang Sketch ng Halimbawa

Ang Karaniwang Halimbawa ay nagsasama na ng ilan sa mga mas karaniwang sensor bilang mga elemento kaya ang ilang pagsasaayos lamang ang kinakailangan.

Nalalapat ito sa sensor ng BME680 na sinusuportahan ng Elementong BME680.

Ang sensor ng PMS5003 ay hindi gaanong karaniwan at kailangang maisaaktibo sa pamamagitan ng pagsasama ng PMS Element sa firmware. Ginagawa ito sa pamamagitan ng pagtukoy sa # tukuyin ang HOMEDING_INCLUDE_PMS sa seksyon ng rehistro ng elemento ng sketch

# tukuyin ang HOMEDING_INCLUDE_BME680 # tukuyin ang HOMEDING_INCLUDE_PMS

Para sa pagiging simple sa pagdaragdag ng bagong aparato sa network maaari mong idagdag ang SSID at passphrase ng iyong home WiFi sa mga lihim.h file sa tabi ng standard.ino sketch file. Ngunit maaari mo ring gamitin ang built-in na WiFi Manager upang idagdag ang aparato sa network nang wala ang hard-code na pagsasaayos na ito.

Ngayon ang lahat tungkol sa pagpapatupad ng sketch ay tapos na at ang firmware ay maaaring maiipon at mai-upload.

Hakbang 4: I-upload ang Web UI

Ang karaniwang halimbawa ay may isang folder ng data na naglalaman ng lahat ng file para sa web UI.

Bago mo mai-upload ang mga file na ito baka gusto mong idagdag ang env.json at config.json file na mahahanap mo sa artikulong ito dahil gagawin nitong mas madali ang mga bagay.

Ang nilalaman ng mga file na ito ay kung bakit ang espesyal na aparato ng IoT at kumikilos bilang isang sensor ng Kalidad ng Air. Ito ay ipinaliwanag nang detalyado sa kuwentong ito.

Ang paggamit ng ESP8266 file upload utility at i-upload ang lahat ng mga file. Kailangan nito ng pag-reboot upang maisaaktibo ang pagsasaayos.

Hakbang 5: Idagdag ang BME680 Sensor

Idagdag ang BME680 Sensor
Idagdag ang BME680 Sensor
Idagdag ang BME680 Sensor
Idagdag ang BME680 Sensor
Idagdag ang BME680 Sensor
Idagdag ang BME680 Sensor

Ang BME680 Sensor ay nakikipag-usap sa board gamit ang I2C bus.

Tulad ng posibleng ibinahagi sa iba pang mga extension tulad ng iba pang mga sensor o display ay naka-configure sa antas ng aparato sa env.json kasama ang pangalan ng network ng aparato. Narito ang isang nakuha na sample ng mga setting ng aparato at I2C:

"aparato": {

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

Sa breadboard maaari mong makita ang mga cable ng koneksyon sa sensor: 3.3V = pula, GND = itim, SCL = dilaw, SDA = asul

Ang pagsasaayos para sa BME680 ay maaaring magamit sa config.json:

"bme680": {

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

Idagdag namin ang mga pagkilos sa paglaon.

Upang subukan ang pag-set up gumamit lamang ng isang browser at buksan ang https://airding/board.htm at makikita mo ang mga aktwal na halaga ng sensor na ipinakita at maa-update ang mga ito bawat 10 segundo:

Hakbang 6: Idagdag ang PMS5003 Sensor

Idagdag ang PMS5003 Sensor
Idagdag ang PMS5003 Sensor

Hindi ako nakakuha ng isang sensor na may isang konektor ng friendly na tinapay kaya kailangan kong putulin ang isa sa mga konektor sa cable na gamitin ang aking soldering iron upang direktang ikabit ito sa nodemcu board. Maaari mo pa rin itong makita sa huling mga larawan.

Ang lakas para sa sensor na ito ay dapat na makuha mula sa Vin na karaniwang pinalakas ng USB bus. Ang GND ay pareho ngunit magagamit din sa tabi ng Vin pin.

Ang data mula sa sensor ay inililipat sa isang karaniwang 9600 baud serial format kaya kailangang mai-configure ang mga rx at tx pin at oras ng pagbabasa:

"pms": {

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

Idagdag namin ang mga pagkilos sa paglaon.

Upang subukan ulit ang pag-set up i-reboot lamang ang aparato at gumamit ng isang browser at buksan ang https://airding/board.htm at makikita mo ang aktwal na pm35 na halaga ng sensor na ipinakita at maa-update sila tungkol sa bawat 10 segundo ngunit ang halagang ito ay normal hindi madalas na nagbabago.

Maaari kang makakuha ng mas mataas na mga halaga sa pamamagitan ng paglalagay ng isang kandila ilaw sa tabi ng sensor bilang isang kandila ay gumagawa ng karamihan sa mga maliit na butil na ito.

Ngayon ay maaari mong ilagay ang lahat sa isang magandang pabahay dahil ang lahat ng iba pang mga pagsasaayos at kahit na ang mga pag-update ng software ay maaaring gawin nang malayuan.

Hakbang 7: Pagdaragdag ng Ilang Mga Tampok sa Network

Ang sumusunod na katas ng pagsasaayos sa env.json ay nagpapagana

  • ina-update ang firmware sa hangin
  • Pinapayagan ang pagtuklas ng network gamit ang SSDP network protocol at kinukuha ang kasalukuyang oras mula sa isang ntp server.

{

… "Ota": {"0": {"port": 8266, "passwd": "123", "description": "Makinig para sa 'over the air' OTA Updates"}}, "ssdp": {"0 ": {" Manufacturer ":" yourname "}}," ntptime ": {" 0 ": {" readtime ":" 36h "," zone ": 2}}}

Dapat mong ayusin ang timezone sa iyong lokasyon. Kung may pag-aalinlangan maaari mong gamitin ang web site https://www.timeanddate.com/ upang makuha ang offset mula sa UTC / GMT. Tama ang "2" para sa tag-init ng Alemanya.

Maaari mo ring ayusin ang ota password pagkatapos basahin ang mga tagubilin tungkol sa save mode sa dokumentasyon sa

Matapos ang isang pag-restart maaari mong makita ang airding device sa network at pagkatapos makakuha ng isang tugon mula sa ntp server magagamit ang lokal na oras.

Hakbang 8: Pagdaragdag ng Ilang Pag-log

Ang mga aktwal na halaga lamang ay maaaring hindi magbigay ng sapat upang ang ilang higit pang mga elemento ay maaaring magamit.

Para sa kuwentong ito ang elemento ng Log at ang NPTTime Element ay ginagamit upang maitala ang kasaysayan ng mga halaga ng sensor sa isang log file at ang Web UI card para sa elementong ito ay maaaring ipakita ito bilang isang graph.

Lumilikha ang sumusunod na pagsasaayos ng 2 elemento ng pag-log para sa gas at mga particle:

{

"log": {"pm": {"description": "Log of pm25", "filename": "/pmlog.txt", "filesize": "10000"}, "aq": {"description": " Log ng kalidad ng gas "," filename ":" /aqlog.txt "," filesize ":" 10000 "}}}

Hakbang 9: Mga Pagkilos

Mga kilos
Mga kilos

Ngayon kailangan naming ilipat ang aktwal na mga halaga sa mga elemento ng pag-log sa pamamagitan ng paggamit ng mga pagkilos. Gumagamit ang mga pagkilos ng isang notasyong URL upang pumasa sa isang kay at halaga sa target na elemento. Sinusuportahan ng maraming Mga Elemento ang pagpapalabas ng mga aksyon sa ilang mga kaganapan na nangyayari tulad ng pagkuha ng isang bagong halaga ng sensor.

Ang mga pagkilos ay na-configure sa elemento na naglalabas ng mga aksyon na kinakailangan ng 2 mga entry:

  • Ang kaganapan ng pms / p25 onvalue ay nagpapadala ng aktwal na halaga sa elemento ng pag-log / pm gamit ang isang pagkilos na halaga.
  • Ang kaganapan ng bme680 / bd ongas ay nagpapadala ng aktwal na halaga sa elemento ng log / pm gamit ang isang pagkilos na halaga.

{

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

Ngayon ang lahat ng mga elemento ay naka-configure.

Hakbang 10: Mga Larawan at Mga File ng Pag-configure

Mga Larawan at Mga File ng Pag-configure
Mga Larawan at Mga File ng Pag-configure
Mga Larawan at Mga File ng Pag-configure
Mga Larawan at Mga File ng Pag-configure
Mga Larawan at Mga Configure File
Mga Larawan at Mga Configure File

Narito ang ilang larawan ng aking panghuling IoT Air Quality sensor.

Ang mga file ng pagsasaayos para sa pag-download ay kailangang palitan ng pangalan sa *.json (no.txt) bago mai-upload.

Mga link at sanggunian

  • HomeDing Source Code Repository:
  • Dokumentasyon:
  • Karaniwang Halimbawa:
  • Elemento ng BME680:
  • Elementong PMS:
  • Elemento ng pag-log:
  • NtpTime Element:

Inirerekumendang: