![Retro runas sintēze. Daļa: 12 IoT, mājas automatizācija: 12 soļi (ar attēliem) Retro runas sintēze. Daļa: 12 IoT, mājas automatizācija: 12 soļi (ar attēliem)](https://i.howwhatproduce.com/images/005/image-12984-17-j.webp)
Satura rādītājs:
- 1. darbība: lietotāja rokasgrāmata
- 2. darbība: shēmas pārskats
- 3. solis: PCB ražošana un montāža
- 4. solis: izgatavošana
- 5. darbība: programmatūras sistēmas pārskats
- 6. darbība: programmatūras pārskats
- 7. solis: Sensora kalibrēšana
- 8. solis: MQTT tēmu nosaukšanas konvencija
- 9. darbība: atkļūdošana un kļūdu meklēšana
- 10. darbība: dizaina pārbaude
- 11. solis. Secinājums
- 12. darbība. Izmantotās atsauces
2025 Autors: John Day | [email protected]. Pēdējoreiz modificēts: 2025-01-23 14:59
![Image Image](https://i.howwhatproduce.com/images/005/image-12984-19-j.webp)
![](https://i.ytimg.com/vi/MwtR3u_uS0M/hqdefault.jpg)
![Retro runas sintēze. Daļa: 12 IoT, mājas automatizācija Retro runas sintēze. Daļa: 12 IoT, mājas automatizācija](https://i.howwhatproduce.com/images/005/image-12984-20-j.webp)
Šis raksts ir 12. sērija par mājas automatizācijas instrukcijām, kas dokumentē, kā izveidot un integrēt IoT Retro runas sintēzes ierīci esošā mājas automatizācijas sistēmā, ieskaitot visas nepieciešamās programmatūras funkcijas, lai nodrošinātu veiksmīgu izvietošanu vietējā vidē.
1. attēlā redzama pabeigta IoT runas sintezatora ierīce, bet 2. attēlā - visas prototipā izmantotās detaļas, kuras tika samazinātas, lai nonāktu galaproduktā.
Video parāda ierīci darbībā (pārbaudes laikā).
Ievads
Kā minēts iepriekš, šajā pamācībā ir sīki aprakstīts, kā izveidot IoT retro runas sintēzes ierīci, un tās pamatā ir vispārējie instrumenti SP0256-AL2.
Tā galvenais mērķis ir pievienot “vecās skolas” balss sintēzi IoT tīklam. Kāpēc jūs jautājat, kāpēc tā ir “vecā skola”? Nu, tāpēc, ka es biju apmēram 80. gados, kad šīs lietas pirmo reizi tika ražotas, un es saslēdzu vienu ar savu BBC Micro, tāpēc man ir zināma nostaļģija ap SP0256-AL2.
Es daudz vairāk dodu priekšroku izaicinājumam - mēģināt saprast, ko uz zemes saka šī Daleka skanīgā balss, nekā klausīties hipsterīga Amazones atbalss vai Siri blāvos toņos. Kur ir tas izaicinājums, ko es jums jautāju?
Ak, un nemaz nerunājot par to, ka man ir arī “maisa krava” ar “SP0256-AL2” IC.
Ierīce spēj arī nolasīt vietējo temperatūru un mitrumu, tāpēc vēl vairāk paplašina manas esošās IoT infrastruktūras apkārtējās vides mērījumus MQTT/OpenHAB balstītajā IoT tīklā, kas sīki aprakstīts šajā sērijā par mājas automatizāciju (HA), pamatojoties uz atkārtoti izmantoto kodu, kas ņemts no šejienes.
Tās centrā ir ESP8266-07, kas ir atbildīgs par MQTT sakariem un visas sistēmas funkcionalitātes kontroli (piekļuve SD kartei, LED vadība, temperatūras/mitruma noteikšana, skaļuma kontrole, runas sintēze). Ierīce ir pilnībā konfigurējama, izmantojot teksta failus, kas saglabāti vietējā SD karte, lai gan kalibrēšanas un tīkla drošības parametrus var ieprogrammēt arī, izmantojot attālās MQTT publikācijas.
Kādas detaļas man ir vajadzīgas?
Materiālu sarakstu skatīt šeit
Kāda programmatūra man ir nepieciešama?
- Arduino IDE 1.6.9,
- Arduino IDE ir konfigurēts programmēt ESP8266-07 (tāds pats kā šis). Pēc tam konfigurējiet IDE, kā norādīts detalizētajā aprakstā, kas sniegts programmatūras skicē,
- Python v3.5.2, ja vēlaties izmantot automātiskās pārbaudes iespējas, sīkāku informāciju skatiet šeit
Kādi rīki man ir nepieciešami?
- Mikroskops vismaz x3 (SMT lodēšanai),
- Molex savienotāja gofrēšanas instruments (JST savienotājiem),
- SMD lodāmurs (ar šķidruma plūsmas pildspalvu un lodēšanas serdi),
- Skrūvgrieži (dažādi),
- Siltuma lielgabals,
- Urbji (dažādi),
- Iegremdējams rokas instruments,
- Faili (dažādi),
- Dremel (dažādi uzgaļi),
- Izturīgs vice (mazs un liels, piemēram, melns un klāja darba biedrs),
- Skalpelis,
- Vernier suporti (izmanto ražošanas mērīšanai un noderīgi PCB sastāvdaļu izmēru noteikšanai),
- Uzgriežņu atslēgas un uzgriežņu uzgriežņi (dažādi),
- Spēcīgas pincetes (SMT lodēšanai),
- Jaunākais zāģis,
- Urbis (ar dažādiem urbjiem),
- Smalkas knaibles (ar smailu un smailu degunu),
- Skalošanas griezēji,
- DMM ar skaņas nepārtrauktības pārbaudi,
- Divkanālu digitālais tvērums (ērts signālu atkļūdošanai)
Kādas prasmes man vajadzīgas?
- Daudz pacietības,
- Liela roku veiklība un lieliska roku/acu koordinācija,
- Lieliskas lodēšanas prasmes,
- Teicamas ražošanas prasmes,
- Spēja vizualizēt 3 dimensijās,
- Dažas zināšanas par programmatūras izstrādi, izmantojot “C” (ja vēlaties saprast avota kodu),
- Dažas zināšanas par Python (kā instalēt un palaist skriptus, ja vēlaties izmantot automātisko testēšanu),
- Zināšanas par Arduino un tā IDE,
- Labas zināšanas elektronikā,
- Zināšanas par jūsu mājas tīklu.
Tēmas, uz kurām attiecas
- Lietotāja rokasgrāmata
- Ķēdes pārskats
- PCB ražošana un montāža
- Izgatavošana
- Programmatūras sistēmas pārskats
- Programmatūras pārskats
- Sensora kalibrēšana
- Konvencija par tēmu nosaukšanu MQTT
- Atkļūdošana un kļūdu meklēšana
- Dizaina pārbaude
- Secinājums
- Izmantotās atsauces
Sērijas saites 11. daļai: IoT darbvirsmas konsole. Daļa: 11 IoT, mājas automatizācija
1. darbība: lietotāja rokasgrāmata
![Lietotāja rokasgrāmata Lietotāja rokasgrāmata](https://i.howwhatproduce.com/images/005/image-12984-21-j.webp)
![Lietotāja rokasgrāmata Lietotāja rokasgrāmata](https://i.howwhatproduce.com/images/005/image-12984-22-j.webp)
![Lietotāja rokasgrāmata Lietotāja rokasgrāmata](https://i.howwhatproduce.com/images/005/image-12984-23-j.webp)
1. attēlā redzama retro runas sintezatora priekšpuse, bet 2. attēlā - aizmugure.
Korpuss priekšpusē
- Skaļruņu grils
- 3,5 mm austiņu ligzda: galvenais skaļrunis ir atspējots, ja ir ievietota 3,5 mm ligzda.
- Sarkana gaismas diode: Šī gaismas diode iedegas, kamēr tiek runāts vārds, kad runa tika uzsākta, izmantojot HTTP pieprasījumu.
- Zils LED: Šis gaismas diode iedegas, kamēr tiek runāts vārds, kad runa tika uzsākta, izmantojot MQTT IoT pieprasījumu.
Korpuss aizmugurē
- Atiestatīšanas poga: izmanto, lai grūti atiestatītu ESP8266-07 IoT ierīci.
- Zibspuldzes poga: lietojot kopā ar atiestatīšanas pogu, ļauj atkārtoti mirgot ESP8266-07.
- WiFi antenas spraudnis (SMA spraudnis): ārējai WiFi antenai, kas nodrošina vismazāko RF ceļa vājināšanos, jo aizdare ir alumīnija.
- Ārējās programmēšanas ports: lai novērstu nepieciešamību atskrūvēt korpusu, lai piekļūtu ESP8266-07 atkārtotas programmēšanas nolūkos. ESP8266-07 programmēšanas tapas ir izvestas uz ārējo programmēšanas portu. 3. attēls ir programmēšanas adapteris.
- Zaļā gaismas diode: šī ir IoT sistēmas gaismas diode, un to izmanto, lai norādītu ierīces diagnostikas statusu un sāknēšanu un darbības laikā.
- Ārējais temperatūras/mitruma sensors (AM2320)
- SD kartes slots: tas satur visus konfigurācijas/drošības datus kopā ar tīmekļa servera lapām.
- 2,1 mm barošanas ligzda 6vdc
2. darbība: shēmas pārskats
![Ķēdes pārskats Ķēdes pārskats](https://i.howwhatproduce.com/images/005/image-12984-24-j.webp)
![Ķēdes pārskats Ķēdes pārskats](https://i.howwhatproduce.com/images/005/image-12984-25-j.webp)
Ierīce Retro Speech Synth sastāv no diviem PCB;
- RetroSpeechSynthIoTBoard: Šī ir vispārīga, atkārtoti lietojama ESP8266-07/12/12E/13 PCB
- RetroSpeechSynthBoard: Šī ir vispārīga SP0256-AL2 PCB
Retro runas sintezēšanas IoT padome
Šī plate ļauj vai nu tieši lodēt ESP8266-07/12/12E/13, vai 0,1 collu slīpuma kontaktligzdas, kas paredzētas ESP8266 nesēja PCB.
Tāfele tika izstrādāta, lai paplašinātu tās I/O, izmantojot I2C savienojumu, un var atbalstīt 3 vai 3 vai 5 voltu barošanas līmeņus, izmantojot Q1, Q2, R8-13.
Savienojumu ar plāksni var panākt, izmantojot vienu no divām galvenēm J2 un J4, 8 virzienu DIL IDC lenti vai 5 virzienu JST/Molex.
U2 un U3 noteikumi 3.3v un 5v uz kuģa piegādes regulēšanu. Alternatīvi, ja ir nepieciešama lielāka strāvas jauda, seriālos šunta regulētājus var pievienot, izmantojot attiecīgi savienotājus J10 un J11.
Savienotāji J1 un J3 piedāvā ārēju SD karšu atbalstu, izmantojot SPI. J1 ir paredzēts astoņvirzienu Molex, un J3 ir tieša tapa tapas saderības atbalstam, kas atrodas pie plaukta esošās SD kartes PCB ar 3v3 vai 5v atbalstu.
Retro runas sintezēšanas padome
Šīs plates vadība tiek veikta, izmantojot I2C 5v atbilstošu savienojumu, izmantojot J1, J5 vai J6, četrvirzienu JST/Molex, 8 virzienu DIL IDC vai 8 virzienu IDC lentes savienotāju.
U2 MPC23017 nodrošina I2C paralēlo saskarni ar U3 SP0256-AL2 un gaismas diodēm D1 (zaļa), D2 (sarkana) un D3 (zila). Speech Synth izeja tiek padota audio pastiprinātājam CR1 TBA820M, izmantojot analogo podu RV1 vai digitālo podu U1 MCP4561.
Digitālo podu U1 kontrolē arī ar 5V saderīgu I2C.
Piezīme: ESP8266-07 ierīce tika izvēlēta, jo tai ir integrēts IPX RF savienotājs, kas ļauj alumīnija korpusam pievienot ārēju WiFi antenu.
3. solis: PCB ražošana un montāža
![PCB ražošana un montāža PCB ražošana un montāža](https://i.howwhatproduce.com/images/005/image-12984-26-j.webp)
![PCB ražošana un montāža PCB ražošana un montāža](https://i.howwhatproduce.com/images/005/image-12984-27-j.webp)
![PCB ražošana un montāža PCB ražošana un montāža](https://i.howwhatproduce.com/images/005/image-12984-28-j.webp)
![PCB ražošana un montāža PCB ražošana un montāža](https://i.howwhatproduce.com/images/005/image-12984-29-j.webp)
1. un 2. attēlā parādīti pabeigtie un vadu PCB mezgli, kas atrodas uz alumīnija korpusa pamatnes.
Abas PCB tika izstrādātas, izmantojot Kicad v4.0.7, ko ražoja JLCPCB un es samontēju un parādīts iepriekš no 3. līdz 13. attēlam.
4. solis: izgatavošana
![Izgatavošana Izgatavošana](https://i.howwhatproduce.com/images/005/image-12984-30-j.webp)
![Izgatavošana Izgatavošana](https://i.howwhatproduce.com/images/005/image-12984-31-j.webp)
![Izgatavošana Izgatavošana](https://i.howwhatproduce.com/images/005/image-12984-32-j.webp)
1. attēlā parādīts visu saliekamo detaļu Haynes manuālais stila izkārtojums pirms galīgās montāžas.
Attēli 2… 5 parāda dažādus kadrus korpusa izgatavošanas laikā ar minimālu atstarpi.
5. darbība: programmatūras sistēmas pārskats
![Programmatūras sistēmas pārskats Programmatūras sistēmas pārskats](https://i.howwhatproduce.com/images/005/image-12984-33-j.webp)
![Programmatūras sistēmas pārskats Programmatūras sistēmas pārskats](https://i.howwhatproduce.com/images/005/image-12984-34-j.webp)
Šī IoT retro runas sintēzes ierīce satur sešus galvenos programmatūras komponentus, kā parādīts 1. attēlā.
SD karte
Šī ir ārējā SD SPI zibspuldzes kartotēkas sistēma, un to izmanto šādas informācijas glabāšanai (skat. 2. attēlu);
- Ikonas un “Runas sintezēšanas konfigurācijas sākumlapa” index.htm: to nodrošina IoT ierīce, ja tā nevar izveidot savienojumu ar jūsu IoT WiFi tīklu (parasti nepareizas drošības informācijas vai pirmās lietošanas dēļ) un nodrošina lietotājam līdzekļus Lai attālināti konfigurētu sensorus bez nepieciešamības atkārtoti uzliesmot jaunu SD saturu. Tam ir arī indeksi1.htm, mqtt.htm un sp0256.htm, šīs ir lokāli apkalpotas tīmekļa lapas, kas pieejamas tīmekļa pārlūkprogrammā, ļaujot ierobežotā veidā kontrolēt runas sintezatoru. izmantojot
- Drošības informācija: tajā ir informācija, ko IoT ierīce ieslēdz, lai izveidotu savienojumu ar jūsu IoT WiFi tīklu un MQTT Broker. Informācija, kas iesniegta, izmantojot runas sintezēšanas konfigurācijas mājas lapu, tiek ierakstīta šajā failā (“secvals.txt”).
- Kalibrēšanas informācija: failos ietvertā informācija (“calvals1.txt” un “calvals2.txt”) tiek izmantota, lai nepieciešamības gadījumā kalibrētu iebūvēto temperatūras/mitruma sensoru. Kalibrēšanas konstantes var ierakstīt IoT ierīcē, izmantojot MQTT starpnieka MQTT komandas vai atkārtoti mirgot SD karti. “calvals1.txt” attiecas uz sensoru AM2320 un “calvals2.txt” uz DHT22.
- Lietotāja konfigurējamas sistēmas vērtības: šajā failā esošā informācija ('confvals.txt'), ko izvēlējies lietotājs, kontrolē noteiktas sistēmas atbildes, piemēram, sākotnējo digitālā skaļuma līmeni, automātisku paziņojumu par sistēmas gatavību MQTT brokera abonementā utt.
mDNS serveris
Šī funkcija tiek izmantota, ja IoT ierīcei nav izdevies izveidot savienojumu ar jūsu WiFi tīklu kā WiFi staciju un tā vietā tā ir kļuvusi par WiFi piekļuves punktu, kas ir līdzīgs vietējam WiFi maršrutētājam. Šāda maršrutētāja gadījumā jūs parasti izveidojat savienojumu ar to, ievadot IP adresi, piemēram, 192.168.1.1 (parasti uzdrukāts uz lodziņa piestiprinātas etiķetes), tieši pārlūkprogrammas URL joslā, pēc kuras jūs saņemsiet pieteikšanās lapu, lai ievadītu lietotājvārdu un paroli, lai varētu konfigurēt ierīci. ESP8266-07 AP režīmā (piekļuves punkta režīmā) ierīces noklusējuma IP adrese ir 192.168.4.1, taču, darbojoties mDNS serverim, pārlūkprogrammas URL joslā ir jāievada tikai cilvēkiem draudzīgs nosaukums “SPEECHSVR.local”. skatiet 'Runas sintezēšanas konfigurācijas sākumlapu'.
MQTT klients
MQTT klients nodrošina visu nepieciešamo funkcionalitāti; izveidojiet savienojumu ar savu IoT tīkla MQTT brokeri, abonējiet izvēlētās tēmas un publicējiet konkrētās tēmas derīgās slodzes. Īsāk sakot, tas nodrošina IoT pamatfunkcijas.
HTTP tīmekļa serveris
Šim tīmekļa serverim ir divi mērķi;
- Ja IoT ierīce nevar izveidot savienojumu ar WiFi tīklu, kura SSID, P/W utt. Ir definēts SD kartē esošajā drošības informācijas failā, ierīce kļūs par piekļuves punktu. Kad ir izveidots savienojums ar piekļuves punkta nodrošināto WiFi tīklu, HTTP tīmekļa servera klātbūtne ļauj tieši izveidot savienojumu ar ierīci un mainīt tās konfigurāciju, izmantojot HTTP tīmekļa pārlūkprogrammu, kuras mērķis ir kalpot runas sintezēšanas konfigurācijai. Mājas lapas tīmekļa vietne, kas tiek glabāta arī SD kartē.
- Kad IoT Retro runas sintēzes ierīce ir izveidojusi savienojumu ar WiFi tīklu un MQTT brokeri, ja tam piekļūst, HTTP tīmekļa serveris automātiski apkalpos HTTP tīmekļa lapu, ļaujot ierobežotai IoT ierīces kontrolei izrunāt fiksētas frāzes un iespēju ieslēdziet divas priekšējās sarkanās un zilās gaismas diodes.
WiFi stacija
Šī funkcionalitāte dod IoT ierīcei iespēju izveidot savienojumu ar vietējo WiFi tīklu, izmantojot drošības informācijas faila parametrus, bez tā jūsu IoT ierīce nevarēs abonēt/publicēt MQTT brokeri.
WiFi piekļuves punkts
Iespēja kļūt par WiFi piekļuves punktu ir līdzeklis, ar kuru IoT ierīce ļauj jums izveidot savienojumu ar to un veikt izmaiņas konfigurācijā, izmantojot WiFi staciju un pārlūkprogrammu (piemēram, Safari Apple iPad ierīcē). Šis piekļuves punkts pārraida SSID = "SPEECHSYN" + IoT ierīces MAC adreses pēdējos 6 ciparus. Šī slēgtā tīkla parole ir iedomāti nosaukta par PASSWORD
6. darbība: programmatūras pārskats
![Programmatūras pārskats Programmatūras pārskats](https://i.howwhatproduce.com/images/005/image-12984-35-j.webp)
![Programmatūras pārskats Programmatūras pārskats](https://i.howwhatproduce.com/images/005/image-12984-36-j.webp)
![Programmatūras pārskats Programmatūras pārskats](https://i.howwhatproduce.com/images/005/image-12984-37-j.webp)
Preambula
Lai veiksmīgi apkopotu šo avota kodu, jums būs nepieciešama koda vietējā kopija un bibliotēkas, kas aprakstītas 12. darbībā, Izmantotās atsauces. Ja neesat pārliecināts, kā instalēt Arduino bibliotēku, dodieties šeit.
Pārskats
Programmatūra izmanto stāvokļa mašīnu, kā parādīts 1. attēlā (pilna avota kopija manā GitHub repozitorijā šeit). Ir 5 galvenie stāvokļi, kā izklāstīts zemāk;
-
TAJĀ
Šis inicializācijas stāvoklis ir pirmais stāvoklis, kas ievadīts pēc ieslēgšanas
-
NOCONFIG
Šis stāvoklis tiek ievadīts, ja pēc ieslēgšanas tiek konstatēts nederīgs vai trūkstošs fails secvals.txt. Šajā stāvoklī ir redzama konfigurācijas lapa
-
GAIDA ZR
Šis stāvoklis ir pārejošs, ievadīts, kamēr nav WiFi tīkla savienojuma
-
GAIDA MQTT
Šis stāvoklis ir pārejošs, tas tiek ievadīts pēc tam, kad ir izveidots WiFi tīkla savienojums, un, kamēr šajā tīklā nav savienojuma ar MQTT brokeri
-
AKTĪVS
Tas ir normāls darbības stāvoklis, kas ievadīts, tiklīdz ir izveidots gan WiFi tīkla savienojums, gan MQTT Broker savienojums. Tieši šajā stāvoklī MQTT brokerim regulāri tiek publicēta temperatūra, siltuma indekss un mitrums IoT Retro runas sintēzes ierīcē. Šajā stāvoklī ir redzama runas sintezēšanas sākumlapa
Notikumi, kas kontrolē pārejas starp stāvokļiem, ir aprakstīti 1. attēlā iepriekš. Pārejas starp valstīm nosaka arī šādi SecVals parametri;
- 1. MQTT brokera IP adrese. Punktveida decimālā formā AAA. BBB. CCC. DDD
- 2. MQTT brokeru osta. Vesela skaitļa formā.
- Trešais MQTT Broker savienojums mēģina izveidot pirms pārslēgšanās no STA režīma uz AP režīmu. Vesela skaitļa formā.
- 4. WiFi tīkla SSID. Brīvā formā.
- Piektā WiFi tīkla parole. Brīvā formā.
Kā minēts iepriekš, ja IoT ierīce nevar izveidot savienojumu ar WiFi staciju ar WiFi tīklu, kura SSID un P/W ir definēts failā secvals.txt, kas atrodas SD kartē, IoT ierīce kļūs par piekļuves punktu. Kad būs izveidots savienojums ar šo piekļuves punktu, tas parādīs runas sintezēšanas konfigurācijas sākumlapu, kā parādīts 2. attēlā (pārlūkprogrammas URL adreses joslā ievadot SPEECHSVR.local vai 192.168.4.1). Šī mājas lapa ļauj atkārtoti konfigurēt IoT Retro runas sintēzes ierīci, izmantojot HTTP pārlūkprogrammu.
Attālā piekļuve, atrodoties AKTĪVĀ stāvoklī
Kad ir izveidots savienojums ar MQTT brokeri, ir iespējams gan atkārtoti kalibrēt, gan pārkonfigurēt ierīci, izmantojot MQTT tēmu publikācijas. Failam calvals.txt ir R/W piekļuve, un secvals.txt ir atklāta tikai rakstīšanas piekļuve.
Tāpat kā minēts iepriekš, aktīvajā režīmā ir iespējams piekļūt runas sintezācijai, izmantojot HTTP saskarni, pārlūkprogrammas URL adreses joslā ievadot “SPEECHSVR.local” vai 192.168.4.1. Šis uz HTTP balstītais interfeiss ļauj vienkārši kontrolēt runas sintezēšanu. 3., 4. un 5. attēlā ir redzamas pieejamās tīmekļa lapas.
Lietotāja atkļūdošana
Sāknēšanas secībā IoT ierīces zaļā sistēma, kas novietota korpusa aizmugurē, sniedz šādu atkļūdošanas atgriezenisko saiti;
- 1 Īsa zibspuldze: SD kartē nav konfigurācijas faila (secvals.txt)
- 2 Īsi mirgo: IoT ierīce mēģina izveidot savienojumu ar WiFi tīklu
- Nepārtraukts apgaismojums: IoT ierīce mēģina izveidot savienojumu ar MQTT Broker
- Izslēgts: ierīce ir aktīva.
IoT Retro runas sintēzes ierīces funkcionalitāte AKTĪVĀ stāvoklī
Kad AKTĪVĀ stāvoklī, ESP8266 ievada nepārtrauktu cilpu, izsaucot šādas funkcijas; timer_update (), checkTemperatureAndHumidity () un handleSpeech (). Tā tīrais rezultāts ir paredzēts, lai lietotājam parādītu HTTP vai MQTT saskarni, nemanāmi apkalpotu tā iebūvēto runas procesoru ar fonēmām pēc pieprasījuma un publicētu vietējās apkārtējās vides parametru vērtības, izmantojot MQTT.
Avota kodā ir iekļauts visaptverošs visu tēmu abonementu un publikāciju saraksts, ieskaitot lietderīgās slodzes vērtības.
7. solis: Sensora kalibrēšana
![Sensora kalibrēšana Sensora kalibrēšana](https://i.howwhatproduce.com/images/005/image-12984-38-j.webp)
Ieslēdzot IoT ierīci, sāknēšanas secības ietvaros no SD kartes tiek nolasīti divi faili ar nosaukumu “cavals1.txt” un “cavals2.txt”.
Šo failu saturs ir kalibrēšanas konstantes, kā norādīts iepriekš 1. attēlā.
- 'cavals1.txt': izmanto ārējais AM2320
- 'cavals2.txt': izmanto iekšējais DHT22
Šīs kalibrēšanas konstantes tiek izmantotas, lai pielāgotu no diviem sensoriem iegūtos rādījumus, lai tie atbilstu atsauces ierīcei. Ir vēl viena vērtība, kas nosaka pārskatu sniegšanas stratēģiju katrai ierīcei un ir aprakstīta zemāk kopā ar sensoru kalibrēšanas procedūru.
Ziņošanas stratēģija
Šis parametrs nosaka, kā tālvadības sensors ziņo par jebkurām apkārtējās vides parametru izmaiņām. Ja ir izvēlēta vērtība 0, tālvadības sensors publicēs visas izmaiņas, ko tā redz temperatūrā vai mitrumā katru reizi, kad tiek nolasīts attiecīgais sensors (apmēram ik pēc 10 sekundēm). Jebkura cita vērtība aizkavēs izmaiņu publicēšanu par 1… 60 minūtēm. Šī parametra modificēšana ļauj optimizēt MQTT tīkla trafiku. Jāatzīmē, ka temperatūras un mitruma dati no DHT22 tiek nolasīti pārmaiņus sensora ierobežojumu dēļ.
Temperatūras kalibrēšana
Lai kalibrētu temperatūras sensoru, es izpildīju to pašu procesu, kas aprakstīts šeit, 4. solī, atkal izmantojot vienkāršu y = mx+c attiecību. Kā atsauces ierīci es izmantoju IoT temperatūru, mitruma sensoru #1. Sensora vērtības ir norādītas pēc Celsija grādiem.
Mitruma kalibrēšana
Tā kā man nav līdzekļu, lai precīzi reģistrētu vai pat kontrolētu vietējo apkārtējā gaisa mitrumu, lai kalibrētu sensoru, es izmantoju līdzīgu pieeju iepriekš aprakstītajai 4. darbībai, atkal izmantojot sensoru #1 kā atsauci. Tomēr iepriekš teiktais, es nesen tīmeklī atradu lielisku rakstu, kurā aprakstīts, kā kalibrēt mitruma sensorus. Es varētu kādreiz nākotnē izmēģināt šo pieeju. Sensora vērtības ir relatīvā mitruma %vecumā.
8. solis: MQTT tēmu nosaukšanas konvencija
![Konvencija par tēmu nosaukšanu MQTT Konvencija par tēmu nosaukšanu MQTT](https://i.howwhatproduce.com/images/005/image-12984-39-j.webp)
![Konvencija par tēmu nosaukšanu MQTT Konvencija par tēmu nosaukšanu MQTT](https://i.howwhatproduce.com/images/005/image-12984-40-j.webp)
Kā minēts iepriekšējā pamācībā (šeit), es atrisināju tēmas nosaukšanas konvenciju, kas aprakstīta 1. attēlā.
Proti, "AccessMethod/DeviceType/WhichDevice/Action/SubDevice" Tas nav ideāls, taču tas ļauj izmantot noderīgus filtrus, lai redzētu visas sensora izejas noteiktā parametru tēmā, tādējādi ļaujot viegli salīdzināt, kā parādīts 2. attēlā ar MQTTSpy.
Šis projekts ir pirmais gadījums, kad vienā ierīcē ir vairāki viena veida publikāciju izcelsmes avoti. ti. Divi temperatūras/mitruma sensori no iekšējām un ārējām apakšierīcēm.
Tas arī atbalsta pietiekami paplašināmas loģiskas funkcionalitātes grupas noteiktā IoT ierīcē.
Īstenojot šīs tēmas programmatūrā, es izmantoju grūti kodētas tēmu virknes ar fiksētiem, iegultiem ciparu identifikatoriem katrai ierīcei, nevis dinamiski ģenerējot tēmas izpildes laikā, lai ietaupītu RAM un saglabātu augstu veiktspēju.
Piezīme. Ja neesat pārliecināts, kā izmantot MQTTSpy, skatiet šeit 'MQTT brokera iestatīšana'. 2. daļa: IoT, mājas automatizācija”
9. darbība: atkļūdošana un kļūdu meklēšana
![Atkļūdošana un kļūdu meklēšana Atkļūdošana un kļūdu meklēšana](https://i.howwhatproduce.com/images/005/image-12984-41-j.webp)
Kopumā saviem hobiju projektiem, ja iespējams, es mēdzu izveidot reprezentatīvu aparatūras prototipu, pret kuru programmatūra ir izstrādāta, man reti rodas problēmas, integrējot programmatūru galīgajā platformas aparatūrā.
Tomēr šajā gadījumā es saskāros ar dīvainu periodisku kļūdu, kuras dēļ dažas fonēmas skanēja, bet citas ne.
Pēc sākotnējās Speech Synth PCB atkļūdošanas, izmantojot Arduino Uno, lai iegūtu fonēmas un pierādītu, ka šī plate darbojas, es izmantoju I2C līnijas starp IoT PCB un Speech Synth PCB. Skatīt 1. attēlu iepriekš.
Uz pēdām var skaidri redzēt “zāģa zobu”/eksponenciālo malu līdz I2C signālam.
Tas parasti norāda, ka I2C pievilkšanas vērtības ir pārāk augstas, neļaujot līnijas spriegumam atjaunoties pietiekami ātri atvērtā kanalizācijas ķēdē.
Kā “darbs apkārt” es paralēlēju divus smt pull up rezistorus R12 un R13 ar 10K, lai iegūtu 4K7 un, protams, runas sintēze “iedzīvojās”
Šāda veida kļūmes ir pretējas tam, kas var notikt, atkļūdojot šāda veida projektus. Parasti lielākajai daļai no I2C balstītajiem moduļiem, kas iegādāti no ebay, mēdz būt jau uzstādīti 10K vai 4K7 pievilkšanas mehānismi. Ja plānojat izmantot> 5 I2C moduļus, katrs ar 4K7 pull up, tad kopējā slodze ir 940R, kas būs pārāk liela priekšnieka izvades stadijai. Labojums būtu atdalīt visus moduļus, izņemot vienu uzvilkšanas rezistoru komplektu katrā modulī. Vēlams to, kurš fiziski atrodas vistālāk no meistara.
Noderīgs padoms un vērts to paturēt prātā, veidojot elektroniku ar I2C ierīcēm.
10. darbība: dizaina pārbaude
![Image Image](https://i.howwhatproduce.com/images/005/image-12984-43-j.webp)
![](https://i.ytimg.com/vi/MwtR3u_uS0M/hqdefault.jpg)
![Dizaina pārbaude Dizaina pārbaude](https://i.howwhatproduce.com/images/005/image-12984-44-j.webp)
![Dizaina pārbaude Dizaina pārbaude](https://i.howwhatproduce.com/images/005/image-12984-45-j.webp)
Pārbaude tika veikta, izmantojot divas metodikas; Manuāli un automatizēti.
Pirmā, manuālā un parasti izmantotā sākotnējā koda izstrādes laikā bija MQTT Spy izmantošana, lai izmantotu visas pieejamās abonētās tēmas un pārbaudītu publicētās atbildes (attēlots 2. attēlā iepriekš). Tā kā šis ir manuāls process, koda izstrādes gaitā tas var būt laikietilpīgs un pakļauts kļūdām, lai gan manuāla izpilde nodrošina 100% pārklājumu.
MQTTSpy tika izvēlēts manuālai pārbaudei, jo tas ir lielisks rīks, lai ar rokām formatētu noteiktu lietderīgo slodzi un to viegli publicētu jebkurā tēmā. Tas parāda arī skaidru žurnālu ar laika zīmogu, kas ir ļoti noderīgs atkļūdošanai (3. attēls iepriekš).
Otra, automatizēta pieeja tika izmantota, jo avota kods kļuva sarežģītāks (> 3700 rindas). Palielināta sarežģītība nozīmē ilgākus manuālos testēšanas ciklus un sarežģītākus testus. Lai uzlabotu pārbaužu uzticamību, determinismu un kvalitāti, tika izmantota automatizēta testēšana, izmantojot python testu vadītāju (1. attēls). Skatiet 10. darbību šajā pamācībā par to, kā tika ieviesta automatizētā testēšana. Pilna šajā instrukcijā izmantoto automatizēto testu kopija ir pieejama šeit.
Iepriekš ir parādīts video par automātiskās pārbaudes secību. Secība veic šādas darbības;
-
Automatizēts, izmantojot MQTT
- Pievienojieties MQTT mugurkaulam un paziņojiet par “System Ready”
- Vingrinājums Zaļā gaismas diode
- Vingrinājums Sarkana gaismas diode
- Exercise Blue LED
- Pārbaudiet, vai Digital Pot darbojas
- Runājiet, izmantojot fonēmas
- Runājiet, izmantojot fonēm heksadecimālos kodus
- Runājiet, izmantojot labotus frāžu kodus
- Nedaudz Dr Who un Daleks jautri.
-
Manuāli, izmantojot
- Vingrinājuma zilā gaismas diode
- Vingrinājums Sarkana gaismas diode
- Runājiet fiksētas frāzes “Stīvens Kvins”, “Sistēma gatava” un “Sveika pasaule”
-
Ir HTTP serveris, apkalpo
- Sīkāka informācija par runas sintezēšanas mikroshēmu
- Sīkāka informācija par MQTT
11. solis. Secinājums
![Secinājums Secinājums](https://i.howwhatproduce.com/images/005/image-12984-46-j.webp)
Lai gan tas prasīja daudz pūļu ar failiem un urbjiem utt., Īpaši skaļruņu režģim, es domāju, ka rezultāts ir estētiski pievilcīgs un iesaiņots jaukā, nelielā korpusā. Es būtu varējis to samazināt, bet tam vajadzēja iet uz vienu PCB, un es to apzināti sadalīju divās daļās, lai vēlāk varētu atkārtoti izmantot PCB citiem projektiem. Tātad tas ir laimīgs kompromiss.
Programmatūra darbojas labi, IoT ierīce jau ilgu laiku ir stabili darbojusies bez problēmām.
Esmu uzraudzījis temperatūru un mitrumu, izmantojot Grafana, un salīdzinājis ar ierīci, kas atrodas līdzās. Abas apkārtējās vērtības ir labi korelējušas, kas nozīmē, ka kalibrēšana ir pamatota (vai vismaz tās ir līdzīgas).
Es pārtraucu īstenot vārdu komandu ('WFD/SpeechTH/1/Word/Command'), jo man pietrūka laika un man vajadzēja turpināt. Es varu to vēlreiz apmeklēt, ja un kad es izveidoju MySQL datu bāzi. Šobrīd es izmantoju InfluxDB.
12. darbība. Izmantotās atsauces
Lai apkopotu šo pamācību, tika izmantoti šādi avoti; IoT Retro runas sintēzes ierīces avota kods (tajā ir visa kopija)
https://github.com/SteveQuinn1/IoT_Retro_Speech_Synthesis_SP0256_AL2
PubSubClient.h
- Autors: Niks O'Līrijs
- Mērķis: Ļauj ierīcei publicēt vai abonēt MQTT tēmas ar noteiktu starpnieku
- No:
DHT.h
- Autors: Adafruit
- Mērķis: Arduino bibliotēka DHT11DHT22 utt. Temperatūras un mitruma sensori
- No:
Adafruit_AM2320.h/Adafruit_Sensor.h
- Autors: Adafruit
- Mērķis: Arduino bibliotēka AM2320 utt. Temperatūras un mitruma sensors
- No:
MCP4561_DIGI_POT.h
- Autors: Stīvs Kvins
- Mērķis: Arduino bibliotēka digitālajam potenciometram MCP4561
- No:
Adafruit_MCP23017.h
- Autors: Stīvs Kvins
- Mērķis: Arduino bibliotēka MCP23017 I2C portu paplašinātājam. Šī ir GITHub dakša no Adafruit-MCP23017-Arduino-Library, no Adafruit.
- No:
Prieka pēc
https://haynes.com/en-gb/
PCB ražošana
https://jlcpcb.com/
Papildu Arduino bibliotēku instalēšana
https://www.arduino.cc/en/Guide/Libraries
Kā pārbaudīt un kalibrēt mitruma sensoru
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_06_06_06_06 /
SP0256-AL2 datu lapa
https://www.futurebots.com/spo256.pdf
Runas mikroshēmu veikals
https://www.speechchips.com/shop/
![Arduino konkurss 2019 Arduino konkurss 2019](https://i.howwhatproduce.com/images/005/image-12984-47-j.webp)
![Arduino konkurss 2019 Arduino konkurss 2019](https://i.howwhatproduce.com/images/005/image-12984-48-j.webp)
Otrā vieta Arduino konkursā 2019
Ieteicams:
Nākamās paaudzes mājas automatizācija, izmantojot Eagle Cad (1. daļa - PCB): 14 soļi
![Nākamās paaudzes mājas automatizācija, izmantojot Eagle Cad (1. daļa - PCB): 14 soļi Nākamās paaudzes mājas automatizācija, izmantojot Eagle Cad (1. daļa - PCB): 14 soļi](https://i.howwhatproduce.com/images/001/image-133-14-j.webp)
Nākamās paaudzes mājas automatizācija, izmantojot Eagle Cad (1. daļa - PCB): Ievads: Kāpēc es saku tās nākamo paaudzi: tāpēc, ka tajā tiek izmantotas dažas sastāvdaļas, kas ir daudz labākas nekā tradicionālās mājas automatizācijas ierīces. Tas var vadīt ierīces, izmantojot: lietotnes Google balss komandu skārienpaneli ierīces vadībā
Mājas automatizācija, izmantojot Raspberry Pi Matrix Voice un Snips (2. daļa): 8 soļi
![Mājas automatizācija, izmantojot Raspberry Pi Matrix Voice un Snips (2. daļa): 8 soļi Mājas automatizācija, izmantojot Raspberry Pi Matrix Voice un Snips (2. daļa): 8 soļi](https://i.howwhatproduce.com/images/009/image-26945-j.webp)
Mājas automatizācija, izmantojot Raspberry Pi Matrix Voice un Snips (2. daļa): Mājas automatizācijas atjaunināšana, izmantojot Raspberry Pi Matrix Voice un Snips. Šajā PWM izmanto ārējo gaismas diodes un servomotoru vadīšanai Visa informācija, kas sniegta 1. daļā
Runas atpazīšana, izmantojot Google runas API un Python: 4 soļi
![Runas atpazīšana, izmantojot Google runas API un Python: 4 soļi Runas atpazīšana, izmantojot Google runas API un Python: 4 soļi](https://i.howwhatproduce.com/images/010/image-28330-j.webp)
Runas atpazīšana, izmantojot Google runas API un Python: Runas atpazīšana Runas atpazīšana ir daļa no dabiskās valodas apstrādes, kas ir mākslīgā intelekta apakšlauks. Vienkārši sakot, runas atpazīšana ir datora programmatūras spēja noteikt vārdus un frāzes runātajā valodā
IoT tīkla kontrolieris. 9. daļa: IoT, mājas automatizācija: 10 soļi (ar attēliem)
![IoT tīkla kontrolieris. 9. daļa: IoT, mājas automatizācija: 10 soļi (ar attēliem) IoT tīkla kontrolieris. 9. daļa: IoT, mājas automatizācija: 10 soļi (ar attēliem)](https://i.howwhatproduce.com/images/004/image-9146-14-j.webp)
IoT tīkla kontrolieris. 9. daļa: IoT, mājas automatizācija: atruna IZLASIET ŠO PIRMAJI ievēlēt
WiFi IoT temperatūras un mitruma sensors. Daļa: 8 IoT, mājas automatizācija: 9 soļi
![WiFi IoT temperatūras un mitruma sensors. Daļa: 8 IoT, mājas automatizācija: 9 soļi WiFi IoT temperatūras un mitruma sensors. Daļa: 8 IoT, mājas automatizācija: 9 soļi](https://i.howwhatproduce.com/images/001/image-784-115-j.webp)
WiFi IoT temperatūras un mitruma sensors. 8. pants. IoT, mājas automatizācija: preambula 4. daļa: IoT, mājas automatizācija, ieskaitot visu nepieciešamo programmatūras funkcionalitāti, lai gūtu panākumus