Mündəricat:

WiFi IoT Temperatur və Nəmlik Sensoru. Bölmə: 8 IoT, Ev Avtomatlaşdırması: 9 Addım
WiFi IoT Temperatur və Nəmlik Sensoru. Bölmə: 8 IoT, Ev Avtomatlaşdırması: 9 Addım

Video: WiFi IoT Temperatur və Nəmlik Sensoru. Bölmə: 8 IoT, Ev Avtomatlaşdırması: 9 Addım

Video: WiFi IoT Temperatur və Nəmlik Sensoru. Bölmə: 8 IoT, Ev Avtomatlaşdırması: 9 Addım
Video: BroadLink RM4 mini - Ağıllı ev üçün IR nəzarətçi, uzaqdan idarəetmənin dəyişdirilməsi 2024, Noyabr
Anonim
WiFi IoT Temperatur və Nəmlik Sensoru. Bölmə: 8 IoT, Ev Otomasyonu
WiFi IoT Temperatur və Nəmlik Sensoru. Bölmə: 8 IoT, Ev Otomasyonu

Giriş

Bu məqalə, ilk IoT WiFi Cihazınızı 'oğurlamaq' üçün daha əvvəlki bir Təlimatlandırmanın praktiki möhkəmləndirilməsini və sonrakı inkişafını sənədləşdirir. 4 -cü hissə: IoT, Ev Otomasyonu, ev şəraitində müvəffəqiyyətli bir şəkildə yerləşdirilməsini təmin etmək üçün lazım olan bütün proqram funksiyalarını ehtiva edir.

Giriş

Yuxarıda qeyd edildiyi kimi, bu Təlimat, praktiki istifadə hallarının müvəffəqiyyətlə idarə edilməsinə imkan verən etibarlı sistem dizaynı ilə əvvəlki bir IoT nümunəsinin bir araya gətirilməsini təsvir edir; Fəlakətli enerji itkisi, MQTT Broker çatışmazlığı, WiFi N/W çatışmazlığı, uzaqdan sensorun yenidən konfiqurasiyası, şəbəkə trafikini azaltmaq və konfiqurasiya edilmiş sensor kalibrlənməsi üçün konfiqurasiya edilə bilən hesabat strategiyası.

İlk IoT sensor şəbəkəmi yaratmaq üçün cəmi 6 ədəd söndürmə cihazı yaradıldı (yuxarıdakı şəkil 1 -ə baxın) və evimin ətrafına paylandı.

The Instructable eyni zamanda IoT Ev Avtomatlaşdırma seriyasında istifadə olunan MQTT adlandırma konvensiyasının nəzərdən keçirilməsini təmin edir, bu da çoxlu IoT cihaz mühitində IoT trafikinin daha asan ayıklanmasına imkan verən daha balanslı və praktik bir quruluşa imkan verir.

Aşağıdakılar IoT sensorunun tam dizayn detallarıdır; tikinti, mənbə kodu, test strategiyası və OpenHAB konfiqurasiyaları.

Hansı hissələrə ehtiyacım var?

  1. 1 endirim ESP8266-01,
  2. 2 ədəd 1 uF elektrolitik kondansatör,
  3. 3 ədəd 10K rezistor,
  4. 1 off 330R rezistor,
  5. 1 ədəd 3 mm çap. LED,
  6. 1 endirim LD1117-33v, 3v3 LDO VReg. (Farnell burada),
  7. 1 dəfə DHT22 Temperatur/Nəmlik Sensoru,
  8. 1 dəfə Dual 4way 0.1 "Bağlayıcı,
  9. 1 ədəd CAMDENBOSS RX2008/S-5 Plastik Kassa, Çömçə qutusu, ABS, 38 mm, 23 mm (burada Farnell),
  10. 1 ədəd DC Güc Konnektoru, Fiş, 1 A, 2 mm, Panel Montajı (burada Farnell),
  11. 1 ədəd TO-220 Soğutucu 24.4 ° C/W (Farnell burada),
  12. Müxtəlif istilik büzücü borular (sarı, burada Ebay),
  13. Müxtəlif uzunluqlarda IDC lent kabeli,
  14. Soyuducu birləşmə,
  15. Lövhə,
  16. ESP8266-01 proqramlaşdırma cihazı. Bura baxın; Şerit lövhəsi ilə praktiki dövrə qurulması, 9 -cu addım.

Hansı proqrama ehtiyacım var?

  1. Arduino IDE 1.6.9
  2. Arduino IDE, ESP8266-01 proqramlaşdırmaq üçün konfiqurasiya edilmişdir. Bura baxın; ESP8266-01 proqramlaşdırmaq üçün Arduino IDE qurmaq

Hansı vasitələrə ehtiyacım var?

  1. Lehimleme dəmir,
  2. Qazma və müxtəlif bitlər,
  3. Fayllar,
  4. Hacksaw,
  5. Sağlam vitse,
  6. Heatgun,
  7. DMM.

Hansı bacarıqlara ehtiyacım var?

  1. Minimum elektronika anlayışı,
  2. Arduino və onun IDE bilikləri,
  3. İbtidai istehsal bacarıqları (lehimləmə, kəsmə, işləmə, qazma və s.),
  4. Biraz Səbir,
  5. Ev şəbəkəniz haqqında bir az anlayış.

Mövzular əhatə olunur

  1. Dövrəyə ümumi baxış
  2. Proqram Sisteminə Baxış
  3. Proqrama Baxış
  4. Sensorun Kalibrlənməsi
  5. MQTT Mövzu Adlandırma Konvensiyası
  6. OpenHAB Konfiqurasiyası
  7. Dizaynın sınanması
  8. Nəticə
  9. İstifadə olunan istinadlar

Serial Bağlantıları

7 -ci hissəyə: Study Lights Controller (yenidən işlənib). 7 -ci hissə: IoT, Ev Avtomatlaşdırılması

9 -cu hissəyə: IoT Şəbəkə Nəzarətçisi. 9 -cu hissə: IoT, Ev Avtomatlaşdırılması

Addım 1: Dövrə Baxış

Dövrə Baxış
Dövrə Baxış
Dövrə Baxış
Dövrə Baxış
Dövrə Baxış
Dövrə Baxış
Dövrə Baxış
Dövrə Baxış

Yuxarıdakı Şəkil 1, IoT sensoru üçün tam dövrə dizaynını göstərir.

IoT cihazının mərkəzində GPIO2-yə 10K çəkmə müqaviməti ilə DHT22 temperatur/rütubət sensoru ilə əlaqəli olan ESP8266-01 dayanır. Xarici bir 5v, keçid rejimi təchizatı ilə təchiz edilir və cihaza 2 mm DC panel montaj prizindən verilir və LZ1117-33v, 3v3 LDO gərginlik tənzimləyicisi ilə BZP M3 tava başlı vida və qoz ilə xarici istilik qurğusuna quraşdırılır..

Dizayn, işə salınma zamanı və ya hər hansı bir sonrakı səhv vəziyyətində IoT cihazının vəziyyətini lokal şəkildə göstərmək üçün istifadə olunan GPIO0 -a bağlı 3 mm qırmızı leddən ibarətdir. OpenHAB interfeysi vasitəsi ilə əl ilə aktivləşdirilərək cihazı tanımaq üçün də istifadə edilə bilər.

Tam dizayn, yuxarıda Şəkil 2 -də göstərildiyi kimi, ABS qazan qabına səliqəli şəkildə oturur və yerli istilik effektləri səbəbiylə önlənmənin qarşısını almaq üçün sensorun tənzimləyicidən mümkün qədər uzaq olmasını təmin etmək üçün xüsusi olaraq qoyulmuşdur (yuxarıdakı şəkil 7).

Dövrə lövhəsi, şəklinə görə kəsilmiş və korpusa uyğunlaşdırılmış tək bir veroboard parçasıdır (yuxarıdakı şəkil 3). Bu lövhə, M3 havşalı neylon vida və sensorun alt tərəfinə uyğun olan iki qoz -fındıq ilə sabitlənir, beləliklə düz bir səthdə oturmasına imkan verir.

Şəkillər 4… 6 müxtəlif tikinti vəziyyətlərini göstərir.

Addım 2: Proqram Sisteminə Baxış

Proqram Sisteminə Baxış
Proqram Sisteminə Baxış
Proqram Sisteminə Baxış
Proqram Sisteminə Baxış

Bu IoT temperatur və rütubət algılama cihazı, yuxarıdakı şəkil 1 -də göstərildiyi kimi altı əsas proqram komponentindən ibarətdir.

SPIFFS

Bu, göyərtədəki SPI Flash Dosyalama Sistemidir və aşağıdakı məlumatları saxlamaq üçün istifadə olunur (yuxarıdakı şəkil 2-ə baxın);

  • Nişanlar və 'Sensor Konfiqurasiya Ana Səhifəsi' html: IoT WiFi şəbəkənizə qoşula bilmədikdə (adətən səhv təhlükəsizlik məlumatları səbəbindən) IoT cihazı tərəfindən istifadə olunur və istifadəçiyə ehtiyac olmadan sensoru uzaqdan konfiqurasiya etmək imkanı verir. yenidən proqramlaşdırmaq və ya yeni SPIFFS məzmununu yükləmək üçün.
  • Təhlükəsizlik Məlumatı: Bu, IoT WiFi şəbəkəsinə və MQTT Brokerinə qoşulmaq üçün IoT cihazının gücünü artırmaq üçün istifadə olunan məlumatları ehtiva edir. 'Sensor Konfiqurasiya Ana Səhifəsi' vasitəsilə təqdim olunan məlumatlar bu fayla yazılır ('secvals.txt').
  • Kalibrləmə Məlumatı: Bu sənəddəki məlumatlar ('calvals.txt') lazım olduqda təyyarədəki temperatur/rütubət sensörünü kalibr etmək üçün istifadə olunur. Kalibrləmə sabitləri yalnız bir MQTT brokerinin MQTT əmrləri ilə IoT cihazına yazıla bilər.

Qeyd: Cihazı əvvəlcə qurmaq üçün Arduino IDE ilə SPIFFS -dən necə istifadə olunacağına dair tam məlumat üçün buraya baxın.

mDNS Server

Bu funksiya, IoT cihazı WiFi şəbəkənizə WiFi stansiyası olaraq bağlana bilmədikdə və yerli WiFi yönlendiricisinə bənzər bir WiFi giriş nöqtəsinə çevrildikdə tətbiq olunur. Belə bir marşrutlaşdırıcının olması halında, ümumiyyətlə brauzerinizin URL çubuğuna 192.168.1.1 (adətən qutuya yapışdırılmış bir etiketdə yazılır) kimi bir şeyin IP ünvanını daxil edərək ona qoşulacaqsınız, bura daxil olmaq üçün bir giriş səhifəsi alacaqsınız. cihazı konfiqurasiya etməyə imkan verən istifadəçi adı və şifrə.

AP rejimində ESP8266 (Giriş Nöqtəsi rejimi) üçün cihaz 192.168.4.1 IP ünvanını təyin edir, lakin işləyən mDNS serverində brauzerin URL çubuğuna baxmaq üçün yalnız insan dostu adı olan 'SENSORSVR.local' daxil etməlisiniz. 'Sensor Konfiqurasiya Ana Səhifəsi'.

MQTT Müştəri

MQTT müştəri bütün lazımi funksiyaları təmin edir; IoT şəbəkəniz MQTT brokerinə qoşulun, seçdiyiniz mövzulara abunə olun və yükləri müəyyən bir mövzuya yayınlayın. Bir sözlə, IoT əsas funksionallığını təmin edir.

HTTP veb serveri

Yuxarıda qeyd edildiyi kimi, IoT cihazı SSID, P/W və s. SPIFFS -də saxlanılan Təhlükəsizlik Məlumatı faylında müəyyən edilmiş WiFi şəbəkəsinə qoşula bilmirsə, cihaz Erişim Noktasına çevriləcək. Giriş nöqtəsi tərəfindən təmin edilən WiFi şəbəkəsinə qoşulduqdan sonra, HTTP Veb Serverinin olması cihaza birbaşa qoşulmağa və HTTP Veb Brauzerindən istifadə edərək konfiqurasiyasını dəyişdirməyə imkan verir. Səhifənin veb səhifəsi də SPIFFS -də saxlanılır.

WiFi stansiyası

Bu funksiya IoT cihazına Təhlükəsizlik Məlumatı faylındakı parametrlərdən istifadə edərək yerli WiFi şəbəkəsinə qoşulma imkanı verir, bu olmadan IoT cihazınız MQTT Brokerinə abunə ola/yayımlaya bilməyəcək.

WiFi giriş nöqtəsi

WiFi Giriş Nöqtəsi olmaq qabiliyyəti, IoT cihazının ona qoşulması və WiFi stansiyası və bir brauzer vasitəsilə konfiqurasiya dəyişiklikləri etməsi (Apple iPad -dəki Safari kimi) vasitəsidir.

Bu giriş nöqtəsi, SSID = "SENSOR" + IoT cihazının MAC ünvanının son 6 rəqəmini yayımlayır. Bu bağlı şəbəkənin şifrəsi xəyali olaraq 'PAROLA' adlanır

Addım 3: Proqram təminatına ümumi baxış

Proqrama Baxış
Proqrama Baxış
Proqrama Baxış
Proqrama Baxış

Bu qaynaq kodunu uğurla tərtib etmək üçün aşağıdakı əlavə kitabxanalara ehtiyacınız olacaq;

PubSubClient.h

  • Müəllif: Nick O'Leary
  • Məqsəd: Cihazın müəyyən bir Broker ilə MQTT mövzularını dərc etməsinə və ya abunə olmasına imkan verir
  • Kimdən:

DHT.h

  • Müəllif: Adafruit
  • Məqsəd: DHT Temperatur/Rütubət Sensoru üçün Kitabxana
  • Kimdən:

Kod Baxış

Proqram, yuxarıdakı şəkil 1-də göstərildiyi kimi dövlət maşınından istifadə edir (mənbənin tam surəti aşağıda verilmişdir). Aşağıdakı kimi 5 əsas dövlət var;

  • İÇİNDƏ

    Bu başlatma vəziyyəti, güc açıldıqdan sonra daxil edilən ilk vəziyyətdir

  • NOCONFIG

    Bu vəziyyət, işə salındıqdan sonra etibarsız və ya çatışmayan secvals.txt faylı aşkar edildikdə daxil edilir

  • NW gözləyir

    Bu vəziyyət keçicidir, WiFi şəbəkə bağlantısı olmadığı halda daxil edilir

  • MQTT gözləyir

    Bu vəziyyət keçicidir, WiFi şəbəkə bağlantısı qurulduqdan sonra daxil edilir və bu şəbəkədə MQTT brokerinə heç bir əlaqə yoxdur

  • AKTİV

    Bu həm WiFi şəbəkə bağlantısı, həm də MQTT Broker bağlantısı qurulduqdan sonra daxil olan normal əməliyyat vəziyyətidir. Məhz bu vəziyyətdə sensorun temperatur və rütubət funksiyası MQTT Brokerinə yayımlanır

Dövlətlər arasında keçidləri idarə edən hadisələr yuxarıdakı şəkil 1 -də təsvir edilmişdir. Dövlətlər arasında keçidlər də aşağıdakı SecVals parametrləri ilə tənzimlənir;

  • 1 -ci MQTT Brokerinin IP ünvanı. AAA. BBB. CCC. DDD nöqtəli onluq formada
  • 2 -ci MQTT Broker Limanı. Tam ədəd şəklində.
  • 3rd MQTT Broker bağlantısı, STA rejimindən AP rejiminə keçməzdən əvvəl etməyə çalışır. Tam ədəd şəklində.
  • 4 -cü WiFi Şəbəkə SSID. Pulsuz formada mətn.
  • 5 -ci WiFi Şəbəkə Parolu. Pulsuz formada mətn.

Yuxarıda qeyd edildiyi kimi, IoT cihazı, SSID və P/W olan WiFi şəbəkəsinə WiFi İstifadəsi olaraq qoşula bilmirsə, SPIFFS -də saxlanılan secvals.txt -də IoT cihazı Erişim Noktasına çevriləcək. Bu giriş nöqtəsinə qoşulduqdan sonra yuxarıda Şəkil 2 -də göstərildiyi kimi 'Sensor Konfiqurasiya Ana Səhifəsinə' xidmət göstərəcək (brauzerlərinizin URL ünvan çubuğuna 'SENSORSVR.local' və ya 192.168.4.1 daxil olaraq). Bu ana səhifə, HTTP brauzeri vasitəsilə sensorun yenidən qurulmasına imkan verir.

Aktiv vəziyyətdə ikən uzaqdan giriş

MQTT Brokerinə qoşulduqdan sonra MQTT mövzu nəşrləri vasitəsi ilə cihazı həm yenidən kalibr etmək, həm də yenidən konfiqurasiya etmək mümkündür. Calvals.txt faylının R/W girişi var və secvals.txt yalnız yazma girişini ifşa edir.

İstifadəçi ayıklama

Yükləmə ardıcıllığı zamanı IoT cihazı aşağıdakı hata ayıklama rəyini verir

  • 1 Qısa flaş: SPIFFS -də heç bir Konfiqurasiya faylı yoxdur (secvals.txt)
  • 2 Qısa yanıp sönmə: IoT cihazı WiFi şəbəkəsinə qoşulmağa çalışır
  • Davamlı işıqlandırma: IoT cihazı MQTT Brokerinə qoşulmağa çalışır
  • Off: Cihaz aktivdir
  • Qeyd 1: 'Sensor Konfiqurasiyasının Ana Səhifəsi' etibarlı prizlərdən istifadə etmir və buna görə də şəbəkənizin etibarlı olduğuna güvənir.
  • Qeyd 2: Hər bir IoT cihazını proqramlaşdırmaq üçün MQTT simli yükləməzdən əvvəl düzəliş tələb edir. Bunun səbəbi, sensorun sayının MQTT mövzu sətirinə daxil olmasıdır. yəni. 6 cihazım üçün 'WFD/THSen/100/HumdStatus/1' sırasıyla 1… 6 nömrələnir.

Addım 4: Sensorun Kalibrlənməsi

Sensorun Kalibrlənməsi
Sensorun Kalibrlənməsi
Sensorun Kalibrlənməsi
Sensorun Kalibrlənməsi

IoT cihazı işə salındıqda, açılış ardıcıllığının bir hissəsi olaraq SPIFFS -dən 'cavals.txt' adlı bir fayl oxunur. Bu faylın məzmunu yuxarıda Şəkil 1 -də göstərildiyi kimi kalibrləmə sabitləridir. Bu kalibrləmə sabitləri, bir istinad cihazı ilə uyğunlaşdırmaq üçün sensordan əldə edilən oxunuşları tənzimləmək üçün istifadə olunur. Cihaz üçün bir hesabat strategiyasını təyin edən və sensorların kalibrlənməsi üçün izlənilən prosedurla birlikdə aşağıda izah edilən başqa bir dəyər var.

Hesabat Strategiyası Bu parametr, uzaqdan sensorun ətrafdakı hər hansı bir parametrik dəyişikliyi necə bildirdiyini təyin edir. 0 dəyəri seçilərsə, uzaqdan sensor hər dəfə oxunduqda temperatur və ya rütubət dəyərlərində gördüyü hər hansı bir dəyişikliyi dərc edəcək (təxminən hər 10 saniyədə). Hər hansı digər dəyər, dəyişikliyin nəşrini 1… 60 dəqiqə gecikdirəcək. Bu parametrin dəyişdirilməsi MQTT şəbəkə trafikinin optimallaşdırılmasına imkan verir.

Temperaturun kalibrlənməsi

Sensorları kalibr etmək üçün yuxarıdakı şəkil 2 -də göstərildiyi kimi bir -birlərinə yaxın fiziki yaxınlıqda yerləşdirildilər. Yanlarında kalibrlənmiş bir termokupl qoşulmuş bir DMM yerləşdirdim (Fluke 87 V) və sonra OpenHAB temperaturu vasitəsi ilə hər cihazdan çıxışı izlədim. yaxşı bir temperatur dalğalanması əldə etmək üçün bir gün ərzində trend səhifəsi. Həm statik ofseti (sıfır 'C' yüksəltdi), həm də hər bir cihazın kalibrlənmiş termokupldan gələn dəyərə nisbətən dəyişmə sürətini (qazanc və ya 'M' qrafikinin yamacını) qeyd etdim. Daha sonra sadə y = mx+c əlaqəsini hesabladım (düz xətt qrafikinə yaxın bir yaxınlaşma olaraq kifayət qədər xətti olduğunu gördüm) və MQTTSpy vasitəsi ilə lazımi düzəlişləri kalibrləmə sabitlərinə proqramlaşdırdım.

Cihazlar daha sonra 24 saat ərzində izlənilib və kalibrləmə uğurlu olub. OpenHAB temperatur trend səhifəsindəki temperatur izlərinin bir işarəsi hamısı bir -birinin üstündə idi.

Əlbəttə ki, yalnız temperaturun yaxınlaşması ilə maraqlanırsınızsa, bütün kalibrləmə dəyərlərini standart olaraq buraxa bilərsiniz.

Rütubətin Kalibrlənməsi

Yerli rütubəti dəqiq qeyd etmək və ya hətta idarə etmək üçün heç bir vasitəm olmadığından, sensorları kalibr etmək üçün bütün cihazları yaxın fiziki vəziyyətə qoyaraq yuxarıdakılara bənzər bir yanaşma istifadə etdim (şəkil 2) və sadəcə OpenHAB vasitəsilə çıxışlarını izlədim. Nəmlik səhifəsi. Daha sonra kalibrləmə istinadı olaraq 1 nömrəli cihazı seçdim və bununla əlaqədar bütün cihazları kalibr etdim.

Addım 5: MQTT Mövzu Adlandırma Konvensiyası

MQTT Mövzu Adlandırma Konvensiyası
MQTT Mövzu Adlandırma Konvensiyası
MQTT Mövzu Adlandırma Konvensiyası
MQTT Mövzu Adlandırma Konvensiyası

Çox sınaq və səhvdən sonra yuxarıdakı şəkil 1 -də göstərilən mövzu adlandırma konvensiyasına qərar verdim.

Yəni, 'AccessMethod/DeviceType/whichDevice/Action/SubDevice'

Mükəmməl deyil, lakin faydalı filtrlərin müəyyən bir parametrik dəyər üçün bütün sensor çıxışlarını görmək üçün tətbiq olunmasına imkan verir, beləliklə MQTTSpy ilə yuxarıdakı şəkil 2 -də olduğu kimi asan müqayisə etməyə imkan verir. Ayrıca müəyyən bir IoT cihazı içərisində olduqca genişləndirilə bilən məntiqi qruplaşdırma funksiyalarını dəstəkləyir.

Bu mövzuları proqram təminatında tətbiq edərkən RAM -a qənaət etmək və performansı yüksək saxlamaq üçün hər bir cihaz üçün sabit, quraşdırılmış ədədi identifikatorları olan sərt kodlu mövzu sətirlərindən istifadə etdim.

Qeyd: MQTTSpy -dən necə istifadə edəcəyinizdən əmin deyilsinizsə, buraya baxın 'MQTT Brokerinin Qurulması. 2 -ci hissə: IoT, Ev Avtomatlaşdırması

Addım 6: OpenHAB Konfiqurasiyası

OpenHAB Konfiqurasiyası
OpenHAB Konfiqurasiyası
OpenHAB Konfiqurasiyası
OpenHAB Konfiqurasiyası
OpenHAB Konfiqurasiyası
OpenHAB Konfiqurasiyası

Əvvəlki Təlimatımda (burada) verilən OpenHAB konfiqurasiyasını dəyişdirdim və fərdi girişlərə əlavə etdim;

  • Qaraj,
  • Hall,
  • Oturma otağı,
  • Mətbəx
  • Qonaq yataq otağı
  • Usta Yataq otağı

Sayt xəritəsində yuxarıdakı şəkil 1 -ə baxın.

Bu girişlərin hər biri üçün yerli mühit dəyərlərini ortaya qoyan fərdi sayt xəritələri əlavə etdim (Bax yuxarıdakı şəkil 2);

  • Temperatur
  • Rütubət
  • İstilik indeksi

Sensorun içərisinə quraşdırılmış yerli led idarə etmək üçün bir keçid də daxil etdim.

Şəkillər 3… 5, temperatur, rütubət və RSSI (Alınan Siqnal Gücü Göstəricisi, əsasən sensorun WiFi şəbəkəsini nə qədər yaxşı görə biləcəyinin ölçüsü) üçün 24 saat ərzində fərdi canlı izləri göstərir.

Şəkil 6, bir həftə ərzində uzun müddətli rütubət meylinə bir nümunə verir.

Qeyd 1: OpenHAB -dan necə istifadə edəcəyinizdən əmin deyilsinizsə, burada "OpenHAB -ın Qurulması və Konfiqurasiyası" na baxın. 6 -cı hissə: IoT, Ev Avtomatlaşdırması

Qeyd 2: Dəyişdirilmiş sayt xəritəsi, qaydalar və maddələr faylları, Nişanlar və s. Aşağıda verilmişdir.

Addım 7: Dizaynı sınayın

Dizaynın sınanması
Dizaynın sınanması
Dizaynın sınanması
Dizaynın sınanması

Çox vaxt IoT cihazını MQTT Spy ilə MQTT bağlantısı üzərində sınadım, serial çıxışı və debug trafikini izlədim. Bu, bütün mövcud abunə mövzularını həyata keçirməyə və nəşr olunan cavabları yoxlamağa imkan verdi. Bu əllə əldə olunsa da və bəzən bir az yorucu olsa da, 100% əhatə imkanını verdi.

Bununla birlikdə, əsas dövlət maşını, müəyyən parametr dəstləri tələb olunan bir WiFi şəbəkəsinin mövcudluğuna və ya yoxluğuna əsaslanaraq sınaqdan keçirmək üçün bir az çətin olduğunu sübut etdi. Bunun üçün ev şəbəkəsini istifadə etmək praktik deyildi.

Bu problemi həll etmək üçün müvafiq olaraq 'DummyNet1' və 'DummyNet2' SSID-ləri ilə Giriş Noktaları (şəkil 1) olaraq konfiqurasiya edilmiş ESP8266-01 istifadə edərək özümdən ibarət şəbəkə şəbəkəsi yaratdım. Ledin üstündəki şəkil 2 -də dövrə istifadə edərək, bir IoT cihazının ona bağlı olub olmadığını göstərdi. Mükəmməl bir sınaq həlli olmasa da (yəni bu saxta WiFi şəbəkələrinin hər birində MQTT serveri yox idi), dövlət maşını tamamilə sınamaq mümkün idi.

Aşağıdakı mənbə kodunun bir nüsxəsini daxil etdim.

Addım 8: Nəticə

Ümumi

IoT cihazlarındakı proqramlar, məişət elektrik enerjisinin kəsilməsindən (əsasən özümdən qaynaqlanır) artıq bir neçə aydır etibarlı işləyir. Ümumiyyətlə, ardıcıl və dəqiq məlumatlar verən olduqca güclü qurğulardır.

Təkmilləşdirmələr

SPIFFS -ə oxumaq və yazmaq üçün proqram proqramları hazırlayarkən, boşluq göstəriciləri, yenidən qurma və göstəricilər üçün göstərici istifadə edərək, düşündüyümdən bir az daha inkişaf etmiş ola biləcək kod yazdım. Çox çevik və işi yaxşı yerinə yetirərkən, bir az daha sadə saxlamaq üçün növbəti dəfə ConfigFile.ino xətti boyunca JSON istifadə edə bilərəm.

  • Arduino GIT HUB Core

    https://github.com/esp8266/Arduino

  • ConfigFile.ino Mənbə

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

İstək siyahısı

Brokerə qoşulmaq üçün bir mDNS müştərisindən istifadə etmək niyyətində idim, amma kitabxana çox ləkəli idi. Bu səbəbdən 'MQTTSVR.local'dan fərqli olaraq MQTT Broker IP ünvanını təyin etmək lazımdır. MDNS kitabxanası gələcəkdə daha sabit olarsa, bu qabiliyyəti cihaza əlavə edəcəyəm.

Sensorları kalibr etmək üçün ətraf mühitin rütubətini həm dəqiq izləmək, həm də nəzarət etmək vasitələrinə sahib olmaq yaxşı olardı. Bununla birlikdə, seçilmiş kalibrləmə metodunun yaxşı nisbi oxunuşlar verdiyini və DHT22 məlumat vərəqindəki spesifikasiyaya uyğun olaraq olduqca doğru göründüyünü söylədi.

Nəhayət, proqramın mürəkkəbliyi nəzərə alınmaqla, böyük bir dəyişiklik vaxt aparandan sonra kodun tam sınaqdan keçirildiyini gördüm. Daha sonra avtomatik test etməyi düşünə bilərəm.

Addım 9: İstifadə olunan istinadlar

Bu Təlimatı bir araya gətirmək üçün aşağıdakı mənbələrdən istifadə etdim;

PubSubClient.h

  • Müəllif: Nick O'Leary
  • Kimdən:

DHT.h

  • Müəllif: Adafruit
  • Kimdən:

DHT22 məlumat cədvəli

Tövsiyə: