İçindekiler:

Kurum İçi IoT Hava Kalitesi Sensörü Oluşturun Bulut Gerekmez: 10 Adım
Kurum İçi IoT Hava Kalitesi Sensörü Oluşturun Bulut Gerekmez: 10 Adım

Video: Kurum İçi IoT Hava Kalitesi Sensörü Oluşturun Bulut Gerekmez: 10 Adım

Video: Kurum İçi IoT Hava Kalitesi Sensörü Oluşturun Bulut Gerekmez: 10 Adım
Video: Nesnelerin İnterneti - Panel: Üretim Nasıl Değişecek? 2024, Kasım
Anonim
Kurum İçi IoT Hava Kalitesi Sensörü Oluşturun Bulut Gerekmez
Kurum İçi IoT Hava Kalitesi Sensörü Oluşturun Bulut Gerekmez
Kurum İçi IoT Hava Kalitesi Sensörü Oluşturun Bulut Gerekmez
Kurum İçi IoT Hava Kalitesi Sensörü Oluşturun Bulut Gerekmez
Kurum İçi IoT Hava Kalitesi Sensörü Oluşturun Bulut Gerekmez
Kurum İçi IoT Hava Kalitesi Sensörü Oluşturun Bulut Gerekmez
Kurum İçi IoT Hava Kalitesi Sensörü Oluşturun Bulut Gerekmez
Kurum İçi IoT Hava Kalitesi Sensörü Oluşturun Bulut Gerekmez

İç veya dış havanın kalitesi, birçok kirlilik kaynağına ve ayrıca hava durumuna bağlıdır.

Bu cihaz, 2 sensör çipi kullanarak bazı yaygın ve en ilginç parametrelerden bazılarını yakalar.

  • Sıcaklık
  • Nem
  • Baskı yapmak
  • Organik Gaz
  • Mikro parçacıklar

Burada kullanılan sensörler sıcaklık, nem, basınç ve organik gaz değerlerini almak için BME680 ve mikro partiküllerin yoğunluğunu almak için PMS5003'tür.

HomeDing kitaplığını kullanarak, yalnızca ev Ağınıza bağlı olan ve ağdaki herhangi bir tarayıcı tarafından erişilip kontrol edilebilen bir cihaz oluşturmak kolaydır. En yaygın sensör çiplerinin, cihazlarının ve diğer hizmetlerin kullanılmasına izin veren bir dizi Öğe ile birlikte gelir.

Ayrıca sensör verilerini görüntülemek ve cihazla etkileşim kurmak için bulut tabanlı bir çözüm kullanmak yerine bir web tarafını cihaz içinde barındırmak için eksiksiz bir çözüm getiriyor.

Gereçler

Bu projeyi oluşturmak için ihtiyacınız olan tek şey, nodemcu kartı gibi ESP8266 tabanlı bir kart ve hava kalitesini ölçmek için bir dizi sensör. Bu projede kullanılan HomeDing kitaplığı, sıcaklık, nem, basınç ve kalite için yaygın olarak kullanılan bazı sensör çiplerini destekler. Burada BMP680 yongası kullanılıyor.

  • Güç kaynağı için bir USB fişi ve bir mikro usb kablosu.
  • ESP8266 CPU'lu 1 nodemcu kartı.
  • 1 BME680 sensör koparma kartı.
  • 1 PM2.5 hava partikül lazer sensörü tipi PMS5003

BME680 sensörünü bir DHT22 sensörüyle değiştirmek kolaydır, çünkü bunlar da diğerlerinin yanı sıra kitaplık tarafından da desteklenir.

Adım 1: Arduino Ortamını ESP8266 için Hazırlayın

Arduino Ortamını ESP8266 için Hazırlayın
Arduino Ortamını ESP8266 için Hazırlayın
  1. Arduino IDE'nin en son sürümünü yükleyin (şu anda sürüm 1.8.2).
  2. esp8266 desteğini yüklemek için Board Manager'ı kullanın. Ayrıntılı bir talimat burada bulunabilir:https://arduino-esp8266.readthedocs.io/en/latest/i…
  3. 1MByte SPIFFS Dosya Sistemine sahip bir NodeMCU 1.0 için kart seçeneklerini ekran görüntüsünde gösterildiği gibi ayarlayın

2. Adım: Gerekli Kitaplıkları Dahil Edin

Gerekli Kitaplıkları Dahil Et
Gerekli Kitaplıkları Dahil Et

HomeDing kitaplığı, sensörlerin ve ekranların çalışması için bazı yaygın ek kitaplıklara dayanır.

HomeDing kitaplığını kurduğunuzda, resimde gösterildiği gibi otomatik olarak kurulabilen bu gerekli kitaplıkların bulunduğu bir açılır pencere göreceksiniz ve hepsini kurmak kolaydır.

Bazen (bilinmeyen nedenlerle) kitaplıkların kurulumu başarısız olur, bu nedenle gerekli tüm kitaplıkların manuel olarak yüklenmesi gerekir.

Gerekli kitaplıklar hakkında daha fazla ayrıntı https://homeding.github.io/#page=/elements.md adresindeki dokümantasyon web sitesinde bulunabilir.

Bu, mevcut gerekli kitaplıkların listesidir:

  • Adafruit NeoPixel
  • LiquidCrystal_PCF8574.h
  • SSD1306 ekranı için ESP8266 ve ESP32 Oled Sürücüsü
  • Döner Kodlayıcı
  • ESPx için DHT sensör kitaplığı
  • Tek Tel

PMS5003 hava partikül lazer sensörü, 9600 baud seri hat sinyali kullanarak iletişim kurar. Bu sinyal, ESP8266 araçlarının kurulumuyla birlikte gelen SoftwareSerial kitaplığı kullanılarak yakalanır. Kitaplık olarak daha eski bir sürümün kurulu olmadığından emin olun.

Adım 3: Standart Örnek Çizimi Özelleştirin

Standart Örnek Çizimi Özelleştirin
Standart Örnek Çizimi Özelleştirin

Standart Örnek, daha yaygın sensörlerden bazılarını zaten eleman olarak içerir, bu nedenle sadece bazı konfigürasyonlar gerekli olacaktır.

Bu, BME680 Elemanı tarafından desteklenen BME680 sensörü için geçerlidir.

PMS5003 sensörü daha az yaygındır ve PMS Elemanı bellenime dahil edilerek etkinleştirilmesi gerekir. Bu, eskizin eleman kaydı bölümünde #define HOMEDING_INCLUDE_PMS tanımlanarak yapılır.

#define HOMEDING_INCLUDE_BME680#define HOMEDING_INCLUDE_PMS

Yeni aygıtı ağa eklemeyi kolaylaştırmak için, standart.ino çizim dosyasının yanındaki secrets.h dosyasına ev WiFi'nizin SSID'sini ve parolasını ekleyebilirsiniz. Ancak, bu sabit kodlanmış yapılandırma olmadan cihazı ağa eklemek için yerleşik WiFi Yöneticisini de kullanabilirsiniz.

Artık eskizin uygulanmasıyla ilgili her şey yapıldı ve ürün yazılımı derlenip yüklenebilir.

4. Adım: Web Kullanıcı Arayüzünü yükleyin

Standart örnek, web kullanıcı arayüzü için tüm dosyaları içeren bir veri klasörüyle birlikte gelir.

Bu dosyaları yüklemeden önce bu makale ile bulabileceğiniz env.json ve config.json dosyasını eklemek isteyebilirsiniz çünkü bu işleri kolaylaştıracaktır.

Bu dosyaların içeriği, IoT cihazını özel yapan ve bir Hava Kalitesi sensörü gibi davranan şeydir. Bu hikayede detaylı olarak anlatılıyor.

ESP8266 dosya yükleme yardımcı programını kullanın ve tüm dosyaları yükleyin. Yapılandırmayı etkinleştirmek için yeniden başlatma gerekiyor.

Adım 5: BME680 Sensörünü ekleyin

BME680 Sensörünü ekleyin
BME680 Sensörünü ekleyin
BME680 Sensörünü ekleyin
BME680 Sensörünü ekleyin
BME680 Sensörünü ekleyin
BME680 Sensörünü ekleyin

BME680 Sensörü, I2C veri yolunu kullanarak kartla iletişim kuruyor.

Bu, muhtemelen diğer sensörler veya ekranlar gibi diğer uzantılarla paylaşıldığından, cihazın ağ adıyla birlikte env.json'da cihaz düzeyinde yapılandırılır. Cihaz ve I2C ayarlarının ayıklanmış bir örneği:

"cihaz": {

"0": { "ad": "havalandırma", "açıklama": "Hava Kalitesi Sensörü", … "i2c-scl": "D2", "i2c-sda": "D1" } }

Breadboard üzerinde sensöre giden bağlantı kablolarını görebilirsiniz: 3.3V=kırmızı, GND=siyah, SCL=sarı, SDA=mavi

BME680 için yapılandırma, config.json'da kullanılabilir:

"bme680": {

"bd": { "adres": "0x77", "okuma zamanı": "10s" } }

Eylemleri daha sonra ekleyeceğiz.

Kurulumu test etmek için bir tarayıcı kullanın ve https://airding/board.htm dosyasını açın ve sensörün gerçek değerlerinin görüntülendiğini göreceksiniz ve bunlar yaklaşık her 10 saniyede bir güncellenecektir:

Adım 6: PMS5003 Sensörünü ekleyin

PMS5003 Sensörünü ekleyin
PMS5003 Sensörünü ekleyin

Breadboard uyumlu bir konektöre sahip bir sensörüm yoktu, bu yüzden kablodaki konektörlerden birini kesmek zorunda kaldım, havyamı kullanarak doğrudan nodemcu kartına tutturmak zorunda kaldım. Son resimlerde hala görebilirsiniz.

Bu sensörün gücü, normalde USB veri yolu tarafından desteklenen Vin'den alınmalıdır. GND aynıdır ancak Vin pininin yanında da mevcuttur.

Sensörden gelen veriler standart 9600 baud seri formatında aktarılır, bu nedenle rx ve tx pinlerinin ve okuma süresinin yapılandırılması gerekir:

"pms": {

"pm25": { "açıklama": "pm25 parçacık sensörü", "pinrx": "D6", "pintx": "D5", "okuma zamanı": "10s" } }

Eylemleri daha sonra ekleyeceğiz.

Kurulumu tekrar test etmek için cihazı yeniden başlatın ve bir tarayıcı kullanın ve https://airding/board.htm dosyasını açın ve sensörün gerçek pm35 değerinin görüntülendiğini göreceksiniz ve bunlar yaklaşık her 10 saniyede bir güncellenecektir ancak bu değer normalde sık değişmiyor.

Bu parçacıkların çoğunu bir mum ürettiği için sensörün yanına bir mum ışığı yerleştirerek daha yüksek değerler elde edebilirsiniz.

Artık diğer tüm konfigürasyonlar ve hatta yazılım güncellemeleri uzaktan yapılabildiği için her şeyi güzel bir muhafazaya koyabilirsiniz.

7. Adım: Bazı Ağ Özelliklerini Ekleme

env.json'daki aşağıdaki yapılandırma özü etkinleştiriyor

  • aygıt yazılımını kablosuz olarak güncelleme
  • SSDP ağ protokolünü kullanarak ağın tespit edilmesini sağlar ve bir ntp sunucusundan geçerli saati alır.

{

… "ota": { "0": { "port": 8266, "passwd": "123", "description": "'Şebekeden' OTA Güncellemelerini dinle" } }, "ssdp": { "0 ": { "Üretici": "adınız" } }, "ntptime": { "0": { "okuma zamanı": "36h", "bölge": 2 } } }

Saat dilimini bulunduğunuz yere göre ayarlamalısınız. Şüpheniz varsa, UTC/GMT'den mahsup almak için https://www.timeanddate.com/ web sitesini kullanabilirsiniz. "2" Almanya'nın yaz mevsimi için doğru.

Ota şifresini

Yeniden başlattıktan sonra, ağdaki yayın cihazını bulabilirsiniz ve ntp sunucusundan bir yanıt aldıktan sonra yerel saat kullanılabilir.

8. Adım: Bazı Günlük Kayıt Ekleme

Sadece gerçek değerler yeterince vermeyebilir, bu nedenle daha fazla eleman kullanılabilir.

Bu hikaye için Log öğesi ve NPTTime Element, sensör değerlerinin geçmişini bir günlük dosyasına kaydetmek için kullanılır ve bu öğe için Web UI kartı bunu bir grafik olarak görüntüleyebilir.

Aşağıdaki konfigürasyon, gaz ve partiküller için 2 log elemanı oluşturur:

{

"günlük": { "pm": { "açıklama": "pm25 günlüğü", "dosyaadı": "/pmlog.txt", "dosya boyutu": "10000" }, "aq": { "açıklama": " Gaz kalitesi günlüğü", "dosya adı": "/aqlog.txt", "dosya boyutu": "10000" } } }

9. Adım: Eylemler

Hareketler
Hareketler

Şimdi eylemleri kullanarak gerçek değerleri log öğelerine aktarmamız gerekiyor. Eylemler, hedef öğeye bir kay ve değer iletmek için bir URL gösterimi kullanıyor. Birçok Öğe, yeni bir sensör değeri yakalamak gibi gerçekleşen belirli olaylarda yayan eylemleri destekler.

Eylemler, eylemleri yayan öğede yapılandırılır 2 giriş gereklidir:

  • pms/p25 onvalue olayı, bir değer eylemi kullanarak gerçek değeri log/pm öğesine gönderir.
  • bme680/bd ongas olayı, bir değer eylemi kullanarak gerçek değeri log/pm öğesine gönderir.

{

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

Şimdi tüm öğeler yapılandırıldı.

Adım 10: Resimler ve Yapılandırma Dosyaları

Resimler ve Yapılandırma Dosyaları
Resimler ve Yapılandırma Dosyaları
Resimler ve Yapılandırma Dosyaları
Resimler ve Yapılandırma Dosyaları
Resimler ve Yapılandırma Dosyaları
Resimler ve Yapılandırma Dosyaları

İşte son IoT Hava Kalitesi sensörümün bazı resimleri.

İndirilecek yapılandırma dosyalarının, yüklenmeden önce *.json (.txt yok) olarak yeniden adlandırılması gerekir.

Bağlantılar ve referanslar

  • HomeDing Kaynak Kodu Deposu:
  • Belgeler:
  • Standart Örnek:
  • BME680 Öğesi:
  • PMS Öğesi:
  • Günlük öğesi:
  • NtpTime Öğesi:

Önerilen: