Përmbajtje:

Sinteza Retro e të folurit. Pjesa: 12 IoT, Automatizimi në shtëpi: 12 hapa (me fotografi)
Sinteza Retro e të folurit. Pjesa: 12 IoT, Automatizimi në shtëpi: 12 hapa (me fotografi)

Video: Sinteza Retro e të folurit. Pjesa: 12 IoT, Automatizimi në shtëpi: 12 hapa (me fotografi)

Video: Sinteza Retro e të folurit. Pjesa: 12 IoT, Automatizimi në shtëpi: 12 hapa (me fotografi)
Video: ЗАПРЕЩЁННЫЕ ТОВАРЫ с ALIEXPRESS 2023 ШТРАФ и ТЮРЬМА ЛЕГКО! 2024, Nëntor
Anonim
Image
Image
Sinteza e të folurit retro. Pjesa: 12 IoT, Automatizimi i Shtëpisë
Sinteza e të folurit retro. Pjesa: 12 IoT, Automatizimi i Shtëpisë

Ky artikull është i 12 -ti në një seri mbi udhëzimet e automatizimit të shtëpisë që dokumentojnë se si të krijoni dhe integroni një pajisje IoT Retro Speece Synthesis në një sistem ekzistues të automatizimit të shtëpisë duke përfshirë të gjithë funksionalitetin e nevojshëm të softuerit për të mundësuar vendosjen e suksesshme brenda një mjedisi shtëpiak.

Figura 1 tregon pajisjen e përfunduar të sintezës së të folurit IoT dhe Figura 2 tregon të gjitha pjesët përbërëse të përdorura në prototip të cilat ishin zvogëluar faktorin e formës për të shkuar në produktin përfundimtar.

Video tregon pajisjen në veprim (gjatë testimit).

Prezantimi

Siç u përmend më lart, ky Udhëzues detajon se si të bëni një pajisje IoT Retro Speece Synthesis dhe bazohet rreth Instrumenteve të Përgjithshëm SP0256-AL2.

Qëllimi kryesor është shtimi i sintezës së zërit 'old school' në një rrjet IoT. Pse mund të pyesni për 'old school'? Epo, sepse isha rreth viteve 80 kur këto gjëra u prodhuan për herë të parë dhe e ndërfaqa një në BBC Micro, kështu që për mua ka një shkallë nostalgjie që rrethon SP0256-AL2.

Unë preferoj më shumë sfidën e të kuptuarit se çfarë në tokë po thuhet nga ky zë i shëndoshë Dalek sesa të dëgjoj tonet dulcet të një jehoneje hipster Amazon ose Siri. Ku është sfida në atë që ju pyes?

Oh, dhe për të mos përmendur unë gjithashtu kam një 'ngarkesë qese' ICs 'SP0256-AL2' të shtrirë përreth.

Pajisja është gjithashtu e aftë të lexojë temperaturën dhe lagështinë lokale, kështu që zgjeron më tej pajisjen e ambientit të infrastrukturës sime ekzistuese IoT duke u lidhur me rrjetin IoT të bazuar në MQTT/OpenHAB të detajuar në këtë seri mbi automatizimin e shtëpisë (HA), duke u bazuar në kodin e ripërdorur të marrë nga këtu.

Në zemër të saj është një ESP8266-07 i cili është përgjegjës për komunikimet MQTT dhe kontrollimin e të gjithë funksionalitetit të sistemit (qasja në kartën SD, kontrolli led, ndjeshmëria e temperaturës/lagështisë, kontrolli i volumit, sinteza e të folurit). Pajisja është plotësisht e konfigurueshme përmes skedarëve të tekstit të ruajtur në një kartë SD lokale, megjithëse parametrat e kalibrimit dhe sigurisë së rrjetit gjithashtu mund të programohen përmes botimeve të largëta MQTT.

Cilat pjesë më duhen?

Shikoni faturën e materialeve këtu

Çfarë programi më nevojitet?

  • Arduino IDE 1.6.9,
  • Arduino IDE e konfiguruar për të programuar ESP8266-07 (njësoj si kjo). Pastaj konfiguroni IDE siç tregohet në përshkrimin e detajuar të dhënë në skicën e softuerit këtu,
  • Python v3.5.2 nëse dëshironi të përdorni aftësinë e testimit të automatizuar, detajet këtu

Çfarë mjetesh më duhen?

  • Mikroskop të paktën x3 (për bashkim SMT),
  • Mjeti shtrëngues i lidhësit Molex (për lidhësit JST),
  • SMD hekuri i saldimit (me stilolaps fluksi të lëngshëm dhe saldim me bërthamë fluksi),
  • Kaçavida (të ndryshme),
  • Armë e nxehtë,
  • Stërvitje (të ndryshme),
  • Pajisja kundër dore,
  • Skedarë (të ndryshëm),
  • Dremel (copa të ndryshme),
  • Vesi i fortë (i vogël dhe i madh, si një shok pune i zi dhe i stolisur),
  • Bisturi,
  • Kalibra Vernier (të përdorur për të matur fabrikimin dhe të dobishme për madhësinë e komponentëve të PCB),
  • Çelësa dhe drejtues arrash (të ndryshme),
  • Piskatore të forta (për bashkim SMT),
  • Sharrë hekuri Junior,
  • Stërvitje (me copa të ndryshme stërvitore),
  • Pincë të imëta (me majë dhe hundë),
  • Prerës të skuqur,
  • DMM me kontroll të vazhdueshëm të dëgjueshëm,
  • Shtrirja dixhitale me dy kanale (e përshtatshme për korrigjimin e sinjaleve)

Çfarë aftësish më duhen?

  • Shumë durim,
  • Një shkathtësi e madhe manuale dhe koordinim i shkëlqyer i dorës/syve,
  • Aftësi të shkëlqyera të saldimit,
  • Aftësi të shkëlqyera të fabrikimit,
  • Aftësia për të vizualizuar në 3 dimensione,
  • Disa njohuri për zhvillimin e softuerit me 'C' (nëse doni të kuptoni kodin burimor),
  • Disa njohuri për Python (si të instaloni dhe ekzekutoni skriptet, nëse doni të përdorni testimin e automatizuar),
  • Njohuri për Arduino dhe IDE -në e tij,
  • Njohuri të mira të elektronikës,
  • Pak kuptim i rrjetit tuaj në shtëpi.

Temat e Mbuluara

  • Manuali i perdoruesit
  • Vështrim i qarkut
  • Prodhimi dhe montimi i PCB -ve
  • Fabrikim
  • Vështrim i Përgjithshëm i Sistemit Softuerik
  • Pasqyrë e softuerit
  • Kalibrimi i sensorit
  • Konventa e Emërtimit të Temës MQTT
  • Korrigjimi dhe gjetja e gabimeve
  • Testimi i Dizajnit
  • Përfundim
  • Referencat e përdorura

Lidhjet e serive Për Pjesën 11: Konsola IoT Desktop. Pjesa: 11 IoT, Automatizimi i Shtëpisë

Hapi 1: Manuali i Përdoruesit

Manuali i perdoruesit
Manuali i perdoruesit
Manuali i perdoruesit
Manuali i perdoruesit
Manuali i perdoruesit
Manuali i perdoruesit

Fotografia 1 më sipër tregon pjesën e përparme të sintetizuesit Retro Speech dhe figura 2 pjesën e pasme.

Fronti i rrethimit

  1. Kryetar Grill
  2. Foleja e kufjeve 3.5 mm: Altoparlanti kryesor është i çaktivizuar kur futet foleja 3.5 mm.
  3. LED i kuq: Ky LED ndriçon ndërkohë që një fjalë flitet kur fillohet fjalimi përmes një kërkese
  4. LED LED blu: Ky LED ndriçon ndërsa një fjalë flitet kur fillohet të folurit përmes një kërkese MQTT IoT.

Rrethimi i pasmë

  1. Butoni i Rivendosjes: Përdoret për të rivendosur fort pajisjen IoT ESP8266-07.
  2. Butoni i ndezjes: Kur përdoret së bashku me butonin e rivendosjes, mund të ndizet përsëri ESP8266-07.
  3. Priza e Antenës WiFi (SMA Plug): Për antenën e jashtme WiFi që jep më pak zbutje të rrugës RF pasi mbyllja është prej alumini.
  4. Porta e Jashtme e Programimit: Për të hequr nevojën për të hequr mbylljen për të fituar qasje në ESP8266-07 për qëllime të riprogramimit. Kunjat e programimit të ESP8266-07 janë nxjerrë në portën e jashtme të programimit. Figura 3 është përshtatësi i programimit.
  5. LED i gjelbër: Ky është sistemi IoT i udhëhequr dhe përdoret për të treguar statusin diagnostikues të pajisjes dhe nisur dhe gjatë funksionimit.
  6. Sensori i jashtëm i temperaturës/lagështisë (AM2320)
  7. Foleja e Kartës SD: Kjo mban të gjitha të dhënat e konfigurimit/sigurisë së bashku me faqet e serverit në internet.
  8. Fole furnizimi 2.1mm 6vdc

Hapi 2: Vështrim i qarkut

Vështrim i qarkut
Vështrim i qarkut
Vështrim i qarkut
Vështrim i qarkut

Pajisja Retro Speech Synth përfshin dy PCB;

  • RetroSpeechSynthIoTBoard: Ky është një PCB e përgjithshme, e përdorshme ESP8266-07/12/12E/13
  • RetroSpeechSynthBoard: Kjo është një PCB e përgjithshme SP0256-AL2

Bordi Retro Speech Synth IoT

Ky tabelë lejon bashkimin e drejtpërdrejtë të një bazeje katrore ESP8266-07/12/12E/13 ose 0.1 të vendosur në një PCB mbajtëse ESP8266.

Bordi është krijuar për të zgjeruar hyrjen/daljen e tij përmes një lidhjeje I2C dhe mund të mbështesë nivelet e furnizimit 3v3 ose 5v nëpërmjet Q1, Q2, R8-13.

Lidhja me tabelën arrihet nëpërmjet njërës prej dy titujve J2 dhe J4, një fjongo DIL IDC me 8 drejtime ose JST/Molex me 5 drejtime.

Sigurimi i U2 dhe U3 3.3v dhe 5v në rregullimin e furnizimit në bord. Përndryshe, nëse kërkohet një kapacitet më i madh aktual, rregullatorët e shuntit serial jashtë bordit mund të lidhen nëpërmjet lidhësve J10 dhe J11 respektivisht.

Lidhësit J1 dhe J3 ofrojnë mbështetje të jashtme të kartës SD mbi SPI. J1 është projektuar për një Molex me 8 drejtime dhe J3 ka pin të drejtpërdrejtë për mbështetjen e pajtueshmërisë me pin për një PCB të kartës SD jashtë raftit me mbështetje 3v3 ose 5v.

Bordi Retro Speech Synth

Kontrolli i këtij bordi është mbi një lidhje të pajtueshme me I2C 5v nëpërmjet J1, J5 ose J6, një lidhje JST/Molex me 4 drejtime, DIL IDC me 8 drejtime ose shirit fjongo IDC me 8 drejtime.

U2 MPC23017 siguron ndërfaqen I2C në paralele me U3 SP0256-AL2 dhe LEDS D1 (E gjelbër), D2 (E kuqe) dhe D3 (Blu). Dalja e Speech Synth ushqehet me amp audio CR1 TBA820M nëpërmjet tenxhere analoge RV1 ose tenxhere dixhitale U1 MCP4561.

Tenxhere dixhitale U1 kontrollohet gjithashtu përmes I2C në përputhje me 5v.

Shënim: Pajisja ESP8266-07 u zgjodh pasi ka një lidhës integral IPX RF që lejon një Antenë të jashtme WiFi të shtohet në rrethimin e aluminit.

Hapi 3: Prodhimi dhe montimi i PCB -ve

Prodhimi dhe montimi i PCB -ve
Prodhimi dhe montimi i PCB -ve
Prodhimi dhe montimi i PCB -ve
Prodhimi dhe montimi i PCB -ve
Prodhimi dhe montimi i PCB -ve
Prodhimi dhe montimi i PCB -ve
Prodhimi dhe montimi i PCB -ve
Prodhimi dhe montimi i PCB -ve

Fotografitë 1 dhe 2 tregojnë nën-kuvendet e kompletuara dhe të lidhura me PCB të vendosura në nënshtresën e rrethimit të aluminit.

Të dy PCB -të u krijuan duke përdorur Kicad v4.0.7, të prodhuara nga JLCPCB dhe të montuara nga unë dhe të paraqitura më lart në Fotografitë 3 deri në 13.

Hapi 4: Fabrikimi

Fabrikim
Fabrikim
Fabrikim
Fabrikim
Fabrikim
Fabrikim

Figura 1 tregon një plan urbanistik të Haynes Manual të të gjitha pjesëve të parafabrikuara para montimit përfundimtar.

Fotografitë 2… 5 tregojnë shkrepje të ndryshme gjatë fabrikimit të rrethimit me hapësira minimale.

Hapi 5: Vështrim i përgjithshëm i sistemit të softuerit

Vështrim i Përgjithshëm i Sistemit Softuerik
Vështrim i Përgjithshëm i Sistemit Softuerik
Vështrim i Përgjithshëm i Sistemit Softuerik
Vështrim i Përgjithshëm i Sistemit Softuerik

Kjo pajisje e sintezës së të folurit IoT Retro përmban gjashtë përbërës kryesorë të softuerit siç tregohet në figurën 1 më sipër.

Kartë SD

Ky është sistemi i jashtëm i skedimit të SD SPI Flash dhe përdoret për të mbajtur informacionin e mëposhtëm (shiko figurën 2 më lart);

  • Ikonat dhe 'Speech Synth Configuration Home Page' index.htm: Shërbyer nga pajisja IoT kur nuk është në gjendje të lidhet me rrjetin tuaj IoT WiFi (zakonisht për shkak të informacionit të pasaktë të sigurisë, ose përdorimit të parë) dhe i siguron përdoruesit një mjet i konfigurimit nga distanca të sensorëve pa pasur nevojë të rindezni përmbajtjen e re SD. Gjithashtu mban index1.htm, mqtt.htm dhe sp0256.htm, këto janë faqet e internetit të shërbyera në vend të arritshme përmes një shfletuesi në internet duke lejuar kontroll të kufizuar të sintetit të të folurit mbi
  • Informacioni i Sigurisë: Ky mban informacionin e përdorur në fuqizimin e pajisjes IoT për t'u lidhur me rrjetin tuaj IoT WiFi dhe ndërmjetësin MQTT. Informacioni i paraqitur përmes 'Faqja Kryesore e Konfigurimit të Fjalimit Synth' shkruhet në këtë skedar ('secvals.txt').
  • Informacioni i Kalibrimit: Informacioni i përmbajtur brenda skedarëve ('calvals1.txt' dhe 'calvals2.txt') përdoret për të kalibruar sensorët e temperaturës/lagështisë në bord nëse është e nevojshme. Konstantet e kalibrimit mund të shkruhen në pajisjen IoT përmes komandave MQTT nga një ndërmjetës MQTT ose duke ndezur përsëri kartën SD. 'calvals1.txt' i përket sensorit AM2320 dhe 'calvals2.txt' DHT22.
  • Vlerat e sistemit të konfigurueshme nga përdoruesi: Informacioni i përmbajtur në këtë skedar ('confvals.txt'), i zgjedhur nga përdoruesi, kontrollon përgjigje të caktuara të sistemit, të tilla si niveli fillestar i volumit dixhital, njoftimi automatik 'i gatshëm për sistemin' në pajtimin e ndërmjetësit MQTT, etj.

Serveri mDNS

Ky funksionalitet thirret kur pajisja IoT nuk ka arritur të lidhet me rrjetin tuaj WiFi si një stacion WiFi dhe në vend të kësaj është bërë një pikë aksesi WiFi diçka e ngjashme me një ruter WiFi vendas. Në rastin e një ruteri të tillë, ju zakonisht lidheni me të duke futur Adresën IP të diçkaje si 192.168.1.1 (zakonisht e shtypur në një etiketë të ngjitur në kuti) direkt në shiritin e URL -së të shfletuesit tuaj, ku do të merrni një faqe identifikimi për të hyrë emrin e përdoruesit dhe fjalëkalimin për t'ju lejuar të konfiguroni pajisjen. Për ESP8266-07 në modalitetin AP (modaliteti i Pikës së hyrjes) pajisja është e parazgjedhur në adresën IP 192.168.4.1, megjithatë me serverin mDNS që funksionon ju duhet vetëm të futni emrin miqësor të njeriut 'SPEECHSVR.local' në shiritin URL të shfletuesit shihni 'Faqja Kryesore e Konfigurimit të Speech Synth'.

Klienti MQTT

Klienti MQTT siguron të gjithë funksionalitetin e nevojshëm për; lidheni me ndërmjetësin tuaj të rrjetit IoT MQTT, regjistrohuni në temat e zgjedhjes suaj dhe publikoni ngarkesa në një temë të caktuar. Me pak fjalë, ai parashikon funksionalitetin bazë të IoT.

Web Serveri

Ky web server ka dy qëllime;

  1. Nëse pajisja IoT nuk është në gjendje të lidhet me rrjetin WiFi, SSID -i i të cilit, P/W etj. Është përcaktuar në skedarin e Informacionit të Sigurisë të mbajtur në Kartën SD, pajisja do të bëhet një Access Point. Pasi të lidheni me rrjetin WiFi të siguruar nga Pika e Hyrjes, prania e një Web Server HTTP ju lejon të lidheni drejtpërdrejt me pajisjen dhe të ndryshoni konfigurimin e tij përmes përdorimit të një Shfletuesi Web HTTP, qëllimi i tij është të shërbejë në 'Speech Synth Configuration Faqja e internetit e Faqes kryesore e cila gjithashtu mbahet në Kartën SD.
  2. Sapo Pajisja e Sintezës Retro Speech IoT të lidhet me rrjetin WiFi dhe ndërmjetësin MQTT, nëse arrihet, HTTP Web Server do të shërbejë automatikisht një faqe HTTP në internet duke lejuar kontroll të kufizuar të pajisjes IoT për të folur një përzgjedhje të frazave fikse dhe aftësinë për të ciklit dy LEDs të kuq dhe blu para.

Stacioni WiFi

Ky funksionalitet i jep pajisjes IoT aftësinë për t'u lidhur me një rrjet WiFi vendas duke përdorur parametrat në skedarin e Informacionit të Sigurisë, pa këtë pajisja juaj IoT nuk do të jetë në gjendje të regjistrohet/publikojë në ndërmjetësin MQTT.

Pika e hyrjes WiFi

Aftësia për t'u bërë një pikë hyrjeje WiFi është një mjet me të cilin pajisja IoT ju lejon të lidheni me të dhe të bëni ndryshime të konfigurimit përmes një stacioni WiFi dhe një shfletuesi (siç është Safari në Apple iPad). Kjo pikë hyrje transmeton një SSID = "SPEECHSYN" + 6 shifrat e fundit të adresës MAC të pajisjes IoT. Fjalëkalimi për këtë rrjet të mbyllur quhet me imagjinatë 'PASSWORD'

Hapi 6: Vështrim i përgjithshëm i softuerit

Pasqyrë e softuerit
Pasqyrë e softuerit
Pasqyrë e softuerit
Pasqyrë e softuerit
Pasqyrë e softuerit
Pasqyrë e softuerit

Parathënie

Për të përpiluar me sukses këtë kod burim do t'ju duhet një kopje lokale e kodit dhe bibliotekat e përshkruara më poshtë në Hapin 12, Referencat e Përdorura. Nëse nuk jeni të sigurt se si të instaloni një bibliotekë Arduino shkoni këtu.

Vështrim i përgjithshëm

Softueri përdor makinën e gjendjes siç tregohet në figurën 1 më lart (kopja e plotë e burimit në depon time të GitHub këtu). Ekzistojnë 5 shtete kryesore siç përshkruhen më poshtë;

  • FITIMI

    Kjo gjendje fillestare është gjendja e parë e futur pas ndezjes së energjisë

  • JOFONFIGJ

    Kjo gjendje futet nëse pas ndezjes zbulohet një skedar i pavlefshëm ose i humbur secvals.txt. Gjatë kësaj gjendje Faqja e konfigurimit është e dukshme

  • Pritet në veriperëndim

    Kjo gjendje është kalimtare, e futur ndërsa nuk ekziston asnjë lidhje me rrjetin WiFi

  • Në pritje të MQTT

    Kjo gjendje është kalimtare, futet pasi është bërë një lidhje rrjeti WiFi dhe përderisa nuk ekziston asnjë lidhje me një ndërmjetës MQTT në atë rrjet

  • AKTIV

    Kjo është gjendja normale operacionale e futur pasi të jetë krijuar një lidhje WiFi dhe një lidhje ndërmjetësi MQTT. Thisshtë gjatë kësaj gjendje temperatura, indeksi i nxehtësisë dhe lagështia në Pajisjen e Sintezës Retro të IoT Retro i botohet rregullisht Ndërmjetësit MQTT. Në këtë gjendje, Faqja Kryesore e Speech Synth është e dukshme

Ngjarjet që kontrollojnë kalimet midis gjendjeve janë përshkruar në figurën 1 më lart. Kalimet midis shteteve rregullohen gjithashtu nga parametrat e mëposhtëm SecVals;

  • Adresa IP e ndërmjetësit të parë MQTT. Në formë dhjetore me pika AAA. BBB. CCC. DDD
  • Porti i dytë i ndërmjetësit MQTT. Në formë të plotë.
  • Lidhja e tretë e ndërmjetësit MQTT përpiqet të bëjë para se të kaloni nga modaliteti STA në modalitetin AP. Në formë të plotë.
  • Rrjeti i 4 -të WiFi SSID. Në tekst të lirë.
  • Fjalëkalimi i 5 -të i rrjetit WiFi. Në tekst të lirë.

Siç u përmend më lart, nëse pajisja IoT nuk është në gjendje të lidhet si një Stacion WiFi me rrjetin WiFi të cilët SSID dhe P/W përcaktohen në sekvale. Teksti i mbajtur në Kartën SD pajisja IoT do të bëhet një Access Point. Pasi të lidhet me këtë pikë aksesi, do të shërbejë 'Faqja Kryesore e Konfigurimit të Fjalës Synth' siç tregohet më sipër në Figurën 2 (duke futur ose 'SPEECHSVR.local' ose 192.168.4.1 në shiritin e adresës së URL -së të shfletuesit tuaj). Kjo faqe në shtëpi lejon rikonfigurimin e Pajisjes së Sintezës Retro IoT Retroch përmes një shfletuesi

Qasja në distancë ndërsa është në gjendje aktive

Pasi të lidheni me ndërmjetësin MQTT është gjithashtu e mundur që të ri-kalibroni dhe rikonfiguroni pajisjen përmes botimeve të temave MQTT. Skedari calvals.txt ka qasje R/W dhe secvals.txt ka akses të shkruar vetëm të ekspozuar.

Gjithashtu siç u përmend më lart, një herë në modalitetin aktiv është e mundur të hyni në Speech Synth përmes një ndërfaqe HTTP duke futur 'SPEECHSVR.local' ose 192.168.4.1 në shiritin e adresës URL të shfletuesit tuaj. Kjo ndërfaqe e bazuar në HTTP lejon kontrollin bazë të Speech Synth. Fotografitë 3, 4 dhe 5 tregojnë faqet e internetit në dispozicion.

Korrigjimi i përdoruesit

Gjatë sekuencës së nisjes, sistemi i gjelbër i pajisjes IoT i udhëhequr në pjesën e pasme të rrethimit jep reagimet e mëposhtme të korrigjimit;

  • 1 Blic i shkurtër: Asnjë skedar konfigurimi i vendosur në Kartën SD (secvals.txt)
  • 2 Pulsime të shkurtra: Pajisja IoT po përpiqet të lidhet me rrjetin WiFi
  • Ndriçim i vazhdueshëm: pajisja IoT po përpiqet të lidhet me ndërmjetësin MQTT
  • Fikur: Pajisja është aktive.

Funksionaliteti i pajisjes së sintezës retro të IoT Retro në gjendje aktive

Pasi të jetë në gjendje aktive, ESP8266 hyn në një lak të vazhdueshëm duke thirrur funksionet e mëposhtme; timer_update (), checkTemperatureAndHumidity () dhe handleSpeech (). Rezultati neto i të cilit është krijuar për t'i paraqitur përdoruesit një ndërfaqe HTTP ose MQTT, duke i shërbyer në mënyrë të përsosur procesorit të të folurit në bord me fonema sipas kërkesës dhe duke publikuar vlera parametrike lokale të mjedisit mbi MQTT.

Një listë gjithëpërfshirëse e të gjitha abonimeve dhe publikimeve të temave përfshirë vlerat e ngarkesës është përfshirë në kodin burimor.

Hapi 7: Kalibrimi i sensorit

Kalibrimi i sensorit
Kalibrimi i sensorit

Kur pajisja IoT fuqizohet, si pjesë e sekuencës së nisjes, dy skedarë të quajtur 'cavals1.txt' dhe 'cavals2.txt' lexohen nga Karta SD.

Përmbajtja e këtyre skedarëve është konstante e kalibrimit siç tregohet më lart në figurën 1.

  1. 'cavals1.txt': Përdoret nga AM2320 e jashtme
  2. 'cavals2.txt': Përdoret nga DHT22 i brendshëm

Këto konstante të kalibrimit përdoren për të rregulluar leximet e marra nga dy sensorët për t'i sjellë ato në përputhje me një pajisje referimi. Ekziston një vlerë tjetër e cila përcakton një strategji raportimi për secilën pajisje dhe përshkruhet më poshtë së bashku me procedurën e ndjekur për të kalibruar sensorët.

Strategjia e Raportimit

Ky parametër përcakton sesi sensori i largët raporton çdo ndryshim parametrik të ambientit lokal në të. Nëse zgjidhet vlera 0, sensori i largët do të publikojë çdo ndryshim që vëren në temperaturën ose lagështinë sa herë që lexohet sensori përkatës (përafërsisht çdo 10 sekonda). Çdo vlerë tjetër do të vonojë publikimin e një ndryshimi me 1… 60 minuta. Ndryshimi i këtij parametri lejon optimizimin e trafikut të rrjetit MQTT. Duhet të theksohet se të dhënat e temperaturës dhe lagështisë nga DHT22 lexohen në mënyrë alternative për shkak të kufizimeve të sensorit.

Kalibrimi i temperaturës

Për të kalibruar sensorin e temperaturës ndoqa të njëjtin proces siç është përshkruar këtu në hapin 4, përsëri duke përdorur një marrëdhënie të thjeshtë y = mx+c. Kam përdorur Temperaturën IoT, Sensorin e Lagështisë #1 si pajisje referimi. Vlerat nga sensori janë në gradë celcius.

Kalibrimi i lagështisë

Meqenëse nuk kam mjete për të regjistruar ose kontrolluar me saktësi lagështinë lokale të ambientit, për të kalibruar sensorin, unë përdor një qasje të ngjashme me atë të mësipërme, hapin 4, duke përdorur përsëri Sensorin #1 si referencë. Sidoqoftë sa më sipër thashë, kohët e fundit kam gjetur një artikull të shkëlqyeshëm në internet që përshkruan se si të kalibroni sensorët e lagështisë. Unë mund ta provoj këtë qasje diku në të ardhmen. Vlerat nga sensori janë në %moshën e lagështisë relative.

Hapi 8: Konventa e Emërtimit të Temës MQTT

Konventa e Emërtimit të Temës MQTT
Konventa e Emërtimit të Temës MQTT
Konventa e Emërtimit të Temës MQTT
Konventa e Emërtimit të Temës MQTT

Siç u përmend në një Instructable të mëparshëm (këtu) u vendosa në konventën e emërtimit të temës të përshkruar në figurën 1 më lart.

Gjegjësisht, 'AccessMethod/DeviceType/WhichDevice/Action/SubDevice' Nuk është perfekte, por lejon që filtra të dobishëm të aplikohen për të parë të gjitha daljet e sensorit për një temë të dhënë parametrike duke lejuar kështu një krahasim të lehtë si në figurën 2 më sipër me MQTTSpy.

Ky projekt është shembulli i parë ku një pajisje e vetme përmban më shumë se një burim origjinal të të njëjtit lloj botimi. dmth. Dy sensorë të temperaturës/lagështisë, nga nën-pajisjet e brendshme dhe të jashtme.

Ai gjithashtu mbështet grupime logjike të arsyeshme të zgjerueshme të funksionalitetit brenda një pajisjeje të caktuar IoT.

Në zbatimin e këtyre temave në softuer kam përdorur vargje të koduara të temave me identifikues numerikë të fiksuar dhe të ngulitur për secilën pajisje, në krahasim me gjenerimin dinamik të temave në kohën e ekzekutimit, në mënyrë që të kursehet në RAM dhe të mbajë performancën të lartë.

Shënim: Nëse nuk jeni të sigurt se si të përdorni MQTTSpy shihni këtu 'Konfigurimi i një ndërmjetësi MQTT. Pjesa 2: IoT, Automatizimi i Shtëpisë '

Hapi 9: Korrigjimi dhe gjetja e gabimeve

Korrigjimi dhe gjetja e gabimeve
Korrigjimi dhe gjetja e gabimeve

Në përgjithësi, për projektet e mia të hobit, aty ku është e mundur, unë tentoj të ndërtoj një prototip përfaqësues të harduerit, kundër të cilit është zhvilluar softueri, unë rrallë kam ndonjë problem kur integroj softuerin në harduerin e platformës përfundimtare.

Sidoqoftë, me këtë rast hasa në një defekt të çuditshëm të përhershëm me të cilin disa fonema do të tingëllojnë, por të tjerat jo.

Pas një debugimi fillestar të PCB Speech Synth duke përdorur një Arduino Uno për të buruar fonema dhe për të vërtetuar se kjo tabelë po funksiononte, unë mora një shtrirje në linjat I2C midis PCB IoT dhe PCB Speech Synth. Shihni Figurën 1 më lart.

Ju mund të shihni qartë 'dhëmbin e sharrës'/skajin eksponencial të sinjalit I2C në gjurmët.

Ky është zakonisht një tregues se vlerat e tërheqjes së I2C janë shumë të larta duke parandaluar që tensioni i linjës të rikuperohet mjaft shpejt në një qark të hapur kullimi.

Si një "punë përreth" unë paralelizova dy smt tërheqës rezistencat R12 dhe R13 me 10K për të dhënë 4K7 dhe me siguri Speech Synth "shpërtheu në jetë"

Ky lloj dështimi është i kundërt me atë që mund të ndodhë kur debugging këto lloje të projekteve. Në përgjithësi shumica e moduleve të bazuara në I2C të blera nga Ebay kanë tendencë të vijnë me tërheqje 10K ose 4K7 të pajisura tashmë. Nëse keni ndërmend të përdorni> 5 module I2C, secila me tërheqje 4K7, atëherë ngarkesa e përgjithshme është 940R e cila do të jetë shumë e madhe për fazën e daljes së masterit. Rregullimi do të ishte çlidhja e të gjithë, përveç një grupi të rezistencave tërheqëse në secilin modul. Mundësisht ai fizikisht më i largët nga mjeshtri.

Një këshillë e dobishme dhe që ia vlen të merret parasysh kur dizajnoni pajisje elektronike me pajisje I2C.

Hapi 10: Testimi i dizajnit

Image
Image
Testimi i Dizajnit
Testimi i Dizajnit
Testimi i Dizajnit
Testimi i Dizajnit

Testimi u krye duke përdorur dy metodologji; Manual dhe i automatizuar.

E para, manuale dhe përgjithësisht e përdorur gjatë zhvillimit të kodit fillestar ishte përdorimi i MQTT Spy për të ushtruar të gjitha temat e disponueshme të abonuara dhe kontrolluar përgjigjet e publikuara (të përshkruara në figurën 2 më lart). Meqenëse ky është një proces manual, mund të jetë kohë dhe i prirur ndaj gabimeve me zhvillimin e kodit, megjithëse ekzekutimi manual mundëson mbulim 100%.

MQTTSpy u zgjodh për testimin manual sepse është një mjet i shkëlqyeshëm për të formatuar një ngarkesë të caktuar dhe për ta publikuar me lehtësi në çdo temë. Ai gjithashtu shfaq një regjistër të qartë, të vulosur në kohë, i cili është shumë i dobishëm për korrigjimin (figura 3 më lart).

Qasja e dytë, e automatizuar u miratua pasi kodi burimor u bë më kompleks (> 3700 rreshta). Kompleksiteti i shtuar nënkupton cikle më të gjata të testimit manual dhe teste më komplekse. Për të përmirësuar besueshmërinë, determinizmin dhe cilësinë e testeve, testimi i automatizuar u përdor përmes një ekzekutivi të testit python (figura 1). Shihni Hapin #10 në këtë Udhëzues se si u prezantua testimi i automatizuar. Një kopje e plotë e testeve të automatizuara të përdorura në këtë Udhëzues është në dispozicion këtu.

Një video e sekuencës së testimit të automatizuar në punë është treguar më lart. Sekuenca ekzekuton hapat e mëposhtëm;

  • Automatizuar përmes MQTT

    • Lidhuni me shtyllën MQTT dhe shpallni "Sistemi gati"
    • Ushtroni LED të Gjelbër
    • Ushtroni LED të Kuq
    • Ushtroni LED LED
    • Kontrolloni funksionimin e Digital Pot
    • Flisni duke përdorur Fonema
    • Flisni duke përdorur Kodet Hex për Fonemat
    • Flisni duke përdorur kode për rregullimin e frazave
    • Pak argëtim i Dr Who dhe Daleks.
  • Me dorë përmes
    • Ushtroni LED LED
    • Ushtroni LED të Kuq
    • Flisni fraza fikse 'Steven Quinn', 'System Ready' dhe 'Hello World'
    • Keni serverin HTTP, shërbeni

      • Detajet mbi Speech Synth Chip
      • Detajet MQTT

Hapi 11: Përfundim

Përfundim
Përfundim

Edhe pse u desh shumë përpjekje me skedarë dhe stërvitje etj veçanërisht për grilën e altoparlantëve, mendoj se rezultati është estetikisht i këndshëm dhe paketohet në një rrethim të bukur dhe të vogël. Unë mund ta kisha bërë atë më të vogël, por do të ishte e nevojshme të kaloja në një PCB dhe e ndava me qëllim në dy, në mënyrë që të mund t'i ripërdori PCB-të në një datë të mëvonshme për projekte të tjera. Pra, është një kompromis i lumtur.

Softueri funksionon mirë, pajisja IoT ka qenë në funksionim të qëndrueshëm për mjaft kohë tani pa asnjë problem.

Unë kam monitoruar temperaturën dhe lagështinë përmes Grafana dhe krahasohem me një pajisje të vendosur. Dy vlerat e ambientit janë lidhur mirë, duke nënkuptuar se kalibrimi është i arsyeshëm (ose të paktën ato janë të ngjashme).

Ndalova së zbatuari komandën e fjalëve ('WFD/SpeechTH/1/Word/Command') sepse më mbaroi koha dhe duhej të vazhdoja. Unë mund ta ri-vizitoj këtë nëse dhe kur krijoj një bazë të dhënash MySQL. Tani për tani unë jam duke përdorur InfluxDB.

Hapi 12: Referencat e përdorura

Burimet e mëposhtme u përdorën për ta bashkuar këtë Instructable; Kodi burim për Pajisjen e Sintezës Retro IoT Retroch (kjo përmban një kopje të gjithçkaje)

https://github.com/SteveQuinn1/IoT_Retro_Speech_Synthesis_SP0256_AL2

PubSubClient.h

  • Nga: Nick O'Leary
  • Qëllimi: Mundëson që pajisja të publikojë ose të regjistrohet në tema MQTT me një ndërmjetës të caktuar
  • Nga:

DHT.h

  • Nga: Adafruit
  • Qëllimi: Biblioteka Arduino për DHT11DHT22, etj. Sensorë Temp & Lagështie
  • Nga:

Adafruit_AM2320.h/Adafruit_Sensor.h

  • Nga: Adafruit
  • Qëllimi: Biblioteka Arduino për AM2320, etj Sensori Temp & Humidity
  • Nga:

MCP4561_DIGI_POT.h

  • Nga: Steve Quinn
  • Qëllimi: Biblioteka Arduino për potenciometër dixhital MCP4561
  • Nga:

Adafruit_MCP23017.h

  • Nga: Steve Quinn
  • Qëllimi: Biblioteka Arduino për zgjeruesin e portit MCP23017 I2C. Ky është një pirun GITHub nga Adafruit-MCP23017-Arduino-Library, nga Adafruit.
  • Nga:

Per qejf

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

Prodhim PCB

https://jlcpcb.com/

Instalimi i Bibliotekave Shtesë Arduino

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

Si të kontrolloni dhe kalibroni një sensor të lagështisë

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_medium=email&utm_term=0_2565529c4b-ffeee38e54-270487501 /

Fleta e të dhënave SP0256-AL2

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

Dyqan me patate të skuqura

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

Konkursi Arduino 2019
Konkursi Arduino 2019
Konkursi Arduino 2019
Konkursi Arduino 2019

Vrapues në Konkursin Arduino 2019

Recommended: