Բովանդակություն:

Retro խոսքի սինթեզ: Մաս ՝ 12 IoT, տան ավտոմատացում ՝ 12 քայլ (նկարներով)
Retro խոսքի սինթեզ: Մաս ՝ 12 IoT, տան ավտոմատացում ՝ 12 քայլ (նկարներով)

Video: Retro խոսքի սինթեզ: Մաս ՝ 12 IoT, տան ավտոմատացում ՝ 12 քայլ (նկարներով)

Video: Retro խոսքի սինթեզ: Մաս ՝ 12 IoT, տան ավտոմատացում ՝ 12 քայլ (նկարներով)
Video: հայկական ֆիլմեր 2024, Հուլիսի
Anonim
Image
Image
Retro խոսքի սինթեզ: Մաս ՝ 12 ՏՏ, Տան ավտոմատացում
Retro խոսքի սինթեզ: Մաս ՝ 12 ՏՏ, Տան ավտոմատացում

Այս հոդվածը 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 -ը ՝ հետևի:

Շրջափակման ճակատ

  1. Բանախոս Գրիլ
  2. 3.5 մմ ականջակալների խցիկ. Հիմնական խոսնակն անջատված է, երբ տեղադրվում է 3.5 մմ խցիկ:
  3. Կարմիր LED. Այս LED լուսավորվում է, երբ խոսքը հնչում է, երբ խոսքը սկսվում է HTTP հարցման միջոցով:
  4. Կապույտ LED: Այս LED լուսավորվում է, երբ խոսքը հնչում է, երբ խոսքը սկսվում է MQTT IoT հարցման միջոցով:

Պարիսպ հետեւի

  1. Վերականգնելու կոճակ. Օգտագործվում է ESP8266-07 IoT սարքի կոշտ վերակայման համար:
  2. Ֆլեշ կոճակ. Երբ օգտագործվում է «Վերականգնել» կոճակի հետ միասին, թույլ է տալիս նորից լուսավորել ESP8266-07- ը:
  3. WiFi ալեհավաքի խրոց (SMA Plug). Արտաքին WiFi ալեհավաքի համար, որն ապահովում է ամենաքիչ ՌԴ -ի ուղու թուլացում, քանի որ փակումը ալյումինից է:
  4. Արտաքին ծրագրավորման նավահանգիստ. Վերացնելու համար պարիսպը պտուտակավորելու անհրաժեշտությունը `նորից ծրագրավորման նպատակով ESP8266-07- ին մուտք գործելու համար: ESP8266-07- ի ծրագրավորման կապերը դուրս են բերվել արտաքին ծրագրավորման նավահանգիստ: Նկար 3 -ը ծրագրավորման ադապտեր է:
  5. Կանաչ LED. Սա IoT համակարգն է, որն օգտագործվում է սարքի ախտորոշման կարգավիճակը նշելու և գործարկման ընթացքում գործարկելու համար:
  6. Արտաքին ջերմաստիճանի/խոնավության ցուցիչ (AM2320)
  7. SD քարտի բնիկ. Սա պահում է բոլոր կազմաձևման/անվտանգության տվյալները վեբ սերվերի էջերի հետ միասին:
  8. 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- ի արտադրություն և հավաքում

PCB արտադրություն և հավաքում
PCB արտադրություն և հավաքում
PCB արտադրություն և հավաքում
PCB արտադրություն և հավաքում
PCB արտադրություն և հավաքում
PCB արտադրություն և հավաքում
PCB արտադրություն և հավաքում
PCB արտադրություն և հավաքում

1-ին և 2-րդ նկարները ցույց են տալիս ավարտված և լարային PCB ենթահավաքները, որոնք տեղակայված են ալյումինե պատյանների ենթաշերտի վրա:

Երկու PCB- ները նախագծված են Kicad v4.0.7- ի միջոցով, արտադրված JLCPCB- ի կողմից և հավաքված իմ կողմից և ցուցադրված 3 -ից 13 -րդ նկարներում:

Քայլ 4: Պատրաստում

Հորինում
Հորինում
Հորինում
Հորինում
Հորինում
Հորինում

Նկար 1 -ը ցույց է տալիս Haynes Manual ոճով բոլոր հավաքովի մասերի վերջնական հավաքումից առաջ:

Նկարներ 2… 5 -ը ցույց են տալիս տարբեր կադրեր `փակման պատրաստման ընթացքում` նվազագույն բացթողումներով:

Քայլ 5: Softwareրագրային ապահովման համակարգի ակնարկ

Softwareրագրային ապահովման համակարգի ակնարկ
Softwareրագրային ապահովման համակարգի ակնարկ
Softwareրագրային ապահովման համակարգի ակնարկ
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 վեբ սերվեր

Այս վեբ սերվերն ունի երկու նպատակ.

  1. Եթե IoT սարքն ի վիճակի չէ միանալ WiFi ցանցին, որի SSID, P/W և այլն սահմանված են SD քարտում պահվող Անվտանգության տեղեկատվության ֆայլում, սարքը կդառնա Մուտքի կետ: Մուտքի կետի կողմից տրամադրված WiFi ցանցին միանալուց հետո, HTTP վեբ սերվերի առկայությունը թույլ է տալիս ուղղակիորեն միանալ սարքին և փոխել դրա կազմաձևը ՝ օգտագործելով HTTP վեբ զննարկչի միջոցով, որի նպատակն է ծառայել «Խոսքի սինթոնի կազմաձևում» Գլխավոր էջի վեբ էջ, որը նույնպես պահվում է SD քարտի վրա:
  2. Երբ 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րագրաշարի ակնարկ

Softwareրագրային ապահովման ակնարկ
Softwareրագրային ապահովման ակնարկ
Softwareրագրային ապահովման ակնարկ
Softwareրագրային ապահովման ակնարկ
Softwareրագրային ապահովման ակնարկ
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 -ում:

  1. 'cavals1.txt': Օգտագործվում է արտաքին AM2320- ի կողմից
  2. 'cavals2.txt': Օգտագործվում է ներքին DHT22- ի կողմից

Կալիբրացիոն այս հաստատունները օգտագործվում են երկու տվիչներից ձեռք բերված ընթերցումները կարգավորելու համար `դրանք համապատասխանեցնելու համար հղման սարքին: Գոյություն ունի ևս մեկ արժեք, որը սահմանում է հաշվետվության ռազմավարությունը յուրաքանչյուր սարքի համար և նկարագրված է ստորև ՝ սենսորների չափագրման համար կիրառվող ընթացակարգի հետ միասին:

Հաշվետվության ռազմավարություն

Այս պարամետրը որոշում է, թե ինչպես է հեռավոր սենսորը հայտնում շրջակա միջավայրի պարամետրային ցանկացած փոփոխության: Եթե 0 արժեք է ընտրված, հեռաչափի սենսորը կհրապարակի ջերմաստիճանի կամ խոնավության ցանկացած փոփոխություն, երբ համապատասխան սենսորը կարդալիս (մոտ 10 վայրկյանը մեկ): Otherանկացած այլ արժեք կհետաձգի փոփոխության հրապարակումը 1… 60 րոպեով: Այս պարամետրի փոփոխումը թույլ է տալիս օպտիմալացնել MQTT ցանցի տրաֆիկը: Հարկ է նշել, որ DHT22- ի ջերմաստիճանի և խոնավության տվյալները այլընտրանքային են ընթերցվում ՝ սենսորի սահմանափակումների պատճառով:

Temերմաստիճանի ճշգրտում

Temperatureերմաստիճանի տվիչը ճշգրտելու համար ես հետևեցի նույն գործընթացին, ինչպես նկարագրված է այստեղ ՝ քայլ 4 -ում, կրկին օգտագործելով պարզ y = mx+c հարաբերություն: Որպես տեղեկատու սարք օգտագործել եմ IoT ջերմաստիճանը, խոնավության տվիչը #1: Սենսորից ստացված արժեքները գտնվում են ջերմաստիճանում:

Խոնավության ստուգաչափում

Քանի որ ես միջոցներ չունեմ ճշգրիտ գրանցելու կամ նույնիսկ վերահսկելու շրջակա միջավայրի խոնավությունը, սենսորը չափագրելու համար ես նման մոտեցում եմ ցուցաբերել այստեղից վերը նշված 4 -րդ քայլին, կրկին որպես թիվ 1 ցուցիչ: Այնուամենայնիվ, վերը ասվածի համաձայն, ես վերջերս համացանցում գտա մի հիանալի հոդված, որը նկարագրում էր, թե ինչպես կարելի է չափել խոնավության տվիչները: Ես կարող եմ ապագայում ինչ -որ կերպ փորձել այս մոտեցումը: Սենսորից ստացված արժեքները հարաբերական խոնավության %տարիքում են:

Քայլ 8. MQTT թեմայի անվանման կոնվենցիա

MQTT թեմայի անվանման կոնվենցիա
MQTT թեմայի անվանման կոնվենցիա
MQTT թեմայի անվանման կոնվենցիա
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: Դիզայնի փորձարկում

Image
Image
Դիզայնի փորձարկում
Դիզայնի փորձարկում
Դիզայնի փորձարկում
Դիզայնի փորձարկում

Փորձարկումն իրականացվել է երկու մեթոդաբանության միջոցով. Ձեռքով և ավտոմատացված:

Առաջինը, ձեռնարկը և ընդհանրապես օգտագործված սկզբնական ծածկագրի մշակման ժամանակ, 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
Arduino մրցույթ 2019
Arduino մրցույթ 2019
Arduino մրցույթ 2019

Երկրորդ տեղը զբաղեցնող Arduino մրցույթում 2019 թ

Խորհուրդ ենք տալիս: