Obsah:

Retro syntéza řeči. Část: 12 IoT, domácí automatizace: 12 kroků (s obrázky)
Retro syntéza řeči. Část: 12 IoT, domácí automatizace: 12 kroků (s obrázky)

Video: Retro syntéza řeči. Část: 12 IoT, domácí automatizace: 12 kroků (s obrázky)

Video: Retro syntéza řeči. Část: 12 IoT, domácí automatizace: 12 kroků (s obrázky)
Video: 9 nejlepších softwarů AI Avatar – Který z nich je nejlepší? 2024, Listopad
Anonim
Image
Image
Retro syntéza řeči. Část: 12 IoT, domácí automatizace
Retro syntéza řeči. Část: 12 IoT, domácí automatizace

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

Uživatelský manuál
Uživatelský manuál
Uživatelský manuál
Uživatelský manuál
Uživatelský manuál
Uživatelský manuál

Obrázek 1 výše ukazuje přední část Retro Speech Synthesizer a obrázek 2 zadní část.

Přední část skříně

  1. Reproduktorový gril
  2. 3,5 mm konektor pro sluchátka: Hlavní reproduktor je deaktivován, když je vložen 3,5 mm konektor.
  3. Červená LED: Tato LED se rozsvítí, když je vyslovováno slovo, když byla řeč zahájena pomocí požadavku
  4. 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

  1. Tlačítko Reset: Používá se k tvrdému resetování zařízení IoT ESP8266-07.
  2. Tlačítko blesku: Při použití ve spojení s tlačítkem Reset umožňuje znovu blikat ESP8266-07.
  3. 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ý.
  4. 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.
  5. Zelená LED: Toto je LED systému IoT a slouží k indikaci diagnostického stavu zařízení, spuštění a provozu.
  6. Externí snímač teploty/vlhkosti (AM2320)
  7. Slot pro kartu SD: Obsahuje všechna konfigurační/bezpečnostní data spolu se stránkami webového serveru.
  8. 2,1 mm napájecí konektor 6 V DC

Krok 2: Přehled obvodu

Přehled obvodu
Přehled obvodu
Přehled obvodu
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

Výroba a montáž DPS
Výroba a montáž DPS
Výroba a montáž DPS
Výroba a montáž DPS
Výroba a montáž DPS
Výroba a montáž DPS
Výroba a montáž DPS
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

Výroba
Výroba
Výroba
Výroba
Výroba
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

Přehled softwarového systému
Přehled softwarového systému
Přehled softwarového systému
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;

  1. 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.
  2. 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

Přehled softwaru
Přehled softwaru
Přehled softwaru
Přehled softwaru
Přehled softwaru
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

Kalibrace senzoru
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.

  1. 'cavals1.txt': Používá externí AM2320
  2. '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

Úmluva o pojmenování témat MQTT
Úmluva o pojmenování témat MQTT
Úmluva o pojmenování témat MQTT
Úmluva o 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

Hledání chyb a poruch
Hledání chyb a poruch

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

Image
Image
Testování designu
Testování designu
Testování designu
Testování designu

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

Závěr
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/

Soutěž Arduino 2019
Soutěž Arduino 2019
Soutěž Arduino 2019
Soutěž Arduino 2019

Druhé místo v soutěži Arduino Contest 2019

Doporučuje: