INHOUDSOPGAWE:
- Stap 1: Gebruikershandleiding
- Stap 2: Kringoorsig
- Stap 3: Vervaardiging en samestelling van PCB
- Stap 4: Vervaardiging
- Stap 5: Oorsig van sagteware stelsel
- Stap 6: Sagteware -oorsig
- Stap 7: Sensorkalibrasie
- Stap 8: MQTT -onderwerpbenoemingskonvensie
- Stap 9: Ontfouting en foutopsporing
- Stap 10: Toets die ontwerp
- Stap 11: Gevolgtrekking
- Stap 12: Gebruikte verwysings
Video: Retro spraaksintese. Deel: 12 IoT, tuisautomatisering: 12 stappe (met foto's)
2024 Outeur: John Day | [email protected]. Laas verander: 2024-01-30 07:26
Hierdie artikel is die 12de in 'n reeks oor tuisautomatiseringsinstruksies wat beskryf hoe u 'n IoT Retro -spraaksintese -toestel kan skep en integreer in 'n bestaande tuisautomatiseringstelsel, insluitend al die nodige sagtewarefunksionaliteit om die suksesvolle implementering binne 'n huishoudelike omgewing moontlik te maak.
Foto 1 toon die voltooide IoT -spraaksintoestel en prent 2 toon al die komponentdele wat in die prototipe gebruik is, wat die vormfaktor verminder het om in die finale produk in te gaan.
Die video wys die toestel in aksie (tydens toetsing).
Inleiding
Soos hierbo genoem, bevat hierdie instruksie hoe u 'n IoT-retro-spraaksintese-toestel kan maak, en is gebaseer op die General Instruments SP0256-AL2.
Die hoofdoel daarvan is om 'old school' -stemsintese by 'n IoT -netwerk te voeg. Waarom 'ou skool', vra u miskien? Omdat ek in die 80's was toe hierdie dinge vir die eerste keer vervaardig is en ek 'n koppelvlak aan my BBC Micro gehad het, so vir my is daar 'n mate van nostalgie rondom die SP0256-AL2.
Ek verkies die uitdaging om te probeer uitvind wat op aarde deur hierdie Dalek -klinkende stem gesê word, as om te luister na die dubbeltone van 'n hipster -Amazon -eggo of Siri. Waar is die uitdaging waarin ek jou vra?
Ag, en om nie te praat nie, ek het ook 'n 'saklading' van 'SP0256-AL2' IC's wat rondlê.
Die toestel kan ook die plaaslike temperatuur en humiditeit lees, en brei dus die omringende instrumentasie van my bestaande IoT -infrastruktuur uit wat aansluit by die MQTT/OpenHAB -gebaseerde IoT -netwerk, uiteengesit in hierdie reeks oor huishoudelike outomatisering (HA), voortgebou op hergebruikte kode wat hiervandaan geneem word.
Die kern daarvan is 'n ESP8266-07 wat verantwoordelik is vir MQTT-kommunikasie en die beheer van alle stelselfunksies (toegang tot SD-kaart, LED-beheer, temperatuur-/humiditeitswaarneming, volumebeheer, spraaksintese). Die toestel is volledig konfigureerbaar via tekslêers wat op 'n plaaslike SD -kaart, alhoewel kalibrasie- en netwerkbeveiligingsparameters ook via afgeleë MQTT -publikasies geprogrammeer kan word.
Watter onderdele het ek nodig?
Sien die materiaalbrief hier
Watter sagteware het ek nodig?
- Arduino IDE 1.6.9,
- Arduino IDE is gekonfigureer om die ESP8266-07 (dieselfde as hierdie) te programmeer. Stel dan die IDE op soos aangedui in die gedetailleerde beskrywing in die sagtewareskets hier,
- Python v3.5.2, besonderhede hier as u die outomatiese toetsvermoë wil gebruik
Watter gereedskap het ek nodig?
- Mikroskoop ten minste x3 (vir SMT soldeer),
- Molex -koppelstukgereedskap (vir JST -verbindings),
- SMD soldeerbout (met vloeibare vloeipen en soldeermiddel)
- Skroewedraaiers (verskillende),
- Hittegeweer,
- Bore (verskillende),
- Versink handgereedskap,
- Lêers (verskillende),
- Dremel (verskillende stukkies),
- Stewige skroefdraad (klein en groot, soos 'n swart en dekmaat),
- Skalpel,
- Vernier kalipers (gebruik om die vervaardiging te meet en nuttig vir die grootte van PCB -komponente),
- Moersleutels en moerbestuurders (diverse),
- Sterk pincet (vir SMT soldeer),
- Junior ystersaag,
- Boor (met verskillende boorpunte),
- Fyn tang (punt en snuit neus),
- Spoel snyers,
- DMM met hoorbare kontinuïteitstoets,
- Dubbele kanaal digitale omvang (handig vir ontfoutingseine)
Watter vaardighede het ek nodig?
- Baie geduld,
- Baie handvaardigheid en uitstekende hand/oog -koördinasie,
- Uitstekende soldeervaardighede,
- Uitstekende vervaardigingsvaardighede,
- Die vermoë om in 3 dimensies te visualiseer,
- 'N Paar kennis van sagteware -ontwikkeling met' C '(as u die bronkode wil verstaan),
- 'N Paar kennis van Python (hoe om scripts te installeer en uit te voer, as u die outomatiese toetsing wil gebruik),
- Kennis van Arduino en sy IDE,
- Goeie kennis van elektronika,
- Beter begrip van u tuisnetwerk.
Onderwerpe gedek
- Gebruikers gids
- Kringoorsig
- PCB vervaardiging en samestelling
- Vervaardiging
- Sagteware stelsel oorsig
- Sagteware Oorsig
- Sensor kalibrasie
- MQTT -onderwerpbenoemingskonvensie
- Ontfouting en foutopsporing
- Die ontwerp toets
- Afsluiting
- Verwysings gebruik
Series LinksTo Part 11: IoT Desktop Console. Deel: 11 IoT, tuisautomatisering
Stap 1: Gebruikershandleiding
Foto 1 hierbo toon die voorkant van die Retro Speech Synthesizer en prent 2 die agterkant.
Omhulsel Voorkant
- Luidsprekerrooster
- 3.5 mm -koptelefoonaansluiting: die hoofluidspreker word afgeskakel as 'n 3,5 mm -aansluiting ingevoeg word.
- Rooi LED: Hierdie LED brand terwyl 'n woord gespreek word toe spraak via 'n HTTP -versoek begin is.
- Blou LED: Hierdie LED brand terwyl 'n woord gespreek word toe spraak via 'n MQTT IoT -versoek begin is.
Omhulsel agter
- Herstelknoppie: word gebruik om die ESP8266-07 IoT-toestel hard terug te stel.
- Flitsknoppie: As dit saam met die resetknop gebruik word, kan die ESP8266-07 herflits.
- WiFi -antenne -prop (SMA -prop): vir eksterne WiFi -antenne wat die minste RF -padvermindering bied, aangesien die sluiting aluminium is.
- Eksterne programmeringspoort: om die behoefte om die omhulsel los te skroef om toegang tot die ESP8266-07 te verkry vir herprogrammeringsdoeleindes, verwyder. Die programmeringspenne van die ESP8266-07 is na die eksterne programmeringspoort gebring. Foto 3 is die programmeringsadapter.
- Groen LED: Dit is die IoT -stelsel wat gelei word en word gebruik om die diagnostiese status van die toestel aan te dui en tydens opstart te begin.
- Eksterne temperatuur-/humiditeitsensor (AM2320)
- SD -kaartgleuf: dit bevat alle konfigurasie-/beveiligingsdata saam met webbedienerbladsye.
- 2.1 mm toevoer aansluiting 6vdc
Stap 2: Kringoorsig
Die Retro Speech Synth -toestel bestaan uit twee PCB's;
- RetroSpeechSynthIoTBoard: Dit is 'n generiese, herbruikbare ESP8266-07/12/12E/13 PCB
- RetroSpeechSynthBoard: Dit is 'n generiese SP0256-AL2 PCB
Retro Speech Synth IoT -bord
Hierdie bord maak voorsiening vir direkte soldeer van 'n ESP8266-07/12/12E/13 of 0.1 steekpunte wat 'n ESP8266-draer-PCB kan huisves.
Die bord is ontwerp om die I/O oor 'n I2C-verbinding uit te brei en kan 3v3 of 5v toevoervlakke ondersteun deur middel van Q1, Q2, R8-13.
Die verbinding met die bord word verkry deur een van twee kopstukke J2 en J4, 'n 8-weg DIL IDC-lint of 5-weg JST/Molex.
U2 en U3 voorsiening 3.3v en 5v op boord toevoer regulasie. As 'n groter stroomkapasiteit benodig word, kan 'n seriële shuntreguleerder buite boord via verbindings J10 en J11 onderskeidelik aangebring word.
Verbindings J1 en J3 bied eksterne SD -kaartondersteuning via SPI. J1 is ontwerp vir 'n 8-rigting Molex en J3 het 'n direkte pen vir ondersteuning vir pen-verenigbaarheid vir 'n standaard-kaartkaart met 3v3 of 5v ondersteuning.
Retro Speech Synth Board
Die beheer van hierdie bord is via 'n I2C 5v-voldoenende verbinding via J1, J5 of J6, 'n 4-weg JST/Molex, 8-weg DIL IDC of 8-weg IDC-lintaansluiting.
U2 MPC23017 bied die I2C tot parallelle koppelvlak aan U3 die SP0256-AL2 en LEDS D1 (groen), D2 (rooi) en D3 (blou). Die uitset van die Speech Synth word via die analoog pot RV1 of digitale pot U1 MCP4561 na die klankversterker CR1 TBA820M gevoer.
Digital Pot U1 word ook beheer deur middel van I2C wat 5v voldoen.
Opmerking: die ESP8266-07-toestel is gekies omdat dit 'n integrale IPX RF-aansluiting het, sodat 'n eksterne WiFi-antenne by die aluminiumomhulsel gevoeg kan word.
Stap 3: Vervaardiging en samestelling van PCB
Foto's 1 en 2 toon die voltooide en bedrade PCB-sub-samestellings op die aluminium omhulsel substraat.
Die twee PCB's is ontwerp met behulp van Kicad v4.0.7, vervaardig deur JLCPCB en deur my saamgestel en hierbo foto's 3 tot 13 getoon.
Stap 4: Vervaardiging
Foto 1 toon 'n Haynes -handmatige uitleg van al die voorafvervaardigde dele voor die finale montering.
Foto's 2 … 5 toon verskillende skote tydens die vervaardiging van die omhulsel met minimale speling.
Stap 5: Oorsig van sagteware stelsel
Hierdie IoT Retro -spraaksintese -apparaat bevat ses belangrike sagtewarekomponente soos in prent 1 hierbo getoon.
SD kaart
Dit is die eksterne SD SPI Flash Filing System en word gebruik om die volgende inligting te bewaar (sien prent 2 hierbo);
- Ikone en 'Speech Synth Configuration Home Page' index.htm: bedien deur die IoT -toestel as dit nie met u IoT WiFi -netwerk kan koppel nie (gewoonlik as gevolg van verkeerde veiligheidsinligting of die eerste keer dat dit gebruik word) en bied die gebruiker 'n manier om die sensors op afstand te konfigureer sonder om nuwe SD-inhoud weer te laat flits. Dit bevat ook index1.htm, mqtt.htm en sp0256.htm, dit is die webbladsye wat plaaslik bedien word, toeganklik via 'n webblaaier, wat beperkte beheer van die spraaksintrale moontlik maak oor
- Beveiligingsinligting: dit bevat die inligting wat deur die IoT -toestel gebruik word om aan te sluit op u IoT WiFi -netwerk en MQTT Broker. Inligting wat via die 'Speech Synth Configuration Home Page' ingedien word, word na hierdie lêer geskryf ('secvals.txt').
- Kalibrasie-inligting: Die inligting in die lêers ('calvals1.txt' en 'calvals2.txt') word gebruik om die temperatuur-/humiditeitsensors aan boord te kalibreer indien nodig. Kalibrasie-konstantes kan via die MQTT-opdragte van 'n MQTT-makelaar na die IoT-toestel geskryf word of deur die SD-kaart weer te flits. 'calvals1.txt' het betrekking op die AM2320 -sensor en 'calvals2.txt' op die DHT22.
- Gebruikers instelbare stelselwaardes: Die inligting in hierdie lêer ('confvals.txt'), gekies deur die gebruiker, beheer sekere stelselreaksies, soos aanvanklike digitale volume, outomatiese 'stelsel gereed' aankondiging oor MQTT -makelaarsintekening, ens.
mDNS -bediener
Hierdie funksie word gebruik wanneer die IoT -toestel nie as 'n WiFi -stasie met u WiFi -netwerk kon koppel nie en in plaas daarvan 'n WiFi -toegangspunt geword het, soortgelyk aan 'n huishoudelike WiFi -router. In die geval van so 'n router sou u tipies daarby konnekteer deur die IP -adres van iets soos 192.168.1.1 (gewoonlik gedruk op 'n etiket op die boks) direk in die URL -balk van u blaaier in te voer, waarna u 'n aanmeldingsbladsy sou ontvang om in te voer die gebruikersnaam en wagwoord sodat u die toestel kan instel. Vir die ESP8266-07 in AP-modus (toegangspuntmodus) is die toestel standaard op die IP-adres 192.168.4.1, maar as die mDNS-bediener werk, hoef u slegs die menslike vriendelike naam 'SPEECHSVR.local' in die URL-balk van die blaaier in te voer om sien die 'Speech Synth Configuration Home Page'.
MQTT -kliënt
Die MQTT -kliënt bied al die nodige funksies aan; maak verbinding met u IoT -netwerk MQTT -makelaar, teken in op die onderwerpe van u keuse en publiseer vragvragte vir 'n gegewe onderwerp. Dit bied kortliks IoT -kernfunksies.
HTTP -webbediener
Hierdie webbediener het twee doeleindes;
- As die IoT -toestel nie kan koppel aan die WiFi -netwerk waarvan die SSID, P/W ens gedefinieer is in die lêer vir sekuriteitsinligting op die SD -kaart nie, word die toestel 'n toegangspunt. As u eenmaal gekoppel is aan die WiFi -netwerk wat deur die toegangspunt verskaf word, kan u met die teenwoordigheid van 'n HTTP -webbediener direk aan die toestel koppel en die konfigurasie daarvan verander deur die gebruik van 'n HTTP -webblaaier. Tuisblad se webbladsy wat ook op die SD -kaart gehou word.
- Sodra die IoT Retro -spraaksintese -apparaat aan die WiFi -netwerk en MQTT -makelaar gekoppel is, sal die HTTP -webbediener outomaties 'n HTTP -webblad bedien, sodat beperkte beheer van die IoT -toestel 'n verskeidenheid vaste frases kan spreek en die vermoë om ry die twee voorste rooi en blou LED's.
WiFi -stasie
Hierdie funksie gee die IoT -toestel die moontlikheid om aan te sluit op 'n huishoudelike WiFi -netwerk met behulp van die parameters in die lêer vir sekuriteitsinligting, sonder dat u IoT -toestel nie op die MQTT Broker kan inteken/publiseer nie.
WiFi -toegangspunt
Die vermoë om 'n WiFi -toegangspunt te word, is 'n manier waarmee u met die IoT -toestel daaraan kan koppel en konfigurasieveranderings kan aanbring via 'n WiFi -stasie en 'n blaaier (soos Safari op die Apple iPad). Hierdie toegangspunt stuur 'n SSID = "SPEECHSYN" + die laaste 6 syfers van die MAC -adres van die IoT -toestel uit. Die wagwoord vir hierdie geslote netwerk word op 'n verbeeldingryke wyse 'PASSWORD' genoem
Stap 6: Sagteware -oorsig
Aanhef
Om hierdie bronkode suksesvol saam te stel, benodig u 'n plaaslike kopie van die kode en biblioteke wat hieronder uiteengesit word in stap 12, Gebruikte verwysings. As u nie seker is hoe u 'n Arduino -biblioteek moet installeer nie, gaan hierheen.
Oorsig
Die sagteware maak gebruik van die staatsmasjien soos op foto 1 hierbo getoon (volledige kopie van die bron in my GitHub-bewaarplek hier). Daar is 5 hooftoestande soos hieronder uiteengesit;
-
INIT
Hierdie inisialiseringstoestand is die eerste toestand wat ingeskryf is nadat dit aangeskakel is
-
NOCONFIG
Hierdie toestand word ingeskryf as 'n ongeldige of ontbrekende secvals.txt -lêer na aanskakeling opgespoor word. Tydens hierdie toestand is die Config -bladsy sigbaar
-
Hangende NW
Hierdie toestand is van tydelike aard, aangegaan terwyl daar geen WiFi -netwerkverbinding bestaan nie
-
Hangende MQTT
Hierdie toestand is van tydelike aard, aangegaan nadat 'n WiFi -netwerkverbinding tot stand gekom het, en alhoewel daar geen verbinding met 'n MQTT -makelaar op die netwerk bestaan nie
-
AKTIEF
Dit is die normale bedryfstoestand wat aangegaan is sodra beide 'n WiFi -netwerkverbinding en 'n MQTT Broker -verbinding tot stand gekom het. Gedurende hierdie toestand word die temperatuur, hitte -indeks en humiditeit op die IoT Retro Speech Synthesis Device gereeld aan die MQTT Broker gepubliseer. In hierdie toestand is die Speech Synth -tuisblad sigbaar
Die gebeure wat oorgange tussen state beheer, word in prent 1 hierbo beskryf. Oorgange tussen state word ook beheer deur die volgende SecVals -parameters;
- 1ste MQTT Broker IP -adres. In gestippelde desimale vorm AAA. BBB. CCC. DDD
- 2de MQTT -makelaarshawe. In heelgetalvorm.
- 3de MQTT -makelaarverbinding probeer maak voordat u van STA -modus na AP -modus oorskakel. In heelgetalvorm.
- 4de WiFi -netwerk SSID. In vrye vorm teks.
- 5de WiFi -netwerkwagwoord. In vrye vorm teks.
Soos hierbo genoem, as die IoT -toestel nie as 'n WiFi -stasie kan koppel aan die WiFi -netwerk wat SSID en P/W in secvals.txt op die SD -kaart gedefinieer het nie, word die IoT -toestel 'n toegangspunt. Sodra dit aan hierdie toegangspunt gekoppel is, sal dit die 'Speech Synth Configuration Home Page' wys soos hierbo in Pic 2 getoon (deur óf 'SPEECHSVR.local' óf 192.168.4.1 in die URL -adresbalk van u blaaiers in te voer). Hierdie tuisblad laat die herkonfigurasie van die IoT Retro -spraaksintese -toestel toe via 'n HTTP -blaaier.
Toegang op afstand in die aktiewe toestand
Sodra dit aan die MQTT-makelaar gekoppel is, is dit ook moontlik om die toestel te herkalibreer en te herkonfigureer via MQTT-onderwerppublikasies. Die lêer calvals.txt het R/W -toegang en secvals.txt het slegs toegang tot skryf.
Soos hierbo genoem, is dit ook moontlik om in die aktiewe modus toegang tot die Speech Synth te verkry via 'n HTTP -koppelvlak deur 'SPEECHSVR.local' of 192.168.4.1 in die URL -adresbalk van u blaaiers in te voer. Hierdie HTTP -gebaseerde koppelvlak maak voorsiening vir basiese beheer van die Speech Synth. Foto's 3, 4 en 5 wys die beskikbare webblaaie.
Ontfout van gebruikers
Tydens die opstartvolgorde gee die IoT -toestel se groen stelsel aan die agterkant van die omhulsel die volgende ontfoutingterugvoer;
- 1 Kort flits: geen Config -lêer op SD -kaart nie (secvals.txt)
- 2 Kort flitse: IoT -toestel probeer om aan te sluit op 'n WiFi -netwerk
- Deurlopende beligting: IoT -toestel probeer om aan te sluit by MQTT Broker
- Af: Toestel is aktief.
IoT Retro spraaksintese -apparaatfunksionaliteit in aktiewe toestand
Sodra dit in die AKTIEWE toestand is, betree die ESP8266 'n deurlopende lus wat die volgende funksies noem; timer_update (), checkTemperatureAndHumidity () en handleSpeech (). Die netto resultaat daarvan is ontwerp om die gebruiker 'n HTTP- of MQTT-koppelvlak te bied, om die ingeboude spraakverwerker naatloos aan te bied met foneme op aanvraag en om plaaslike parametriese waardes oor MQTT te publiseer.
'N Omvattende lys van alle onderwerpintekeninge en -publikasies, insluitend die vragwaarde, is ingesluit in die bronkode.
Stap 7: Sensorkalibrasie
As die IoT -toestel aanskakel, word twee lêers met die naam 'cavals1.txt' en 'cavals2.txt' van die SD -kaart gelees as deel van die opstartvolgorde.
Die inhoud van hierdie lêers is kalibreringskonstante soos hierbo in prent 1 aangedui.
- 'cavals1.txt': Gebruik deur die eksterne AM2320
- 'cavals2.txt': Word gebruik deur die interne DHT22
Hierdie kalibrasie -konstantes word gebruik om die metings wat van die twee sensors verkry is, aan te pas om dit in lyn te bring met 'n verwysingsapparaat. Daar is nog 'n ander waarde wat 'n verslagdoeningstrategie vir elke toestel definieer en word hieronder beskryf saam met die prosedure wat gevolg word om die sensors te kalibreer.
Verslagdoeningstrategie
Hierdie parameter bepaal hoe die afstandsensor enige omringende parametriese veranderinge daarby aanmeld. As 'n waarde van 0 gekies word, publiseer die afstandsensor elke verandering wat dit in die temperatuur of humiditeit sien, elke keer as die onderskeie sensor gelees word (ongeveer elke 10 sekondes). Enige ander waarde sal die publikasie van 'n verandering met 1 … 60 minute vertraag. Deur hierdie parameter te verander, word die MQTT -netwerkverkeer geoptimaliseer. Daar moet kennis geneem word dat temperatuur- en humiditeitsdata van die DHT22 afwisselend gelees word as gevolg van die beperking van die sensor.
Temperatuur kalibrasie
Om die temperatuursensor te kalibreer, het ek dieselfde proses gevolg soos in stap 4 uiteengesit, weer met behulp van 'n eenvoudige y = mx+c verhouding. Ek het IoT -temperatuur, humiditeitsensor #1 as verwysingsapparaat gebruik. Waardes van die sensor is in grade celcius.
Kalibrasie van humiditeit
Aangesien ek geen beskikbare middele het om die humiditeit van die omgewing akkuraat op te teken of selfs te beheer nie, het ek 'n soortgelyke benadering gebruik as die hierbo, stap 4, met behulp van sensor #1 as verwysing om die sensor te kalibreer. Maar bogenoemde het gesê: ek het onlangs 'n uitstekende artikel op die internet gevind wat beskryf hoe om humiditeitsensors te kalibreer. Ek sal hierdie metode moontlik een of ander tyd in die toekoms probeer. Waardes van die sensor is in %ouderdom van relatiewe humiditeit.
Stap 8: MQTT -onderwerpbenoemingskonvensie
Soos genoem in 'n vroeëre Instructable (hier), het ek besluit oor die onderwerpnaamkonvensie wat in prent 1 hierbo uiteengesit is.
Dit is naamlik 'AccessMethod/DeviceType/WhichDevice/Action/SubDevice', dit is nie perfek nie, maar dit maak dit moontlik om nuttige filters toe te pas om alle sensoruitsette vir 'n gegewe parametriese onderwerp te sien, sodat dit maklik kan vergelyk word soos op foto 2 hierbo met MQTTSpy.
Hierdie projek is die eerste keer dat 'n enkele toestel meer as een bron van dieselfde publikasie bevat. ie. Twee temperatuur-/humiditeitsensors, van interne en eksterne sub-toestelle.
Dit ondersteun ook redelik uitbreidbare logiese groeperings van funksies binne 'n gegewe IoT -toestel.
By die implementering van hierdie onderwerpe in sagteware het ek hardgekodeerde onderwerpsnare gebruik met vaste, ingebedde numeriese identifiseerders vir elke toestel, in teenstelling met die dinamiese opwekking van die onderwerpe op tyd, om RAM te bespaar en die prestasie hoog te hou.
Nota: as u nie seker is hoe u MQTTSpy moet gebruik nie, sien hier 'Opstel van 'n MQTT -makelaar. Deel 2: IoT, Home Automation '
Stap 9: Ontfouting en foutopsporing
Oor die algemeen is ek, waar moontlik, vir my stokperdjie -projekte geneig om 'n verteenwoordigende hardeware -prototipe te bou waarteen die sagteware ontwikkel word. Ek het selde probleme met die integrasie van die sagteware in die finale platformhardeware.
By hierdie geleentheid het ek egter op 'n vreemde afwisselende fout afgekom waardeur sommige foneme sou opklink, maar ander nie.
Na 'n aanvanklike ontfouting van die Speech Synth PCB met behulp van 'n Arduino Uno om foneme te verkry en te bewys dat hierdie bord werk, het ek 'n omvang geneem van die I2C -lyne tussen die IoT PCB en die Speech Synth PCB. Sien foto 1 hierbo.
U kan die 'saagtand'/eksponensiële rand na die I2C -sein op die spore duidelik sien.
Dit is gewoonlik 'n aanduiding dat die I2C -optelwaardes te hoog is, wat voorkom dat die netspanning vinnig genoeg herstel in 'n oop dreineringskring.
As 'n 'werk' het ek die twee smt optrekweerstande R12 en R13 met 10K's parallel gemaak om 4K7 te gee en seker dat die Speech Synth 'in life' uitgebars het
Hierdie tipe mislukking is die teenoorgestelde van wat kan gebeur as u hierdie tipe projekte ontfout. Oor die algemeen het die meeste I2C -modules wat by Ebay gekoop is, gewoonlik 10K of 4K7 pull -ups. As u van plan is om> 5 I2C -modules te gebruik, elk met 4K7 pull -ups, dan is die totale las 940R, wat te groot sal wees vir die uitvoerfase van die meester. Die oplossing sou wees om alles behalwe een stel optrekweerstands op elke module te ontsoldeer. Verkieslik die een wat fisies die verste weg van die meester is.
'N Nuttige wenk en die moeite werd om in gedagte te hou by die ontwerp van elektronika met I2C -toestelle.
Stap 10: Toets die ontwerp
Die toets is uitgevoer met behulp van twee metodologieë; Handmatig en outomaties.
Die eerste, handleiding en algemeen gebruik tydens die aanvanklike kodeontwikkeling, was die gebruik van MQTT Spy om al die beskikbare onderwerpe in te teken en die gepubliseerde antwoorde na te gaan (op foto 2 hierbo uitgebeeld). Aangesien dit 'n handmatige proses is, kan dit tydrowend en vatbaar wees vir foute namate kodeontwikkeling vorder, hoewel handmatige uitvoering 100% dekking moontlik maak.
MQTTSpy is gekies vir handmatige toetsing, want dit is 'n uitstekende hulpmiddel om 'n gegewe vrag met die hand te formateer en dit maklik met enige onderwerp te publiseer. Dit bevat ook 'n duidelike, tydstempelde logboek wat baie handig is vir ontfouting (foto 3 hierbo).
Die tweede, outomatiese benadering is aangeneem namate die bronkode meer kompleks geword het (> 3700 reëls). Verhoogde kompleksiteit beteken langer handmatige toetssiklusse en meer komplekse toetse. Om die betroubaarheid, determinisme en kwaliteit van toetse te verbeter, is outomatiese toetsing gebruik deur 'n python -toetsbestuurder (prent 1). Sien stap 10 in hierdie instruksie oor hoe outomatiese toetsing ingestel is. 'N Volledige afskrif van die outomatiese toetse wat in hierdie instruksie gebruik word, is hier beskikbaar.
'N Video van die outomatiese toetsvolgorde in werking word hierbo getoon. Die volgorde voer die volgende stappe uit;
-
Outomaties via MQTT
- Koppel aan die MQTT -ruggraat en kondig 'System Ready' aan
- Oefen groen LED
- Oefen Rooi LED
- Oefen blou LED
- Kyk of Digital Pot werk
- Praat met behulp van foneme
- Praat met behulp van hex -kodes vir foneme
- Praat met behulp van kodes vir regstellingsfrases
- 'N Bietjie pret van Dr Who en die Daleks.
- Handmatig via
- Oefen blou LED
- Oefen Rooi LED
- Spreek vaste frases 'Steven Quinn', 'System Ready' en 'Hello World'
-
Het die HTTP -bediener, bedien
- Besonderhede oor Speech Synth Chip
- MQTT Besonderhede
Stap 11: Gevolgtrekking
Alhoewel dit baie moeite verg met lêers en bore, ens. Veral vir die luidsprekerrooster, dink ek die uitkoms is esteties aangenaam en verpak dit in 'n mooi, klein omhulsel. Ek kon dit kleiner gemaak het, maar ek sou op een PCB moes gaan, en ek het dit doelbewus in twee gesny sodat ek later die PCB's vir ander projekte kon hergebruik. Dit is dus 'n gelukkige kompromie.
Die sagteware werk goed, die IoT -toestel werk al geruime tyd sonder probleme.
Ek het via Grafana die temperatuur en humiditeit gemonitor en vergelyk met 'n toestel wat saam geleë is. Die twee omgewingswaardes korreleer goed, wat impliseer dat die kalibrasie redelik is (of ten minste dieselfde is).
Ek het opgehou om woordopdrag ('WFD/SpeechTH/1/Word/Command') te implementeer omdat ek nie meer tyd gehad het nie en verder moes gaan. Ek kan dit weer besoek as ek 'n MySQL-databasis opstel. Op die oomblik gebruik ek InfluxDB.
Stap 12: Gebruikte verwysings
Die volgende bronne is gebruik om hierdie Instructable saam te stel; Bronkode vir die IoT Retro Speech Synthesis Device (dit bevat 'n afskrif van alles)
https://github.com/SteveQuinn1/IoT_Retro_Speech_Synthesis_SP0256_AL2
PubSubClient.h
- Deur: Nick O'Leary
- Doel: stel die toestel in staat om MQTT -onderwerpe met 'n gegewe makelaar te publiseer of in te teken
- Van:
DHT.h
- Deur: Adafruit
- Doel: Arduino -biblioteek vir DHT11DHT22, ens Temp- en humiditeitsensors
- Van:
Adafruit_AM2320.h/Adafruit_Sensor.h
- Deur: Adafruit
- Doel: Arduino -biblioteek vir AM2320, ens Temp & Humidity Sensor
- Van:
MCP4561_DIGI_POT.h
- Deur: Steve Quinn
- Doel: Arduino -biblioteek vir MCP4561 digitale potensiometer
- Van:
Adafruit_MCP23017.h
- Deur: Steve Quinn
- Doel: Arduino -biblioteek vir die MCP23017 I2C Port Expander. Dit is 'n GITHub-vurk van Adafruit-MCP23017-Arduino-biblioteek, deur Adafruit.
- Van:
Vir die pret
https://haynes.com/en-gb/
PCB Vervaardiging
https://jlcpcb.com/
Die installering van ekstra Arduino -biblioteke
https://www.arduino.cc/en/Guide/Libraries
Hoe om 'n humiditeitsensor na te gaan en te kalibreer
https://www.allaboutcircuits.com/projects/how-to-check-and-calibrate-a-humidity-sensor/?utm_source=All+About+Circuits+Members&utm_campaign=ffeee38e54-EMAIL_CAMPAIGN_2017_12_06&utm_med5_255 /
SP0256-AL2 Gegevensblad
https://www.futurebots.com/spo256.pdf
Spraakskyfieswinkel
https://www.speechchips.com/shop/
Naaswenner in die Arduino -kompetisie 2019
Aanbeveel:
Internet/wolk -beheerde tuisautomatisering met behulp van Esp8266 (aREST, MQTT, IoT): 7 stappe (met foto's)
Internet/wolk -beheerde tuisautomatisering met behulp van Esp8266 (aREST, MQTT, IoT): ALLE krediete aan http://arest.io/ vir die wolkdiens !! Wolkbedieners en -dienste wat dit moontlik maak, is die aantrekkingskrag van die hedendaagse wêreld … UITSLUITING VAN DIE AFSTANDSGANGER was en is die
Tuisautomatisering met behulp van Raspberry Pi Matrix Voice and Snips (deel 2): 8 stappe
Tuisautomatisering met behulp van Raspberry Pi Matrix Voice en Snips (Deel 2): opdatering van tuisautomatisering met behulp van Raspberry Pi Matrix Voice en Snips. In hierdie PWM word dit gebruik vir die beheer van eksterne LED's en servomotor Alle besonderhede in deel 1https: //www.instructables.com/id/Controlling-Light
Bou van homie -toestelle vir IoT of tuisautomatisering: 7 stappe (met foto's)
Bou van huistoestelle vir IoT of tuisautomatisering: hierdie instruksies is deel van my DIY Home Automation -reeks, kyk na die hoofartikel "Beplan 'n DIY Home Automation System". As u nog nie weet wat Homie is nie, kyk dan na homie-esp8266 + homie van Marvin Roger. Daar is baie
IoT -hoofbeheerder. Deel 9: IoT, tuisautomatisering: 10 stappe (met foto's)
IoT -hoofbeheerder. Deel 9: IoT, Huishoudelike outomatisering: Disclaimer LEES HIERDIE EERSTE In hierdie instruksies word 'n projek beskryf wat hoofstroom gebruik (in hierdie geval UK 240VAC RMS), terwyl alle sorg geneem is om veilige praktyk en goeie ontwerpbeginsels te gebruik, maar daar is altyd 'n risiko van potensieel dodelike verkies
WiFi IoT temperatuur- en humiditeitsensor. Deel: 8 IoT, tuisautomatisering: 9 stappe
WiFi IoT temperatuur- en humiditeitsensor. Deel: 8 IoT, tuisautomatisering: aanhef Hierdie artikel beskryf die praktiese versterking en verdere ontwikkeling van 'n vroeëre instruksies: 'Pimping' van u eerste IoT WiFi -toestel. Deel 4: IoT, tuisautomatisering, insluitend al die nodige sagtewarefunksionaliteit om die suksesvolle