Բովանդակություն:
- Քայլ 1: Օգտագործողի ձեռնարկ
- Քայլ 2: Շրջանների ակնարկ
- Քայլ 3. PCB- ի արտադրություն և հավաքում
- Քայլ 4: Պատրաստում
- Քայլ 5: Softwareրագրային ապահովման համակարգի ակնարկ
- Քայլ 6: Softwareրագրաշարի ակնարկ
- Քայլ 7: Սենսորների տրամաչափում
- Քայլ 8. MQTT թեմայի անվանման կոնվենցիա
- Քայլ 9. Վրիպազերծում և խափանումների հայտնաբերում
- Քայլ 10: Դիզայնի փորձարկում
- Քայլ 11: Եզրակացություն
- Քայլ 12: Օգտագործված հղումներ
Video: Retro խոսքի սինթեզ: Մաս ՝ 12 IoT, տան ավտոմատացում ՝ 12 քայլ (նկարներով)
2024 Հեղինակ: John Day | [email protected]. Վերջին փոփոխված: 2024-01-30 09:48
Այս հոդվածը 12 -րդն է տնային ավտոմատացման հրահանգների շարքում, որը փաստում է, թե ինչպես կարելի է ստեղծել և ինտեգրել IoT Retro խոսքի սինթեզի սարք գոյություն ունեցող տան ավտոմատացման համակարգում, ներառյալ բոլոր անհրաժեշտ ծրագրակազմը `ներքին միջավայրում հաջող տեղակայման հնարավորություն տալու համար:
Նկար 1 -ը ցույց է տալիս IoT խոսքի սինթեզի ավարտված սարքը, իսկ Նկար 2 -ը ցույց է տալիս նախատիպում օգտագործված բոլոր այն բաղադրամասերը, որոնք ձևական գործոնով կրճատվել են `վերջնական արտադրանքի մեջ մտնելու համար:
Տեսանյութում ցուցադրվում է սարքը գործողության մեջ (փորձարկման ժամանակ):
Ներածություն
Ինչպես նշվեց վերևում, այս հրահանգը մանրամասնում է, թե ինչպես պատրաստել IoT Retro Speech Synthesis Device և հիմնված է General Instruments SP0256-AL2- ի շուրջ:
Նրա հիմնական նպատակը IoT ցանցին «հին դպրոցի» ձայնի սինթեզ ավելացնելն է: Ինչու՞ կարող եք հարցնել «հին դպրոց» -ին: Դե, քանի որ ես մոտ 80-ականներին էի, երբ այս իրերն առաջին անգամ արտադրվեցին, և ես նրանց միացրի իմ BBC Micro- ին, այնպես որ ինձ համար կարոտի որոշակի աստիճան կա SP0256-AL2- ի շուրջ:
Ես գերադասում եմ մարտահրավերը ՝ հասկանալու, թե ինչ է երկրի վրա ասվում այս դալեկյան հնչեղ ձայնով, քան լսել հիպսթերյան Amazon- ի արձագանքի կամ Siri- ի մռայլ հնչերանգները: Որտե՞ղ է ձեր խնդրանքը:
Օ,, և էլ չասեմ, որ ես ունեմ նաև «SP0256-AL2» IC- ների «տոպրակի բեռ»:
Սարքը նաև ունակ է ընթերցելու տեղական ջերմաստիճանը և խոնավությունը, ուստի ավելի է ընդլայնում իմ առկա IoT ենթակառուցվածքի միջավայրի գործիքավորումը, որը կցված է MQTT/OpenHAB հիմնված IoT ցանցին, որը մանրամասն նկարագրված է այս շարքում ՝ տան ավտոմատացման (HA) վրա ՝ հիմնվելով այստեղից վերցված վերօգտագործված կոդի վրա:
Դրա հիմքում ընկած է ESP8266-07- ը, որը պատասխանատու է MQTT հաղորդակցությունների և համակարգի բոլոր գործառույթների վերահսկման համար (SD քարտի մուտք, լուսադիոդային կառավարում, ջերմաստիճանի/խոնավության զգայունություն, ձայնի վերահսկում, խոսքի սինթեզ): Սարքը լիովին կարգավորելի է տեքստային ֆայլերի միջոցով տեղական SD քարտ, թեև չափագրման և ցանցի անվտանգության պարամետրերը կարող են ծրագրավորվել նաև հեռավոր MQTT հրապարակումների միջոցով:
Ի՞նչ մասեր են ինձ պետք:
Նյութերի օրինագիծը տես այստեղ
Ինչ ծրագրային ապահովման կարիք ունեմ:
- Arduino IDE 1.6.9,
- Arduino IDE- ն կազմաձևված է ՝ ESP8266-07 ծրագիրը ծրագրավորելու համար (նույնը սա): Այնուհետև կազմաձևեք IDE- ն, ինչպես նշված է ծրագրաշարի ուրվագծում ներկայացված մանրամասն նկարագրության մեջ,
- Եթե ցանկանում եք օգտագործել ավտոմատացված փորձարկման հնարավորությունը, Python v3.5.2, մանրամասները ՝ այստեղ
Ի՞նչ գործիքների կարիք ունեմ:
- Առնվազն x3 մանրադիտակ (SMT զոդման համար),
- Molex միակցիչի սեղմման գործիք (JST միակցիչների համար),
- SMD զոդման երկաթ (հեղուկ հոսքի գրիչով և հոսքի առանցքով զոդումով),
- Պտուտակահան (տարբեր),
- Gunերմային ատրճանակ,
- Վարժություններ (տարբեր),
- Countersink ձեռքի գործիք,
- Ֆայլեր (տարբեր),
- Dremel (տարբեր բիթեր),
- Ամուր արատ (փոքր ու մեծ, ինչպես սևամորթ և աշխատասեր գործընկերոջ նման),
- Սկալպել,
- Vernier տրամաչափեր (օգտագործվում են կեղծիքը չափելու համար և օգտակար են PCB բաղադրիչների չափման համար),
- Spanners և Nut վարորդներ (տարբեր),
- Ուժեղ պինցետ (SMT զոդման համար),
- Կրտսեր սղոց,
- Գայլիկոն (տարբեր փորվածքներով),
- Նուրբ տափակաբերան աքցան (մատնացույց և քթած քիթ),
- Ողողման կտրիչներ,
- DMM լսելի շարունակականության ստուգմամբ,
- Երկակի ալիքի թվային շրջանակ (հարմար է ազդանշանների կարգաբերման համար)
Ի՞նչ հմտություններ են ինձ պետք:
- Շատ համբերություն,
- Ձեռքի մեծ ճարտարություն և ձեռքի/աչքի գերազանց համակարգում,
- Soldոդման գերազանց հմտություններ,
- Կեղծման գերազանց հմտություններ,
- 3 հարթության մեջ պատկերացնելու ունակություն,
- «C» - ով ծրագրակազմի մշակման որոշ գիտելիքներ (եթե ցանկանում եք հասկանալ աղբյուրի կոդը),
- Python- ի որոշ գիտելիքներ (ինչպես տեղադրել և գործարկել սցենարներ, եթե ցանկանում եք օգտագործել ավտոմատացված թեստավորումը),
- Arduino- ի և դրա IDE- ի իմացություն,
- Էլեկտրոնիկայի լավ իմացություն,
- Որոշակի պատկերացում ձեր տան ցանցի մասին:
Topածկված թեմաներ
- Օգտագործողի ձեռնարկ
- Շրջանի ակնարկ
- PCB արտադրություն և հավաքում
- Հորինում
- Softwareրագրային ապահովման համակարգի ակնարկ
- Softwareրագրային ապահովման ակնարկ
- Սենսորների տրամաչափում
- MQTT թեմայի անվանման կոնվենցիա
- Սխալների և անսարքությունների հայտնաբերում
- Դիզայնի փորձարկում
- Եզրակացություն
- Օգտագործված հղումներ
Սերիայի հղումներ Մաս 11 -ին. IoT աշխատասեղանի վահանակ: Մաս ՝ 11 ՏՏ, Տան ավտոմատացում
Քայլ 1: Օգտագործողի ձեռնարկ
Վերևում նկար 1 -ը ցույց է տալիս Retro Speech Synthesizer- ի առջևը, իսկ 2 -ը ՝ հետևի:
Շրջափակման ճակատ
- Բանախոս Գրիլ
- 3.5 մմ ականջակալների խցիկ. Հիմնական խոսնակն անջատված է, երբ տեղադրվում է 3.5 մմ խցիկ:
- Կարմիր LED. Այս LED լուսավորվում է, երբ խոսքը հնչում է, երբ խոսքը սկսվում է HTTP հարցման միջոցով:
- Կապույտ LED: Այս LED լուսավորվում է, երբ խոսքը հնչում է, երբ խոսքը սկսվում է MQTT IoT հարցման միջոցով:
Պարիսպ հետեւի
- Վերականգնելու կոճակ. Օգտագործվում է ESP8266-07 IoT սարքի կոշտ վերակայման համար:
- Ֆլեշ կոճակ. Երբ օգտագործվում է «Վերականգնել» կոճակի հետ միասին, թույլ է տալիս նորից լուսավորել ESP8266-07- ը:
- WiFi ալեհավաքի խրոց (SMA Plug). Արտաքին WiFi ալեհավաքի համար, որն ապահովում է ամենաքիչ ՌԴ -ի ուղու թուլացում, քանի որ փակումը ալյումինից է:
- Արտաքին ծրագրավորման նավահանգիստ. Վերացնելու համար պարիսպը պտուտակավորելու անհրաժեշտությունը `նորից ծրագրավորման նպատակով ESP8266-07- ին մուտք գործելու համար: ESP8266-07- ի ծրագրավորման կապերը դուրս են բերվել արտաքին ծրագրավորման նավահանգիստ: Նկար 3 -ը ծրագրավորման ադապտեր է:
- Կանաչ LED. Սա IoT համակարգն է, որն օգտագործվում է սարքի ախտորոշման կարգավիճակը նշելու և գործարկման ընթացքում գործարկելու համար:
- Արտաքին ջերմաստիճանի/խոնավության ցուցիչ (AM2320)
- SD քարտի բնիկ. Սա պահում է բոլոր կազմաձևման/անվտանգության տվյալները վեբ սերվերի էջերի հետ միասին:
- 2.1 մմ մատակարարման վարդակ 6 վրկ
Քայլ 2: Շրջանների ակնարկ
Retro Speech Synth սարքը ներառում է երկու PCB;
- RetroSpeechSynthIoTBoard. Սա ընդհանուր, վերաօգտագործելի ESP8266-07/12/12E/13 PCB է
- RetroSpeechSynthBoard: Սա ընդհանուր SP0256-AL2 PCB է
Retro Speech Synth IoT տախտակ
Այս տախտակը թույլ է տալիս կամ ESP8266-07/12/12E/13 ESP8266-07/12E/13 կամ 0.1 դյույմանոց վարդակների ուղղակի զոդում `ESP8266 փոխադրիչ PCB- ի տեղավորմամբ:
Տախտակը նախագծված էր I/O- ի I2C միացման միջոցով ընդլայնելու իր ելքային ելքը և կարող է ապահովել 3v3 կամ 5v մատակարարման մակարդակ Q1, Q2, R8-13 միջոցով:
Գրատախտակին միացումն իրականացվում է J2 և J4 երկու վերնագրերից մեկի, 8 ուղղությամբ DIL IDC ժապավենի կամ 5 ուղղությամբ JST/Molex- ի միջոցով:
U2 և U3 տրամադրում 3.3v և 5v մատակարարման կանոնակարգման վրա: Այլապես, եթե պահանջվում է ավելի մեծ ընթացիկ հզորություն, անջատված սերիական անջատման կարգավորիչները կարող են կցվել համապատասխանաբար J10 և J11 միակցիչների միջոցով:
J1 և J3 միակցիչները առաջարկում են արտաքին SD քարտի աջակցություն SPI- ով: J1- ը նախագծվել է 8-ճանապարհ Molex- ի համար, իսկ J3- ն ունի ուղղակի կապում `քորոցների համատեղելիության աջակցության համար` դարակաշարից SD քարտի PCB- ի համար `3v3 կամ 5v աջակցությամբ:
Retro Speech Synth տախտակ
Այս տախտակի վերահսկումը J2, J5 կամ J6, 4-ճանապարհ JST/Molex, 8-ճանապարհ DIL IDC կամ 8-ճանապարհ IDC ժապավենային միակցիչի միջոցով I2C 5v- ի համապատասխան միացման միջոցով է:
U2 MPC23017- ը I2C- ին զուգահեռ ինտերֆեյս է տրամադրում U3- ին ՝ SP0256-AL2 և LEDS D1 (կանաչ), D2 (կարմիր) և D3 (կապույտ): Speech Synth- ի ելքը սնվում է ձայնային ուժեղացուցիչ CR1 TBA820M- ով կամ անալոգային կաթսայով RV1 կամ թվային կաթսայով U1 MCP4561:
Թվային կաթսա U1- ը նույնպես վերահսկվում է 5v- ի համապատասխան I2C- ի միջոցով:
Նշում. ESP8266-07 սարքն ընտրվել է, քանի որ այն ունի ինտեգրված IPX RF միակցիչ, որը թույլ է տալիս արտաքին WiFi ալեհավաքը ավելացնել ալյումինե պատյանին:
Քայլ 3. PCB- ի արտադրություն և հավաքում
1-ին և 2-րդ նկարները ցույց են տալիս ավարտված և լարային PCB ենթահավաքները, որոնք տեղակայված են ալյումինե պատյանների ենթաշերտի վրա:
Երկու PCB- ները նախագծված են Kicad v4.0.7- ի միջոցով, արտադրված JLCPCB- ի կողմից և հավաքված իմ կողմից և ցուցադրված 3 -ից 13 -րդ նկարներում:
Քայլ 4: Պատրաստում
Նկար 1 -ը ցույց է տալիս Haynes Manual ոճով բոլոր հավաքովի մասերի վերջնական հավաքումից առաջ:
Նկարներ 2… 5 -ը ցույց են տալիս տարբեր կադրեր `փակման պատրաստման ընթացքում` նվազագույն բացթողումներով:
Քայլ 5: Softwareրագրային ապահովման համակարգի ակնարկ
Այս IoT Retro Speech սինթեզի սարքը պարունակում է ծրագրային ապահովման վեց հիմնական բաղադրիչ, ինչպես ցույց է տրված վերևում 1 -ին նկարում:
SD քարտ
Սա արտաքին SD SPI Flash ֆայլերի ներկայացման համակարգ է և օգտագործվում է հետևյալ տեղեկությունները պահելու համար (տես նկ. 2 վերը);
- Սրբապատկերներ և «Speech Synth Configuration Home Page» index.htm: vedառայվում է IoT սարքի կողմից, երբ այն չի կարողանում միանալ ձեր IoT WiFi ցանցին (սովորաբար անվտանգության սխալ տեղեկատվության կամ առաջին անգամ օգտագործման պատճառով) և օգտվողին տրամադրում է միջոց սենսորների հեռակա կազմաձևման ՝ առանց SD նոր բովանդակության նորից լուսավորման անհրաժեշտության: Այն նաև պարունակում է index1.htm, mqtt.htm և sp0256.htm, սրանք տեղական սպասարկվող վեբ էջեր են, որոնք հասանելի են վեբ դիտարկիչով, ինչը թույլ է տալիս սահմանափակել խոսքի սինթեզի սահմանափակ վերահսկողությունը: HTTP- ի միջոցով:
- Անվտանգության տեղեկատվություն. Սա պարունակում է այն տեղեկությունները, որոնք օգտագործվում են IoT սարքի գործարկման ժամանակ ՝ ձեր IoT WiFi ցանցին և MQTT բրոքերին միանալու համար: «Speech Synth Configuration Home Page» - ի միջոցով ներկայացված տեղեկատվությունը գրված է այս ֆայլում («secvals.txt»):
- Կալիբրացիայի տեղեկատվություն. Ֆայլերում պարունակվող տեղեկատվությունը («calvals1.txt» և «calvals2.txt») օգտագործվում է անհրաժեշտության դեպքում ինքնաթիռում ջերմաստիճանի/խոնավության տվիչների չափագրման համար: Calշգրտման հաստատունները կարող են գրվել IoT սարքի վրա MQTT միջնորդի կողմից MQTT հրամանների միջոցով կամ SD քարտը կրկին թարթելով: «calvals1.txt» - ը վերաբերում է AM2320 տվիչին և «calvals2.txt» - ին ՝ DHT22- ին:
- Օգտվողի կողմից ընտրված համակարգի արժեքները. Օգտվողի կողմից ընտրված այս ֆայլում պարունակվող տեղեկատվությունը ('confvals.txt') վերահսկում է համակարգի որոշակի արձագանքներ, ինչպիսիք են `թվային նախնական թվային մակարդակը, MQTT բրոքերի բաժանորդագրության ավտոմատ« համակարգի պատրաստ »հայտարարությունը և այլն:
mDNS սերվեր
Այս գործառույթը կոչվում է, երբ IoT սարքը չի կարողանում միանալ ձեր WiFi ցանցին որպես WiFi կայան և փոխարենը դարձել է WiFi մուտքի կետ, որը նման է ներքին WiFi երթուղիչին: Նման երթուղղիչի դեպքում դուք սովորաբար միանում եք դրան ՝ մուտքագրելով 192.168.1.1 -ի պես IP հասցեն (սովորաբար տպվում է տուփին ամրացված պիտակի վրա) անմիջապես ձեր դիտարկիչի URL- ի սանդղակում, որից հետո մուտքագրման էջ կստանաք: օգտվողի անունը և գաղտնաբառը, որը թույլ կտա ձեզ կարգավորել սարքը: AP ռեժիմում ESP8266-07- ի համար (Մուտքի կետի ռեժիմ) սարքը կանխադրված է 192.168.4.1 IP հասցեով, սակայն mDNS սերվերի հետ աշխատելու դեպքում միայն դիտարկիչի URL սանդղակի մեջ պետք է մուտքագրել մարդկային անուն «SPEECHSVR.local»: տե՛ս «Speech Synth Configuration Home Page»:
MQTT հաճախորդ
MQTT հաճախորդը ապահովում է բոլոր անհրաժեշտ գործառույթները. միացեք ձեր IoT ցանցի MQTT բրոքերին, բաժանորդագրվեք ձեր ընտրած թեմաներին և հրապարակեք բեռնվածություն տվյալ թեմային: Մի խոսքով, այն ապահովում է IoT- ի հիմնական գործառույթները:
HTTP վեբ սերվեր
Այս վեբ սերվերն ունի երկու նպատակ.
- Եթե IoT սարքն ի վիճակի չէ միանալ WiFi ցանցին, որի SSID, P/W և այլն սահմանված են SD քարտում պահվող Անվտանգության տեղեկատվության ֆայլում, սարքը կդառնա Մուտքի կետ: Մուտքի կետի կողմից տրամադրված WiFi ցանցին միանալուց հետո, HTTP վեբ սերվերի առկայությունը թույլ է տալիս ուղղակիորեն միանալ սարքին և փոխել դրա կազմաձևը ՝ օգտագործելով HTTP վեբ զննարկչի միջոցով, որի նպատակն է ծառայել «Խոսքի սինթոնի կազմաձևում» Գլխավոր էջի վեբ էջ, որը նույնպես պահվում է SD քարտի վրա:
- Երբ IoT Retro Speech Synthesis Device- ը միանա WiFi ցանցին և MQTT բրոքերին, եթե այն հասանելի լինի, HTTP վեբ սերվերը ինքնաբերաբար կծառայի HTTP վեբ էջին, որը թույլ կտա IoT սարքի սահմանափակ վերահսկողությանը խոսել ֆիքսված արտահայտությունների ընտրանի և ունակություն ցիկլացրեք երկու առջևի կարմիր և կապույտ LEDS:
WiFi կայան
Այս գործառույթը IoT սարքին տալիս է ներքին WiFi ցանցին միանալու հնարավորություն ՝ օգտագործելով Անվտանգության տեղեկատվության ֆայլում պարամետրերը, առանց դրա ձեր IoT սարքը չի կարողանա բաժանորդագրվել/հրապարակել MQTT բրոքերին:
WiFi մուտքի կետ
WiFi մուտքի կետ դառնալու հնարավորությունն այն միջոցն է, որով IoT սարքը թույլ է տալիս միանալ դրան և կատարել կոնֆիգուրացիայի փոփոխություններ WiFi կայանի և դիտարկիչի միջոցով (օրինակ ՝ Safari- ն Apple iPad- ում): Այս մուտքի կետը հեռարձակում է SSID = "SPEECHSYN" + IoT սարքի MAC հասցեի վերջին 6 թվանշանները: Այս փակ ցանցի գաղտնաբառը երևակայականորեն կոչվում է «PASSWORD»
Քայլ 6: Softwareրագրաշարի ակնարկ
Նախաբան
Այս աղբյուրի ծածկագիրը հաջողությամբ կազմելու համար ձեզ հարկավոր կլինի ծածկագրի և գրադարանների տեղական պատճենը, որոնք նկարագրված են ստորև ՝ քայլ 12 -ում, Օգտագործված հղումներ: Եթե վստահ չեք, թե ինչպես տեղադրել Arduino գրադարանը, գնացեք այստեղ:
Ակնարկ
Theրագիրը օգտագործում է պետական մեքենան, ինչպես ցույց է տրված վերը 1-ում նկարում (աղբյուրի ամբողջական պատճենը իմ GitHub շտեմարանում ՝ այստեղ): Կան 5 հիմնական նահանգներ, ինչպես նշված է ստորև.
-
INIT
Այս նախաստորագրման վիճակը առաջին վիճակն է, որը մտել է հոսանքի անջատումից հետո:
-
ՈՉ
Այս վիճակը մուտքագրվում է, եթե միացնելուց հետո անվավեր կամ բացակայող secvals.txt ֆայլը հայտնաբերվի: Այս վիճակի ընթացքում կազմաձևման էջը տեսանելի է:
-
ՍՊԱՍՈՄ Ք. W
Այս վիճակը անցողիկ է, մուտքագրվում է մինչ WiFi ցանցի կապ չկա
-
Սպասող MQTT
Այս վիճակը անցողիկ է, մուտքագրվում է WiFi ցանցի միացումից հետո, և մինչդեռ որևէ կապ չկա այդ ցանցի MQTT բրոքերի հետ:
-
ԱԿՏԻՎ
Սա սովորական գործառնական վիճակն է, որը մուտքագրվում է ինչպես WiFi ցանցի, այնպես էլ MQTT բրոքերային կապի հաստատումից հետո: Այս վիճակում ջերմաստիճանը, ջերմության ինդեքսը և խոնավությունը IoT Retro Speech Synthesis Device- ում պարբերաբար հրապարակվում են MQTT բրոքերին: Այս վիճակում տեսանելի է Speech Synth- ի գլխավոր էջը:
Նահանգների միջև անցումները վերահսկող իրադարձությունները նկարագրված են վերը նշված 1 -ին նկարում: Նահանգների միջև անցումները կարգավորվում են նաև SecVals- ի հետևյալ պարամետրերով.
- 1 -ին MQTT բրոքերի IP հասցեն: Կետավոր տասնորդական տեսքով AAA. BBB. CCC. DDD
- 2 -րդ MQTT բրոքերային նավահանգիստ: Ամբողջական տեսքով:
- 3 -րդ MQTT բրոքերային կապը փորձում է կատարել STA ռեժիմից AP ռեժիմի անցնելուց առաջ: Ամբողջական տեսքով:
- 4 -րդ WiFi ցանցի SSID: Ազատ տեքստով:
- WiFi ցանցի 5 -րդ գաղտնաբառ: Ազատ տեքստով:
Ինչպես նշվեց վերևում, եթե IoT սարքն ի վիճակի չէ որպես WiFi կայան միանալ WiFi ցանցին, որի SSID- ը և P/W- ն սահմանվում են secvals- ում: SD քարտում պահվող տեքստը IoT սարքը կդառնա Մուտքի կետ: Այս մուտքի կետին միանալուց հետո այն կծառայի «Speech Synth Configuration Home Page» - ին, ինչպես ցույց է տրված վերևում, Նկար 2 -ում (մուտքագրելով կամ «SPEECHSVR.local» կամ 192.168.4.1 ձեր դիտարկիչների URL հասցեի բարում): Այս գլխավոր էջը թույլ է տալիս վերակազմավորել IoT Retro Speech Synthesis սարքը HTTP բրաուզերի միջոցով:
Հեռակա հասանելիություն, մինչդեռ ԱԿՏԻՎ վիճակում է
MQTT բրոքերին միանալուց հետո հնարավոր է և՛ վերահաստատել, և՛ վերակազմավորել սարքը MQTT թեմայի հրապարակումների միջոցով: Calvals.txt ֆայլը ունի R/W մուտքագրում, իսկ secvals.txt- ին ՝ գրելու թույլտվություն:
Ինչպես և վերը նշվեց, ակտիվ ռեժիմում մի անգամ հնարավոր է մուտք գործել Speech Synth HTTP ինտերֆեյսի միջոցով `մուտքագրելով« SPEECHSVR.local »կամ 192.168.4.1 ձեր դիտարկիչների URL հասցեների բարում: Այս HTTP- ի վրա հիմնված ինտերֆեյսը թույլ է տալիս հիմնական վերահսկողություն ունենալ Speech Synth- ի վրա: 3 -րդ, 4 -րդ և 5 -րդ նկարները ցույց են տալիս մատչելի վեբ էջերը:
Օգտվողի վրիպազերծում
Բեռնման հաջորդականության ընթացքում IoT սարքի կանաչ համակարգը, որն առաջնորդվում էր պարիսպի հետևի մասում, տալիս է հետևյալ վրիպազերծման հետադարձ կապը.
- 1 Կարճ բռնկում. SD քարտի վրա տեղադրված կազմաձևման ֆայլ չկա (secvals.txt)
- 2 Կարճ բռնկումներ. IoT սարքը փորձում է միանալ WiFi ցանցին
- Շարունակական լուսավորություն. IoT սարքը փորձում է միանալ MQTT բրոքերին
- Անջատված. Սարքն ակտիվ է:
IoT Retro Speech Synthesis Device Functionality in ACTIVE State
ԱԿՏԻՎ վիճակում հայտնվելուց հետո ESP8266- ը մտնում է շարունակական հանգույց, որը կանչում է հետևյալ գործառույթները. timer_update (), checkTemperatureAndHumidity () և handleSpeech (): Netուտ արդյունքը նախագծված է օգտագործողին HTTP կամ MQTT ինտերֆեյս ներկայացնելու համար, անխափան սպասարկում է իր ներկառուցված խոսքի պրոցեսորը ՝ ըստ պահանջի հնչյունների և հրապարակում է շրջակա միջավայրի պարամետրային արժեքները MQTT- ով:
Աղբյուրի ծածկագրում ներառված է բոլոր թեմաների բաժանորդագրությունների և հրապարակումների համապարփակ ցանկը, ներառյալ բեռնվածության արժեքը:
Քայլ 7: Սենսորների տրամաչափում
Երբ IoT սարքն ուժի մեջ է մտնում, բեռնման հաջորդականության մի մասում երկու «cavals1.txt» և «cavals2.txt» անուններով ֆայլեր կարդացվում են SD քարտից:
Այս ֆայլերի բովանդակությունը կալիբրացիոն հաստատուններ են, ինչպես նշված է վերևում ՝ նկ 1 -ում:
- 'cavals1.txt': Օգտագործվում է արտաքին AM2320- ի կողմից
- 'cavals2.txt': Օգտագործվում է ներքին DHT22- ի կողմից
Կալիբրացիոն այս հաստատունները օգտագործվում են երկու տվիչներից ձեռք բերված ընթերցումները կարգավորելու համար `դրանք համապատասխանեցնելու համար հղման սարքին: Գոյություն ունի ևս մեկ արժեք, որը սահմանում է հաշվետվության ռազմավարությունը յուրաքանչյուր սարքի համար և նկարագրված է ստորև ՝ սենսորների չափագրման համար կիրառվող ընթացակարգի հետ միասին:
Հաշվետվության ռազմավարություն
Այս պարամետրը որոշում է, թե ինչպես է հեռավոր սենսորը հայտնում շրջակա միջավայրի պարամետրային ցանկացած փոփոխության: Եթե 0 արժեք է ընտրված, հեռաչափի սենսորը կհրապարակի ջերմաստիճանի կամ խոնավության ցանկացած փոփոխություն, երբ համապատասխան սենսորը կարդալիս (մոտ 10 վայրկյանը մեկ): Otherանկացած այլ արժեք կհետաձգի փոփոխության հրապարակումը 1… 60 րոպեով: Այս պարամետրի փոփոխումը թույլ է տալիս օպտիմալացնել MQTT ցանցի տրաֆիկը: Հարկ է նշել, որ DHT22- ի ջերմաստիճանի և խոնավության տվյալները այլընտրանքային են ընթերցվում ՝ սենսորի սահմանափակումների պատճառով:
Temերմաստիճանի ճշգրտում
Temperatureերմաստիճանի տվիչը ճշգրտելու համար ես հետևեցի նույն գործընթացին, ինչպես նկարագրված է այստեղ ՝ քայլ 4 -ում, կրկին օգտագործելով պարզ y = mx+c հարաբերություն: Որպես տեղեկատու սարք օգտագործել եմ IoT ջերմաստիճանը, խոնավության տվիչը #1: Սենսորից ստացված արժեքները գտնվում են ջերմաստիճանում:
Խոնավության ստուգաչափում
Քանի որ ես միջոցներ չունեմ ճշգրիտ գրանցելու կամ նույնիսկ վերահսկելու շրջակա միջավայրի խոնավությունը, սենսորը չափագրելու համար ես նման մոտեցում եմ ցուցաբերել այստեղից վերը նշված 4 -րդ քայլին, կրկին որպես թիվ 1 ցուցիչ: Այնուամենայնիվ, վերը ասվածի համաձայն, ես վերջերս համացանցում գտա մի հիանալի հոդված, որը նկարագրում էր, թե ինչպես կարելի է չափել խոնավության տվիչները: Ես կարող եմ ապագայում ինչ -որ կերպ փորձել այս մոտեցումը: Սենսորից ստացված արժեքները հարաբերական խոնավության %տարիքում են:
Քայլ 8. MQTT թեմայի անվանման կոնվենցիա
Ինչպես նշվեց ավելի վաղ Instructable- ում (այստեղ) ես որոշեցի վերը նշված 1 -ին նկարում նկարագրված թեմայի անվանման պայմանագիրը:
Մասնավորապես, «AccessMethod/DeviceType/WhichDevice/Action/SubDevice» Դա կատարյալ չէ, բայց թույլ է տալիս կիրառել օգտակար զտիչներ ՝ տվյալ պարամետրային թեմայի համար սենսորների բոլոր ելքերը տեսնելու համար, ինչը թույլ է տալիս հեշտությամբ համեմատել MQTTSpy- ի վերը նշված նկարի 2 -ում:
Այս նախագիծը առաջին դեպքն է, երբ մեկ սարքը պարունակում է նույն տեսակի հրապարակման մեկից ավելի աղբյուրներ: այսինքն. Temperatureերմաստիճանի/խոնավության երկու տվիչ ՝ ներքին և արտաքին ենթածրագրերից:
Այն նաև աջակցում է տվյալ IoT սարքի ֆունկցիոնալության ողջամիտ ընդլայնվող տրամաբանական խմբավորումներին:
Topicsրագրում այս թեմաներն իրականացնելիս ես օգտագործել եմ կոշտ ծածկագրված տողեր `յուրաքանչյուր սարքի ֆիքսված, ներդրված թվային նույնացուցիչներով, ի տարբերություն գործողությունների ժամանակ թեմաների դինամիկ առաջացման, որպեսզի խնայեք RAM- ը և կատարողականը բարձր պահենք:
Նշում. Եթե վստահ չեք, թե ինչպես օգտագործել MQTTSpy- ն, տե՛ս այստեղ ՝ «MQTT բրոքեր ստեղծելը»: Մաս 2. IoT, տան ավտոմատացում '
Քայլ 9. Վրիպազերծում և խափանումների հայտնաբերում
Մեծ հաշվով, իմ հոբբիի նախագծերի համար, որտեղ հնարավոր է, ես հակված եմ կառուցել ապարատային ներկայացուցչական նախատիպ, որի դեմ ծրագրակազմը մշակված է: Ես հազվադեպ եմ խնդիրներ ունենում ծրագրակազմը պլատֆորմի վերջին սարքավորման մեջ ինտեգրելիս:
Այնուամենայնիվ, այս առիթով ես հանդիպեցի մի տարօրինակ ընդհատվող անսարքության, որի համաձայն որոշ հնչյուններ կհնչեին, իսկ մյուսները `ոչ:
Խոսքի սինթ PCB- ի որոշ նախնական վրիպազերծումից հետո Arduino Uno- ի միջոցով հնչյուններ ստեղծելու և ապացուցելու համար, որ այս տախտակը գործում է, ես ընդգրկեցի IoT PCB- ի և Speech Synth PCB- ի միջև I2C տողերը: Տես նկար 1 -ը վերևում:
Հետքերի վրա կարող եք հստակ տեսնել «սղոցի ատամը»/I2C ազդանշանի էքսպոնենցիալ եզրը:
Սա սովորաբար նշան է, որ I2C- ի քաշման արժեքները չափազանց բարձր են `կանխելով գծի լարումը բավական արագ արագ բաց արտահոսքի շղթայում:
Որպես «շուրջերկրյա աշխատանք» ես զուգահեռեցի երկու smt ձգվող R12 և R13 ռեզիստորները 10K- ով, որպեսզի ստանամ 4K7 և բավական է, որ Speech Synth- ը «կյանքի կոչվեց»:
Այս տիպի ձախողումը հակառակն է, թե ինչ կարող է տեղի ունենալ այս տեսակի նախագծերի կարգաբերման ժամանակ: Ընդհանուր առմամբ, Ebay- ից գնված I2C- ի վրա հիմնված մոդուլների մեծ մասը հակված է ունենալ արդեն տեղադրված 10K կամ 4K7 քաշքշուկներով: Եթե մտադիր եք օգտագործել> 5 I2C մոդուլ, որոնցից յուրաքանչյուրը 4K7 քաշքշուկով է, ապա ընդհանուր բեռը 940R է, որը չափազանց մեծ կլինի վարպետի ելքային փուլի համար: Լուծումը կլինի յուրաքանչյուր մոդուլի վրա ամրացնող բոլոր ռեզիստորների զոդումը, բացի մեկից: Feանկալի է, որ ֆիզիկապես ամենահեռու վարպետը:
Օգտակար խորհուրդ և արժե հաշվի առնել I2C սարքերով էլեկտրոնիկա նախագծելիս:
Քայլ 10: Դիզայնի փորձարկում
Փորձարկումն իրականացվել է երկու մեթոդաբանության միջոցով. Ձեռքով և ավտոմատացված:
Առաջինը, ձեռնարկը և ընդհանրապես օգտագործված սկզբնական ծածկագրի մշակման ժամանակ, MQTT Spy- ի օգտագործումն էր ՝ առկա բոլոր բաժանորդագրված թեմաներն օգտագործելու և հրապարակված պատասխանները ստուգելու համար (պատկերված է վերը նշված 2 -րդ նկարում): Քանի որ սա ձեռքով գործընթաց է, այն կարող է ժամանակատար լինել և հակված լինել սխալների, քանի որ առաջընթաց է գրանցում ծածկագիրը, չնայած ձեռքով կատարումը հնարավորություն է տալիս 100% ծածկույթ:
MQTTSpy- ն ընտրվել է ձեռքով փորձարկվելու համար, քանի որ այն հիանալի գործիք է տվյալ բեռը ձեռքով ձևաչափելու և այն հեշտությամբ հրապարակելու համար: Այն նաև ցուցադրում է հստակ, ժամանակի կնիքով գրանցամատյան, որը շատ օգտակար է վրիպազերծման համար (նկար 3 վերը):
Երկրորդ, ավտոմատացված մոտեցումը ընդունվեց, քանի որ աղբյուրի ծածկագիրը դարձավ ավելի բարդ (> 3700 տող): Բարդության բարձրացումը նշանակում է ձեռքով փորձարկման ավելի երկար ցիկլեր և ավելի բարդ թեստեր: Թեստերի հուսալիությունը, դետերմինիզմը և որակը բարելավելու համար ավտոմատացված թեստավորումն օգտագործվել է պիթոնի թեստի ղեկավարի միջոցով (նկար 1): Տեսեք այս հրահանգի #10 -րդ քայլը, թե ինչպես ներդրվեց ավտոմատացված թեստավորումը: Այս հրահանգում օգտագործված ավտոմատացված թեստերի ամբողջական պատճենը հասանելի է այստեղ:
Գործողության ընթացքում փորձարկումների ավտոմատացված հաջորդականության տեսանյութը ներկայացված է վերևում: Հաջորդականությունը կատարում է հետևյալ քայլերը.
-
Ավտոմատացված է MQTT- ի միջոցով
- Միացեք MQTT ողնաշարին և հայտարարեք «Համակարգը պատրաստ է»
- Greenորավարժություններ Կանաչ LED
- Ercորավարժություններ Կարմիր LED
- Blueորավարժություններ Կապույտ LED
- Ստուգեք Digital Pot- ի աշխատանքները
- Խոսեք հնչյունների միջոցով
- Խոսեք հնչյունների համար Hex կոդերի միջոցով
- Խոսեք կոդերի օգնությամբ ՝ արտահայտությունները շտկելու համար
- Մի փոքր Dr Who and the Daleks- ի զվարճանքը:
-
Ձեռքով HTTP/Chrome- ի միջոցով
- Blueորավարժություններ Կապույտ LED
- Ercորավարժություններ Կարմիր LED
- Խոսեք «Սթիվեն Քուին», «Համակարգը պատրաստ է» և «Բարև աշխարհ» ֆիքսված արտահայտություններ
-
Ունեցեք HTTP սերվեր, սպասարկեք
- Մանրամասներ Speech Synth Chip- ի վերաբերյալ
- MQTT մանրամասներ
Քայլ 11: Եզրակացություն
Թեև դա մեծ ջանքեր է պահանջել ֆայլերի և վարագույրների և այլնի համար, հատկապես բարձրախոսների վանդակաճաղերի համար, ես կարծում եմ, որ արդյունքը գեղագիտական տեսանկյունից հաճելի է և փաթեթավորվում է գեղեցիկ, փոքր պարիսպի մեջ: Ես կարող էի այն փոքրացնել, բայց անհրաժեշտ կլիներ մեկ PCB- ի վրա մտնել, և ես դա դիտավորյալ բաժանեցի երկու մասի, որպեսզի հետագայում կարողանամ նորից օգտագործել PCB- ները այլ նախագծերի համար: Այսպիսով, դա երջանիկ փոխզիջում է:
Theրագրակազմը լավ է աշխատում, IoT սարքն արդեն բավականին երկար ժամանակ է ՝ աշխատում է առանց որևէ խնդիրների:
Ես վերահսկում էի ջերմաստիճանը և խոնավությունը Grafana- ի միջոցով և համեմատում համատեղ տեղադրված սարքի հետ: Շրջակա միջավայրի երկու արժեքները լավ փոխկապակցված են ՝ ենթադրելով, որ տրամաչափումը ողջամիտ է (կամ գոնե դրանք նման են):
Ես դադարեցի բառերի հրամանի («WFD/SpeechTH/1/Word/Command») կիրառումից, քանի որ ժամանակս սպառվեց և պետք էր առաջ շարժվել: Ես կարող եմ նորից այցելել սա, եթե և երբ ստեղծեմ MySQL տվյալների բազա: Հենց հիմա ես օգտագործում եմ InfluxDB- ն:
Քայլ 12: Օգտագործված հղումներ
Ստորև բերված աղբյուրները օգտագործվել են այս Instructable- ը համատեղելու համար. IoT Retro Speech Synthesis Device- ի աղբյուրի կոդը (սա պարունակում է ամեն ինչի պատճենը)
https://github.com/SteveQuinn1/IoT_Retro_Speech_Synthesis_SP0256_AL2
PubSubClient.h
- Հեղինակ ՝ Նիկ Օ'Լիրի
- Նպատակը. Սարքին հնարավորություն է տալիս տվյալ բրոքերի հետ հրապարակել կամ բաժանորդագրվել MQTT թեմաներին
- Սկսած ՝
DHT.h
- Հեղինակ ՝ Ադաֆրուտ
- Նպատակը. Arduino գրադարան DHT11DHT22- ի և այլ ջերմաստիճանի և խոնավության տվիչների համար
- Սկսած ՝
Adafruit_AM2320.h/Adafruit_Sensor.h
- Հեղինակ ՝ Ադաֆրուտ
- Նպատակը. Arduino գրադարան AM2320- ի համար և այլն ջերմաստիճանի և խոնավության ցուցիչ
- Սկսած ՝
MCP4561_DIGI_POT.h
- Հեղինակ ՝ Սթիվ Քուին
- Նպատակը. Arduino գրադարան MCP4561 թվային պոտենցիոմետրի համար
- Սկսած ՝
Adafruit_MCP23017.h
- Հեղինակ ՝ Սթիվ Քուին
- Նպատակը. Arduino գրադարան MCP23017 I2C նավահանգստի ընդլայնիչի համար: Սա GITHub պատառաքաղ է Adafruit-MCP23017-Arduino-Library- ից, Adafruit- ի կողմից:
- Սկսած ՝
Հաճույքի համար
https://haynes.com/hy-gb/
PCB Արտադրություն
https://jlcpcb.com/
Լրացուցիչ Arduino գրադարանների տեղադրում
https://www.arduino.cc/hy/Guide/Libraries
Ինչպես ստուգել և չափագրել խոնավության տվիչը
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_07_77_0777_07_77_0777_0777_07_0777_07772_07772_07772_07_07 /
SP0256-AL2 տվյալների թերթիկ
https://www.futurebots.com/spo256.pdf
Խոսքի չիպսերի խանութ
https://www.speechchips.com/shop/
Երկրորդ տեղը զբաղեցնող Arduino մրցույթում 2019 թ
Խորհուրդ ենք տալիս:
Ինչպես կատարել IoT- ի վրա հիմնված տան ավտոմատացում NodeMCU սենսորների կառավարման ռելեի միջոցով. 14 քայլ (նկարներով)
Ինչպես կատարել IoT- ի վրա հիմնված տան ավտոմատացում NodeMCU սենսորների կառավարման ռելեի միջոցով. IoT- ի վրա հիմնված այս նախագծում ես Blynk- ով և NodeMCU կառավարման ռելեի մոդուլով իրական տնային ավտոմատացում իրական ժամանակի հետադարձ կապով: Ձեռնարկի ռեժիմում այս ռելեի մոդուլը կարող է կառավարվել բջջայինից կամ սմարթֆոնից և, ձեռքով անջատիչից: Ավտոմատ ռեժիմում այս սարսափը
Ինտերնետ/ամպ վերահսկվող տան ավտոմատացում ՝ օգտագործելով Esp8266 (aREST, MQTT, IoT). 7 քայլ (նկարներով)
Ինտերնետ/ամպ վերահսկվող տնային ավտոմատացում ՝ օգտագործելով Esp8266 (aREST, MQTT, IoT). ԲՈԼՈՐ վարկերը ՝ http://arest.io/ ամպային ծառայության համար: IoT աշխարհի ամենաքննարկվող թեման այս պահին !! Ամպային սերվերներն ու ծառայությունները, որոնք դա հնարավոր են դարձնում, այսօրվա աշխարհի գրավիչ կետն է … ՀԵՌԱՆԱՎՈՐՈARԹՅՈARՆԸ ԿԱՐՈ ԵՆ
Տան ավտոմատացում ՝ օգտագործելով Raspberry Pi Matrix Voice և Snips (Մաս 2). 8 քայլ
Տնային ավտոմատացում ՝ օգտագործելով Raspberry Pi Matrix Ձայնը և Snips (Մաս 2). Տան ավտոմատացման թարմացում Raspberry Pi Matrix Ձայնի և Snips- ի միջոցով: Այս PWM- ն օգտագործվում է արտաքին LED- ների և Servo շարժիչների վերահսկման համար 1-ին մասում տրված բոլոր մանրամասները https://www.instructables.com/id/Controlling-Light
IoT ցանցի վերահսկիչ: Մաս 9. IoT, տան ավտոմատացում. 10 քայլ (նկարներով)
IoT ցանցի վերահսկիչ: Մաս 9. IoT, տան ավտոմատացում. Հերքում ՍՏԱԵՔ ԱՅՍ ԱՌԱԻՆ Այս հրահանգը մանրամասն ներկայացնում է մի նախագիծ, որն օգտագործում է էլեկտրական էներգիա (այս դեպքում ՝ UK 240VAC RMS), մինչդեռ ամեն ինչ արվել է անվտանգ պրակտիկայի և դիզայնի լավ սկզբունքների օգտագործման համար, միշտ կա պոտենցիալ մահացու վտանգ: ընտրել
WiFi IoT ջերմաստիճանի և խոնավության ցուցիչ: Մաս ՝ 8 ՏՏ, Տան ավտոմատացում ՝ 9 Քայլ
WiFi IoT ջերմաստիճանի և խոնավության ցուցիչ: Մաս ՝ 8 IoT, Տնային ավտոմատացում. Նախաբան Այս հոդվածը փաստում է ավելի վաղ Instructable- ի գործնական կոպտությունը և հետագա զարգացումը. «Կավատացնել» ձեր առաջին IoT WiFi սարքը: Մաս 4: IoT, տան ավտոմատացում, ներառյալ բոլոր անհրաժեշտ ծրագրային գործառույթները `հաջողությունը միացնելու համար