İçindekiler:

WiFi IoT Sıcaklık ve Nem Sensörü. Bölüm: 8 IoT, Ev Otomasyonu: 9 Adım
WiFi IoT Sıcaklık ve Nem Sensörü. Bölüm: 8 IoT, Ev Otomasyonu: 9 Adım

Video: WiFi IoT Sıcaklık ve Nem Sensörü. Bölüm: 8 IoT, Ev Otomasyonu: 9 Adım

Video: WiFi IoT Sıcaklık ve Nem Sensörü. Bölüm: 8 IoT, Ev Otomasyonu: 9 Adım
Video: Raspberry Pi 3 İle DHT11 Sıcaklık ve Nem Sensörü Kullanımı #8 2024, Kasım
Anonim
WiFi IoT Sıcaklık ve Nem Sensörü. Bölüm: 8 IoT, Ev Otomasyonu
WiFi IoT Sıcaklık ve Nem Sensörü. Bölüm: 8 IoT, Ev Otomasyonu

önsöz

Bu makale, daha önceki bir Eğitilebilir Öğenin pratik sağlamlaştırılmasını ve ileriye dönük gelişimini belgelemektedir: ilk IoT WiFi Cihazınızı 'Pimping'. Bölüm 4: IoT, Ev Otomasyonu, ev ortamında başarılı bir dağıtım sağlamak için gerekli tüm yazılım işlevselliğini içerir.

Tanıtım

Yukarıda bahsedildiği gibi, bu Eğitilebilir Tablo, daha önceki bir IoT örneğinin, aşağıdakiler gibi pratik kullanım durumlarının başarılı bir şekilde ele alınmasına izin veren güvenilir bir sistem tasarımı ile bir araya getirilmesini açıklar; Olağanüstü güç kaybı, MQTT Broker arızası, WiFi N/W arızası, uzaktan sensör yeniden yapılandırması, ağ trafiğini azaltmak için yapılandırılabilir raporlama stratejisi ve ısmarlama sensör kalibrasyonu.

Toplam 6 kapalı cihaz oluşturuldu (yukarıdaki resim 1'e bakın) ve ilk IoT sensör ağımı oluşturmak için evimin her yerine dağıtıldı.

Instructable ayrıca, ilk IoT Ev Otomasyonu serisinde kullanıldığı şekliyle MQTT adlandırma kuralının bir incelemesini, çoklu IoT cihaz ortamında IoT trafiğinde daha basit hata ayıklamaya izin veren daha dengeli, pratik bir yapıya yol açan bir inceleme görür.

Aşağıdakiler, aşağıdakiler dahil olmak üzere IoT sensörünün tüm tasarım detaylarıdır; inşaat, kaynak kodu, test stratejisi ve OpenHAB konfigürasyonları.

Hangi parçalara ihtiyacım var?

  1. 1 kapalı ESP8266-01,
  2. 2 kapalı 1uF Elektrolitik Kapasitör,
  3. 3 kapalı 10K direnç,
  4. 1 kapalı 330R direnç,
  5. 1 kapalı 3mm çap. LED,
  6. 1 kapalı LD1117-33v, 3v3 LDO VReg. (Farnell burada),
  7. 1 kapalı DHT22 Sıcaklık/Nem Sensörü,
  8. 1 kapalı Çift 4 yollu 0.1" Konektör,
  9. 1 adet CAMDENBOSS RX2008/S-5 Plastik Muhafaza, Saksı Kutusu, ABS, 38 mm, 23 mm (Farnell burada),
  10. 1 kapalı DC Güç Konektörü, Fiş, 1 A, 2 mm, Panel Montajı (Farnell burada),
  11. 1 kapalı TO-220 Soğutucu 24,4 °C/W (Farnell burada),
  12. Çeşitli ısıyla daralan makaronlar (sarı, Ebay burada),
  13. Çeşitli uzunluklarda IDC şerit kablo,
  14. soğutucu bileşik,
  15. veroboard,
  16. ESP8266-01 programlama cihazı. Buraya bakın; Şerit Pano ile Pratik Devre Yapımı, Adım 9'dan itibaren.

Hangi yazılıma ihtiyacım var?

  1. Arduino IDE 1.6.9
  2. Arduino IDE, ESP8266-01'i programlamak için yapılandırıldı. Buraya bakın; ESP8266-01'i Programlamak için Arduino IDE'yi Ayarlama

Hangi araçlara ihtiyacım var?

  1. Havya,
  2. Matkap ve çeşitli uçlar,
  3. Dosyalar,
  4. Demir testeresi,
  5. Sağlam mengene,
  6. Isı tabancası,
  7. DMM.

Hangi becerilere ihtiyacım var?

  1. Minimum düzeyde elektronik bilgisi,
  2. Arduino ve IDE bilgisine sahip,
  3. İlkel imalat becerileri (lehimleme, demir testeresi, dosyalama, delme vb.),
  4. Biraz Sabır,
  5. Ev ağınız hakkında biraz anlayış.

İşlenmiş konular

  1. Devreye genel bakış
  2. Yazılım Sistemine Genel Bakış
  3. Yazılıma Genel Bakış
  4. Sensör Kalibrasyonu
  5. MQTT Konu Adlandırma Kuralı
  6. OpenHAB Yapılandırması
  7. Tasarımın Test Edilmesi
  8. Çözüm
  9. Kullanılan Referanslar

Seri Bağlantılar

7. Bölüme: Çalışma Işıkları Denetleyicisi (yeniden çalışıldı). Bölüm 7: IoT, Ev Otomasyonu

Bölüm 9'a: IoT Şebeke Denetleyicisi. Bölüm 9: IoT, Ev Otomasyonu

Adım 1: Devreye Genel Bakış

Devreye Genel Bakış
Devreye Genel Bakış
Devreye Genel Bakış
Devreye Genel Bakış
Devreye Genel Bakış
Devreye Genel Bakış
Devreye Genel Bakış
Devreye Genel Bakış

Yukarıdaki Resim 1, IoT sensörü için tam devre tasarımını göstermektedir.

IoT cihazının kalbinde, DHT22 sıcaklık/nem sensörüne 10K çekme direnci aracılığıyla GPIO2'ye bağlanan ESP8266-01 bulunur. Harici bir 5v, anahtarlamalı mod kaynağı ile sağlanır ve 2 mm DC panel montaj soketi aracılığıyla cihaza beslenir ve BZP M3 yuvarlak başlı vida ve somun ile harici bir soğutucuya monte edilmiş bir LD1117-33v, 3v3 LDO voltaj regülatörü ile yerel olarak düzenlenir.

Tasarım, başlatma veya sonraki herhangi bir hata durumu sırasında IoT cihazının durumunu yerel olarak belirtmek için kullanılan GPIO0'a bağlı 3 mm'lik kırmızı bir led içerir. Ayrıca openHAB arayüzü üzerinden manuel aktivasyon ile cihazı tanımlamak için de kullanılabilir.

Tam tasarım, yukarıda resim 2'de gösterildiği gibi bir ABS saksı kutusuna düzgün bir şekilde sığar ve yerel ısıtma etkileri nedeniyle sapmayı önlemek için sensörün regülatörden mümkün olduğunca uzakta olmasını sağlamak için özel olarak düzenlenmiştir (yukarıdaki resim 7).

Devre kartı, şekle göre kesilmiş ve muhafazaya sığacak şekilde yapılmış tek bir veroboard parçasıdır (yukarıdaki resim 3). Bu kart, bir M3 havşa başlı naylon vida ve sensörün alt tarafı ile aynı hizada oturan iki somun ile yerine sabitlenir ve böylece düz bir yüzeye oturmasını sağlar.

Resimler 4 … 6, çeşitli inşaat durumlarını göstermektedir.

2. Adım: Yazılım Sistemine Genel Bakış

Yazılım Sistemine Genel Bakış
Yazılım Sistemine Genel Bakış
Yazılım Sistemine Genel Bakış
Yazılım Sistemine Genel Bakış

Bu IoT sıcaklık ve nem algılama cihazı, yukarıdaki resim 1'de gösterildiği gibi altı temel yazılım bileşeni içerir.

SPIFFS

Bu, yerleşik SPI Flash Dosyalama Sistemidir ve aşağıdaki bilgileri tutmak için kullanılır (yukarıdaki resim 2'ye bakın);

  • Simgeler ve 'Sensör Yapılandırması Ana Sayfası' html: IoT WiFi ağınıza bağlanamadığında (genellikle yanlış güvenlik bilgileri nedeniyle) IoT cihazı tarafından sunulur ve kullanıcıya sensörü ihtiyaç duymadan uzaktan yapılandırma olanağı sağlar yeni SPIFFS içeriğini yeniden programlamak veya yüklemek için.
  • Güvenlik Bilgileri: Bu, IoT cihazı tarafından IoT WiFi ağınıza ve MQTT Broker'a bağlanmak için açılışta kullanılan bilgileri tutar. 'Sensör Yapılandırma Ana Sayfası' aracılığıyla gönderilen bilgiler bu dosyaya ('secvals.txt') yazılır.
  • Kalibrasyon Bilgileri: Bu dosyada ('calvals.txt') bulunan bilgiler, gerektiğinde yerleşik sıcaklık/nem sensörünü kalibre etmek için kullanılır. Kalibrasyon sabitleri, yalnızca bir MQTT aracısından alınan MQTT komutları aracılığıyla IoT cihazına yazılabilir.

Not: İlk olarak cihazı kurmak için, Arduino IDE ile SPIFFS'nin nasıl kullanılacağına dair tüm ayrıntılar için buraya bakın.

mDNS Sunucusu

Bu işlevsellik, IoT cihazı WiFi istasyonu olarak WiFi ağınıza bağlanamadığında ve bunun yerine yerel WiFi yönlendiriciye benzer bir WiFi erişim noktası haline geldiğinde çağrılır. Böyle bir yönlendirici olması durumunda, tipik olarak 192.168.1.1 gibi bir IP Adresini (genellikle kutuya yapıştırılmış bir etikette basılıdır) doğrudan tarayıcınızın URL çubuğuna girerek ona bağlanırsınız ve bunun üzerine girmek için bir oturum açma sayfası alırsınız. cihazı yapılandırmanıza izin vermek için kullanıcı adı ve şifre.

AP modunda (Erişim Noktası modu) ESP8266 için, cihaz varsayılan olarak 192.168.4.1 IP adresini kullanır, ancak mDNS sunucusu çalışırken, tarayıcının URL çubuğuna yalnızca insan dostu 'SENSORSVR.local' adını girmeniz yeterlidir. 'Sensör Yapılandırma Ana Sayfası'.

MQTT İstemcisi

MQTT istemcisi, aşağıdakiler için gerekli tüm işlevleri sağlar; IoT ağ MQTT aracınıza bağlanın, seçtiğiniz konulara abone olun ve belirli bir konuya yükleri yayınlayın. Kısacası, IoT temel işlevselliğini sağlar.

HTTP Web Sunucusu

Yukarıda belirtildiği gibi, IoT cihazı, SPIFFS'de tutulan Güvenlik Bilgileri dosyasında SSID, P/W vb. tanımlanan WiFi ağına bağlanamıyorsa, cihaz bir Erişim Noktası olacaktır. Erişim Noktası tarafından sağlanan WiFi ağına bağlandıktan sonra, bir HTTP Web Sunucusunun varlığı, aygıta doğrudan bağlanmanıza ve bir HTTP Web Tarayıcısı kullanarak yapılandırmasını değiştirmenize olanak tanır, amacı 'Sensör Yapılandırma Ana Sayfası'nı sunmaktır. SPIFFS'de de düzenlenen Page' web sayfası.

WiFi İstasyonu

Bu işlevsellik, IoT cihazına Güvenlik Bilgileri dosyasındaki parametreleri kullanarak yerel bir WiFi ağına bağlanma yeteneği verir, bu olmadan IoT cihazınız MQTT Broker'a abone olamaz/yayınlayamaz

WiFi Erişim Noktası

WiFi Erişim Noktası olma yeteneği, IoT cihazının bir WiFi istasyonu ve bir tarayıcı (Apple iPad'deki Safari gibi) aracılığıyla ona bağlanmanıza ve yapılandırma değişiklikleri yapmanıza izin verdiği bir araçtır.

Bu erişim noktası, bir SSID = "SENSOR" + IoT cihazının MAC adresinin son 6 hanesini yayınlar. Bu kapalı ağın parolası hayali olarak 'PAROLA' olarak adlandırılmıştır.

3. Adım: Yazılıma Genel Bakış

Yazılıma Genel Bakış
Yazılıma Genel Bakış
Yazılıma Genel Bakış
Yazılıma Genel Bakış

ÖnsözBu kaynak kodunu başarılı bir şekilde derlemek için aşağıdaki ekstra kitaplıklara ihtiyacınız olacak;

PubSubClient.h

  • Gönderen: Nick O'Leary
  • Amaç: Cihazın belirli bir Broker ile MQTT konularını yayınlamasını veya bunlara abone olmasını sağlar
  • Kimden:

DHT.h

  • Gönderen: Adafruit
  • Amaç: DHT Sıcaklık/Nem Sensörü Kütüphanesi
  • Kimden:

Kod Genel Bakış

Yazılım, yukarıdaki resim 1'de gösterildiği gibi durum makinesini kullanır (aşağıda verilen kaynağın tam kopyası). Aşağıdaki gibi 5 ana durum vardır;

  • İÇİNDE

    Bu başlatma durumu, güç açıldıktan sonra girilen ilk durumdur

  • NOCONFIG

    Güç açıldıktan sonra geçersiz veya eksik bir secvals.txt dosyası algılanırsa bu duruma girilir

  • BEKLEMEDE NW

    Bu durum geçicidir, WiFi ağ bağlantısı yokken girilir

  • BEKLEMEDE MQTT

    Bu durum geçicidir, bir WiFi ağ bağlantısı yapıldıktan sonra ve o ağda bir MQTT aracısına bağlantı yokken girilir

  • AKTİF

    Bu, hem WiFi ağ bağlantısı hem de MQTT Broker bağlantısı kurulduğunda girilen normal çalışma durumudur. Bu durum sırasında sensörün sıcaklık ve nem işlevselliği MQTT Broker'a yayınlanır

Durumlar arasındaki geçişleri kontrol eden olaylar, yukarıdaki resim 1'de açıklanmıştır. Durumlar arasındaki geçişler de aşağıdaki SecVals parametreleri tarafından yönetilir;

  • 1. MQTT Aracısı IP Adresi. Noktalı ondalık biçimde AAA. BBB. CCC. DDD
  • 2. MQTT Broker Limanı. Tamsayı biçiminde.
  • STA modundan AP moduna geçmeden önce 3. MQTT Broker bağlantısı yapılmaya çalışılıyor. Tamsayı biçiminde.
  • 4. WiFi Ağ SSID'si. Serbest biçimli metinde.
  • 5. WiFi Ağ Şifresi. Serbest biçimli metinde.

Yukarıda belirtildiği gibi, IoT cihazı, SSID'si ve P/W'si SPIFFS'de tutulan secvals.txt dosyasında tanımlanan WiFi ağına bir WiFi İstasyonu olarak bağlanamıyorsa, IoT cihazı bir Erişim Noktası haline gelecektir. Bu erişim noktasına bağlandıktan sonra, yukarıda Resim 2'de gösterildiği gibi (tarayıcınızın URL adres çubuğuna 'SENSORSVR.local' veya 192.168.4.1 girerek) 'Sensör Yapılandırma Ana Sayfası'nı sunacaktır. Bu ana sayfa, sensörün bir HTTP tarayıcısı aracılığıyla yeniden yapılandırılmasına izin verir.

AKTİF durumdayken Uzaktan Erişim

MQTT Broker'a bağlandıktan sonra, MQTT konu yayınları aracılığıyla cihazı hem yeniden kalibre etmek hem de yeniden yapılandırmak da mümkündür. calvals.txt dosyasının R/W erişimi vardır ve secvals.txt dosyasının yalnızca açıkta yazma erişimi vardır.

Kullanıcı hata ayıklama

Önyükleme sırası sırasında IoT cihazı led'i aşağıdaki hata ayıklama geri bildirimini verir

  • 1 Kısa yanıp sönme: SPIFFS'de (secvals.txt) bulunan Yapılandırma dosyası yok
  • 2 Kısa yanıp sönme: IoT cihazı WiFi ağına bağlanmaya çalışıyor
  • Sürekli aydınlatma: IoT cihazı MQTT Broker'a bağlanmaya çalışıyor
  • Kapalı: Cihaz etkin
  • Not 1: 'Sensör Yapılandırma Ana Sayfası' güvenli soketler kullanmaz ve bu nedenle ağınızın güvenli olmasına bağlıdır.
  • Not 2: Her bir IoT cihazını programlamak için MQTT dizisinin indirmeden önce düzenlenmesi gerekecektir. Bunun nedeni, sensör numarasının MQTT konu dizisine gömülü olmasıdır. yani. 6 cihazım için 'WFD/THSen/100/HumdStatus/1' sırasıyla 1…6 olarak numaralandırılmıştır.

Adım 4: Sensör Kalibrasyonu

Sensör Kalibrasyonu
Sensör Kalibrasyonu
Sensör Kalibrasyonu
Sensör Kalibrasyonu

IoT cihazı açıldığında, önyükleme sırasının bir parçası olarak SPIFFS'den 'cavals.txt' adlı bir dosya okunur. Bu dosyanın içeriği, yukarıda resim 1'de gösterildiği gibi kalibrasyon sabitleridir. Bu kalibrasyon sabitleri, sensörden alınan okumaları bir referans cihazı ile aynı hizaya getirmek için ayarlamak için kullanılır. Cihaz için bir raporlama stratejisi tanımlayan ve sensörleri kalibre etmek için izlenen prosedürle birlikte aşağıda açıklanan başka bir değer daha vardır.

Raporlama StratejisiBu parametre, uzak sensörün herhangi bir yerel ortam parametrik değişikliğini nasıl raporladığını belirler. 0 değeri seçilirse, uzak sensör, sensörün her okunuşunda (yaklaşık her 10 saniyede bir) sıcaklık veya nem değerlerinde gördüğü herhangi bir değişikliği yayınlayacaktır. Başka herhangi bir değer, değişikliğin yayınlanmasını 1…60 dakika geciktirecektir. Bu parametrenin değiştirilmesi, MQTT ağ trafiğinin optimizasyonuna izin verir.

Sıcaklık kalibrasyonu

Sensörleri kalibre etmek için, yukarıdaki resim 2'de gösterildiği gibi birbirlerine fiziksel olarak yakın bir yere yerleştirildiler. Yanlarına, kalibre edilmiş bir termokupl takılı (Fluke 87 V) bir DMM yerleştirdim ve ardından OpenHAB sıcaklığı aracılığıyla her bir cihazdan çıkışları izledim. İyi bir sıcaklık değişimi elde etmek için bir gün boyunca trend sayfası. Kalibre edilmiş termokupldan gelen değere göre hem statik ofseti (yükseltilmiş sıfır 'C') hem de her cihazın değişim oranını (kazanç veya 'M' grafiğinin eğimi) kaydettim. Daha sonra basit y=mx+c ilişkisini hesapladım (düz çizgi grafiğine yakın bir yaklaşım olacak şekilde yeterince doğrusal olduğunu buldum) ve MQTTSpy aracılığıyla kalibrasyon sabitlerine gerekli düzeltmeleri programladım.

Cihazlar daha sonra kalibrasyonun başarılı olduğundan emin olmak için 24 saat daha izlendi. OpenHAB sıcaklık trendi sayfasındaki sıcaklık izlerinin bir göstergesi, neredeyse birbirinin üstündeydi.

Tabii ki, yalnızca sıcaklığa yaklaşık bir değerle ilgileniyorsanız, tüm kalibrasyon değerlerini varsayılan olarak bırakabilirsiniz.

Nem Kalibrasyonu

Yerel ortam nemini doğru bir şekilde kaydetmek ve hatta kontrol etmek için hiçbir aracım olmadığı için, sensörleri kalibre etmek için, tüm cihazları yakın fiziksel yakınlığa yerleştirerek (resim 2) ve çıkışlarını OpenHAB aracılığıyla izleyerek yukarıdakilere benzer bir yaklaşım kullandım. Nem eğilimi sayfası. Daha sonra kalibrasyon referansı olarak 1 numaralı cihazı seçtim ve buna göre tüm cihazları kalibre ettim.

Adım 5: MQTT Konu Adlandırma Kuralı

MQTT Konu Adlandırma Kuralı
MQTT Konu Adlandırma Kuralı
MQTT Konu Adlandırma Kuralı
MQTT Konu Adlandırma Kuralı

Çok fazla deneme yanılmadan sonra, yukarıdaki resim 1'de özetlenen konu adlandırma kuralına karar verdim.

Yani, 'ErişimYöntemi/AygıtTürü/Hangi Aygıt/Eylem/Alt Aygıt'

Mükemmel değil, ancak belirli bir parametrik değer için tüm sensör çıkışlarını görmek için kullanışlı filtrelerin uygulanmasına izin veriyor, böylece MQTTSpy ile yukarıdaki resim 2'de olduğu gibi kolay karşılaştırmaya izin veriyor. Ayrıca, belirli bir IoT cihazı içinde makul ölçüde genişletilebilir mantıksal işlevsellik gruplarını da destekler.

Bu konuları yazılımda uygularken, RAM'den tasarruf etmek ve performansı yüksek tutmak için konuları çalışma zamanında dinamik olarak oluşturmak yerine, her cihaz için sabit, gömülü sayısal tanımlayıcılara sahip sabit kodlanmış konu dizeleri kullandım.

Not: MQTTSpy'ı nasıl kullanacağınızdan emin değilseniz, buraya bakın 'Bir MQTT Aracısı Kurma. Bölüm 2: IoT, Ev Otomasyonu'

Adım 6: OpenHAB Yapılandırması

OpenHAB Yapılandırması
OpenHAB Yapılandırması
OpenHAB Yapılandırması
OpenHAB Yapılandırması
OpenHAB Yapılandırması
OpenHAB Yapılandırması

Daha önceki Instructable'ımda (burada) verilen OpenHAB yapılandırmasını değiştirdim ve aşağıdakiler için ayrı girişler ekledim;

  • Garaj,
  • Salon,
  • Oturma odası,
  • Mutfak
  • Misafir odası
  • Ana yatak odası

Site haritasında yukarıdaki resim 1'e bakın.

Bu girişlerin her biri için yerel ortam değerlerini gösteren ayrı site haritaları ekledim (yukarıdaki resim 2'ye bakın);

  • Sıcaklık
  • Nem
  • Isı İndeksi

Ayrıca sensöre monte edilen yerel led'i kontrol etmek için bir anahtar ekledim.

Resimler 3 …5 sıcaklık, nem ve RSSI (Alınan Sinyal Gücü Göstergesi, temel olarak sensörün WiFi ağını ne kadar iyi görebildiğinin bir ölçüsü) için 24 saat boyunca bireysel canlı izleri gösterir.

Resim 6, bir hafta boyunca uzun vadeli bir nem eğilimi örneğini vermektedir.

Not 1: OpenHAB'ı nasıl kullanacağınızdan emin değilseniz, buraya bakın 'OpenHAB'ı Kurma ve Yapılandırma. Bölüm 6: IoT, Ev Otomasyonu'

Not 2: Değiştirilen site haritasının bir kopyası, kurallar ve öğeler dosyaları, Simgeler vb. aşağıda verilmiştir.

Adım 7: Tasarımın Test Edilmesi

Tasarımın Test Edilmesi
Tasarımın Test Edilmesi
Tasarımın Test Edilmesi
Tasarımın Test Edilmesi

Çoğunlukla IoT cihazını MQTT Spy ile MQTT bağlantısı üzerinden test ettim, led çıkışını izledim ve seri arayüzde trafik hatalarını ayıkladım. Bu, mevcut tüm abone olunan konuları kullanmama ve yayınlanan yanıtları kontrol etmeme izin verdi. Bu manuel olarak elde edilmiş ve zaman zaman biraz sıkıcı olsa da, %100 kapsama alanı sağlamıştır.

Ancak ana durum makinesinin, erişimi belirli parametre setleri gerektiren bir WiFi ağının varlığına veya yokluğuna bağlı olduğu için test edilmesi biraz zor oldu. Bunun için ev ağını kullanmak pratik değildi.

Bu sorunu aşmak için, sırasıyla 'DummyNet1' ve 'DummyNet2' SSID'leri ile Erişim Noktaları (resim 1) olarak yapılandırılmış ESP8266-01'i kullanarak kendi sahte ağ setimi oluşturdum. Yukarıdaki resim 2'deki devreyi kullanarak led, ona bir IoT cihazının bağlı olup olmadığını gösteriyordu. Bu mükemmel bir test çözümü olmasa da (yani bu sahte WiFi ağlarının her biri bir MQTT sunucusu içermiyordu) durum makinesini tamamen test etmek mümkündü.

Kaynak kodun bir kopyasını aşağıya ekledim.

Adım 8: Sonuç

Genel

IoT cihazlarındaki yazılım, evdeki elektrik kesintilerinden (esas olarak kendimden kaynaklanan) kurtulmak için aylarca güvenilir bir şekilde çalıştı. Genel olarak, tutarlı ve doğru veriler veren oldukça sağlam cihazlardır.

İyileştirmeler

SPIFFS'ye okumak ve yazmak için yazılım rutinleri geliştirirken, arka görüşte amaçladığımdan biraz daha gelişmiş olabilecek kodlar yazdım, geçersiz işaretçiler, yeniden biçimlendirme ve işaretçiler için işaretçiler kullandım. Çok esnek olmasına ve işi iyi yapmasına rağmen, bir dahaki sefere biraz daha basit tutmak için ConfigFile.ino satırları boyunca JSON kullanabilirim.

  • Arduino GIT HUB Çekirdeği

    https://github.com/esp8266/Arduino

  • ConfigFile.ino Kaynak

    https://github.com/esp8266/Arduino/tree/master/libraries/esp8266/examples/ConfigFile

İstek listesi

Broker'a bağlanmak için bir mDNS istemcisi kullanmayı amaçlamıştım ama kitaplık çok dağınıktı. Bu nedenle 'MQTTSVR.local' yerine MQTT Broker IP adresini belirtmek gereklidir. Gelecekte mDNS kitaplığı daha kararlı hale gelirse bu özelliği cihaza ekleyeceğim.

Sensörleri kalibre etmek için ortam nemini hem doğru bir şekilde izleme hem de kontrol etme araçlarına sahip olmak güzel olurdu. Bununla birlikte, seçilen kalibrasyon yönteminin iyi nispi okumalar verdiğini ve DHT22 veri sayfasındaki spesifikasyona uygun olarak makul derecede doğru göründüğünü söyledi.

Son olarak, yazılımın karmaşıklığı göz önüne alındığında, büyük bir değişiklik zaman alıcı hale geldikten sonra kodu tamamen test ettiğimi buldum. Daha sonraki bir tarihte otomatik test yapmayı düşünebilirim.

9. Adım: Kullanılan Referanslar

Bu Eğitilebilirliği bir araya getirmek için aşağıdaki kaynakları kullandım;

PubSubClient.h

  • Gönderen: Nick O'Leary
  • Kimden:

DHT.h

  • Gönderen: Adafruit
  • Kimden:

DHT22 Veri Sayfası

Önerilen: