Mündəricat:

Retro nitq sintezi. Bölmə: 12 IoT, Ev Avtomatlaşdırması: 12 Addım (Şəkillərlə)
Retro nitq sintezi. Bölmə: 12 IoT, Ev Avtomatlaşdırması: 12 Addım (Şəkillərlə)

Video: Retro nitq sintezi. Bölmə: 12 IoT, Ev Avtomatlaşdırması: 12 Addım (Şəkillərlə)

Video: Retro nitq sintezi. Bölmə: 12 IoT, Ev Avtomatlaşdırması: 12 Addım (Şəkillərlə)
Video: The Mindful Millionaire Timeless Lessons on Wealth Greed and Happiness in the Psychology of Money 2024, Iyul
Anonim
Image
Image
Retro nitq sintezi. Bölmə: 12 IoT, Ev Otomasyonu
Retro nitq sintezi. Bölmə: 12 IoT, Ev Otomasyonu

Bu məqalə, ev mühiti içərisində müvəffəqiyyətli bir şəkildə yerləşdirilməsini təmin etmək üçün IoT Retro Nitq Sintezi Cihazının mövcud bir ev avtomatlaşdırma sisteminə necə yaradılacağını və inteqrasiyasını sənədləşdirən ev avtomatlaşdırma təlimatları seriyasındakı 12 -ci məqalədir.

Şəkil 1 tamamlanmış IoT nitq sintez cihazını və Şəkil 2, son məhsula keçmək üçün form faktoru azaldılmış prototipdə istifadə olunan bütün komponent hissələrini göstərir.

Videoda cihazın işlədiyi göstərilir (sınaq zamanı).

Giriş

Yuxarıda qeyd edildiyi kimi, IoT Retro Nitq Sintezi Cihazının necə hazırlanacağını izah edən bu Təlimat, Ümumi Alətlər SP0256-AL2 ətrafındadır.

Əsas məqsədi, IoT şəbəkəsinə 'köhnə məktəb' səs sintezini əlavə etməkdir. Niyə "köhnə məktəb" deyə soruşa bilərsiniz? Yaxşı, çünki bu şeylər ilk dəfə istehsal edildikdə 80-ci illərdə idim və BBC Micro ilə əlaqə qurdum, buna görə mənim üçün SP0256-AL2 ətrafında bir qədər nostalji var.

Hipster Amazon echo və ya Siri'nin cazibədar tonlarını dinləməkdənsə, bu Dalekin səsli səsi ilə yer üzündə nə deyildiyini anlamağa çalışmağı daha çox sevirəm. Səndən soruşduğum çətinlik haradadır?

Oh, və qeyd etməmək lazım deyil ki, ətrafımda uzanan 'SP0256-AL2' IC-lərdən ibarət 'çanta yükü' var.

Cihaz eyni zamanda yerli temperatur və rütubəti oxumaq qabiliyyətinə malikdir, buna görə də ev avtomatlaşdırması (HA) haqqında bu seriyada ətraflı təsvir edilmiş MQTT/OpenHAB əsaslı IoT şəbəkəsinə qoşulan mövcud IoT infrastrukturumun ətraf mühit alətlərini daha da genişləndirir, buradan götürülmüş təkrar istifadə olunan kod əsasında.

Ürəyində MQTT ünsiyyətindən və bütün sistem funksiyalarından (SD karta giriş, LED nəzarət, temperatur/rütubət algılama, səsin idarə edilməsi, nitqin sintezi) məsul olan ESP8266-07 var. yerli SD kart, kalibrləmə və şəbəkə təhlükəsizlik parametrləri uzaq MQTT nəşrləri vasitəsi ilə də proqramlaşdırıla bilər.

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

Material hesabına buradan baxın

Hansı proqrama ehtiyacım var?

  • Arduino IDE 1.6.9,
  • Arduino IDE, ESP8266-07-ni proqramlaşdırmaq üçün konfiqurasiya edilmişdir (bununla eynidir). Sonra IDE -ni burada proqram eskizində verilən ətraflı təsvirdə göstərildiyi kimi konfiqurasiya edin,
  • Python v3.5.2, avtomatlaşdırılmış test qabiliyyətindən istifadə etmək istəyirsinizsə, buradakı təfərrüatlar

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

  • Mikroskop ən azı x3 (SMT lehimləmə üçün),
  • Molex bağlayıcı sıxma vasitəsi (JST bağlayıcıları üçün),
  • SMD lehimləmə dəmiri (maye axını qələmi və özlü lehimlə),
  • Tornavidalar (müxtəlif),
  • İstilik silahı,
  • Matkaplar (müxtəlif),
  • Havşa əl dəsti,
  • Fayllar (müxtəlif),
  • Dremel (müxtəlif bitlər),
  • Sağlam köməkçi (kiçik və böyük, qara və göyərtəli iş yoldaşı kimi),
  • Skalpel,
  • Vernier kaliperləri (istehsalın ölçülməsi üçün istifadə olunur və PCB komponentlərinin ölçülərinin ölçülməsi üçün faydalıdır),
  • Açar və somun sürücüləri (müxtəlif),
  • Güclü cımbızlar (SMT lehimləmə üçün),
  • Junior Hacksaw,
  • Qazma (müxtəlif qazma bitləri ilə),
  • İncə kəlbətinlər (burunlu və burunlu),
  • Yuyan kəsicilər,
  • Səsli davamlılıq yoxlamalı DMM,
  • İki kanallı rəqəmsal əhatə dairəsi (siqnalları ayıklamaq üçün əlverişlidir)

Hansı bacarıqlara ehtiyacım var?

  • Çox səbr,
  • Çox əl bacarıqları və əla əl/göz koordinasiyası,
  • Əla lehimləmə bacarığı,
  • Əla istehsal bacarıqları,
  • 3 ölçüdə görüntüləmək bacarığı,
  • 'C' ilə proqram inkişafı ilə bağlı bəzi məlumatlar (mənbə kodunu anlamaq istəyirsinizsə),
  • Python haqqında bəzi biliklər (avtomatlaşdırılmış testdən istifadə etmək istəyirsinizsə, skriptlərin necə qurulub işə salınması),
  • Arduino və onun IDE bilikləri,
  • Yaxşı elektronika bilikləri,
  • Ev şəbəkəniz haqqında bir az anlayış.

Əhatə olunan mövzular

  • İstifadəçi kitabçası
  • Dövrə Baxış
  • PCB istehsalı və montajı
  • İstehsal
  • Proqram Sisteminə Baxış
  • Proqrama Baxış
  • Sensorun Kalibrlənməsi
  • MQTT Mövzu Adlandırma Konvensiyası
  • Debug & Fault Finding
  • Dizaynın sınanması
  • Nəticə
  • İstifadə olunan istinadlar

Seriya Bağlantıları 11 -ci hissəyə: IoT Masaüstü Konsolu. Bölmə: 11 IoT, Ev Otomasyonu

Addım 1: İstifadəçi Təlimatı

İstifadəçi kitabçası
İstifadəçi kitabçası
İstifadəçi kitabçası
İstifadəçi kitabçası
İstifadəçi kitabçası
İstifadəçi kitabçası

Yuxarıdakı Şəkil 1 Retro Nitq Sintezatorunun ön tərəfini və şəkil 2 arxasını göstərir.

Qabaq Ön

  1. Dinamik Qril
  2. 3.5mm Qulaqlıq Jack: 3.5mm jak daxil edildikdə əsas dinamik söndürülür.
  3. Qırmızı LED: Bu LED, HTTP tələbi ilə danışmağa başladıqda bir söz danışarkən yanır.
  4. Mavi LED: Bu MQTT IoT tələbi ilə çıxış başladıqda bir söz danışarkən bu LED yanır.

Arxa qapaq

  1. Sıfırlama Düyməsi: ESP8266-07 IoT cihazını yenidən sıfırlamaq üçün istifadə olunur.
  2. Flaş Düyməsi: Sıfırlama Düyməsi ilə birlikdə istifadə edildikdə ESP8266-07-nin yenidən yanıb sönməsinə imkan verir.
  3. WiFi Anten fişi (SMA Plug): Bağlanma alüminium olduğundan ən az RF yolunun zəifləməsini verən xarici WiFi Anten üçün.
  4. Xarici Proqramlaşdırma Limanı: Yenidən proqramlaşdırma məqsədləri üçün ESP8266-07-yə giriş əldə etmək üçün korpusu açmaq ehtiyacını aradan qaldırmaq üçün. ESP8266-07 proqramlaşdırma pinləri xarici proqramlaşdırma limanına çıxarılmışdır. Şəkil 3 proqramlaşdırma adapteridir.
  5. Yaşıl LED: Bu idarə olunan IoT sistemidir və cihazın diaqnostik vəziyyətini göstərmək, işləyərkən açmaq və açmaq üçün istifadə olunur.
  6. Xarici Temperatur/Rütubət Sensoru (AM2320)
  7. SD Kart yuvası: Bu veb server səhifələri ilə birlikdə bütün konfiqurasiya/təhlükəsizlik məlumatlarını saxlayır.
  8. 2.1 mm 6vdc təchizatı girişi

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

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

Retro Speech Synth cihazı iki PCB -dən ibarətdir;

  • RetroSpeechSynthIoTBoard: Bu ümumi, yenidən istifadə edilə bilən ESP8266-07/12/12E/13 PCB-dir
  • RetroSpeechSynthBoard: Bu ümumi bir SP0256-AL2 PCB-dir

Retro Speech Synth IoT Board

Bu lövhə bir ESP8266-07/12/12E/13 və ya bir ESP8266 daşıyıcı PCB-ni yerləşdirən 0,1 düymlük prizlərin birbaşa lehimlənməsinə imkan verir.

Lövhə I2C bağlantısı üzərində I/O genişləndirmək üçün hazırlanmış və Q1, Q2, R8-13 vasitəsilə 3v3 və ya 5v təchizat səviyyələrini dəstəkləyə bilər.

Lövhəyə qoşulma iki başlıq J2 və J4, 8 tərəfli DIL IDC lenti və ya 5 tərəfli JST/Molex vasitəsilə həyata keçirilir.

Gəminin tədarük tənzimlənməsində U2 və U3 təminatı 3.3v və 5v. Alternativ olaraq, daha böyük cərəyan tələb olunarsa, sıradan kənar şunt tənzimləyiciləri J10 və J11 konnektorları vasitəsilə bağlana bilər.

J1 və J3 bağlayıcıları SPI üzərində xarici SD kart dəstəyi təklif edir. J1, 8 tərəfli Molex üçün hazırlanmışdır və J3, 3v3 və ya 5v dəstəyi olan bir SD kart PCB üçün bir pin uyğunluğu dəstəyi üçün birbaşa pinə malikdir.

Retro nitq sintezi lövhəsi

Bu lövhənin nəzarəti J1, J5 və ya J6, 4 tərəfli JST/Molex, 8 yollu DIL IDC və ya 8 tərəfli IDC lent konnektoru vasitəsilə I2C 5v uyğun bir əlaqə üzərindədir.

U2 MPC23017, I2C-ni U3-ə SP0256-AL2 və D1 (Yaşıl), D2 (Qırmızı) və D3 (Mavi) ilə paralel bir interfeys təmin edir. Speech Synth -in çıxışı RV1 analoq qazan və ya rəqəmsal qazan U1 MCP4561 vasitəsi ilə CR1 TBA820M səs gücləndiricisinə verilir.

Digital Pot U1 də 5v uyğun I2C vasitəsilə idarə olunur.

Qeyd: ESP8266-07 cihazı alüminium korpusa xarici WiFi Anteninin əlavə edilməsinə imkan verən ayrılmaz bir IPX RF konnektoruna malik olduğu üçün seçilmişdir.

Addım 3: PCB istehsalı və montajı

PCB istehsalı və montajı
PCB istehsalı və montajı
PCB istehsalı və montajı
PCB istehsalı və montajı
PCB istehsalı və montajı
PCB istehsalı və montajı
PCB istehsalı və montajı
PCB istehsalı və montajı

Şəkillər 1 və 2, alüminium örtüklü substratda yerləşən tamamlanmış və telli PCB alt montajlarını göstərir.

İki PCB, JLCPCB tərəfindən istehsal olunan və mənim tərəfimdən yığılmış və yuxarıda Şəkil 3 -dən 13 -ə qədər göstərilən Kicad v4.0.7 istifadə edilərək hazırlanmışdır.

Addım 4: İstehsal

İstehsal
İstehsal
İstehsal
İstehsal
İstehsal
İstehsal

Şəkil 1, son montajdan əvvəl bütün prefabrik hissələrin Haynes Manual tərzini göstərir.

Şəkillər 2… 5, minimum boşluqlarla korpusun istehsalı zamanı müxtəlif kadrları göstərir.

Addım 5: Proqram Sisteminə Baxış

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

Bu IoT Retro Nitq Sintezi Cihazı, yuxarıdakı şəkil 1 -də göstərildiyi kimi altı əsas proqram komponentindən ibarətdir.

SD Kart

Bu xarici SD SPI Flash Dosyalama Sistemidir və aşağıdakı məlumatları saxlamaq üçün istifadə olunur (yuxarıdakı şəkil 2 -ə baxın);

  • Nişanlar və 'Speech Synth Konfiqurasiya Ana Səhifəsi' index.htm: IoT WiFi şəbəkənizə qoşula bilmədikdə (adətən yanlış təhlükəsizlik məlumatları və ya ilk dəfə istifadə edildiyindən) IoT cihazı tərəfindən xidmət edilir və istifadəçiyə bir vasitə təqdim edir. yeni SD məzmununu yenidən yandırmağa ehtiyac olmadan sensörleri uzaqdan konfiqurasiya etməklə yanaşı index1.htm, mqtt.htm və sp0256.htm də saxlayır, bunlar nitq sintezini məhdud idarə etməyə imkan verən veb brauzer vasitəsilə əldə edilə bilən yerli xidmətli veb səhifələrdir. HTTP üzərində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. 'Speech Synth Konfiqurasiya Ana Səhifəsi' vasitəsilə təqdim olunan məlumatlar bu fayla yazılır ('secvals.txt').
  • Kalibrləmə Məlumatı: Fayllarda olan məlumatlar ('calvals1.txt' və 'calvals2.txt') lazım olduqda təyyarədəki temperatur/rütubət sensorlarını kalibr etmək üçün istifadə olunur. Kalibrləmə sabitləri IQT cihazına MQTT brokerindən MQTT əmrləri vasitəsilə və ya SD kartı yenidən yandırmaqla yazıla bilər. 'calvals1.txt' AM2320 sensoruna və 'calvals2.txt' DHT22 -yə aiddir.
  • İstifadəçi tərəfindən konfiqurasiya edilə bilən sistem dəyərləri: İstifadəçi tərəfindən seçilən bu faylın içindəki məlumatlar ('confvals.txt'), ilkin rəqəmsal səs səviyyəsi, MQTT broker abunəliyində avtomatik 'sistem hazır' elanı və s.

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-07 (Giriş nöqtəsi rejimi) üçün cihaz 192.168.4.1 IP ünvanını təyin edir, lakin işləyən mDNS serveri ilə yalnız brauzer URL çubuğuna insan dostu olan 'SPEECHSVR.local' adını daxil etməlisiniz. 'Speech Synth Konfiqurasiya Ana Səhifəsinə' baxın.

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

Bu veb serverin iki məqsədi var;

  1. IoT cihazı SSID, P/W və s. SD Kartda 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. Ana Səhifənin veb səhifəsi də SD Kartda saxlanılır.
  2. IoT Retro Nitq Sintezi Cihazı WiFi şəbəkəsinə və MQTT brokerinə qoşulduqda, əldə edildikdə, HTTP Veb Server avtomatik olaraq IoT cihazının məhdud idarəetməsinin müəyyən ifadələr və danışma qabiliyyətini danışmasına imkan verən bir HTTP veb səhifəsinə xidmət edəcək. iki ön Qırmızı və Mavi LED -ləri döndərin.

WiFi stansiyası

Bu funksiya IoT cihazına Təhlükəsizlik Məlumatı faylındakı parametrləri 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 = "SPEECHSYN" + 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 6: Proqram təminatına ümumi baxış

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

Giriş

Bu mənbə kodunu uğurla tərtib etmək üçün kodun yerli bir nüsxəsinə və İstifadə olunan İstifadə olunan Adımlar 12 -də aşağıda göstərilən kitabxanalara ehtiyacınız olacaq. Arduino kitabxanasının necə qurulacağından əmin deyilsinizsə bura daxil olun.

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 mənim GitHub depomda). Aşağıda göstərildiyi 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. Bu vəziyyətdə Konfiqurasiya səhifəsi görünür

  • 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. Bu vəziyyətdə, IoT Retro Nitq Sintezi Cihazındakı temperatur, istilik indeksi və rütubət MQTT Brokerində müntəzəm olaraq nəşr olunur. Bu vəziyyətdə Speech Synth Ana Səhifəsi görünü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ə, SD Kartda saxlanılan secvals.txt faylında IoT cihazı Giriş Noktası olacaq. Bu giriş nöqtəsinə bağlandıqdan sonra yuxarıda Şəkil 2 -də göstərildiyi kimi 'Speech Synth Configuration Ana Səhifəsinə' xidmət göstərəcək (brauzerlərinizin URL ünvan çubuğuna 'SPEECHSVR.local' və ya 192.168.4.1 daxil olaraq). Bu ana səhifə, HTTP brauzeri vasitəsilə IoT Retro Speech Synthesis Cihazının 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.

Yuxarıda qeyd edildiyi kimi, aktiv rejimdə bir dəfə brauzerlərinizin URL ünvan çubuğuna 'SPEECHSVR.local' və ya 192.168.4.1 daxil edərək HTTP interfeysi vasitəsi ilə Speech Synth -ə daxil olmaq mümkündür. Bu HTTP əsaslı interfeys, Speech Synth -in əsas nəzarətinə imkan verir. Şəkillər 3, 4 və 5, mövcud web səhifələrini göstərir.

İstifadəçi ayıklama

Yükləmə ardıcıllığı zamanı korpusun arxa tərəfində yerləşən IoT cihazının yaşıl sistemi aşağıdakı ayıklama rəyini verir;

  • 1 Qısa flaş: SD Kartda 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.

AKTİV vəziyyətdə IoT Retro Danışıq Sintezi Cihazının İşlevselliği

AKTİV vəziyyətdə ESP8266 aşağıdakı funksiyaları çağıran davamlı bir dövrə daxil olur; timer_update (), checkTemperatureAndHumidity () və handleSpeech (). İstifadəçiyə HTTP və ya MQTT interfeysi təqdim etmək üçün hazırlanan xalis nəticə, fonemləri olan təyyarədəki nitq prosessoruna xidmət göstərir və MQTT üzərində yerli mühitin parametrik dəyərlərini dərc edir.

Yükləmə dəyərləri daxil olmaqla bütün mövzu abunəliklərinin və nəşrlərin hərtərəfli siyahısı mənbə koduna daxil edilmişdir.

Addım 7: 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 SD kartdan 'cavals1.txt' və 'cavals2.txt' adlı iki fayl oxunur.

Bu faylların məzmunu yuxarıda Şəkil 1 -də göstərildiyi kimi kalibrləmə sabitləridir.

  1. 'cavals1.txt': Xarici AM2320 tərəfindən istifadə olunur
  2. 'cavals2.txt': Daxili DHT22 tərəfindən istifadə olunur

Bu kalibrləmə sabitləri, bir istinad cihazı ilə uyğunlaşdırmaq üçün iki sensordan əldə edilən oxunuşları tənzimləmək üçün istifadə olunur. Hər bir cihaz üçün hesabat strategiyasını təyin edən və sensorların kalibrlənməsi üçün izlənilən prosedurla birlikdə aşağıda təsvir 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 oxunduqda temperaturda və ya rütubətdə 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. Qeyd etmək lazımdır ki, DHT22 -dən alınan temperatur və rütubət məlumatları sensorun məhdudluğu səbəbindən növbə ilə oxunur.

Temperaturun kalibrlənməsi

İstilik sensörünü kalibr etmək üçün burada 4 -cü addımda qeyd olunan eyni prosesi təkrar y = mx+c əlaqəsi ilə təkrar etdim. İstinad cihazı olaraq IoT Temperatur, Rütubət Sensoru #1 -dən istifadə etdim. Sensordan alınan dəyərlər santigrat dərəcədir.

Rütubətin Kalibrlənməsi

Yerli rütubəti dəqiq qeyd etmək və ya hətta nəzarət etmək üçün heç bir vasitəm olmadığından, sensoru kalibr etmək üçün yuxarıdakı 4 -cü addımda oxşar bir yanaşma istifadə etdim və yenidən Sensor #1 -dən istifadə etdim. Yuxarıda deyilənlərə baxmayaraq, bu yaxınlarda internetdə rütubət sensorlarını necə kalibr etməyi izah edən əla bir məqalə tapdım. Gələcəkdə bu yanaşmanı sınaya bilərəm. Sensorun dəyərləri nisbi rütubətin yaşı %-dir.

Addım 8: 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ı

Əvvəlki Təlimat kitabında (burada) qeyd edildiyi kimi, yuxarıdakı şəkil 1 -də qeyd olunan mövzu adlandırma konvensiyasına qərar verdim.

Yəni 'AccessMethod/DeviceType/whichDevice/Action/SubDevice' Mükəmməl deyil, lakin müəyyən filtrli mövzu üçün bütün sensor çıxışlarını görmək üçün faydalı filtrlərin 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.

Bu layihə, tək bir cihazın eyni tipli nəşrin birdən çox mənbəyini ehtiva etdiyi ilk nümunədir. yəni. Daxili və xarici alt qurğulardan iki temperatur/rütubət sensoru.

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 9: Hata Ayıklama və Hata Tapma

Debug & Fault Finding
Debug & Fault Finding

Ümumiyyətlə, hobbi layihələrim üçün, mümkün olduğu təqdirdə, proqramın inkişaf etdirildiyi bir nümayəndəsi bir hardware prototipi qurmağa meylliyəm ki, proqramı son platforma aparatına inteqrasiya edərkən nadir hallarda hər hansı bir problemim olur.

Ancaq bu münasibətlə bəzi fonemlərin səslənəcəyi, digərlərinin isə səsləndirməyəcəyi qəribə bir fasilə ilə qarşılaşdım.

Fonemləri əldə etmək və bu lövhənin işlədiyini sübut etmək üçün Arduino Uno istifadə edərək Speech Synth PCB -nin ilkin ayıklanmasından sonra, IoT PCB ilə Speech Synth PCB arasındakı I2C xətlərini əhatə etdim. Yuxarıdakı Şəkil 1 -ə baxın.

İzlərdəki I2C siqnalının 'testere dişini'/eksponensial kənarını aydın görə bilərsiniz.

Bu ümumiyyətlə I2C çəkmə dəyərlərinin həddindən artıq yüksək olduğunu göstərir ki, açıq bir drenaj dövrəsində xəttin gərginliyinin kifayət qədər tez bərpasına mane olur.

"Ətrafda bir iş" olaraq, 4K7 vermək üçün R12 və R13 rezistorlarını 10K ilə paralelləşdirdim və kifayət qədər Danışıq Sintezinin "canlandığını" gördüm.

Bu tip uğursuzluqlar, bu tip layihələri ayıklayarkən baş verə biləcəklərin əksidir. Ümumiyyətlə, Ebay -dan satın alınan I2C əsaslı modulların çoxu artıq quraşdırılmış 10K və ya 4K7 çəkmə ilə gəlir. Hər biri 4K7 çəkmə ilə> 5 I2C modulundan istifadə etmək niyyətindəsinizsə, ümumi yük 940R -dir ki, bu da ustanın çıxış mərhələsi üçün çox böyük olacaq. Düzəliş, hər bir modulda bir dəstə müqavimət qaldırmaqdan başqa hamısının lehimlənməsi olacaq. Tercihen ustadan fiziki olaraq ən uzaq olanı.

I2C cihazları ilə elektronika dizayn edərkən faydalı bir məsləhət və yadda saxlamağa dəyər.

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

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

Test iki metodologiyadan istifadə etməklə həyata keçirildi; Əl və Avtomatlaşdırılmış.

İlkin kod hazırlanması zamanı ilk, əl ilə və ümumiyyətlə istifadə olunan bütün mövcud abunə mövzularını həyata keçirmək və nəşr olunmuş cavabları yoxlamaq üçün MQTT Spy istifadə etmək idi (yuxarıdakı şəkil 2 -də təsvir edilmişdir). Əl ilə icra edildikdə, kod hazırlanması irəlilədikcə çox vaxt aparır və səhvlərə meylli ola bilər, baxmayaraq ki, əl ilə icra 100% əhatə imkan verir.

MQTTSpy əl testi üçün seçildi, çünki verilən yükü əllə formatlaşdırmaq və istənilən mövzuya asanlıqla yayımlamaq üçün əla vasitədir. Hata ayıklama üçün çox faydalı olan aydın, vaxt möhürlü bir qeyd də göstərir (yuxarıdakı şəkil 3).

Mənbə kodu mürəkkəbləşdikcə (> 3700 sətir) ikinci, avtomatlaşdırılmış yanaşma qəbul edildi. Artan mürəkkəblik daha uzun manuel test dövrləri və daha mürəkkəb testlər deməkdir. Testlərin etibarlılığını, determinizmini və keyfiyyətini artırmaq üçün bir python test icraçısı vasitəsi ilə avtomatlaşdırılmış testdən istifadə edildi (şəkil 1). Avtomatlaşdırılmış testin necə tətbiq edildiyi ilə bağlı bu Təlimatdakı 10 nömrəli addıma baxın. Bu Təlimatda istifadə olunan avtomatlaşdırılmış testlərin tam surəti burada mövcuddur.

İşləyən avtomatik test ardıcıllığının videosu yuxarıda göstərilmişdir. Ardıcıllıq aşağıdakı addımları yerinə yetirir;

  • MQTT vasitəsilə avtomatlaşdırılmışdır

    • MQTT onurğasına qoşulun və 'Sistem Hazır' elan edin
    • Yaşıl LED məşq edin
    • Qırmızı LED məşq edin
    • Mavi LED məşq edin
    • Digital Pot işini yoxlayın
    • Fonemlərdən istifadə edərək danışın
    • Fonemlər üçün Hex Kodlarından istifadə edərək danışın
    • Sözləri düzəltmək üçün kodları istifadə edərək danışın
    • Dr Who və Daleks bir az əyləndi.
  • Əl ilə HTTP/Chrome vasitəsilə

    • Mavi LED məşq edin
    • Qırmızı LED məşq edin
    • Sabit ifadələr danışın 'Steven Quinn', 'Sistem Hazır' və 'Hello World'
    • HTTP serverinə sahib olun, xidmət edin

      • Speech Synth Chip haqqında ətraflı məlumat
      • MQTT Təfərrüatları

Addım 11: Nəticə

Nəticə
Nəticə

Xüsusilə natiq ızgarası üçün fayllar və matkaplar və s. Çox səy tələb etsə də, nəticənin estetik baxımdan xoş olduğunu və gözəl, kiçik bir korpusa yığıldığını düşünürəm. Kiçik edə bilərdim, ancaq bir PCB-yə keçmək lazım olardı və digər layihələr üçün PCB-ləri daha sonra yenidən istifadə etmək üçün bilərəkdən iki yerə böldüm. Yəni xoşbəxt bir kompromisdir.

Proqram yaxşı işləyir, IoT cihazı bir müddətdir ki, heç bir problem olmadan sabit işləyir.

İstilik və rütubəti Grafana vasitəsi ilə izləyirəm və birlikdə yerləşən bir cihazla müqayisə edirəm. İki mühit dəyəri, kalibrləmənin ağlabatan olduğunu (və ya heç olmasa oxşar olduqlarını) yaxşı əlaqələndirir.

Vaxtım bitdi və davam etmək lazım olduğu üçün söz əmrini ('WFD/SpeechTH/1/Word/Command') tətbiq etməyi dayandırdım. Bir MySQL verilənlər bazası qurduğumda və yenidən ziyarət edə bilərəm. Hal -hazırda InfluxDB istifadə edirəm.

Addım 12: İstifadə olunan istinadlar

Bu Təlimatı bir araya gətirmək üçün aşağıdakı mənbələrdən istifadə edildi; IoT Retro Nitq Sintezi Cihazı üçün mənbə kodu (burada hər şeyin bir nüsxəsi var)

https://github.com/SteveQuinn1/IoT_Retro_Speech_Synthesis_SP0256_AL2

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: DHT11DHT22 və s. İstilik və Nəmlik Sensorları üçün Arduino kitabxanası
  • Kimdən:

Adafruit_AM2320.h/Adafruit_Sensor.h

  • Müəllif: Adafruit
  • Məqsəd: AM2320 üçün Arduino kitabxanası və s. Temp & Rütubət Sensoru
  • Kimdən:

MCP4561_DIGI_POT.h

  • Müəllif: Steve Quinn
  • Məqsəd: MCP4561 rəqəmsal potensiometr üçün Arduino Kitabxanası
  • Kimdən:

Adafruit_MCP23017.h

  • Müəllif: Steve Quinn
  • Məqsəd: MCP23017 I2C Port Expander üçün Arduino Kitabxanası. Bu, Adafruit-in Adafruit-MCP23017-Arduino-Kitabxanasından GITHub çəngəlidir.
  • Kimdən:

Əyləncə üçün

https://haynes.com/en-gb/

PCB istehsalı

https://jlcpcb.com/

Əlavə Arduino Kitabxanalarının quraşdırılması

https://www.arduino.cc/az/Guide/Libraries

Nəmlik Sensorunu Necə Yoxlamaq və Kalibrləmək olar

https://www.allaboutcircuits.com/projects/how-to-check-and-calibrate-a-humidity-sensor/?utm_source=All+About+Circuits+Members&utm_campaign=ffeee38e54-EMAIL_CAMPAIGe_5m_77_2017_12_07_201_12 /

SP0256-AL2 məlumat cədvəli

https://www.futurebots.com/spo256.pdf

Danışıq Çipləri Mağazası

https://www.speechchips.com/shop/

Arduino Müsabiqəsi 2019
Arduino Müsabiqəsi 2019
Arduino Müsabiqəsi 2019
Arduino Müsabiqəsi 2019

Arduino 2019 Müsabiqəsində ikinci yer

Tövsiyə: