Obsah:

Retro syntéza reči. Časť: 12 IoT, domáca automatizácia: 12 krokov (s obrázkami)
Retro syntéza reči. Časť: 12 IoT, domáca automatizácia: 12 krokov (s obrázkami)

Video: Retro syntéza reči. Časť: 12 IoT, domáca automatizácia: 12 krokov (s obrázkami)

Video: Retro syntéza reči. Časť: 12 IoT, domáca automatizácia: 12 krokov (s obrázkami)
Video: ЗАПРЕЩЁННЫЕ ТОВАРЫ с ALIEXPRESS 2023 ШТРАФ и ТЮРЬМА ЛЕГКО! 2024, Júl
Anonim
Image
Image
Retro syntéza reči. Časť: 12 IoT, domáca automatizácia
Retro syntéza reči. Časť: 12 IoT, domáca automatizácia

Tento článok je 12. v sérii inštrukcií o pokynoch pre domácu automatizáciu, ktoré dokumentujú, ako vytvoriť a integrovať zariadenie na retro syntézu reči IoT do existujúceho systému domácej automatizácie vrátane všetkých potrebných softvérových funkcií, ktoré umožnia úspešné nasadenie v domácom prostredí.

Obrázok 1 zobrazuje dokončené zariadenie na syntézu reči IoT a obrázok 2 ukazuje všetky súčasti použité v prototype, ktorých tvar bol zmenšený, aby sa dostali do konečného produktu.

Video zobrazuje zariadenie v prevádzke (počas testovania).

Úvod

Ako je uvedené vyššie, tento návod popisuje, ako vytvoriť zariadenie na retro syntézu reči IoT, a je založený na nástrojoch General Instruments SP0256-AL2.

Jeho primárnym účelom je pridať syntézu hlasu „starej školy“do siete IoT. Prečo sa môžete pýtať na „starú školu“? Pretože som bol asi v 80. rokoch, keď boli tieto veci prvýkrát vyrobené, a jednu som prepojil s mojím BBC Micro, takže pre mňa je nejaký stupeň nostalgie okolo SP0256-AL2.

Mám oveľa radšej výzvu pokúsiť sa zistiť, čo na zemi hovorí tento znejúci hlas Daleka, než počúvať dulcetové tóny hipsterskej ozveny Amazonu alebo Siri. Kde je výzva v tom, že sa vás pýtam?

Ach, a nehovoriac o tom, že mám tiež ležiacu „tašku“integrovaných obvodov „SP0256-AL2“.

Zariadenie je schopné čítať aj miestnu teplotu a vlhkosť, takže ďalej rozširuje prístrojové vybavenie mojej existujúcej infraštruktúry IoT zapojenej do siete IoT založenej na MQTT/OpenHAB podrobne popísanej v tejto sérii o domácej automatizácii (HA), pričom stavia na opakovane používanom kóde odtiaľto.

Srdcom je ESP8266-07, ktorý je zodpovedný za komunikáciu MQTT a ovládanie všetkých funkcií systému (prístup na kartu SD, ovládanie LED, snímanie teploty/vlhkosti, ovládanie hlasitosti, syntéza reči). Zariadenie je plne konfigurovateľné prostredníctvom textových súborov uložených na lokálna karta SD, aj keď parametre kalibrácie a zabezpečenia siete je možné naprogramovať aj prostredníctvom vzdialených publikácií MQTT.

Aké diely potrebujem?

Kusovník nájdete tu

Aký softvér potrebujem?

  • Arduino IDE 1.6.9,
  • Arduino IDE nakonfigurované na programovanie ESP8266-07 (rovnaké ako toto). Potom nakonfigurujte IDE podľa popisu v podrobnom popise uvedenom v náčrte softvéru tu,
  • Python v3.5.2, ak chcete použiť funkciu automatického testovania, podrobnosti nájdete tu

Aké nástroje potrebujem?

  • Mikroskop najmenej x3 (na spájkovanie SMT),
  • Krimpovací nástroj Molex (pre konektory JST),
  • Spájkovačka SMD (s perom na tekuté tavivo a spájkovačkou s tavnou náplňou),
  • Skrutkovače (rôzne),
  • Tepelná pištoľ,
  • Vŕtačky (rôzne),
  • Ručný nástroj pre zahĺbenie,
  • Súbory (rôzne),
  • Dremel (rôzne bity),
  • Robustný zverák (malý aj veľký, ako čierny a decker pracovný kolega),
  • Skalpel,
  • Posuvné meradlá (používané na meranie výroby a vhodné na dimenzovanie komponentov plošných spojov),
  • Kľúče a skrutkovače (rôzne),
  • Silná pinzeta (na spájkovanie SMT),
  • Juniorská píla,
  • Vŕtačka (s rôznymi vrtákmi),
  • Jemné kliešte (špicaté a s nosom),
  • Splachovacie kliešte,
  • DMM so zvukovou kontrolou kontinuity,
  • Dvojkanálový digitálny rozsah (vhodný na ladenie signálov)

Aké zručnosti potrebujem?

  • Veľa trpezlivosti,
  • Veľa manuálnej zručnosti a vynikajúca koordinácia ruka/oko,
  • Vynikajúce spájkovacie schopnosti,
  • Vynikajúce výrobné schopnosti,
  • Schopnosť vizualizovať v troch dimenziách,
  • Niektoré znalosti vývoja softvéru s 'C' (ak chcete porozumieť zdrojovému kódu),
  • Niektoré znalosti Pythonu (ako nainštalovať a spustiť skripty, ak chcete použiť automatické testovanie),
  • Znalosť Arduina a jeho IDE,
  • Dobrá znalosť elektroniky,
  • Porozumenie vašej domácej sieti.

Zahrnuté témy

  • Používateľská príručka
  • Prehľad obvodu
  • Výroba a montáž DPS
  • Výroba
  • Prehľad softvérového systému
  • Prehľad softvéru
  • Kalibrácia senzora
  • Dohovor o pomenovaní tém MQTT
  • Hľadanie chýb a chýb
  • Testovanie dizajnu
  • Záver
  • Použité referencie

Odkazy na sériu Časť 11: Konzola pre počítač IoT. Časť: 11 IoT, domáca automatizácia

Krok 1: Používateľská príručka

Používateľská príručka
Používateľská príručka
Používateľská príručka
Používateľská príručka
Používateľská príručka
Používateľská príručka

Na obrázku 1 vyššie je predná časť Retro Speech Synthesizer a na obrázku 2 zadná časť.

Predná časť skrine

  1. Reproduktorový gril
  2. 3,5 mm konektor pre slúchadlá: Hlavný reproduktor je deaktivovaný, keď je vložený 3,5 mm konektor.
  3. Červená dióda LED: Táto dióda LED sa rozsvieti počas vyslovovania slova, keď bola reč zahájená prostredníctvom požiadavky
  4. Modrá dióda LED: Táto dióda LED sa rozsvieti počas vyslovovania slova, keď bola reč zahájená prostredníctvom požiadavky MQTT IoT.

Kryt zadný

  1. Tlačidlo Reset: Používa sa na tvrdý reset zariadenia IoT ESP8266-07.
  2. Tlačidlo blesku: Pri použití v spojení s tlačidlom Reset umožňuje znova blikať ESP8266-07.
  3. Konektor WiFi antény (konektor SMA): Pre externú anténu WiFi s najmenším útlmom cesty RF, pretože uzáver je hliníkový.
  4. Port externého programovania: Aby sa odstránila potreba odskrutkovať kryt, aby sa získal prístup k ESP8266-07 na účely preprogramovania. Programovacie kolíky ESP8266-07 boli vyvedené na externý programovací port. Obrázok 3 je programovací adaptér.
  5. Zelená LED dióda: Toto je kontrolka systému IoT a slúži na indikáciu diagnostického stavu zariadenia, jeho spustenia a počas prevádzky.
  6. Externý snímač teploty/vlhkosti (AM2320)
  7. Slot pre kartu SD: Obsahuje všetky konfiguračné/bezpečnostné údaje spolu so stránkami webového servera.
  8. 2,1 mm napájací konektor 6 V DC

Krok 2: Prehľad obvodu

Prehľad obvodu
Prehľad obvodu
Prehľad obvodu
Prehľad obvodu

Zariadenie Retro Speech Synth obsahuje dve PCB;

  • RetroSpeechSynthIoTBoard: Toto je generický, opakovane použiteľný PCB ESP8266-07/12/12E/13
  • RetroSpeechSynthBoard: Jedná sa o generický PCB SP0256-AL2

Doska IoT Retro Speech Synth

Táto doska umožňuje buď priame spájkovanie zásuviek ESP8266-07/12/12E/13, alebo 0,1 rozstupov, ktoré pojmú dosku plošných spojov ESP8266.

Doska bola navrhnutá tak, aby rozšírila svoje I/O prostredníctvom pripojenia I2C a môže podporovať napájacie úrovne 3v3 alebo 5v prostredníctvom Q1, Q2, R8-13.

Pripojenie k doske sa dosahuje pomocou jedného z dvoch konektorov J2 a J4, 8-cestnej pásky DIL IDC alebo 5-cestnej JST/Molex.

U2 a U3 ustanovenie o regulácii napájania 3.3v a 5v na palube. Alternatívne, ak sa vyžaduje väčšia prúdová kapacita, môžu byť externé sériové skratové regulátory pripojené prostredníctvom konektorov J10 a J11.

Konektory J1 a J3 ponúkajú podporu externých kariet SD cez SPI. J1 bol navrhnutý pre 8-cestný Molex a J3 má priamu podporu kompatibility pinov pre bežnú dosku PCB karty SD s podporou 3v3 alebo 5v.

Retro rečový syntetizátor

Ovládanie tejto dosky je prostredníctvom pripojenia kompatibilného s I2C 5v cez J1, J5 alebo J6, 4-pásmového konektora JST/Molex, 8-cestného DIL IDC alebo 8-pásmového konektora IDC.

U2 MPC23017 poskytuje I2C k paralelnému rozhraniu k U3 SP0256-AL2 a LED D1 (zelená), D2 (červená) a D3 (modrá). Výstup Speech Synth je vedený do zvukového zosilňovača CR1 TBA820M buď analógovým potenciometrom RV1, alebo digitálnym potenciometrom U1 MCP4561.

Digital Pot U1 je tiež ovládaný pomocou 5 V kompatibilného I2C.

Poznámka: Zariadenie ESP8266-07 bolo vybrané, pretože má vstavaný konektor IPX RF, ktorý umožňuje pridať k hliníkovému krytu externú anténu WiFi.

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 zobrazujú dokončené a drôtové podzostavy DPS umiestnené na substráte hliníkového krytu.

Tieto dve dosky plošných spojov boli navrhnuté pomocou programu Kicad v4.0.7, vyrobeného spoločnosťou JLCPCB a zostaveného mnou a znázorneného na obrázkoch 3 až 13.

Krok 4: Výroba

Výroba
Výroba
Výroba
Výroba
Výroba
Výroba

Obrázok 1 zobrazuje Haynesov manuálny štýl rozloženia všetkých prefabrikátov pred konečnou montážou.

Obrázky 2… 5 zobrazujú rôzne zábery počas výroby krytu s minimálnym odstupom.

Krok 5: Prehľad softvérového systému

Prehľad softvérového systému
Prehľad softvérového systému
Prehľad softvérového systému
Prehľad softvérového systému

Toto zariadenie na syntézu reči IoT Retro obsahuje šesť kľúčových softvérových komponentov, ako je znázornené na obrázku 1 vyššie.

SD karta

Toto je externý systém archivácie údajov SD SPI Flash a slúži na uchovávanie nasledujúcich informácií (pozri obrázok 2 vyššie);

  • Ikony a domovská stránka „Konfigurácia syntézy reči“index.htm: Obsluhuje zariadenie IoT, keď sa nemôže pripojiť k vašej sieti IoT WiFi (zvyčajne kvôli nesprávnym bezpečnostným informáciám alebo prvému použitiu) a poskytuje používateľovi prostriedky vzdialenej konfigurácie senzorov bez nutnosti opätovného flashovania nového obsahu SD. Platí tiež pre index1.htm, mqtt.htm a sp0256.htm, jedná sa o lokálne obsluhované webové stránky prístupné prostredníctvom webového prehliadača, ktoré umožňujú obmedzenú kontrolu nad syntetizátorom reči. cez
  • Informácie o zabezpečení: Obsahuje informácie používané pri zapnutí zariadenia IoT na pripojenie k vašej sieti IoT WiFi a MQTT Broker. Informácie odoslané prostredníctvom „domovskej stránky konfigurácie syntézy reči“sú zapísané do tohto súboru („secvals.txt“).
  • Informácie o kalibrácii: Informácie obsiahnuté v súboroch („calvals1.txt“a „calvals2.txt“) sa používajú na kalibráciu palubných snímačov teploty/vlhkosti, ak je to potrebné. Kalibračné konštanty je možné zapísať do zariadenia IoT pomocou príkazov MQTT od brokera MQTT alebo opätovným bliknutím karty SD. „Calvals1.txt“sa týka senzora AM2320 a „calvals2.txt“pre DHT22.
  • Užívateľom konfigurovateľné systémové hodnoty: Informácie obsiahnuté v tomto súbore ('confvals.txt'), zvolené užívateľom, riadia určité reakcie systému, ako napríklad počiatočná úroveň digitálnej hlasitosti, automatické oznámenie 'pripravenosti systému' na predplatné makléra MQTT atď.

server mDNS

Táto funkcia je spustená, keď sa zariadeniu IoT nepodarilo pripojiť k vašej sieti WiFi ako stanici WiFi a namiesto toho sa stalo prístupovým bodom WiFi, čo je niečo podobné domácemu smerovaču WiFi. V prípade takéhoto smerovača sa k nemu zvyčajne pripojíte zadaním IP adresy napríklad 192.168.1.1 (zvyčajne vytlačenej na štítku nalepenom na poli) priamo do panela s adresou URL prehliadača, načo vám príde prihlasovacia stránka na zadanie. používateľské meno a heslo, ktoré vám umožnia konfigurovať zariadenie. Pre ESP8266-07 v režime AP (režim prístupového bodu) zariadenie predvolene nastaví adresu IP 192.168.4.1, pri spustenom serveri mDNS však do panela s adresou URL stačí zadať priateľské meno „SPEECHSVR.local“, aby pozrite sa na „domovskú stránku konfigurácie syntézy reči“.

Klient MQTT

Klient MQTT poskytuje všetky potrebné funkcie; pripojte sa k svojej sieti IoT broker MQTT, prihláste sa na odber tém podľa vlastného výberu a zverejnite užitočné údaje k danej téme. Stručne povedané, poskytuje základnú funkčnosť IoT.

Webový server

Tento webový server má dva účely;

  1. Ak sa zariadenie IoT nemôže pripojiť k sieti WiFi, ktorej SSID, P/W atď. Je definované v súbore bezpečnostných informácií umiestnenom na karte SD, zariadenie sa stane prístupovým bodom. Po pripojení k sieti Wi -Fi poskytovanej prístupovým bodom vám prítomnosť webového servera HTTP umožňuje priame pripojenie k zariadeniu a zmenu jeho konfigurácie pomocou webového prehliadača HTTP, ktorého účelom je obsluhovať „Konfiguráciu syntetizátora reči“Webová stránka domovskej stránky, ktorá sa nachádza aj na karte SD.
  2. Akonáhle sa zariadenie IoT Retro Speech Synthesis pripojí k sieti WiFi a brokerovi MQTT, ak je k nemu prístup, webový server HTTP automaticky zobrazí webovú stránku HTTP, ktorá umožní obmedzenú kontrolu nad zariadením IoT hovoriť výberom pevných fráz a schopnosťou cyklujte dve predné červené a modré LED diódy.

WiFi stanica

Táto funkcia dáva zariadeniu IoT možnosť pripojiť sa k domácej sieti WiFi pomocou parametrov v súbore bezpečnostných informácií, bez toho sa vaše zariadenie IoT nebude môcť prihlásiť/publikovať u makléra MQTT.

WiFi prístupový bod

Možnosť stať sa prístupovým bodom WiFi je prostriedok, pomocou ktorého vám zariadenie IoT umožňuje pripojiť sa k nemu a vykonávať zmeny konfigurácie prostredníctvom stanice WiFi a prehliadača (napríklad Safari na zariadení Apple iPad). Tento prístupový bod vysiela SSID = „SPEECHSYN“+ posledných 6 číslic adresy MAC zariadenia IoT. Heslo pre túto uzavretú sieť má pomyselný názov „HESLO“

Krok 6: Prehľad softvéru

Prehľad softvéru
Prehľad softvéru
Prehľad softvéru
Prehľad softvéru
Prehľad softvéru
Prehľad softvéru

Preambula

Na úspešné zostavenie tohto zdrojového kódu budete potrebovať lokálnu kópiu kódu a knižnice popísané nižšie v kroku 12, Použité referencie. Ak si nie ste istí, ako nainštalovať knižnicu Arduino, prejdite sem.

Prehľad

Softvér využíva stavový stroj, ako je znázornené na obrázku 1 vyššie (úplná kópia zdroja v mojom úložisku GitHub tu). Nasleduje 5 hlavných stavov;

  • INIT

    Tento inicializačný stav je prvým stavom, ktorý bol zadaný po zapnutí

  • NOCONFIG

    Tento stav je zadaný, ak je po zapnutí detekovaný neplatný alebo chýbajúci súbor secvals.txt. Počas tohto stavu je viditeľná konfiguračná stránka

  • ČAKÁ NA SZ

    Tento stav je prechodný, zadaný, zatiaľ čo neexistuje žiadne pripojenie k sieti WiFi

  • ČAKANÝ MQTT

    Tento stav je prechodný, zadáva sa po vytvorení pripojenia k sieti WiFi a zatiaľ čo v tejto sieti neexistuje žiadne spojenie s maklérom MQTT

  • AKTÍVNE

    Toto je normálny prevádzkový stav, ktorý sa zadáva po nadviazaní pripojenia k sieti WiFi a pripojenia MQTT Broker. V tomto stave je teplota, tepelný index a vlhkosť na zariadení IoT Retro Speech Synthesis Device pravidelne zverejňované maklérovi MQTT. V tomto stave je viditeľná domovská stránka Speech Synth

Udalosti riadiace prechody medzi stavmi sú popísané na obrázku 1 vyššie. Prechody medzi stavmi sa tiež riadia nasledujúcimi parametrami SecVals;

  • 1. adresa IP makléra MQTT. V bodkovanom desatinnom tvare AAA. BBB. CCC. DDD
  • 2. port makléra MQTT. V celočíselnej forme.
  • 3. Pripojenie makléra MQTT sa pokúša vytvoriť pred prepnutím z režimu STA do režimu AP. V celočíselnej forme.
  • 4. WiFi sieť SSID. Vo voľnej forme textu.
  • 5. heslo siete WiFi. Vo voľnej forme textu.

Ako je uvedené vyššie, ak sa zariadenie IoT nemôže pripojiť ako stanica WiFi k sieti WiFi, ktorého SSID a P/W sú definované v sekvals.txt uloženom na karte SD, zariadenie IoT sa stane prístupovým bodom. Po pripojení k tomuto prístupovému bodu bude slúžiť na „domovskej stránke konfigurácie syntetizátora reči“, ako je uvedené vyššie na obrázku 2 (zadaním buď „SPEECHSVR.local“alebo 192.168.4.1 do panela s adresou URL vášho prehliadača). Táto domovská stránka umožňuje rekonfiguráciu zariadenia IoT Retro Speech Synthesis prostredníctvom prehliadača

Vzdialený prístup v AKTÍVNOM stave

Po pripojení k MQTT Broker je tiež možné zariadenie znova kalibrovať a prekonfigurovať prostredníctvom tematických publikácií MQTT. Súbor calvals.txt má prístup R/W a secvals.txt má prístup iba na zápis.

Ako je uvedené vyššie, v aktívnom režime je možné k rečovému syntezátoru pristupovať prostredníctvom rozhrania HTTP zadaním „SPEECHSVR.local“alebo 192.168.4.1 do panela s adresou URL vášho prehliadača. Toto rozhranie založené na HTTP umožňuje základnú kontrolu nad Speech Synth. Obrázky 3, 4 a 5 zobrazujú dostupné webové stránky.

Ladenie používateľa

Počas zavádzacej sekvencie zelená kontrolka systému zariadenia IoT v zadnej časti krytu poskytuje nasledujúcu spätnú väzbu ladenia;

  • 1 Krátky záblesk: Na karte SD sa nenachádza žiadny konfiguračný súbor (secvals.txt)
  • 2 Krátke bliknutia: Zariadenie IoT sa pokúša pripojiť k sieti WiFi
  • Nepretržité osvetlenie: Zariadenie IoT sa pokúša pripojiť k MQTT Broker
  • Vypnuté: Zariadenie je aktívne.

Funkcia zariadenia retro syntézy reči IoT v AKTÍVNOM stave

Keď je ESP8266 v AKTÍVNOM stave, vstúpi do nepretržitej slučky, ktorá volá nasledujúce funkcie; timer_update (), checkTemperatureAndHumidity () a handleSpeech (). Čistý výsledok, ktorý bol navrhnutý tak, aby poskytoval používateľovi rozhranie HTTP alebo MQTT, bezproblémovo obsluhoval jeho integrovaný rečový procesor s fonémami na požiadanie a publikoval lokálne parametrické hodnoty prostredia cez MQTT.

V zdrojovom kóde je zahrnutý komplexný zoznam všetkých predplatných a publikácií k témam vrátane hodnôt užitočného zaťaženia.

Krok 7: Kalibrácia senzora

Kalibrácia senzora
Kalibrácia senzora

Keď sa zariadenie IoT zapne, ako súčasť bootovacej sekvencie sa z karty SD načítajú dva súbory s názvom „cavals1.txt“a „cavals2.txt“.

Obsah týchto súborov je kalibračnými konštantami, ako je uvedené vyššie na obrázku 1.

  1. 'cavals1.txt': Používa ho externý AM2320
  2. 'cavals2.txt': Používa ho interný server DHT22

Tieto kalibračné konštanty sa používajú na úpravu hodnôt získaných z dvoch senzorov tak, aby boli v súlade s referenčným zariadením. Existuje ešte jedna hodnota, ktorá definuje stratégiu hlásenia pre každé zariadenie a ktorá je popísaná nižšie spolu s postupom, ktorý sa používa pri kalibrácii senzorov.

Stratégia podávania správ

Tento parameter určuje, ako diaľkový senzor hlási akékoľvek miestne parametrické zmeny. Ak je zvolená hodnota 0, diaľkový senzor zverejní každú zmenu teploty alebo vlhkosti, ktorú vidí, pri každom čítaní príslušného snímača (približne každých 10 sekúnd). Akákoľvek iná hodnota oneskorí zverejnenie zmeny o 1… 60 minút. Úprava tohto parametra umožňuje optimalizáciu sieťovej prevádzky MQTT. Je potrebné poznamenať, že údaje o teplote a vlhkosti z DHT22 sa čítajú striedavo kvôli obmedzeniam snímača.

Kalibrácia teploty

Pri kalibrácii teplotného senzora som postupoval rovnako ako je popísané v kroku 4, opäť pomocou jednoduchého vzťahu y = mx+c. Ako referenčné zariadenie som použil snímač teploty a vlhkosti Io č. 1. Hodnoty zo senzora sú v stupňoch Celzia.

Kalibrácia vlhkosti

Pretože nemám prostriedky na presné zaznamenávanie alebo dokonca kontrolu miestnej okolitej vlhkosti, na kalibráciu senzora som použil podobný prístup, ako je vyššie uvedený krok 4, opäť s použitím senzora č. 1 ako referenčného. Napriek tomu, čo bolo uvedené vyššie, nedávno som našiel na webe vynikajúci článok popisujúci kalibráciu senzorov vlhkosti. Tento prístup môžem niekedy v budúcnosti vyskúšať. Hodnoty zo senzora sú v %veku relatívnej vlhkosti.

Krok 8: Konvencia pomenovania tém MQTT

Dohovor o pomenovaní tém MQTT
Dohovor o pomenovaní tém MQTT
Dohovor o pomenovaní tém MQTT
Dohovor o pomenovaní tém MQTT

Ako bolo uvedené v predchádzajúcom Instructable (tu), zaoberal som sa konvenciou pomenovania témy načrtnutou na obrázku 1 vyššie.

Menovite „AccessMethod/DeviceType/WhichDevice/Action/SubDevice“Nie je to dokonalé, ale umožňuje to použiť užitočné filtre na zobrazenie všetkých výstupov senzorov pre danú parametrickú tému, čo umožňuje ľahké porovnanie ako na obrázku 2 vyššie s MQTTSpy.

Tento projekt je prvou inštanciou, kde jedno zariadenie obsahuje viac ako jeden pôvodný zdroj rovnakého typu publikácie. tj. Dva snímače teploty/vlhkosti z vnútorných a vonkajších čiastkových zariadení.

Podporuje tiež primerane rozšíriteľné logické zoskupenia funkcií v rámci daného zariadenia IoT.

Pri implementácii týchto tém do softvéru som používal napevno kódované reťazce tém s pevnými, vstavanými číselnými identifikátormi pre každé zariadenie, na rozdiel od dynamického generovania tém za behu, aby som šetril pamäť RAM a udržal vysoký výkon.

Poznámka: Ak si nie ste istí, ako používať MQTTSpy, pozrite si časť „Nastavenie makléra MQTT“. Časť 2: IoT, domáca automatizácia

Krok 9: Ladenie a hľadanie chýb

Hľadanie chýb a chýb
Hľadanie chýb a chýb

Celkovo pre moje hobby projekty, kde je to možné, mám tendenciu stavať reprezentatívny hardvérový prototyp, proti ktorému je softvér vyvinutý, len zriedka mám problémy s integráciou softvéru do konečného hardvéru platformy.

Pri tejto príležitosti som však narazil na zvláštnu prerušovanú chybu, pri ktorej niektoré fonémy zaznejú, ale iné nie.

Po nejakom počiatočnom ladení PCB Speech Synth pomocou Arduino Uno na zdroj fonémov a preukázaní, že táto doska funguje, som použil rozsah liniek I2C medzi IoT PCB a Speech Synth PCB. Pozri obrázok 1 vyššie.

Na stopách môžete jasne vidieť 'pílový zub'/exponenciálnu hranu k signálu I2C.

Toto je zvyčajne indikácia, že hodnoty vyťahovania I2C sú príliš vysoké, čo zabraňuje dostatočne rýchlemu obnoveniu sieťového napätia v otvorenom odtokovom obvode.

Ako 'prácu okolo' som paralelne spojil dva smt pull up rezistory R12 a R13 s 10Ks, aby som získal 4K7 a dosť určite, že Speech Synth 'vtrhol do života'

Tento typ zlyhania je opakom toho, čo sa môže stať pri ladení týchto typov projektov. Všeobecne platí, že väčšina modulov založených na I2C zakúpených na Ebay má spravidla k dispozícii už vybavené príťahy 10K alebo 4K7. Ak máte v úmysle použiť> 5 modulov I2C, každý s príťahmi 4K7, celkové zaťaženie je 940 R, čo bude pre koncový stupeň predlohy príliš veľké. Riešením by bolo odpájkovanie všetkých, okrem jednej sady výsuvných rezistorov na každom module. Najlepšie ten, ktorý je fyzicky najďalej od pána.

Užitočný tip, ktorý by ste mali mať na pamäti pri navrhovaní elektroniky so zariadeniami I2C.

Krok 10: Testovanie dizajnu

Image
Image
Testovanie dizajnu
Testovanie dizajnu
Testovanie dizajnu
Testovanie dizajnu

Testovanie sa uskutočnilo s použitím dvoch metodík; Ručné a automatické.

Prvá, manuálna a všeobecne používaná počas počiatočného vývoja kódu, používala MQTT Spy na precvičenie všetkých dostupných prihlásených tém a kontrolu publikovaných odpovedí (znázornené na obrázku 2 vyššie). Pretože ide o manuálny proces, môže byť časovo náročný a náchylný k chybám v priebehu vývoja kódu, aj keď ručné spustenie umožňuje 100% pokrytie.

MQTTSpy bol vybraný na ručné testovanie, pretože je to vynikajúci nástroj na ručné formátovanie daného užitočného zaťaženia a ľahké publikovanie na akúkoľvek tému. Zobrazuje tiež jasný protokol s časovou pečiatkou, ktorý je veľmi užitočný pri ladení (obrázok 3 vyššie).

Druhý automatizovaný prístup bol prijatý, pretože zdrojový kód bol zložitejší (> 3 700 riadkov). Zvýšená komplexnosť znamená dlhšie manuálne testovacie cykly a komplexnejšie testy. Aby sa zvýšila spoľahlivosť, determinizmus a kvalita testov, bolo použité automatizované testovanie prostredníctvom manažéra testu pythonu (obr. 1). Pozrite si krok č. 10 v tomto návode, ako bolo zavedené automatické testovanie. Úplná kópia automatizovaných testov použitých v tomto návode je k dispozícii tu.

Video z prevádzky automatizovanej testovacej sekvencie je uvedené vyššie. Sekvencia vykonáva nasledujúce kroky;

  • Automatizované prostredníctvom MQTT

    • Pripojte sa k chrbtici MQTT a oznámte „System Ready“
    • Cvičenie zelená LED
    • Cvičenie červená LED
    • Cvičenie modrá LED
    • Skontrolujte, či funguje Digital Pot
    • Hovorte pomocou fonémov
    • Hovorte pomocou hexadecimálnych kódov pre fonémy
    • Hovorte pomocou kódov na opravu fráz
    • Trochu zábavy s Dr Who a Daleks.
  • Ručne cez
    • Cvičenie modrá LED
    • Cvičenie červená LED
    • Hovorte fixné frázy „Steven Quinn“, „System Ready“a „Hello World“
    • Nechajte server HTTP, slúžte

      • Podrobnosti o čipe Synth Chip
      • Podrobnosti MQTT

Krok 11: Záver

Záver
Záver

Napriek tomu, že to vyžadovalo veľa úsilia pri pilníkoch a vŕtačkách atď., Najmä pre mriežku reproduktora, myslím si, že výsledok je esteticky príjemný a je zabalený v peknom, malom kryte. Mohol som to zmenšiť, ale potrebovalo by to prejsť na jednu DPS a úmyselne som ju rozdelil na dve, aby som mohol DPS neskôr použiť na ďalšie projekty. Je to teda šťastný kompromis.

Softvér funguje dobre, zariadenie IoT je už nejaký čas v stabilnej prevádzke bez akýchkoľvek problémov.

Sledoval som teplotu a vlhkosť cez Grafana a porovnával som s umiestneným zariadením. Dve okolité hodnoty dobre korelujú, čo znamená, že kalibrácia je rozumná (alebo prinajmenšom sú podobné).

Prestal som implementovať príkaz Word ('WFD/SpeechTH/1/Word/Command'), pretože mi došiel čas a potreboval som ísť ďalej. Môžem to znova navštíviť, ak a keď nastavím databázu MySQL. Práve teraz používam InfluxDB.

Krok 12: Použité referencie

Na zostavenie tohto návodu boli použité nasledujúce zdroje; Zdrojový kód zariadenia na retro syntézu reči IoT (obsahuje kópiu všetkého)

https://github.com/SteveQuinn1/IoT_Retro_Speech_Synthesis_SP0256_AL2

PubSubClient.h

  • Od: Nick O'Leary
  • Účel: Umožňuje zariadeniu publikovať alebo prihlásiť sa na odber tém MQTT s daným maklérom
  • Od:

DHT.h

  • Autor: Adafruit
  • Účel: Knižnica Arduino pre DHT11DHT22 atď. Snímače teploty a vlhkosti
  • Od:

Adafruit_AM2320.h/Adafruit_Sensor.h

  • Autor: Adafruit
  • Účel: Knižnica Arduino pre AM2320 atď. Snímač teploty a vlhkosti
  • Od:

MCP4561_DIGI_POT.h

  • Od: Steve Quinn
  • Účel: Knižnica Arduino pre digitálny potenciometer MCP4561
  • Od:

Adafruit_MCP23017.h

  • Od: Steve Quinn
  • Účel: Knižnica Arduino pre expandér portov MCP23017 I2C. Toto je vidlica GITHub z knižnice Adafruit-MCP23017-Arduino-Library od spoločnosti Adafruit.
  • Z:

Pre zábavu

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

Výroba DPS

https://jlcpcb.com/

Inštalácia ďalších knižníc Arduino

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

Ako skontrolovať a kalibrovať snímač vlhkosti

https://www.allaboutcircuits.com /

Datový list SP0256-AL2

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

Obchod s rečovými čipmi

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

Súťaž Arduino 2019
Súťaž Arduino 2019
Súťaž Arduino 2019
Súťaž Arduino 2019

Druhé miesto v súťaži Arduino 2019

Odporúča: