Tartalomjegyzék:

Retro beszéd szintézis. Rész: 12 IoT, otthoni automatizálás: 12 lépés (képekkel)
Retro beszéd szintézis. Rész: 12 IoT, otthoni automatizálás: 12 lépés (képekkel)

Videó: Retro beszéd szintézis. Rész: 12 IoT, otthoni automatizálás: 12 lépés (képekkel)

Videó: Retro beszéd szintézis. Rész: 12 IoT, otthoni automatizálás: 12 lépés (képekkel)
Videó: ELSZÍVTAM ÉLETEM ELSŐ CIGIJÉT. vagy nyalókáját? #shorts 2024, Július
Anonim
Image
Image
Retro beszéd szintézis. Rész: 12 IoT, otthoni automatizálás
Retro beszéd szintézis. Rész: 12 IoT, otthoni automatizálás

Ez a cikk a 12. az otthoni automatizálási utasításokkal foglalkozó sorozatban, amely dokumentálja, hogyan hozhat létre és integrálhat IoT Retro beszédszintetizáló eszközt egy meglévő otthoni automatizálási rendszerbe, beleértve az összes szükséges szoftverfunkciót a sikeres otthoni környezetben történő telepítéshez.

Az 1. kép az elkészült IoT beszédszintetizáló készüléket, a 2. kép pedig a prototípusban használt összes alkotóelemet mutatja, amelyeket alaki tényezővel csökkentettek, hogy a végtermékbe kerüljenek.

A videó bemutatja az eszközt működés közben (tesztelés közben).

Bevezetés

Amint fentebb említettük, ez az útmutató részletesen bemutatja, hogyan lehet IoT Retro beszédszintetizáló eszközt készíteni, és az Általános műszerek SP0256-AL2 köré épül.

Ennek elsődleges célja a „régi iskola” hangszintézis hozzáadása az IoT hálózathoz. Miért kérdezheted miért az "old school"? Nos, mivel a 80-as években voltam, amikor ezeket a dolgokat először gyártották, és csatlakoztattam egyet a BBC Micro-hoz, így számomra van némi nosztalgia az SP0256-AL2 körül.

Sokkal jobban szeretem azt a kihívást, hogy megpróbáljam kitalálni, mi a fenét mond ez a Dalek hangú hang, mint hallgatni egy csípős Amazon visszhang vagy Siri tompa hangjait. Hol a kihívás abban, hogy kérdezlek?

Ja, és nem is beszélve arról, hogy van egy „zsákos terhelés” „SP0256-AL2” IC-m is.

A készülék képes a helyi hőmérséklet és páratartalom leolvasására is, így tovább bővíti a meglévő IoT -infrastruktúrám környezeti műszereit, amelyek bekapcsolódnak az MQTT/OpenHAB alapú IoT -hálózatba, amelyet az otthoni automatizálásról (HA) szóló, ebben a sorozatban részletezünk, az innen vett újrafelhasznált kódra építve.

A szíve egy ESP8266-07, amely felelős az MQTT kommunikációért és a rendszer összes funkciójának vezérléséért (SD kártya hozzáférés, led vezérlés, hőmérséklet/páratartalom érzékelés, hangerőszabályzó, beszédszintézis). Az eszköz teljesen konfigurálható a helyi SD kártya, bár a kalibrálás és a hálózati biztonsági paraméterek távoli MQTT kiadványokon keresztül is programozhatók.

Milyen alkatrészekre van szükségem?

Az anyagjegyzéket lásd itt

Milyen szoftverre van szükségem?

  • Arduino IDE 1.6.9,
  • Az Arduino IDE az ESP8266-07 programozására van konfigurálva (ugyanaz, mint ez). Ezután konfigurálja az IDE -t a szoftvervázlatban található részletes leírásban leírtak szerint,
  • Python v3.5.2, ha használni szeretné az automatikus tesztelési lehetőséget, itt talál részleteket

Milyen eszközökre van szükségem?

  • Mikroszkóp legalább x3 (SMT forrasztáshoz),
  • Molex csatlakozó préselő eszköz (JST csatlakozókhoz),
  • SMD forrasztópáka (folyékony fluxus tollal és fluxusos forrasztóval),
  • Csavarhúzók (különféle),
  • Hőfegyver,
  • Fúrók (különféle),
  • Süllyesztett kéziszerszám,
  • Fájlok (különféle),
  • Dremel (különböző bitek),
  • Masszív satu (kicsi és nagy, mint egy fekete és decker dolgozótárs),
  • Szike,
  • Vernier féknyergek (a gyártás mérésére és a PCB alkatrészek méretezésére használhatók),
  • Csavarkulcsok és anyahajtók (különféle),
  • Erős csipesz (SMT forrasztáshoz),
  • Junior fűrész,
  • Fúró (különféle fúrószárral),
  • Finom fogó (hegyes és szúrós orr),
  • Öblítővágók,
  • DMM hallható folytonossági ellenőrzéssel,
  • Kétcsatornás digitális hatókör (praktikus a jelek hibakereséséhez)

Milyen készségekre van szükségem?

  • Sok türelmet,
  • Nagy kézügyesség és kiváló kéz/szem koordináció,
  • Kiváló forrasztási készség,
  • Kiváló gyártási készség,
  • 3 dimenziós vizualizációs képesség,
  • Bizonyos ismeretek a szoftverfejlesztésről „C” betűvel (ha meg akarja érteni a forráskódot),
  • Néhány ismeret a Pythonról (hogyan kell telepíteni és futtatni a szkripteket, ha használni szeretné az automatizált tesztelést),
  • Az Arduino és az IDE ismerete,
  • Jó elektronikai ismeretek,
  • Némi megértés az otthoni hálózatról.

Érintett témák

  • Használati utasítás
  • Áramkör áttekintés
  • NYÁK gyártás és összeszerelés
  • Gyártás
  • A szoftverrendszer áttekintése
  • Szoftver áttekintés
  • Érzékelő kalibrálása
  • MQTT Téma elnevezési egyezmény
  • Hibakeresés és hibakeresés
  • A tervezés tesztelése
  • Következtetés
  • Felhasznált hivatkozások

11. rész: IoT asztali konzol. Rész: 11 IoT, otthoni automatizálás

1. lépés: Felhasználói kézikönyv

Használati utasítás
Használati utasítás
Használati utasítás
Használati utasítás
Használati utasítás
Használati utasítás

A fenti 1. kép a Retro beszédszintetizátor elülső részét, a 2. ábra pedig a hátsó részt mutatja.

Elülső szekrény

  1. Hangszóró Grill
  2. 3,5 mm -es fülhallgató -csatlakozó: A 3,5 mm -es jack dugó behelyezésekor a fő hangszóró le van tiltva.
  3. Piros LED: Ez a LED akkor világít, amikor egy szó szól, amikor a beszéd HTTP kérésen keresztül indult.
  4. Kék LED: Ez a LED akkor világít, amikor egy szó szól, amikor a beszédet MQTT IoT kéréssel kezdeményezték.

Hátsó szekrény

  1. Visszaállítás gomb: Az ESP8266-07 IoT eszköz hardveres visszaállítására szolgál.
  2. Vaku gomb: A Reset gombbal együtt használva lehetővé teszi az ESP8266-07 újbóli villogását.
  3. WiFi antenna csatlakozó (SMA dugó): Külső WiFi antennához, amely a legkevesebb RF útcsillapítást biztosítja, mivel a zár alumínium.
  4. Külső programozási port: Annak érdekében, hogy ne kelljen kicsavarni a házat, hogy hozzáférhessen az ESP8266-07-hez újraprogramozás céljából. Az ESP8266-07 programozó csapjait a külső programozási portra hozták ki. A 3. kép a programozó adapter.
  5. Zöld LED: Ez az IoT rendszer ledje, és jelzi az eszköz diagnosztikai állapotát, a rendszerindítást és működés közben.
  6. Külső hőmérséklet/páratartalom érzékelő (AM2320)
  7. SD kártyahely: Ez tárolja az összes konfigurációs/biztonsági adatot a webszerver oldalaival együtt.
  8. 2,1 mm -es tápegység 6vdc

2. lépés: Áramkör áttekintése

Áramkör áttekintés
Áramkör áttekintés
Áramkör áttekintés
Áramkör áttekintés

A Retro Speech Synth eszköz két PCB -t tartalmaz;

  • RetroSpeechSynthIoTBoard: Ez egy általános, újrafelhasználható ESP8266-07/12/12E/13 NYÁK
  • RetroSpeechSynthBoard: Ez egy általános SP0256-AL2 NYÁK

Retro Speech Synth IoT Board

Ez a lap lehetővé teszi az ESP8266-07/12/12E/13 közvetlen forrasztását, vagy az ESP8266 hordozó PCB-t tartalmazó 0,1 hüvelykes foglalatokat.

Az alaplapot úgy tervezték, hogy az I/O-t I2C kapcsolaton keresztül bővítse, és támogatja a 3v3 vagy 5v tápellátást Q1, Q2, R8-13-on keresztül.

A táblához való csatlakozás a két J2 és J4 fejléc, 8-utas DIL IDC szalag vagy 5-utas JST/Molex egyik egyikén keresztül történik.

Az U2 és U3 3.3v és 5v előírásai a fedélzeti ellátás szabályozására. Alternatív megoldásként, ha nagyobb áramkapacitásra van szükség, a fedélzeti soros söntszabályozókat a J10 és J11 csatlakozókon keresztül lehet csatlakoztatni.

A J1 és J3 csatlakozók külső SD kártya támogatást kínálnak az SPI -n keresztül. A J1-et 8 irányú Molex-hez tervezték, a J3-nak pedig közvetlen csapja a tűk kompatibilitásának támogatására a polcon levő SD-kártya PCB-hez, akár 3v3, akár 5v támogatással.

Retro beszédszintetizáló tábla

A kártya vezérlése I2C 5v-kompatibilis kapcsolaton keresztül, J1, J5 vagy J6, 4-utas JST/Molex, 8-utas DIL IDC vagy 8-utas IDC szalagcsatlakozón keresztül történik.

Az U2 MPC23017 biztosítja az I2C párhuzamos interfészt az U3-hoz az SP0256-AL2 és a D1 (zöld), D2 (piros) és D3 (kék) LED-ekhez. A Speech Synth kimenete a CR1 TBA820M audioerősítőbe kerül, analóg RV1 vagy U1 MCP4561 pot segítségével.

Az U1 digitális edényt szintén 5 V -os kompatibilis I2C vezérli.

Megjegyzés: Az ESP8266-07 eszközt választották, mivel beépített IPX RF csatlakozóval rendelkezik, amely lehetővé teszi egy külső WiFi antenna csatlakoztatását az alumínium házhoz.

3. lépés: NYÁK -gyártás és összeszerelés

NYÁK gyártás és összeszerelés
NYÁK gyártás és összeszerelés
NYÁK gyártás és összeszerelés
NYÁK gyártás és összeszerelés
NYÁK gyártás és összeszerelés
NYÁK gyártás és összeszerelés
NYÁK gyártás és összeszerelés
NYÁK gyártás és összeszerelés

Az 1. és 2. kép az alumínium burkolatú aljzaton található befejezett és vezetékes NYÁK-részegységeket mutatja.

A két PCB -t a JLCPCB által gyártott Kicad v4.0.7 használatával tervezték, és én állítottam össze, és a 3-13.

4. lépés: Gyártás

Gyártás
Gyártás
Gyártás
Gyártás
Gyártás
Gyártás

Az 1. képen az összes előregyártott alkatrész Haynes kézi stílusú elrendezése látható a végső összeszerelés előtt.

A 2… 5. Ábrán különböző felvételek láthatók a ház gyártása során, minimális távolsággal.

5. lépés: A szoftverrendszer áttekintése

A szoftverrendszer áttekintése
A szoftverrendszer áttekintése
A szoftverrendszer áttekintése
A szoftverrendszer áttekintése

Ez az IoT Retro beszédszintézis eszköz hat kulcsfontosságú szoftverkomponenst tartalmaz, amint az a fenti 1. képen látható.

SD kártya

Ez a külső SD SPI Flash Filing System, és a következő információk tárolására szolgál (lásd a fenti 2. ábrát);

  • Ikonok és a „Speech Synth Configuration Home Page” index.htm: Az IoT -eszköz szolgálja ki, ha nem tud csatlakozni az IoT WiFi -hálózatához (általában a helytelen biztonsági információk vagy az első használat miatt), és lehetőséget biztosít a felhasználónak Az érzékelők távoli konfigurálása az új SD-tartalom újbóli villanása nélkül. Tartalmaz továbbá index1.htm, mqtt.htm és sp0256.htm, ezek a helyileg kiszolgált weboldalak, amelyek webböngészőn keresztül érhetők el, lehetővé téve a beszédszintetizátor korlátozott szabályozását HTTP -n keresztül.
  • Biztonsági információk: Ez tartalmazza az IoT -eszköz bekapcsolásakor felhasznált információkat, hogy csatlakozzon az IoT WiFi hálózatához és az MQTT Brokerhez. A 'Speech Synth Configuration honlapján' keresztül beküldött információk ebbe a fájlba íródnak ('secvals.txt').
  • Kalibrációs információk: A fájlokban található információk („calvals1.txt” és „calvals2.txt”) a fedélzeti hőmérséklet/páratartalom érzékelők kalibrálására szolgálnak, ha szükséges. A kalibrálási állandók írhatók az IoT eszközre az MQTT bróker MQTT parancsaival vagy az SD-kártya újbóli villogásával. A „calvals1.txt” az AM2320 érzékelőre és a „calvals2.txt” a DHT22 -re vonatkozik.
  • Felhasználó által konfigurálható rendszerértékek: Az ebben a fájlban található információk ('confvals.txt'), amelyeket a felhasználó választott, bizonyos rendszerre adott válaszokat vezérelnek, például a kezdeti digitális hangerőt, az automatikus "rendszerkész" bejelentést az MQTT bróker előfizetésről stb.

mDNS szerver

Ezt a funkciót akkor hívják fel, ha az IoT eszköz nem tud WiFi állomásként csatlakozni a WiFi hálózatához, és ehelyett egy WiFi hozzáférési pont lett, valami hasonló a hazai WiFi útválasztóhoz. Egy ilyen útválasztó esetén általában úgy csatlakozna hozzá, hogy például a 192.168.1.1 (általában a dobozra ragasztott címkére nyomtatott) IP -címét közvetlenül a böngésző URL -sávjába írja be, amelyre belépési oldalt kaphat a belépéshez a felhasználónevet és jelszót, amely lehetővé teszi az eszköz konfigurálását. Az ESP8266-07 AP üzemmódban (Hozzáférési pont mód) az eszköz alapértelmezés szerint a 192.168.4.1 IP-címet használja, azonban az mDNS szerver futása esetén csak be kell írnia a „SPEECHSVR.local” emberbarát nevet a böngésző URL-sávjába. lásd a 'Speech Synth Configuration Home Page'.

MQTT kliens

Az MQTT kliens minden szükséges funkciót biztosít; csatlakozzon az IoT hálózat MQTT brókeréhez, iratkozzon fel a választott témákra, és tegyen közzé hasznos terheléseket egy adott témában. Röviden, ez biztosítja az IoT alapvető funkcióit.

HTTP webszerver

Ennek a webszervernek két célja van;

  1. Ha az IoT -eszköz nem tud csatlakozni ahhoz a WiFi -hálózathoz, amelynek SSID -je, P/W stb. Az SD -kártyán tárolt biztonsági információs fájlban van meghatározva, akkor az eszköz hozzáférési pont lesz. Miután csatlakozott a hozzáférési pont által biztosított WiFi hálózathoz, a HTTP webszerver jelenléte lehetővé teszi, hogy közvetlenül csatlakozzon az eszközhöz, és módosítsa annak konfigurációját egy HTTP webböngésző használatával, amelynek célja a 'Speech Synth Configuration kiszolgálása' Kezdőlap weblapja, amely az SD -kártyán is található.
  2. Miután az IoT Retro beszédszintetizáló eszköz csatlakozott a WiFi hálózathoz és az MQTT brókerhez, ha hozzáfér, a HTTP webszerver automatikusan kiszolgál egy HTTP weboldalt, lehetővé téve az IoT eszköz korlátozott vezérlését, hogy bizonyos rögzített kifejezéseket beszéljen, és kapcsolja be a két elülső piros és kék LED -et.

WiFi állomás

Ez a funkció lehetővé teszi, hogy az IoT eszköz csatlakozzon egy hazai WiFi hálózathoz a Biztonsági információ fájl paraméterei segítségével, e nélkül az IoT eszköze nem tud előfizetni/közzétenni az MQTT Broker szolgáltatást.

WiFi hozzáférési pont

A WiFi hozzáférési ponttá válás azon eszköze, amellyel az IoT -eszköz lehetővé teszi, hogy csatlakozzon hozzá, és módosítsa a konfigurációt egy WiFi állomáson és egy böngészőn keresztül (például az Apple iPad Safari -ján). Ez a hozzáférési pont egy SSID = "SPEECHSYN" + az IoT eszköz MAC -címének utolsó 6 számjegyét sugározza. Ennek a zárt hálózatnak a jelszava ötletesen 'PASSWORD'

6. lépés: A szoftver áttekintése

Szoftver áttekintés
Szoftver áttekintés
Szoftver áttekintés
Szoftver áttekintés
Szoftver áttekintés
Szoftver áttekintés

Preambulum

A forráskód sikeres lefordításához szüksége lesz a kód helyi példányára és a könyvtárakra, amelyeket az alábbiakban ismertetünk, 12. lépés: Felhasznált hivatkozások. Ha nem biztos benne, hogyan telepítsen egy Arduino könyvtárat, látogasson el ide.

Áttekintés

A szoftver a fenti 1. képen látható állapot-gépet használja (a forrás teljes másolata a GitHub-táromban itt). Az alábbiakban ismertetett 5 fő állapot létezik;

  • BENNE

    Ez az inicializálási állapot az első állapot, amelyet a bekapcsolás után adtak meg

  • NOCONFIG

    Ez az állapot akkor lép be, ha a bekapcsolás után érvénytelen vagy hiányzó secvals.txt fájlt észlel. Ebben az állapotban a konfigurációs oldal látható

  • FÜGGŐBEN

    Ez az állapot átmeneti, és akkor lépett be, ha nincs WiFi hálózati kapcsolat

  • FÜGGŐ MQTT

    Ez az állapot átmeneti, egy WiFi hálózati kapcsolat létrehozása után lép be, és bár nincs kapcsolat az adott hálózat MQTT -brókerével

  • AKTÍV

    Ez a normál működési állapot, amelyet a WiFi hálózati kapcsolat és az MQTT Broker kapcsolat létrehozása után kell megadni. Ebben az állapotban az IoT Retro beszédszintetizáló eszköz hőmérsékletét, hőindexét és páratartalmát rendszeresen közzéteszik az MQTT Brokerben. Ebben az állapotban a Speech Synth kezdőlapja látható

Az állapotok közötti átmenetet szabályozó eseményeket a fenti 1. kép írja le. Az állapotok közötti átmenetet a következő SecVals paraméterek is szabályozzák;

  • 1. MQTT Broker IP -cím. Pontozott tizedes formában AAA. BBB. CCC. DDD
  • 2. MQTT bróker port. Egész alakban.
  • A 3. MQTT Broker kapcsolat megkísérli az STA módról AP módra való váltást. Egész alakban.
  • 4. WiFi hálózati SSID. Szabad formában.
  • 5. WiFi hálózati jelszó. Szabad formában.

Amint fentebb említettük, ha az IoT -eszköz nem képes WiFi állomásként csatlakozni a WiFi -hálózathoz, akinek SSID -je és P/W -je az SD -kártyán tárolt secvals.txt fájlban van megadva, akkor az IoT -eszköz hozzáférési pont lesz. Miután csatlakozott ehhez a hozzáférési ponthoz, a 2. képen látható módon megjeleníti a „Speech Synth Configuration Home Page” oldalt (a „SPEECHSVR.local” vagy a 192.168.4.1 beírásával a böngésző URL -címsorába). Ez a kezdőlap lehetővé teszi az IoT Retro beszédszintézis eszköz HTTP -böngészőn keresztül történő újrakonfigurálását.

Távoli hozzáférés ACTIVE állapotban

Miután csatlakozott az MQTT Broker-hez, lehetőség van az eszköz újrakalibrálására és újrakonfigurálására az MQTT témakörben. A calvals.txt fájl R/W hozzáféréssel rendelkezik, a secvals.txt pedig csak írási hozzáféréssel rendelkezik.

Szintén, mint fentebb említettük, aktív módban a Speech Synth HTTP -interfészen keresztül érhető el a „SPEECHSVR.local” vagy a 192.168.4.1 böngésző URL -címsorába való belépéssel. Ez a HTTP alapú felület lehetővé teszi a beszédszintetizálás alapvető vezérlését. A 3., 4. és 5. kép az elérhető weboldalakat mutatja.

Felhasználói hibakeresés

A rendszerindítási folyamat során a ház hátsó részén található IoT eszköz zöld rendszere a következő hibakeresési visszajelzést adja;

  • 1 Rövid vaku: Nincs konfigurációs fájl az SD -kártyán (secvals.txt)
  • 2 Rövid villanások: Az IoT eszköz WiFi -hálózathoz próbál csatlakozni
  • Folyamatos megvilágítás: Az IoT eszköz megpróbál csatlakozni az MQTT Brokerhez
  • Ki: A készülék aktív.

Az IoT Retro beszédszintézis eszköz működése ACTIVE állapotban

Az AKTÍV állapotba kerülve az ESP8266 egy folyamatos ciklusba lép, amely a következő függvényeket hívja meg; timer_update (), checkTemperatureAndHumidity () és handleSpeech (). Ennek nettó eredményét úgy tervezték, hogy HTTP- vagy MQTT-interfészt mutasson be a felhasználónak, zökkenőmentesen kiszolgálja fedélzeti beszédfeldolgozóját igény szerint fonémákkal, és tegye közzé a helyi környezeti paramétereket az MQTT-n keresztül.

A forráskód tartalmazza az összes téma -előfizetés és kiadvány átfogó listáját, beleértve a hasznos terhelés értékeit.

7. lépés: Az érzékelő kalibrálása

Érzékelő kalibrálása
Érzékelő kalibrálása

Amikor az IoT eszköz bekapcsol, a rendszerindítási sorozat részeként két „cavals1.txt” és „cavals2.txt” nevű fájlt olvas ki az SD -kártyáról.

Ezeknek a fájloknak a tartalma kalibrálási állandók, amint azt az 1. kép mutatja.

  1. 'cavals1.txt': A külső AM2320 használja
  2. 'cavals2.txt': A belső DHT22 használja

Ezek a kalibrálási állandók a két érzékelőből kapott értékek beállítására szolgálnak, hogy összhangba hozzák azokat egy referenciaeszközzel. Van még egy érték, amely minden eszközre jelentési stratégiát határoz meg, és az alábbiakban ismertetjük az érzékelők kalibrálására vonatkozó eljárással együtt.

Jelentési stratégia

Ez a paraméter határozza meg, hogy a távérzékelő hogyan jelentse a környezeti paraméterek helyi változásait. Ha a 0 érték van kiválasztva, a távérzékelő minden alkalommal, amikor a megfelelő érzékelőt leolvassa (kb. 10 másodpercenként) közzéteszi a hőmérséklet vagy páratartalom változását. Minden más érték 1… 60 perccel késlelteti a módosítás közzétételét. Ennek a paraméternek a módosítása lehetővé teszi az MQTT hálózati forgalom optimalizálását. Meg kell jegyezni, hogy az érzékelő korlátai miatt a DHT22 hőmérséklet- és páratartalom -adatai felváltva olvashatók.

Hőmérséklet kalibrálása

A hőmérséklet -érzékelő kalibrálásához ugyanazt a folyamatot követtem, mint az itt leírt 4. lépést, ismét egyszerű y = mx+c összefüggést használva. IoT hőmérséklet, páratartalom érzékelő #1 -et használtam referenciaeszközként. Az érzékelőből származó értékek Celsius fokban vannak megadva.

Páratartalom kalibrálás

Mivel nincs eszközöm a helyi környezeti páratartalom pontos rögzítésére vagy akár szabályozására, az érzékelő kalibrálásához hasonló módszert alkalmaztam, mint a fenti 4. lépésben, ismét az 1. érzékelőt használva referenciaként. A fentiek ellenére a közelmúltban találtam egy kiváló cikket az interneten, amely leírja a páratartalom -érzékelők kalibrálását. Lehet, hogy valamikor a jövőben kipróbálom ezt a módszert. Az érzékelőből származó értékek a relatív páratartalom %-ában vannak megadva.

8. lépés: Az MQTT téma elnevezési egyezménye

MQTT Téma elnevezési egyezmény
MQTT Téma elnevezési egyezmény
MQTT Téma elnevezési egyezmény
MQTT Téma elnevezési egyezmény

Amint azt egy korábbi utasításban (itt) említettük, a fenti 1. képen felvázolt témanevezési megállapodásra helyeztem a hangsúlyt.

Nevezetesen: "AccessMethod/DeviceType/WhichDevice/Action/SubDevice" Nem tökéletes, de lehetővé teszi a hasznos szűrők alkalmazását az adott paraméteres téma összes érzékelő kimenetének megtekintéséhez, így lehetővé teszi az egyszerű összehasonlítást, mint a fenti 2. képen az MQTTSpy -vel.

Ez a projekt az első olyan eset, amikor egyetlen eszköz több, azonos típusú kiadványból származó forrást tartalmaz. azaz. Két hőmérséklet/páratartalom érzékelő, belső és külső alkészülékekről.

Támogatja a funkcionalitás ésszerűen bővíthető logikai csoportosítását is egy adott IoT -eszközön belül.

Ezeknek a témaköröknek a szoftverben történő megvalósításakor minden eszközhöz kemény kódolású témaköröket használtam, rögzített, beágyazott numerikus azonosítókkal, szemben a témák dinamikus generálásával futás közben, hogy megtakarítsam a RAM -ot és magas teljesítményt tartsak fenn.

Megjegyzés: Ha nem biztos benne, hogyan kell használni az MQTTSpy programot, olvassa el itt az MQTT -bróker beállítása című részt. 2. rész: IoT, otthoni automatizálás”

9. lépés: Hibakeresés és hibakeresés

Hibakeresés és hibakeresés
Hibakeresés és hibakeresés

Általánosságban elmondható, hogy hobbiprojektjeimnél, ahol lehetséges, hajlamos vagyok reprezentatív hardver prototípust készíteni, amely ellen a szoftvert fejlesztik. Ritkán vannak problémáim a szoftver integrálásakor a végső platform hardverébe.

Ebből az alkalomból azonban furcsa, időszakos hibára bukkantam, amikor egyes fonémák hangzottak, mások nem.

A Speech Synth PCB kezdeti hibakeresése után Arduino Uno segítségével a fonémák forrásáért és annak igazolásáért, hogy ez a kártya működik, átvettem az IoT PCB és a Speech Synth PCB közötti I2C vonalakat. Lásd a fenti 1. képet.

A nyomokon jól látható a „fűrészfog”/az I2C jel exponenciális éle.

Ez általában azt jelzi, hogy az I2C felhúzási értékei túl magasak, ami megakadályozza, hogy a hálózati feszültség elég gyorsan helyreálljon egy nyitott leeresztő körben.

"Körüljárásként" párhuzamba állítottam az R12 és R13 két SMT felhúzó ellenállást 10K -val, hogy 4K7 -t kapjunk, és bizony a Speech Synth "életre kelt"

Ez a fajta hiba ellentétes azzal, ami történhet az ilyen típusú projektek hibakeresésekor. Általában az Ebay -től vásárolt I2C alapú modulok többsége általában 10K vagy 4K7 felhúzással rendelkezik. Ha> 5 I2C modult kíván használni, mindegyik 4K7 felhúzással, akkor a teljes terhelés 940R, ami túl nagy lesz a mester kimeneti szakaszához. A megoldás az lenne, ha minden modulban feloldanánk az összes felhúzó ellenállás készletét. Lehetőleg az, aki fizikailag legtávolabb van a mestertől.

Hasznos tipp, amelyet érdemes szem előtt tartani, amikor elektronikát tervez I2C eszközökkel.

10. lépés: A terv tesztelése

Image
Image
A tervezés tesztelése
A tervezés tesztelése
A tervezés tesztelése
A tervezés tesztelése

A tesztelést két módszerrel végezték; Manuális és automatizált.

Az első, kézi és általában a kezdeti kódfejlesztés során az MQTT Spy segítségével gyakorolták az összes feliratkozott témát, és ellenőrizték a közzétett válaszokat (a fenti 2. képen látható). Mivel ez egy manuális folyamat, időigényes és hibákra hajlamos lehet a kódfejlesztés előrehaladtával, bár a manuális végrehajtás lehetővé teszi a 100% -os lefedettséget.

Az MQTTSpy -t azért választották manuális tesztelésre, mert kiváló eszköz egy adott hasznos terhelés kézi formázására és bármilyen témában való egyszerű közzétételére. Ezenkívül világos, időbélyegzett naplót is megjelenít, amely nagyon hasznos a hibakereséshez (fenti 3. kép).

A második, automatizált megközelítést úgy alkalmazták, hogy a forráskód bonyolultabb lett (> 3700 sor). A fokozott komplexitás hosszabb kézi tesztelési ciklusokat és összetettebb teszteket jelent. A tesztek megbízhatóságának, determinizmusának és minőségének javítása érdekében automatizált tesztelést használtak egy python tesztvezető segítségével (1. kép). Az automatikus tesztelés bevezetésének módjáról lásd az útmutató 10. részét. Az ebben az utasításban használt automatizált tesztek teljes példánya itt érhető el.

A fent látható egy videó a működő automatizált tesztsorozatról. A sorozat végrehajtja a következő lépéseket;

  • Automatizált az MQTT -n keresztül

    • Csatlakozzon az MQTT gerincéhez, és hirdesse a „Rendszer kész” állapotot
    • Gyakorlat Zöld LED
    • Gyakorlat Piros LED
    • Gyakorlat kék LED
    • Ellenőrizze a Digital Pot működését
    • Beszéljen fonémák használatával
    • Beszéljen fonémák hexadecimális kódjaival
    • Beszéljen kódokkal a javított kifejezésekhez
    • Egy kis Dr Who és a Daleks szórakozás.
  • Manuálisan HTTP/Chrome -on keresztül

    • Gyakorlat kék LED
    • Gyakorlat Piros LED
    • Mondjon rögzített kifejezéseket: „Steven Quinn”, „System Ready” és „Hello World”
    • Legyen HTTP szervere, tálalja fel

      • A Speech Synth Chip részletei
      • MQTT részletek

11. lépés: Következtetés

Következtetés
Következtetés

Bár sok erőfeszítést igényelt a fájlok és fúrók stb., Különösen a hangszórórács esetében, úgy gondolom, hogy az eredmény esztétikus és kellemes, kis házba csomagolható. Kicsinyíthettem volna, de szükség lett volna egy NYÁK-ra, és szándékosan ketté törtem, hogy később újra felhasználhassam a NYÁK-okat más projektekhez. Szóval ez egy boldog kompromisszum.

A szoftver jól működik, az IoT eszköz már jó ideje stabilan működik, minden probléma nélkül.

A Grafana-n keresztül figyeltem a hőmérsékletet és a páratartalmat, és összehasonlítottam egy együtt elhelyezett eszközzel. A két környezeti érték jól korrelált, ami azt jelenti, hogy a kalibrálás ésszerű (vagy legalábbis hasonló).

Abbahagytam a word parancs végrehajtását ('WFD/SpeechTH/1/Word/Command'), mert kifogytam az időből, és tovább kellett lépnem. Lehet, hogy újra meglátogatom ezt, ha és amikor beállítok egy MySQL adatbázist. Jelenleg az InfluxDB -t használom.

12. lépés: Felhasznált hivatkozások

A következő forrásokat használták fel az utasítás létrehozásához; Az IoT Retro beszédszintetizáló eszköz forráskódja (ez minden másolatát tartalmazza)

https://github.com/SteveQuinn1/IoT_Retro_Speech_Synthesis_SP0256_AL2

PubSubClient.h

  • Szerző: Nick O'Leary
  • Cél: Lehetővé teszi az eszköz számára, hogy közzétegyen vagy feliratkozzon az MQTT témákra egy adott brókerrel
  • Innen:

DHT.h

  • Szerző: Adafruit
  • Cél: Arduino könyvtár a DHT11DHT22 stb. Hőmérséklet- és páratartalom -érzékelőkhöz
  • Innen:

Adafruit_AM2320.h/Adafruit_Sensor.h

  • Szerző: Adafruit
  • Cél: Arduino könyvtár AM2320 -hoz, stb. Hőmérséklet- és páratartalom -érzékelő
  • Innen:

MCP4561_DIGI_POT.h

  • Szerző: Steve Quinn
  • Cél: Arduino Library az MCP4561 digitális potenciométerhez
  • Innen:

Adafruit_MCP23017.h

  • Szerző: Steve Quinn
  • Cél: Arduino könyvtár az MCP23017 I2C portbővítőhöz. Ez egy GITHub villa az Adafruit-MCP23017-Arduino-Library-ből, az Adafruit.
  • Innen:

A móka kedvéért

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

NYÁK -gyártás

https://jlcpcb.com/

További Arduino könyvtárak telepítése

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

A páratartalom -érzékelő ellenőrzése és kalibrálása

https://www.allaboutcircuits.com/projects/how-to-check-and-calibrate-a-humidity-sensor/? /

SP0256-AL2 Adatlap

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

Speech Chips Shop

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

Arduino verseny 2019
Arduino verseny 2019
Arduino verseny 2019
Arduino verseny 2019

Második helyezett az Arduino versenyen 2019

Ajánlott: