Obsah:
- Krok 1: Uživatelská příručka
- Krok 2: Přehled obvodu
- Krok 3: Výroba a montáž DPS
- Krok 4: Výroba
- Krok 5: Přehled softwarového systému
- Krok 6: Přehled softwaru
- Krok 7: Kalibrace senzoru
- Krok 8: Konvence pojmenování témat MQTT
- Krok 9: Ladění a hledání chyb
- Krok 10: Testování návrhu
- Krok 11: Závěr
- Krok 12: Použité reference
Video: Retro syntéza řeči. Část: 12 IoT, domácí automatizace: 12 kroků (s obrázky)
2024 Autor: John Day | [email protected]. Naposledy změněno: 2024-01-30 08:22
Tento článek je 12. ze série instrukcí o domácí automatizaci, které dokumentují, jak vytvořit a integrovat zařízení pro syntézu řeči IoT Retro do stávajícího systému domácí automatizace, včetně všech potřebných softwarových funkcí, které umožní úspěšné nasazení v domácím prostředí.
Obrázek 1 ukazuje dokončené zařízení pro syntézu řeči IoT a obrázek 2 ukazuje všechny součásti použité v prototypu, které byly zmenšeny, aby se dostaly do konečného produktu.
Video ukazuje zařízení v akci (během testování).
Úvod
Jak je uvedeno výše, tento instruktáž podrobně popisuje, jak vytvořit zařízení pro syntézu retro řeči IoT, a je založen na nástrojích General Instruments SP0256-AL2.
Jeho primárním účelem je přidat hlasovou syntézu „staré školy“do sítě IoT. Můžete se ptát, proč 'stará škola'? Protože jsem byl asi v 80. letech, když byly tyto věci poprvé vyrobeny, a jednu jsem propojil s mým BBC Micro, takže pro mě je určitý stupeň nostalgie kolem SP0256-AL2.
Mnohem raději dávám přednost snaze zjistit, co to proboha říká tento znějící Dalekův hlas, než poslouchat dulcetové tóny hipsterské ozvěny Amazonky nebo Siri. Kde je výzva v tom, že se vás ptám?
A nemluvě o tom, že mám také ležet „tašku“integrovaných obvodů „SP0256-AL2“.
Zařízení je také schopné číst místní teplotu a vlhkost, takže dále rozšiřuje přístrojové vybavení mé stávající infrastruktury IoT připojené k síti IoT založené na MQTT/OpenHAB podrobně popsané v této sérii o domácí automatizaci (HA), přičemž staví na opakovaně použitém kódu odtud.
Srdcem je ESP8266-07, který je zodpovědný za komunikaci MQTT a ovládání všech funkcí systému (přístup na kartu SD, ovládání LED, snímání teploty/vlhkosti, ovládání hlasitosti, syntéza řeči). Zařízení je plně konfigurovatelné pomocí textových souborů uložených na lokální SD kartu, ačkoli kalibrační a síťové bezpečnostní parametry lze naprogramovat také prostřednictvím vzdálených publikací MQTT.
Jaké díly potřebuji?
Podívejte se na kusovník zde
Jaký software potřebuji?
- Arduino IDE 1.6.9,
- Arduino IDE nakonfigurováno pro programování ESP8266-07 (stejné jako toto). Poté nakonfigurujte IDE, jak je uvedeno v podrobném popisu uvedeném v náčrtu softwaru zde,
- Python v3.5.2, pokud chcete použít funkci automatického testování, podrobnosti zde
Jaké nástroje potřebuji?
- Mikroskop alespoň x3 (pro pájení SMT),
- Krimpovací nástroj Molex (pro konektory JST),
- SMD páječka (s tekutým tavným perem a tavnou pájkou),
- Šroubováky (různé),
- Horkovzdušná pistole,
- Vrtáky (různé),
- Ruční nástroj pro zahloubení,
- Soubory (různé),
- Dremel (různé bity),
- Robustní svěrák (malý i velký, jako black and decker work mate),
- Skalpel,
- Posuvné posuvné měřítko (používané k měření výroby a užitečné pro dimenzování součástí DPS),
- Klíče a ovladače matic (různé),
- Silná pinzeta (pro pájení SMT),
- Dětská pila,
- Vrták (s různými vrtáky),
- Jemné kleště (špičaté a nosní),
- Splachovací kleště,
- DMM se zvukovou kontrolou kontinuity,
- Dvoukanálový digitální rozsah (vhodný pro ladění signálů)
Jaké dovednosti potřebuji?
- Hodně trpělivosti,
- Velká manuální zručnost a vynikající koordinace ruka/oko,
- Vynikající pájecí schopnosti,
- Vynikající výrobní dovednosti,
- Možnost vizualizace ve 3 rozměrech,
- Některé znalosti vývoje softwaru s 'C' (pokud chcete rozumět zdrojovému kódu),
- Některé znalosti Pythonu (jak instalovat a spouštět skripty, pokud chcete použít automatizované testování),
- Znalost Arduina a jeho IDE,
- Dobrá znalost elektroniky,
- Trochu porozumění vaší domácí síti.
Pokrytá témata
- Uživatelský manuál
- Přehled obvodu
- Výroba a montáž DPS
- Výroba
- Přehled softwarového systému
- Přehled softwaru
- Kalibrace senzoru
- Úmluva o pojmenování témat MQTT
- Hledání chyb a poruch
- Testování designu
- Závěr
- Použité reference
LinksTo Part 11: IoT Desktop Console. Část: 11 IoT, domácí automatizace
Krok 1: Uživatelská příručka
Obrázek 1 výše ukazuje přední část Retro Speech Synthesizer a obrázek 2 zadní část.
Přední část skříně
- Reproduktorový gril
- 3,5 mm konektor pro sluchátka: Hlavní reproduktor je deaktivován, když je vložen 3,5 mm konektor.
- Červená LED: Tato LED se rozsvítí, když je vyslovováno slovo, když byla řeč zahájena pomocí požadavku
- Modrá LED: Tato LED se rozsvítí, když je vyslovováno slovo, když byla řeč zahájena prostřednictvím požadavku MQTT IoT.
Rozvaděč vzadu
- Tlačítko Reset: Používá se k tvrdému resetování zařízení IoT ESP8266-07.
- Tlačítko blesku: Při použití ve spojení s tlačítkem Reset umožňuje znovu blikat ESP8266-07.
- Konektor WiFi antény (konektor SMA): Pro externí anténu WiFi poskytující nejmenší útlum cesty RF, protože uzávěr je hliníkový.
- Port externího programování: Chcete-li odstranit potřebu odšroubovat kryt, abyste získali přístup k ESP8266-07 za účelem přeprogramování. Programovací piny ESP8266-07 byly vyvedeny na externí programovací port. Obrázek 3 je programovací adaptér.
- Zelená LED: Toto je LED systému IoT a slouží k indikaci diagnostického stavu zařízení, spuštění a provozu.
- Externí snímač teploty/vlhkosti (AM2320)
- Slot pro kartu SD: Obsahuje všechna konfigurační/bezpečnostní data spolu se stránkami webového serveru.
- 2,1 mm napájecí konektor 6 V DC
Krok 2: Přehled obvodu
Zařízení Retro Speech Synth obsahuje dvě PCB;
- RetroSpeechSynthIoTBoard: Jedná se o obecný, opakovaně použitelný PCB ESP8266-07/12/12E/13
- RetroSpeechSynthBoard: Toto je obecný PCB SP0256-AL2
Rada IoT Retro Speech Synth
Tato deska umožňuje buď přímé pájení patic ESP8266-07/12/12E/13, nebo 0,1 s roztečí desek plošných spojů ESP8266.
Deska byla navržena tak, aby rozšiřovala své I/O přes připojení I2C a může podporovat úrovně napájení 3v3 nebo 5v prostřednictvím Q1, Q2, R8-13.
Připojení k desce je zajištěno jedním ze dvou konektorů J2 a J4, 8pásmové pásky DIL IDC nebo 5cestných JST/Molex.
Regulace napájení na palubě U2 a U3 3,3v a 5v. Alternativně, pokud je požadována větší proudová kapacita, mohou být pomocí konektorů J10 a J11 připojeny off -line sériové bočníkové regulátory.
Konektory J1 a J3 nabízejí podporu externích karet SD přes SPI. J1 byl navržen pro 8směrný Molex a J3 má přímou podporu pinů pro kompatibilitu pinů pro běžně dostupné PCB karty SD s podporou 3v3 nebo 5v.
Retro syntetizátorová řeč
Ovládání této desky je přes připojení kompatibilní s I2C 5v přes J1, J5 nebo J6, 4pásmový konektor JST/Molex, 8pásmový konektor DIL IDC nebo 8pásmový konektor IDC.
U2 MPC23017 poskytuje paralelní rozhraní I2C k U3 SP0256-AL2 a LED D1 (zelená), D2 (červená) a D3 (modrá). Výstup Speech Synth je veden do audio zesilovače CR1 TBA820M buď analogovým potenciometrem RV1, nebo digitálním potenciometrem U1 MCP4561.
Digital Pot U1 je také řízen přes I2C kompatibilní s 5v.
Poznámka: Zařízení ESP8266-07 bylo vybráno, protože má integrovaný konektor IPX RF umožňující přidání externí antény WiFi k hliníkovému krytu.
Krok 3: Výroba a montáž DPS
Obrázky 1 a 2 ukazují dokončené a zapojené podsestavy DPS umístěné na substrátu hliníkového pouzdra.
Tyto dvě desky plošných spojů byly navrženy pomocí Kicad v4.0.7, vyrobeného společností JLCPCB a sestaveného mnou a zobrazeného výše na obrázcích 3 až 13.
Krok 4: Výroba
Obrázek 1 ukazuje Haynes Manual styl rozložení všech prefabrikátů před konečnou montáží.
Obrázky 2… 5 ukazují různé záběry při výrobě skříně s minimální vůlí.
Krok 5: Přehled softwarového systému
Toto zařízení pro syntézu retro řeči IoT obsahuje šest klíčových softwarových komponent, jak je znázorněno na obrázku 1 výše.
SD karta
Toto je externí systém SD Filtrování souborů Flash SPI a slouží k uchovávání následujících informací (viz obrázek 2 výše);
- Ikony a domovská stránka konfigurace synchronizace řeči index.htm: Slouží zařízení IoT, když se nemůže připojit k vaší WiFi síti IoT (obvykle kvůli nesprávným bezpečnostním informacím nebo prvnímu použití) a poskytuje uživateli prostředky vzdálené konfigurace senzorů bez nutnosti opětovného flashování nového obsahu SD. Obsahuje také index1.htm, mqtt.htm a sp0256.htm, jedná se o lokálně obsluhované webové stránky přístupné přes webový prohlížeč umožňující omezené ovládání syntetizátoru řeči přes
- Informace o zabezpečení: Obsahuje informace používané při zapnutí zařízením IoT k připojení k vaší síti IoT WiFi a MQTT Broker. Do tohoto souboru ('secvals.txt') jsou zapsány informace odeslané prostřednictvím 'domovské stránky konfigurace syntézy řeči'.
- Informace o kalibraci: Informace obsažené v souborech („calvals1.txt“a „calvals2.txt“) se v případě potřeby používají ke kalibraci palubních snímačů teploty/vlhkosti. Kalibrační konstanty lze do zařízení IoT zapisovat pomocí příkazů MQTT od brokera MQTT nebo opětovným blikáním karty SD. „calvals1.txt“se týká snímače AM2320 a „calvals2.txt“pro DHT22.
- Uživatelem konfigurovatelné systémové hodnoty: Informace obsažené v tomto souboru ('confvals.txt'), zvolené uživatelem, řídí určité reakce systému, jako je počáteční úroveň digitální hlasitosti, automatické oznámení 'systém připraven' o předplatném brokera MQTT atd.
mDNS server
Tato funkce je vyvolána, když se zařízení IoT nepodařilo připojit k vaší WiFi síti jako WiFi stanice a místo toho se stalo přístupovým bodem WiFi, něco podobného domácímu WiFi routeru. V případě takového routeru byste se k němu obvykle připojili zadáním IP adresy například 192.168.1.1 (obvykle vytištěné na štítku nalepeném na krabici) přímo do adresního řádku prohlížeče, načež byste obdrželi přihlašovací stránku pro zadání uživatelské jméno a heslo, které vám umožní konfigurovat zařízení. Pro ESP8266-07 v režimu AP (režim přístupového bodu) je zařízení standardně nastaveno na IP adresu 192.168.4.1, ale při běžícím serveru mDNS stačí zadat lištu přátelskou 'SPEECHSVR.local' do adresního řádku prohlížeče, aby viz 'Domovská stránka konfigurace synchronizace řeči'.
Klient MQTT
Klient MQTT poskytuje všechny potřebné funkce; připojte se ke své síti IoT broker MQTT, přihlaste se k odběru témat podle svého výběru a zveřejněte užitečné zatížení k danému tématu. Stručně řečeno, poskytuje základní funkce IoT.
Webový server
Tento webový server má dva účely;
- Pokud se zařízení IoT nemůže připojit k síti WiFi, jejíž SSID, P/W atd. Je definováno v souboru s bezpečnostními informacemi uloženém na kartě SD, zařízení se stane přístupovým bodem. Jakmile se připojíte k síti WiFi poskytované přístupovým bodem, přítomnost webového serveru HTTP vám umožní přímo se připojit k zařízení a změnit jeho konfiguraci pomocí webového prohlížeče HTTP. Domovská stránka, která je rovněž uložena na kartě SD.
- Jakmile se zařízení IoT Retro Speech Synthesis připojí k síti WiFi a brokerovi MQTT, bude -li k němu přistupováno, webový server HTTP automaticky zobrazí webovou stránku HTTP, která umožní omezené ovládání zařízení IoT a vysloví výběr pevných frází a schopnost cyklujte dvě přední červenou a modrou LED.
WiFi stanice
Tato funkce dává zařízení IoT možnost připojit se k domácí WiFi síti pomocí parametrů v souboru s informacemi o zabezpečení, bez toho se vaše zařízení IoT nebude moci přihlásit/publikovat u MQTT Broker.
WiFi přístupový bod
Možnost stát se přístupovým bodem WiFi je prostředek, pomocí kterého vám zařízení IoT umožňuje připojit se k němu a provádět změny konfigurace prostřednictvím stanice WiFi a prohlížeče (například Safari na Apple iPad). Tento přístupový bod vysílá SSID = „SPEECHSYN“+ posledních 6 číslic MAC adresy zařízení IoT. Heslo pro tuto uzavřenou síť je pomyslně pojmenováno „HESLO“
Krok 6: Přehled softwaru
Preambule
K úspěšnému kompilaci tohoto zdrojového kódu budete potřebovat místní kopii kódu a knihoven popsaných níže v kroku 12, Použité reference. Pokud si nejste jisti, jak nainstalovat knihovnu Arduino, přejděte sem.
Přehled
Software využívá stavový stroj, jak je znázorněno na obrázku 1 výše (úplná kopie zdroje v mém úložišti GitHub zde). Níže je uvedeno 5 hlavních stavů;
-
INIT
Tento inicializační stav je prvním stavem zadaným po zapnutí
-
NOCONFIG
Tento stav je zadán, pokud je po zapnutí detekován neplatný nebo chybějící soubor secvals.txt. Během tohoto stavu je viditelná stránka konfigurace
-
Čeká na SZ
Tento stav je přechodný, zadává se, zatímco neexistuje žádné připojení k síti WiFi
-
ČEKÁNÍ MQTT
Tento stav je přechodný, zadává se po navázání připojení k WiFi síti a zatímco v této síti neexistuje žádné spojení s brokerem MQTT
-
AKTIVNÍ
Toto je normální provozní stav zadaný po navázání připojení k WiFi síti i připojení MQTT Broker. Během tohoto stavu je teplota, tepelný index a vlhkost na zařízení IoT Retro Speech Synthesis Device pravidelně zveřejňována u makléře MQTT. V tomto stavu je domovská stránka Speech Synth viditelná
Události řídící přechody mezi stavy jsou popsány na obrázku 1 výše. Přechody mezi stavy se také řídí následujícími parametry SecVals;
- 1. IP adresa makléře MQTT. V tečkované desítkové podobě AAA. BBB. CCC. DDD
- 2. Broker Port MQTT. V celočíselném tvaru.
- 3. Připojení MQTT Broker se pokusí provést před přepnutím z režimu STA do režimu AP. V celočíselném tvaru.
- 4. SSID WiFi sítě. Ve volném textu.
- 5. heslo WiFi sítě. Ve volném textu.
Jak je uvedeno výše, pokud se zařízení IoT nemůže připojit jako WiFi stanice k WiFi síti, jehož SSID a P/W jsou definovány v secvals.txt na SD kartě, zařízení IoT se stane přístupovým bodem. Jakmile se připojí k tomuto přístupovému bodu, bude sloužit jako domovská stránka „Konfigurace syntézy řeči“, jak je uvedeno výše na obrázku 2 (zadáním buď „SPEECHSVR.local“nebo 192.168.4.1 do adresního řádku prohlížeče). Tato domovská stránka umožňuje rekonfiguraci zařízení IoT Retro Speech Synthesis Device prostřednictvím prohlížeče
Vzdálený přístup ve stavu AKTIVNÍ
Po připojení k MQTT Broker je také možné zařízení jak rekalibrovat, tak překonfigurovat prostřednictvím tematických publikací MQTT. Soubor calvals.txt má přístup R/W a secvals.txt má přístup pouze pro zápis.
Také, jak bylo uvedeno výše, v aktivním režimu je možné přistupovat k Speech Synth prostřednictvím rozhraní HTTP zadáním 'SPEECHSVR.local' nebo 192.168.4.1 do adresního řádku prohlížeče. Toto rozhraní založené na HTTP umožňuje základní ovládání Speech Synth. Obrázky 3, 4 a 5 ukazují dostupné webové stránky.
Ladění uživatele
Během zaváděcí sekvence zelená kontrolka systému zařízení IoT na zadní straně skříně poskytuje následující zpětnou vazbu ladění;
- 1 Krátký záblesk: Na kartě SD není žádný konfigurační soubor (secvals.txt)
- 2 Krátké bliknutí: Zařízení IoT se pokouší připojit k síti WiFi
- Nepřetržité osvětlení: Zařízení IoT se pokouší připojit k MQTT Broker
- Vypnuto: Zařízení je aktivní.
Funkce zařízení IoT Retro pro syntézu řeči v aktivním stavu
Jakmile je EST8266 ve stavu AKTIVNÍ, vstoupí do kontinuální smyčky, která volá následující funkce; timer_update (), checkTemperatureAndHumidity () a handleSpeech (). Čistý výsledek, který byl navržen tak, aby poskytoval uživateli rozhraní HTTP nebo MQTT, bezproblémově obsluhoval jeho integrovaný řečový procesor s fonémy na vyžádání a publikoval lokální parametrické hodnoty prostředí přes MQTT.
Komplexní seznam všech předplatných a publikací témat včetně hodnot užitečného zatížení je součástí zdrojového kódu.
Krok 7: Kalibrace senzoru
Když se zařízení IoT zapne, jako součást zaváděcí sekvence se z karty SD načtou dva soubory s názvem „cavals1.txt“a „cavals2.txt“.
Obsah těchto souborů jsou kalibrační konstanty, jak je uvedeno výše na obrázku 1.
- 'cavals1.txt': Používá externí AM2320
- 'cavals2.txt': Používá interní DHT22
Tyto kalibrační konstanty se používají k úpravě odečtů získaných ze dvou senzorů tak, aby byly v souladu s referenčním zařízením. Existuje ještě jedna hodnota, která definuje strategii hlášení pro každé zařízení a je popsána níže spolu s postupem kalibrace senzorů.
Strategie podávání zpráv
Tento parametr určuje, jak vzdálený senzor hlásí jakékoli místní parametrické změny. Pokud je vybrána hodnota 0, vzdálený senzor zveřejní každou změnu teploty nebo vlhkosti, kterou vidí, pokaždé, když je načten příslušný senzor (přibližně každých 10 sekund). Jakákoli jiná hodnota zpozdí zveřejnění změny o 1… 60 minut. Úprava tohoto parametru umožňuje optimalizaci síťového provozu MQTT. Je třeba poznamenat, že údaje o teplotě a vlhkosti z DHT22 se čtou střídavě kvůli omezení senzoru.
Kalibrace teploty
Ke kalibraci teplotního senzoru jsem postupoval stejným způsobem, jak je zde popsáno, krok 4, opět pomocí jednoduchého vztahu y = mx+c. Jako referenční zařízení jsem použil snímač IoT teploty, vlhkosti č. 1. Hodnoty ze senzoru jsou ve stupních Celsia.
Kalibrace vlhkosti
Jelikož nemám žádné prostředky k přesnému zaznamenávání nebo dokonce kontrole místní okolní vlhkosti, ke kalibraci senzoru jsem použil podobný přístup jako zde výše, krok 4, opět s použitím senzoru č. 1 jako reference. Nicméně výše uvedené, nedávno jsem na webu našel vynikající článek, který popisuje, jak kalibrovat senzory vlhkosti. Tento přístup mohu někdy v budoucnu vyzkoušet. Hodnoty ze senzoru jsou v %stáří relativní vlhkosti.
Krok 8: Konvence pojmenování témat MQTT
Jak již bylo zmíněno v předchozím Instructable (zde), usadil jsem se na konvenci pojmenování témat popsanou na obrázku 1 výše.
Jmenovitě 'AccessMethod/DeviceType/WhichDevice/Action/SubDevice' Není to dokonalé, ale umožňuje použití užitečných filtrů pro zobrazení všech výstupů senzorů pro dané parametrické téma, což umožňuje snadné srovnání jako na obrázku 2 výše s MQTTSpy.
Tento projekt je první instancí, kde jedno zařízení obsahuje více než jeden původní zdroj stejného typu publikace. tj. Dva snímače teploty/vlhkosti z interních a externích dílčích zařízení.
Podporuje také přiměřeně rozšiřitelná logická seskupení funkcí v rámci daného zařízení IoT.
Při implementaci těchto témat do softwaru jsem používal pevně kódované řetězce témat s pevnými, vloženými číselnými identifikátory pro každé zařízení, na rozdíl od dynamického generování témat za běhu, aby se šetřilo na RAM a udržoval vysoký výkon.
Poznámka: Pokud si nejste jisti, jak používat MQTTSpy, podívejte se zde 'Nastavení makléře MQTT. Část 2: IoT, domácí automatizace '
Krok 9: Ladění a hledání chyb
Celkově vzato, pro své hobby projekty, kde je to možné, mám tendenci stavět reprezentativní prototyp hardwaru, proti kterému je software vyvíjen, mám jen zřídka problémy s integrací softwaru do finálního hardwaru platformy.
Při této příležitosti jsem však narazil na podivnou přerušovanou chybu, kdy některé fonémy zněly, ale jiné ne.
Po počátečním ladění PCB Speech Synth pomocí Arduino Uno ke zdroji fonémů a prokázání, že tato deska funguje, jsem vzal rozsah na linky I2C mezi IoT PCB a Speech Synth PCB. Viz obrázek 1 výše.
Na stopách můžete jasně vidět 'pilový zub'/exponenciální hranu signálu I2C.
To je obvykle známkou toho, že hodnoty vytažení I2C jsou příliš vysoké, což brání dostatečně rychlému obnovení síťového napětí v otevřeném vypouštěcím obvodu.
Jako 'práci kolem' jsem paralelizoval dva smt pull up rezistory R12 a R13 s 10Ks, abych dal 4K7 a dost jistě, že Speech Synth 'vtrhl do života'
Tento typ selhání je opakem toho, co se může stát při ladění těchto typů projektů. Obecně většina modulů založených na I2C zakoupených od Ebay má tendenci přicházet s již nainstalovanými pullupy 10K nebo 4K7. Pokud máte v úmyslu použít> 5 I2C modulů, každý s vytažením 4K7, pak je celková zátěž 940R, což bude příliš velké pro koncový stupeň masteru. Oprava by spočívala v odpájení všech kromě jedné sady výsuvných odporů na každém modulu. Nejlépe ten fyzicky nejdál od pána.
Užitečný tip, který je třeba mít na paměti při navrhování elektroniky pomocí zařízení I2C.
Krok 10: Testování návrhu
Testování bylo provedeno pomocí dvou metodik; Ručně i automatizovaně.
První, manuální a obecně používaný během počátečního vývoje kódu, byl pomocí MQTT Spy k procvičení všech dostupných předplacených témat a kontrole publikovaných odpovědí (znázorněno na obrázku 2 výše). Protože se jedná o ruční proces, může být časově náročný a náchylný k chybám, jak postupuje vývoj kódu, ačkoli ruční spuštění umožňuje 100% pokrytí.
MQTTSpy byl vybrán pro ruční testování, protože je to vynikající nástroj pro ruční formátování daného užitečného zatížení a jeho snadné publikování na jakékoli téma. Zobrazuje také jasný protokol s časovým razítkem, který je velmi užitečný pro ladění (obrázek 3 výše).
Druhý automatizovaný přístup byl přijat, protože zdrojový kód se stal složitějším (> 3700 řádků). Vyšší složitost znamená delší manuální testovací cykly a složitější testy. Aby se zlepšila spolehlivost, determinismus a kvalita testů, bylo použito automatizované testování prostřednictvím manažera testů pythonu (obr. 1). Podívejte se na krok č. 10 v tomto Instructable o tom, jak bylo zavedeno automatické testování. Úplná kopie automatizovaných testů použitých v tomto Instructable je k dispozici zde.
Video automatizované testovací sekvence v provozu je uvedeno výše. Sekvence provede následující kroky;
-
Automatizováno prostřednictvím MQTT
- Připojte se k páteři MQTT a oznamte „Připraveno na systém“
- Cvičení Zelená LED
- Cvičení červená LED
- Cvičení Modrá LED
- Zkontrolujte, zda funguje digitální hrnec
- Mluvte pomocí fonémů
- Mluvte pomocí hexadecimálních kódů pro fonémy
- Mluvte pomocí kódů pro opravu frází
- Trochu zábavy s Dr Who a Daleks.
-
Ručně přes
- Cvičení Modrá LED
- Cvičení červená LED
- Mluvte fixní fráze 'Steven Quinn', 'System Ready' a 'Hello World'
-
Nechte HTTP server, obsluhujte
- Podrobnosti o čipu Synth řeči
- Podrobnosti MQTT
Krok 11: Závěr
Ačkoli to vyžadovalo hodně úsilí se soubory a vrtáky atd. Zejména pro mřížku reproduktoru, myslím, že výsledek je esteticky příjemný a zabalený do pěkného, malého krytu. Mohl jsem to zmenšit, ale muselo by to jít na jednu desku plošných spojů a záměrně jsem ji rozdělil na dvě, abych mohl PCB později znovu použít pro jiné projekty. Je to tedy šťastný kompromis.
Software funguje dobře, zařízení IoT je již nějakou dobu ve stabilním provozu bez jakýchkoli problémů.
Sledoval jsem teplotu a vlhkost přes Grafana a porovnával jsem s umístěným zařízením. Tyto dvě okolní hodnoty dobře korelují, což znamená, že kalibrace je rozumná (nebo alespoň jsou podobné).
Zastavil jsem se před implementací příkazu word ('WFD/SpeechTH/1/Word/Command'), protože mi došel čas a potřeboval jsem jít dál. Mohu to znovu navštívit, pokud a když nastavím databázi MySQL. Právě teď používám InfluxDB.
Krok 12: Použité reference
K sestavení tohoto Instructable byly použity následující zdroje; Zdrojový kód pro zařízení IoT Retro Speech Synthesis (toto obsahuje kopii všeho)
https://github.com/SteveQuinn1/IoT_Retro_Speech_Synthesis_SP0256_AL2
PubSubClient.h
- Autor: Nick O'Leary
- Účel: Umožňuje zařízení publikovat nebo odebírat témata MQTT s daným Brokerem
- Od:
DHT.h
- Autor: Adafruit
- Účel: Knihovna Arduino pro DHT11DHT22 atd. Čidla teploty a vlhkosti
- Od:
Adafruit_AM2320.h/Adafruit_Sensor.h
- Autor: Adafruit
- Účel: Knihovna Arduino pro AM2320 atd. Čidlo teploty a vlhkosti
- Od:
MCP4561_DIGI_POT.h
- Autor: Steve Quinn
- Účel: Knihovna Arduino pro digitální potenciometr MCP4561
- Od:
Adafruit_MCP23017.h
- Autor: Steve Quinn
- Účel: Knihovna Arduino pro expandér portů MCP23017 I2C. Toto je vidlice GITHub od Adafruit-MCP23017-Arduino-Library od Adafruit.
- Od:
Pro zábavu
https://haynes.com/en-gb/
Výroba DPS
https://jlcpcb.com/
Instalace dalších knihoven Arduino
https://www.arduino.cc/en/Guide/Libraries
Jak zkontrolovat a kalibrovat snímač vlhkosti
https://www.allaboutcircuits.com /
Datový list SP0256-AL2
https://www.futurebots.com/spo256.pdf
Obchod s řečovými čipy
https://www.speechchips.com/shop/
Druhé místo v soutěži Arduino Contest 2019
Doporučuje:
Další generace domácí automatizace pomocí Eagle Cad (část 1 - PCB): 14 kroků
Next Gen Home Automation Using Eagle Cad (Part 1 - PCB): Úvod: Proč říkám jeho další generace: protože používá některé komponenty, které jsou mnohem lepší než tradiční zařízení pro domácí automatizaci. Zařízení lze ovládat pomocí: dotykového panelu Google Voice Commands na ovládacím panelu zařízení z aplikace
Hlasová automatizace domácí automatizace Raspberry Pi: 5 kroků
Hlasová automatizace domácí automatizace Raspberry Pi: Cílem této instrukce je poskytnout podrobný návod, jak nastavit malinový pi, který dokáže automatizovat světla / LED pomocí vašich hlasových příkazů
Automatizace domácí automatizace Bluetooth: 7 kroků (s obrázky)
Bluetooth Control Home Automation: Dobrý den, v tomto projektu jde o stavbu nejjednoduššího zařízení pro domácí automatizaci pomocí arduina a modulu bluetooth. Tenhle se velmi snadno staví a dá se postavit za pár hodin. Ve své verzi, kterou právě vysvětluji, mohu
Síťový ovladač IoT. Část 9: IoT, domácí automatizace: 10 kroků (s obrázky)
Síťový ovladač IoT. Část 9: IoT, domácí automatizace: Zřeknutí se odpovědnosti PŘEČTĚTE SI TOTO PRVNÍ Tento instruktáž podrobně popisuje projekt, který využívá síťové napájení (v tomto případě UK 240VAC RMS), přičemž byla věnována maximální pozornost používání bezpečných postupů a dobrých zásad designu, vždy existuje riziko potenciálně smrtelných zvolit
WiFi snímač teploty a vlhkosti IoT. Část: 8 IoT, domácí automatizace: 9 kroků
WiFi snímač teploty a vlhkosti IoT. Část: 8 IoT, domácí automatizace: Preamble Tento článek dokumentuje praktickou robustnost a další vývoj dřívějšího Instructable: 'Pimping' vašeho prvního IoT WiFi zařízení. Část 4: IoT, domácí automatizace včetně všech potřebných softwarových funkcí, které umožní úspěšné