Isi kandungan:

Bina Sensor Kualiti Udara IoT Inhouse Tidak Perlu Awan: 10 Langkah
Bina Sensor Kualiti Udara IoT Inhouse Tidak Perlu Awan: 10 Langkah

Video: Bina Sensor Kualiti Udara IoT Inhouse Tidak Perlu Awan: 10 Langkah

Video: Bina Sensor Kualiti Udara IoT Inhouse Tidak Perlu Awan: 10 Langkah
Video: Fly drone atas Gunung Jerai nampak orang tengah solat atas puncak. Adakah ia kebetulan atau..... ❗ 2024, November
Anonim
Bina Sensor Kualiti Udara IoT Inhouse Tidak Perlu Awan
Bina Sensor Kualiti Udara IoT Inhouse Tidak Perlu Awan
Bina Sensor Kualiti Udara IoT Inhouse Tidak Perlu Awan
Bina Sensor Kualiti Udara IoT Inhouse Tidak Perlu Awan
Bina Sensor Kualiti Udara IoT Inhouse Tidak Perlu Awan
Bina Sensor Kualiti Udara IoT Inhouse Tidak Perlu Awan
Bina Sensor Kualiti Udara IoT Inhouse Tidak Perlu Awan
Bina Sensor Kualiti Udara IoT Inhouse Tidak Perlu Awan

Kualiti udara dalaman atau luaran bergantung kepada banyak sumber pencemaran dan juga oleh cuaca.

Peranti ini menangkap beberapa parameter biasa dan beberapa yang paling menarik dengan menggunakan 2 cip sensor.

  • Suhu
  • Kelembapan
  • Tekanan
  • Gas Organik
  • Zarah Mikro

Sensor yang digunakan di sini adalah BME680 untuk mendapatkan suhu, kelembapan, tekanan dan nilai gas organik dan PMS5003 untuk mendapatkan ketumpatan zarah mikro.

Dengan menggunakan perpustakaan HomeDing, mudah untuk membuat peranti yang disambungkan ke Rangkaian rumah anda sahaja dan dapat dijangkau dan dikendalikan oleh penyemak imbas di rangkaian. Ia dilengkapi dengan pilihan Elemen yang membolehkan menggunakan cip sensor, peranti dan perkhidmatan lain yang paling biasa.

Ini juga membawa solusi lengkap untuk hosting sisi web di dalam peranti dan bukannya menggunakan penyelesaian berasaskan cloud untuk menampilkan data sensor dan berinteraksi dengan perangkat.

Bekalan

Yang anda perlukan untuk membina projek ini ialah papan berasaskan ESP8266 seperti papan nodemcu dan set sensor untuk mengukur kualiti udara. Perpustakaan HomeDing yang digunakan dalam projek ini menyokong beberapa cip sensor biasa untuk suhu, kelembapan, tekanan dan kualiti. Di sini digunakan cip BMP680.

  • Palam USB dan kabel mikro-usb untuk bekalan kuasa.
  • 1 papan nodemcu dengan CPU ESP8266.
  • 1 papan pemecah sensor BME680.
  • Sensor laser zarah udara 1 PM2.5 jenis PMS5003

Sangat mudah untuk menukar sensor BME680 dengan sensor DHT22 kerana mereka juga disokong oleh perpustakaan antara lain.

Langkah 1: Siapkan Arduino Environment untuk ESP8266

Siapkan Arduino Environment untuk ESP8266
Siapkan Arduino Environment untuk ESP8266
  1. Pasang versi terbaru Arduino IDE (kini versi 1.8.2).
  2. Gunakan Pengurus Papan untuk memasang pemasangan sokongan esp8266. Arahan terperinci boleh didapati di sini:
  3. Sediakan pilihan papan untuk NodeMCU 1.0 dengan Sistem Fail 1MByte SPIFFS seperti yang ditunjukkan dalam tangkapan skrin

Langkah 2: Sertakan Perpustakaan yang Diperlukan

Sertakan Perpustakaan yang Diperlukan
Sertakan Perpustakaan yang Diperlukan

Perpustakaan HomeDing bergantung pada beberapa perpustakaan tambahan biasa untuk sensor dan paparan berfungsi.

Apabila anda memasang perpustakaan HomeDing, anda akan melihat pop timbul dengan perpustakaan yang diperlukan ini yang dapat dipasang secara automatik seperti yang ditunjukkan dalam gambar dan mudah untuk memasangnya semua.

Kadang kala (dengan sebab yang tidak diketahui) pemasangan perpustakaan gagal sehingga semua perpustakaan yang diperlukan perlu dipasang secara manual.

Maklumat lebih lanjut mengenai perpustakaan yang diperlukan boleh didapati di laman web dokumentasi di

Ini adalah senarai perpustakaan yang diperlukan semasa:

  • Adafruit NeoPixel
  • LiquidCrystal_PCF8574.h
  • Pemacu ESP8266 dan ESP32 Oled untuk paparan SSD1306
  • RotaryEncoder
  • Perpustakaan sensor DHT untuk ESPx
  • OneWire

Sensor laser partikel udara PMS5003 berkomunikasi menggunakan isyarat garis bersiri 9600 baud. Isyarat ini ditangkap dengan menggunakan perpustakaan SoftwareSerial yang disertakan dengan pemasangan alat ESP8266. Pastikan tidak memasang versi lama sebagai perpustakaan.

Langkah 3: Sesuaikan Lakaran Contoh Standard

Sesuaikan Lakaran Contoh Standard
Sesuaikan Lakaran Contoh Standard

Contoh Piawai sudah merangkumi beberapa sensor yang lebih umum sebagai elemen sehingga hanya diperlukan beberapa konfigurasi.

Ini berlaku untuk sensor BME680 yang disokong oleh Elemen BME680.

Sensor PMS5003 kurang biasa dan perlu diaktifkan dengan memasukkan Elemen PMS ke dalam firmware. Ini dilakukan dengan menentukan #define HOMEDING_INCLUDE_PMS di bahagian daftar elemen lakaran

#tentukan HOMEDING_INCLUDE_BME680 # tentukan HOMEDING_INCLUDE_PMS

Untuk kesederhanaan dalam menambahkan peranti baru ke rangkaian, anda boleh menambahkan SSID dan frasa laluan WiFi rumah anda di dalam fail rahsia.h di sebelah fail lakaran standard.ino. Tetapi anda juga boleh menggunakan Pengurus WiFi bawaan untuk menambahkan peranti ke rangkaian tanpa konfigurasi keras ini.

Sekarang semua perkara mengenai pelaksanaan sketsa selesai dan firmware dapat disusun dan dimuat naik.

Langkah 4: Muat naik UI Web

Contoh standard dilengkapi dengan folder data yang mengandungi semua fail untuk UI web.

Sebelum memuat naik fail-fail ini, anda mungkin ingin menambahkan fail env.json dan config.json yang anda dapati dengan artikel ini kerana ini akan menjadikan semuanya lebih mudah.

Kandungan fail-fail inilah yang menjadikan peranti IoT istimewa dan berperilaku sebagai sensor Kualiti Udara. Ia dijelaskan secara terperinci dalam kisah ini.

Gunakan utiliti muat naik fail ESP8266 dan muat naik semua fail. Ia memerlukan but semula untuk mengaktifkan konfigurasi.

Langkah 5: Tambahkan Sensor BME680

Tambahkan Sensor BME680
Tambahkan Sensor BME680
Tambahkan Sensor BME680
Tambahkan Sensor BME680
Tambahkan Sensor BME680
Tambahkan Sensor BME680

Sensor BME680 berkomunikasi dengan papan menggunakan bas I2C.

Kerana ini mungkin dikongsi dengan sambungan lain seperti sensor atau paparan lain dikonfigurasikan pada tahap peranti di env.json bersama dengan nama rangkaian peranti. Berikut adalah contoh tetapan peranti dan I2C yang diekstrak:

"peranti": {

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

Di papan roti anda dapat melihat kabel sambungan ke sensor: 3.3V = merah, GND = hitam, SCL = kuning, SDA = biru

Konfigurasi untuk BME680 boleh digunakan di config.json:

"bme680": {

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

Kami akan menambah tindakan kemudian.

Untuk menguji persediaan, gunakan penyemak imbas dan buka https://airding/board.htm dan anda akan melihat nilai sebenar sensor yang dipaparkan dan ia akan dikemas kini setiap 10 saat:

Langkah 6: Tambahkan Sensor PMS5003

Tambahkan Sensor PMS5003
Tambahkan Sensor PMS5003

Saya tidak mendapat sensor dengan penyambung mesra papan roti sehingga saya terpaksa memotong salah satu penyambung pada kabel menggunakan besi pematerian saya untuk memasangnya secara langsung ke papan nodemcu. Anda masih dapat melihatnya di gambar akhir.

Kekuatan untuk sensor ini mesti diambil dari Vin yang biasanya dikuasakan oleh bus USB. GND sama tetapi juga terdapat di sebelah pin Vin.

Data dari sensor dipindahkan dalam format bersiri 9600 baud standard sehingga pin rx dan tx dan masa membaca perlu dikonfigurasi:

"pms": {

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

Kami akan menambah tindakan kemudian.

Untuk menguji persediaan sekali lagi, but semula peranti dan gunakan penyemak imbas dan buka https://airding/board.htm dan anda akan melihat nilai pm35 sebenar sensor yang dipaparkan dan mereka akan dikemas kini setiap 10 saat tetapi nilai ini biasanya tidak kerap berubah.

Anda boleh mendapatkan nilai yang lebih tinggi dengan meletakkan lampu lilin di sebelah sensor kerana lilin menghasilkan banyak zarah-zarah ini.

Sekarang anda boleh meletakkan semuanya di perumahan yang bagus kerana semua konfigurasi lain dan juga kemas kini perisian dapat dilakukan dari jarak jauh.

Langkah 7: Menambah Beberapa Ciri Rangkaian

Ekstrak konfigurasi berikut di env.json diaktifkan

  • mengemas kini firmware melalui udara
  • membolehkan mengesan rangkaian menggunakan protokol rangkaian SSDP dan mengambil masa semasa dari pelayan ntp.

{

… "Ota": {"0": {"port": 8266, "passwd": "123", "description": "Listen for 'the air' OTA Updates"}}, "ssdp": {"0 ": {" Manufacturer ":" yourname "}}," ntptime ": {" 0 ": {" readtime ":" 36h "," zon ": 2}}}

Anda harus menyesuaikan zon waktu ke lokasi anda. Sekiranya anda ragu-ragu, anda boleh menggunakan laman web https://www.timeanddate.com/ untuk mendapatkan pengimbangan dari UTC / GMT. "2" sesuai untuk musim panas Jerman.

Anda juga boleh menyesuaikan kata laluan ota setelah membaca arahan mengenai mod simpan dalam dokumentasi di

Selepas memulakan semula, anda mungkin dapati alat penyaman udara di rangkaian dan setelah mendapat balasan dari pelayan ntp waktu tempatan tersedia.

Langkah 8: Menambah Sebilangan Pembalakan

Cuma nilai sebenarnya mungkin tidak cukup sehingga beberapa elemen boleh digunakan.

Untuk cerita ini, elemen Log dan NPTTime Element digunakan untuk merakam sejarah nilai sensor dalam fail log dan kad UI Web untuk elemen ini dapat memaparkannya sebagai grafik.

Konfigurasi berikut mencipta 2 elemen log untuk gas dan zarah:

{

"log": {"pm": {"description": "Log pm25", "filename": "/pmlog.txt", "filesize": "10000"}, "aq": {"description": " Log kualiti gas "," nama fail ":" /aqlog.txt "," filesize ":" 10000 "}}}

Langkah 9: Tindakan

Tindakan
Tindakan

Sekarang kita perlu memindahkan nilai sebenar ke elemen log dengan menggunakan tindakan. Tindakan tersebut menggunakan notasi URL untuk menyampaikan nilai dan nilai ke elemen sasaran. Banyak Elemen menyokong tindakan memancarkan peristiwa tertentu yang berlaku seperti menangkap nilai sensor baru.

Tindakan dikonfigurasi pada elemen yang memancarkan tindakan 2 penyertaan diperlukan:

  • Peristiwa pms / p25 onvalue menghantar nilai sebenar ke elemen log / pm menggunakan tindakan nilai.
  • Peristiwa bme680 / bd ongas menghantar nilai sebenar ke elemen log / pm menggunakan tindakan nilai.

{

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

Sekarang semua elemen dikonfigurasikan.

Langkah 10: Fail Gambar dan Konfigurasi

Gambar dan Fail Konfigurasi
Gambar dan Fail Konfigurasi
Gambar dan Fail Konfigurasi
Gambar dan Fail Konfigurasi
Gambar dan Fail Konfigurasi
Gambar dan Fail Konfigurasi

Berikut adalah beberapa gambar sensor kualiti udara IoT terakhir saya.

Fail konfigurasi untuk muat turun perlu dinamakan semula menjadi *.json (no.txt) sebelum dimuat naik.

Pautan dan rujukan

  • Repositori Kod Sumber HomeDing:
  • Dokumentasi:
  • Contoh Piawai:
  • Elemen BME680:
  • Elemen PMS:
  • Elemen log:
  • Elemen NtpTime:

Disyorkan: