Daftar Isi:

Bangun Sensor Kualitas Udara IoT Inhouse Tanpa Cloud: 10 Langkah
Bangun Sensor Kualitas Udara IoT Inhouse Tanpa Cloud: 10 Langkah

Video: Bangun Sensor Kualitas Udara IoT Inhouse Tanpa Cloud: 10 Langkah

Video: Bangun Sensor Kualitas Udara IoT Inhouse Tanpa Cloud: 10 Langkah
Video: SISTEM MONITORING KUALITAS UDARA DAN PENGAMAN RUMAH DARI MALING BERBASIS IOT 2024, November
Anonim
Bangun Sensor Kualitas Udara IoT Inhouse Tidak Perlu Cloud
Bangun Sensor Kualitas Udara IoT Inhouse Tidak Perlu Cloud
Bangun Sensor Kualitas Udara IoT Inhouse Tidak Perlu Cloud
Bangun Sensor Kualitas Udara IoT Inhouse Tidak Perlu Cloud
Bangun Sensor Kualitas Udara IoT Inhouse Tidak Perlu Cloud
Bangun Sensor Kualitas Udara IoT Inhouse Tidak Perlu Cloud
Bangun Sensor Kualitas Udara IoT Inhouse Tidak Perlu Cloud
Bangun Sensor Kualitas Udara IoT Inhouse Tidak Perlu Cloud

Kualitas udara dalam atau luar ruangan tergantung pada banyak sumber polusi dan juga oleh cuaca.

Perangkat ini menangkap beberapa parameter umum dan beberapa yang paling menarik dengan menggunakan 2 chip sensor.

  • Suhu
  • Kelembaban
  • Tekanan
  • Gas Organik
  • Partikel Mikro

Sensor yang digunakan di sini adalah BME680 untuk mendapatkan nilai suhu, kelembaban, tekanan dan gas organik dan PMS5003 untuk mendapatkan densitas partikel mikro.

Dengan menggunakan perpustakaan HomeDing, mudah untuk membangun perangkat yang terhubung ke Jaringan rumah Anda saja dan dapat dijangkau dan dikendalikan oleh browser apa pun di jaringan. Muncul dengan pilihan Elemen yang memungkinkan penggunaan chip sensor, perangkat, dan layanan lainnya yang paling umum.

Ini juga membawa solusi lengkap untuk hosting sisi web di dalam perangkat alih-alih menggunakan solusi berbasis cloud untuk menampilkan data sensor dan berinteraksi dengan perangkat.

Perlengkapan

Yang Anda butuhkan untuk membangun proyek ini adalah papan berbasis ESP8266 seperti papan nodemcu dan set sensor untuk mengukur kualitas udara. Pustaka HomeDing yang digunakan dalam proyek ini mendukung beberapa chip sensor umum untuk suhu, kelembapan, tekanan, dan kualitas. Di sini chip BMP680 digunakan.

  • Colokan USB dan kabel micro-usb untuk catu daya.
  • 1 papan nodemcu dengan CPU ESP8266.
  • 1 papan breakout sensor BME680.
  • 1 PM2.5 jenis sensor laser partikel udara PMS5003

Sangat mudah untuk menukar sensor BME680 dengan sensor DHT22 karena mereka juga didukung oleh perpustakaan di antara banyak lainnya.

Langkah 1: Siapkan Lingkungan Arduino untuk ESP8266

Siapkan Lingkungan Arduino untuk ESP8266
Siapkan Lingkungan Arduino untuk ESP8266
  1. Instal versi terbaru Arduino IDE (saat ini versi 1.8.2).
  2. Gunakan Board Manager untuk menginstal instal dukungan esp8266. Instruksi terperinci dapat ditemukan di sini:
  3. Siapkan opsi papan untuk NodeMCU 1.0 dengan Sistem File SPIFFS 1MByte seperti yang ditunjukkan pada tangkapan layar

Langkah 2: Sertakan Perpustakaan yang Diperlukan

Sertakan Perpustakaan yang Diperlukan
Sertakan Perpustakaan yang Diperlukan

Pustaka HomeDing bergantung pada beberapa pustaka tambahan umum agar sensor dan tampilan berfungsi.

Ketika Anda menginstal perpustakaan HomeDing Anda akan melihat popup dengan perpustakaan yang diperlukan ini yang dapat diinstal secara otomatis seperti yang ditunjukkan pada gambar dan mudah untuk menginstal semuanya.

Terkadang (dengan alasan yang tidak diketahui) penginstalan pustaka gagal sehingga semua pustaka yang diperlukan harus diinstal secara manual.

Rincian lebih lanjut tentang perpustakaan yang diperlukan dapat ditemukan di situs web dokumentasi di

Ini adalah daftar perpustakaan yang dibutuhkan saat ini:

  • Adafruit NeoPixel
  • LiquidCrystal_PCF8574.h
  • ESP8266 dan ESP32 Oled Driver untuk tampilan SSD1306
  • RotaryEncoder
  • Pustaka sensor DHT untuk ESPx
  • OneWire

Sensor laser partikel udara PMS5003 berkomunikasi menggunakan sinyal saluran serial 9600 baud. Sinyal ini ditangkap dengan menggunakan pustaka SoftwareSerial yang disertakan dengan penginstalan alat ESP8266. Pastikan untuk tidak menginstal versi lama sebagai pustaka.

Langkah 3: Sesuaikan Sketsa Contoh Standar

Sesuaikan Sketsa Contoh Standar
Sesuaikan Sketsa Contoh Standar

Contoh Standar sudah menyertakan beberapa sensor yang lebih umum sebagai elemen sehingga hanya beberapa konfigurasi yang diperlukan.

Ini berlaku untuk sensor BME680 yang didukung oleh Elemen BME680.

Sensor PMS5003 kurang umum dan perlu diaktifkan dengan memasukkan Elemen PMS ke dalam firmware. Ini dilakukan dengan mendefinisikan #define HOMEDING_INCLUDE_PMS di bagian register elemen sketsa

#define HOMEDING_INCLUDE_BME680#define HOMEDING_INCLUDE_PMS

Untuk mempermudah dalam menambahkan perangkat baru ke jaringan, Anda dapat menambahkan SSID dan frasa sandi WiFi rumah Anda di file secret.h di sebelah file sketsa standard.ino. Tetapi Anda juga dapat menggunakan Pengelola WiFi bawaan untuk menambahkan perangkat ke jaringan tanpa konfigurasi hard-code ini.

Sekarang semua tentang implementasi sketsa selesai dan firmware dapat dikompilasi dan diunggah.

Langkah 4: Unggah UI Web

Contoh standar dilengkapi dengan folder data yang berisi semua file untuk UI web.

Sebelum Anda mengunggah file-file ini, Anda mungkin ingin menambahkan file env.json dan config.json yang dapat Anda temukan dengan artikel ini karena ini akan mempermudah segalanya.

Isi dari file-file ini adalah apa yang membuat perangkat IoT istimewa dan berperilaku sebagai sensor Kualitas Udara. Dijelaskan secara detail dalam cerita ini.

Gunakan utilitas unggah file ESP8266 dan unggah semua file. Perlu reboot 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 bus I2C.

Karena ini mungkin dibagikan dengan ekstensi lain seperti sensor atau tampilan lain, dikonfigurasi pada tingkat perangkat di env.json bersama dengan nama jaringan perangkat. Berikut adalah contoh perangkat dan pengaturan I2C yang diekstraksi:

"perangkat": {

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

Di papan tempat memotong roti Anda dapat melihat kabel koneksi ke sensor: 3.3V=merah, GND=hitam, SCL=kuning, SDA=biru

Konfigurasi untuk BME680 dapat digunakan di config.json:

"bme680": {

"bd": { "alamat": "0x77", "waktu baca": "10s" } }

Kami akan menambahkan tindakan nanti.

Untuk menguji pengaturan cukup gunakan browser dan buka https://airding/board.htm dan Anda akan melihat nilai sebenarnya dari sensor yang ditampilkan dan akan diperbarui setiap 10 detik:

Langkah 6: Tambahkan Sensor PMS5003

Tambahkan Sensor PMS5003
Tambahkan Sensor PMS5003

Saya tidak punya sensor dengan konektor ramah papan tempat memotong roti jadi saya harus memotong salah satu konektor pada kabel menggunakan besi solder saya untuk langsung menempelkannya ke papan nodemcu. Anda dapat melihatnya masih di gambar akhir.

Daya untuk sensor ini harus diambil dari Vin yang biasanya ditenagai oleh bus USB. GND sama tetapi juga tersedia di sebelah pin Vin.

Data dari sensor ditransfer dalam format serial standar 9600 baud sehingga pin rx dan tx serta waktu membaca perlu dikonfigurasi:

"pm": {

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

Kami akan menambahkan tindakan nanti.

Untuk menguji pengaturan lagi, cukup reboot perangkat dan gunakan browser dan buka https://airding/board.htm dan Anda akan melihat nilai pm35 aktual dari sensor yang ditampilkan dan mereka akan diperbarui setiap 10 detik tetapi nilai ini biasanya tidak sering berubah.

Anda bisa mendapatkan nilai yang lebih tinggi dengan menempatkan cahaya lilin di sebelah sensor karena lilin menghasilkan banyak partikel ini.

Sekarang Anda dapat meletakkan semuanya dalam wadah yang bagus karena semua konfigurasi lain dan bahkan pembaruan perangkat lunak dapat dilakukan dari jarak jauh.

Langkah 7: Menambahkan Beberapa Fitur Jaringan

Ekstrak konfigurasi berikut di env.json diaktifkan

  • memperbarui firmware melalui udara
  • memungkinkan mendeteksi jaringan menggunakan protokol jaringan SSDP dan mengambil waktu saat ini dari server ntp.

{

… "ota": { "0": { "port": 8266, "passwd": "123", "description": "Dengarkan Pembaruan OTA 'over the air'" } }, "ssdp": { "0 ": { "Produsen": "nama Anda" } }, "ntptime": { "0": { "readtime": "36j", "zone": 2 } } }

Anda harus menyesuaikan zona waktu dengan lokasi Anda. Jika Anda ragu, Anda dapat menggunakan situs web https://www.timeanddate.com/ untuk mendapatkan offset dari UTC/GMT. "2" tepat untuk musim panas Jerman.

Anda juga dapat menyesuaikan kata sandi ota setelah membaca instruksi mengenai mode simpan dalam dokumentasi di

Setelah restart, Anda mungkin menemukan perangkat yang ditayangkan di jaringan dan setelah mendapatkan balasan dari server ntp, waktu lokal tersedia.

Langkah 8: Menambahkan Beberapa Logging

Hanya nilai aktual yang mungkin tidak cukup sehingga beberapa elemen lagi dapat digunakan.

Untuk cerita ini, elemen Log dan Elemen NPTTime digunakan untuk merekam riwayat nilai sensor dalam file log dan kartu UI Web untuk elemen ini dapat menampilkannya sebagai grafik.

Konfigurasi berikut membuat 2 elemen log untuk gas dan partikel:

{

"log": { "pm": { "description": "Log of pm25", "filename": "/pmlog.txt", "filesize": "10000" }, "aq": { "description": " Log kualitas gas", "nama file": "/aqlog.txt", "ukuran file": "10000" } } }

Langkah 9: Tindakan

tindakan
tindakan

Sekarang kita perlu mentransfer nilai aktual ke elemen log dengan menggunakan tindakan. Tindakan menggunakan notasi URL untuk meneruskan kay dan nilai ke elemen target. Banyak Elemen mendukung tindakan emisi pada peristiwa tertentu yang terjadi seperti menangkap nilai sensor baru.

Tindakan dikonfigurasi pada elemen yang memancarkan tindakan 2 entri diperlukan:

  • Acara onvalue pms/p25 mengirimkan nilai aktual ke elemen log/pm menggunakan tindakan nilai.
  • Acara bme680/bd ongas mengirimkan nilai aktual ke elemen log/pm menggunakan tindakan nilai.

{

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

Sekarang semua elemen dikonfigurasi.

Langkah 10: Gambar dan File Konfigurasi

Gambar dan File Konfigurasi
Gambar dan File Konfigurasi
Gambar dan File Konfigurasi
Gambar dan File Konfigurasi
Gambar dan File Konfigurasi
Gambar dan File Konfigurasi

Berikut adalah beberapa gambar sensor Kualitas Udara IoT terakhir saya.

File konfigurasi untuk diunduh perlu diganti namanya menjadi *.json (tanpa.txt) sebelum diunggah.

Tautan dan referensi

  • Repositori Kode Sumber HomeDing:
  • Dokumentasi:
  • Contoh Standar:
  • Elemen BME680:
  • Elemen PMS:
  • Elemen log:
  • Elemen NtpTime:

Direkomendasikan: