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

IoT միացված սուրճի մեքենա. 9 քայլ (նկարներով)
IoT միացված սուրճի մեքենա. 9 քայլ (նկարներով)

Video: IoT միացված սուրճի մեքենա. 9 քայլ (նկարներով)

Video: IoT միացված սուրճի մեքենա. 9 քայլ (նկարներով)
Video: 5 մթերքներ, որոնք կտրականապես արգելվում է տալ մինչև 2 տարեկան երեխաներին 2024, Հուլիսի
Anonim
Image
Image
Անհրաժեշտ սարքավորում
Անհրաժեշտ սարքավորում

Այս հրահանգը մասնակցում է IoT մրցույթին: Եթե դա ձեզ դուր է գալիս, խնդրում ենք քվեարկել դրա համար:

ԹԱՐՄԱՎԱ. Այժմ ապահովում է երկկողմանի հաղորդակցություններ և OTA թարմացումներ

Արդեն որոշ ժամանակ ես ունեմ Jura սուրճի մեքենա և միշտ ցանկացել եմ այն ինչ -որ կերպ ավտոմատացնել:

Տարիներ շարունակ ես վարում եմ տան ավտոմատացման հիմնական համակարգը, բայց սուրճի մեքենան այն չէր, ինչը հեշտ էր ձևակերպել (կամ ես այդպես էի կարծում): Jura սուրճի մեքենաներն, ընդհանուր առմամբ, ունեն «Ախտորոշիչ նավահանգիստ» և/կամ նավահանգիստ, որն օգտագործվում է մեքենայի վրա վճարային համակարգ ավելացնելու համար, սակայն ես ոչ մի տեղեկություն չեմ գտել, թե ինչպես այն կարող է օգտագործվել: Բոլորովին վերջերս արձանագրությունը հետընթաց նախագծվեց որոշ անձանց կողմից և հրապարակվեց: Խնդիրն այն էր, որ առկա գործառույթների մասին հղումները շատ ավելի մեծ մեքենաների համար էին, քան իմը (Ena 7):

Բացի այդ, իմ մեքենան չունի մշտական սպասման հզորություն, ինչպես մեծ մեքենաները, փոխարենը ունի HV անջատիչ, որը սնուցման աղբյուրը «միացնում է»: Մեքենայի ֆիզիկական կոճակը իրականում ակտիվացնում է 2 անջատիչ `մեկ ցածր վոլտ (տրամաբանական կողմ, անջատում) և մեկ բարձր վոլտ (միացում): Երկու անջատիչներն էլ ակնթարթային են:

Ես նաև պետք է համոզվեի, որ մեքենան դեռ աշխատում է 100% անկախ որևէ կառավարման մեխանիզմից, այսինքն ՝ մեքենան դեռ աշխատում է նորմալ, կարծես IoT- ին միացված չէ:

Մեքենայի ավտոմատացման համար անհրաժեշտ է երկու բան. 1) Կարողանալ վերահսկել մեքենայի հզորությունը 2) Կարողանալ հաղորդակցվել մեքենայի հետ `սուրճ պատրաստելու, ողողելու և այլն գործառույթները ակտիվացնելու համար:

Քայլ 1: Ինչպես ենք դա անելու

Մենք կօգտագործենք ESP8266 'ESP-01' մոդուլը `տնային wifi- ին միանալու և հրամաններին լսելու MQTT սերվերին/թեմային բաժանորդագրվելու համար: Իմ օգտագործած «Front End» - ը OpenHAB2 է, բայց ոչ մի պատճառ չկա, որ չկարողանաք ավելացնել սարքի վեբ ինտերֆեյսին և ուղղակիորեն կառավարել, եթե ցանկանաք կամ HTTP Ստացեք հրամաններ:

ESP8266- ը կվերահսկի հոսանքի կոճակի հետ կապված 2 ռելեներ, ինչպես նաև սուրճի ապարատից դեպի/դեպի հաջորդական հրամաններ:

WԳՈՇԱՈՄ. Այս հրահանգը ներկայացնում է այն ընթացակարգը, որով ես օգտագործել եմ Jura Ena7 սուրճի մեքենան փոփոխելու համար, որը պետք է վերահսկվի տան ավտոմատացման միջոցով: Այն վերաբերում է էլեկտրական ցանցի սարքի փոփոխմանը, որը սխալ կատարելու դեպքում կարող է վտանգավոր լինել: Տեղեկատվությունը այստեղ կարող է լինել թերի, ոչ ճշգրիտ և վտանգավոր: Շարունակեք զգուշությամբ: Ոչ մի պատասխանատվություն չի ընդունվում:

Քայլ 2: Անհրաժեշտ սարքավորում

Անհրաժեշտ սարքավորում
Անհրաժեշտ սարքավորում
Անհրաժեշտ սարքավորում
Անհրաժեշտ սարքավորում
Անհրաժեշտ սարքավորում
Անհրաժեշտ սարքավորում

Մասեր

  • ESP-01 մոդուլը և այն ծրագրելու եղանակը (Arduino IDE և ծրագրավորման ֆիզիկական ադապտեր)
  • EBAY երկկողմանի ռելեի մոդուլ
  • 5v -> 3.3v կարգավորիչ EBAY
  • Փոքր 5 վ ցանցից աշխատող հեռախոսի լիցքավորիչ
  • Տրամաբանական մակարդակի փոխարկիչ* Freetronics
  • Տարբեր մետաղալարեր, կապի վերնագրեր, ջերմային նեղացում և այլն ՝ այդ ամենը միացնելու համար:

Գործիքներ

  • Նուրբ ծայրով զոդող երկաթ
  • Sոդող
  • Մետաղալարեր են հարմար
  • Torx T15 վարորդ
  • Օվալաձև անվտանգության գործիք (կամ պատրաստեք, տևում է ընդամենը մի քանի րոպե)

*Սկզբում ես օգտագործեցի arduino UNO- ն մեքենայի բոլոր սերիական հրամանների փորձարկման ժամանակ և այն աշխատեց անթերի, սակայն ESP մոդուլը հրաժարվեց աշխատել: Ես երեք անգամ ստուգեցի ծածկագիրը և համոզված էի, որ ESP մոդուլից դուրս եկող հրամանները նույնն են, ինչ arduino- ն, սակայն դա արգելք էր: Ես սա դնում եմ ESP մոդուլի վրա, որը աշխատում է միայն 3.3 վ տրամաբանության վրա և ոչ թե 5 Վ: Մի անգամ, երբ ես տեղադրեցի Logic փոխարկիչը, այն լավ աշխատեց: Սա կարող է կամ չպահանջվել այլ մեքենաներում:

Իդեալում, դուք կունենաք գոյություն ունեցող տան ավտոմատացման համակարգ, որն ապահովում է MQTT արձանագրությունը (օրինակ ՝ openhab), քանի որ սա այն է, ինչին ուղղված է նախագիծը: Եթե դուք պարզապես ցանկանում եք վերահսկել այն վեբ էջի կոճակների միջոցով ՝ առանց որևէ օժանդակ համակարգի, ապա ձեզ հարկավոր է որոշ փոփոխություններ կատարել ներկառուցված վեբ էջի կոդի մեջ: Դրան հասնելը չափազանց բարդ չէ (գուցե rev2..)

Քայլ 3. Յուրայի արձանագրություն

Յուրայի արձանագրություն
Յուրայի արձանագրություն

Սարքի/մեքենայից ստացված տվյալները պարզապես սերիական են @ 9600, բայց Յուրան նույնպես որոշ հնարքներ ունի իր թևերում: Արձանագրությունը կամ օգտագործում է սա լրացուցիչ ECC- ի համար և/կամ շփումը պղտորելու համար: Պարզ ասած, տվյալների յուրաքանչյուր բայթ (նիշ) բաժանվում է 4 ստանդարտ սերիական բայթերի 2 և 5 բիթերի վրա, որոնց հետևում է 8 մգ դադար: Եթե ցանկանում եք իմանալ, թե ինչպես է դա աշխատում, այստեղ շատ հղումներ կան:

Արձանագրության տեղեկատվությունը քաղված է ՝ https://protocoljura.wiki-site.com/ կայքից

Արդուինոյի ծածկագիրը պարզեցնում է դա ՝ հնարավորություն ընձեռելով փոխանցել ստանդարտ, մարդկային ընթեռնելի հրամաններ, որոնք այնուհետև տեղափոխվում է Jura արձանագրության մեջ:

Իմ կոդը կոդի համադրություն է ՝

Վերևում նշված կայքերում նշված հրամանները ճշգրիտ չէին իմ մեքենայի համար, բայց փորձարկման և սխալի մեթոդով ես կարողացա եզրակացնել հետևյալը.

FA: 01 - Անջատվում է (բայց կարծես չի ողողվում, նույնիսկ անհրաժեշտության դեպքում) FA: 02 - պատասխանում է «լավ», բայց վստահ չէ, թե ինչ է դա անում: FA: 03 - Rinse Message (Ստիպում է «ողողել» հաղորդագրությունը էկրանին, սեղմելով պտտվող ողողումների մեքենան) FA: 04 - Rinse Action - ողողում է, երբ հայտնվում է «Սեղմիր պտտվող կոճակը» հաղորդագրությունը, հակառակ դեպքում ոչինչ չի անում FA: 05 - Էկրանին ուժեղ (Ենթադրաբար սա զուգակցվում է սուրճ պատրաստելու համար) FA: 06 - Ուժեղ էկրանի վրա (Ենթադրաբար դա զուգակցվում է սուրճի համար սուրճ պատրաստելու հետ) FA: 07 - «Հատուկ» էկրանին, բայց իրականում ոչինչ չի անում, վստահ չեմ, թե սա ինչ է ForFA: 08 - Steam FA: 09 - Փոքր սուրճ FA: 0A - մեծ սուրճ

Կան այլ հրամաններ, բայց սա ինձ համար շատ է…

Unknownգույշ եղեք անհայտ հրամաններ տալու ժամանակ, օրինակ, ըստ երևույթին, AN: 0A- ն կսրբի մեքենայի EEPROM- ը …:

Քայլ 4: Ապամոնտաժում

Մեքենան ինքնաբերաբար բացելը չափազանց հեշտ չէ, քանի որ ձեզ հարկավոր են մի փոքր հատուկ գործիքներ, բայց խորամանկ մարդը միջոց կգտնի. Ձեզ անհրաժեշտ է T15 Torx բիտ և 2 պտուտակների համար «օվալային բանալին»: Torx- ն, որն արդեն ունեի, օվալաձև գործիքը, որը պատրաստել էի 4 մմ տրամագծով վարդակից, փորել և մուրճով մի փոքր հարթեցրել էր:

Այստեղ ցուցումները բավականին լավ ներկայացված են `https://marius.me.uk/blog/2015/03/open-jura-ena-5/

Քայլ 5: Երաշխիքից հրաժարվելը

Երաշխիքից հրաժարվելը
Երաշխիքից հրաժարվելը
Երաշխիքից հրաժարվելը
Երաշխիքից հրաժարվելը
Երաշխիքից հրաժարվելը
Երաշխիքից հրաժարվելը
Երաշխիքից հրաժարվելը
Երաշխիքից հրաժարվելը

Մեքենայի մեջ մտնելուց կտեսնեք հիմնական բաղադրիչները: Էլեկտրաէներգիայի հիմնական մուտքի տակ կա գեղեցիկ տեղ ՝ 5 վ լիցքավորիչ ավելացնելու համար:

Ես մեքենայի մուտքի տերմինալին ավելացրեցի (ցանցի գնահատված) լարեր և դրանք զոդեցի/տաքացրեցի 5 վ լիցքավորիչի լիցքավորման ցանցին: Իմ հատուկ մոդելը ոչ թե USB պորտի տեսակ էր, այլ այն, որի կապարը մշտապես ամրացված էր: Հնարավոր է, որ դուք բավարար տարածք չունեք USB տիպի մեկ պորտին, որպեսզի կարողանաք օգտագործել իրական USB մալուխը, բայց եթե բացեք լիցքավորիչը, կարող եք հեռացնել USB պորտը և փոխարինել ստանդարտ մետաղալարով 5v և Gnd կետերին:

Եթե ցանկանում եք, կարող եք փոխարինել մեկ այլ էլեկտրական ցանց, որը գնահատվում է 5 վ: 500 մ պետք է շատ լինի:

Ռելեի մոդուլի համար շատ տեղ կա սրիչապատի մոտ: Մենք պետք է մետաղալարով միացնենք երկու ռելեներ `հիմնական հոսանքի անջատիչներին զուգահեռ աշխատելու համար: Ես պարզապես կտրեցի եղած լարերը, հանեցի, կապեցի, ավելացրեցի լրացուցիչ մետաղալարեր և նորից զոդեցի (մի մոռացեք ջերմության նվազման մասին): Լարերի մեջ բավականաչափ թուլություն կար դա անելու համար:

Ռելե մոդուլը ամրացված է լավ որակի երկկողմանի ժապավենով: Լարերը միացված և շարժման համար սահմանափակ տարածությամբ, նույնիսկ եթե ժապավենը կորցնում է բռնելով, մոդուլը շատ հեռու չի գնա և չի կարող շփվել որևէ մետաղյա առարկայի հետ:

Ես նաև հետամնաց եմ իմ սարքի ախտորոշիչ պորտը ՝ ներքին միացումների վայրը որոշելու համար, որպեսզի կարողանամ հասնել ամբողջովին թաքնված ինտեգրման: Օգտագործվում են միայն tx, rx և Gnd լարերը:

Եթե ունեք ավելի առևտրային մեքենա, որն ապահովում է սպասման լարումը և/կամ չեք ցանկանում ձեր մեքենայի երաշխիքը չեղյալ համարել, փոխարենը կարող եք ուղղակիորեն միանալ ախտորոշիչ պորտին, բայց գուցե չկարողանաք միացնել մեքենան այս սարքի միջոցով:

Իմ մեքենան օգտագործում է 7 փին միակցիչ: Ձախից աջ ՝

NC Tx G Rx NC 5v NC

Մայր տախտակի համապատասխան կապում ՝ Կարմիր = Gnd Orange = Rx Սև = Tx

Լրացուցիչ տեղեկություններ կարելի է գտնել այստեղ ՝ pinouts- ում ՝

Քայլ 6: Տրամաբանական կողմի միացում

Տրամաբանական կողմի միացում
Տրամաբանական կողմի միացում
Տրամաբանական կողմի միացում
Տրամաբանական կողմի միացում
Տրամաբանական կողմի միացում
Տրամաբանական կողմի միացում

Վերանայեք դիագրամը. Այն չափազանց բարդ է թվում, բայց իրականում այդպես չէ:

Ես տեղադրեցի մակարդակի փոխարկիչը երկկողմանի ժապավենով (լիցքաթափված) լարման կարգավորիչի հետևի մասում: Այնուհետև ես օգտագործեցի որոշ բաղադրիչ ոտքեր ՝ մակարդակի փոխարկիչի երկու կողմերում հոսանքի և գրունտի կապերը միացնելու համար համապատասխան էներգիայի մոդուլի կապում: Այս ամբողջ մոդուլն այնուհետև աշխատում է որպես «անցում» ESP-01- ի ամբողջ տրամաբանության և էներգիայի մատակարարման համար:

Սերիական տվյալների համար օգտագործել եմ երկու միջին փոխարկիչ, իսկ ռելեային ազդանշանների համար `արտաքին երկուսը, բայց կարևոր չէ, թե որն եք օգտագործում:

Իրականում այս ռելեի մոդուլների հետ անհրաժեշտ չէ 5 վ տրամաբանություն վարել, քանի որ դրանք ակտիվ են OWԱOWՐ, բայց դա պարզապես լավ էր աշխատում, այնպես որ ես դա ամեն դեպքում արեցի:

ESP մոդուլին միանալու համար ես օգտագործել եմ 4x2 իգական վերնագիր: Սա թույլ է տալիս հեշտությամբ վերբեռնել ծածկագիրը կամ փոխարինել մոդուլը:

Դիագրամում պատկերված չէ 5 Վ մուտքը. Ես իմը միացրել եմ անմիջապես ռելեի մոդուլին (տես երկրորդ նկարը): Նկարի ներքևի ձախ կողմում գտնվող սև մետաղալարով սերիական տվյալներն անջատված են հիմնական տախտակին: Ես օգտագործեցի պաշտպանված 3.5 մմ ականջակալների երկարացման մալուխի մի մասը `պարզապես տվյալների տողում միջամտության հավանականությունը նվազեցնելու համար:

12f կոդը օգտագործում է SoftwareSerial- ը `ապարատային սերիայի փոխարեն. Սա թույլ է տալիս մոդուլին զեկուցել նորմալ սերիայի միջոցով կարգաբերման կարգավիճակի մասին: Փոխարենը միացումները կատարվում են 4 -րդ և 5 -րդ կապումներով: Ես նույն վերնագիրն եմ հարմարեցրել, որպեսզի ESP12F- ը փոխանակիչ լինի ESP-01- ի համար, պարզապես փոխելով այդ սերիական կապերը:

Քայլ 7: Մոդուլի ծրագրավորում

Մոդուլի ծրագրավորում
Մոդուլի ծրագրավորում

Կոդը կազմվել է Arduino 1.8.1 -ի դեմ ՝ ESP8266 տախտակի հավելումով և PubSubClient 2.6.0 -ով (որը MQTT գրադարանն է)

Փոփոխեք ծածկագիրը ՝ ըստ ձեր պահանջների և վերբեռնեք կոդը ESP-01 մոդուլում և միացեք մեքենային: Carefulգույշ եղեք քորոցների կողմնորոշման հարցում:

Կազմաձևում

Տարբերակ 1)

Միայն zip- ի բազային կոդի վրա: Երբ ESP մոդուլն առաջին անգամ բեռնվում է, այն անցնում է AP ռեժիմին և իր IP- ն սահմանում է 192.168.4.1: Այնուհետև կարող եք միանալ մոդուլին և փոխել IP- ն և միանալ ձեր սեփական մուտքի կետին: Դուք նաև պետք է ձեր սարքի համար IP սահմանեք այդ տիրույթում, քանի որ մոդուլում DHCP չկա:

Լռելյայն AP SSID- ը «ESPSwitch» է, իսկ գաղտնաբառը ՝ «12345678»

Այն լռելյայն մնում է AP ռեժիմում 2 րոպե: Դուք կարող եք փոխել այս կարգավորումը «global.h» - ում այն կոչվում է «adminTimeout» և գտնվում է միլիվայրկյանների ընթացքում: Ես խորհուրդ եմ տալիս սա փոխել ինչ -որ ցածր բանի, երբ EEPROM- ում ունենաք վավեր կազմաձև, քանի որ հակառակ դեպքում դա պարզապես անհարկի ուշացումներ կառաջացնի սարքի բեռնախցիկում:

Տարբերակ 2)

Սա ավելի նոր կոդի լռելյայն ռեժիմն է, որն ապահովում է երկկողմանի փոխանակում, 1 -ին տարբերակը հասանելի չէ: Կարող եք նաև փոխել հիմնական SSID/գաղտնաբառի կարգավորումները հիմնական ino ֆայլում (փնտրեք '// DEFAULT CONFIG'), որպեսզի այն բեռնվի այդ կարգավորումները EEPROM- ի մեջ առաջին բեռնման ժամանակ և փոխեք ադմինիստրատորի ռեժիմի հետաձգումը «global.h» - ում ցածր մակարդակի վրա: Սա խուսափում է ժամանակավոր AP- ին միանալու շուրջ խառնաշփոթից:

Սարքն ինքնաբերաբար իր MQTT id- ն (և բաժանորդագրության ուղին) կդնի մոդուլների սերիական համարի վերջին 4 թվանշանների վրա: Լռելյայն ճանապարհը ha/mod //#է, փոխեք ըստ ձեր հայեցողության, բայց կարդացեք ծածկագրի մեկնաբանությունները `համոզվելու համար, որ համապատասխան զանգվածը ունի ճիշտ երկարություն:

Ես դա անում եմ, քանի որ դա նշանակում է, որ ես չպետք է ստեղծեմ յուրահատուկ ID իմ ցանցի յուրաքանչյուր մոդուլի համար:

Սարքի ID- ն տեսանելի է, և MQTT սերվերը կարող է սահմանվել ներքին վեբ սերվերի MQTT սերվերի էջի միջոցով:

Քայլ 8: Կատարել բաներ…

MQTT հրահանգներն են

ha/mod/xxxx/0 կամ 1 = Միացնել ուժը

Otherանկացած այլ տող կդիտվի որպես հրաման և կուղարկվի սերիական նավահանգստի միջոցով: Կարգավիճակը հաղորդվում է /հա /սուրճ HEX- ում

OpenHAB- ով

coffeemachine.items

Համար Coffee_Machine_Power "Power" {mqtt = "> [control: ha/mod/8002/: command:*: default]"} String Coffee_Machine_Status {mqtt = "<[control: ha/coffee: state: default]"}

Կայքի քարտեզ

Խմբի նյութ = "Սուրճի մեքենա" {Փոխարկվող տարր = Coffee_Machine_Power label = "Power" քարտեզագրում = [1 = "Փոխել"] Փոխել տարրը = Coffee_Machine_Cmd label = "" mappings = ["FA: 09" = "Փոքր"] Փոխել տարրը = Coffee_Machine_Cmd label = "" mappings = ["FA: 0A" = "Large"] Switch item = Coffee_Machine_Cmd label = "" mappings = ["FA: 04" = "Rinse"] Text text = Coffee_Status label = "Status [%s] "}

voicecontrol.rules

ներմուծել org.openhab.model.script.actions.* ներմուծել org.openhab.core.library.types.* ներմուծել java.util.*

կանոն «Ձայնային հրամանի կանոններ»

երբ կետը VoiceCommand- ը հրաման է ստանում, ապա var String հրաման = VoiceCommand.state.toString.toLowerCase logInfo («Voice. Rec», «VoiceCommand ստացել»+հրաման)

if (command.contains («միացնել սուրճի մեքենան») || command.contains («անջատել սուրճի մեքենան»)) {

sendCommand (Coffee_Machine_Power, 1)} եթե (command.contain («ինձ համար մի փոքր սուրճ պատրաստիր»)) {sendCommand (Coffee_Machine_Cmd, "FA: 09")}} եթե (command.contain ((ինձ պատրաստիր մեծ սուրճ))) { sendCommand (Coffee_Machine_Cmd, "FA: 0A")}} եթե (command.contains («ողողել սուրճի մեքենան»)) {sendCommand (Coffee_Machine_Cmd, "FA: 04")}} վերջ

Կանոններ (HEX- ի պատասխանները «իրական» արժեքների մեկնաբանելու համար).

կանոն «Սուրճի մեքենայի կարգավիճակ», երբ Coffee_Machine_Status ապրանքն ստացել է թարմացում, ապա var String reply = Coffee_Machine_Status.state.toString () if (respond.indexOf ("ic:")> -1) {var String hexString = reply.substring (3, 5)

var int num = (Integer.parseInt (hexString, 16));

var String binaryString = String.format ("%8s", Integer.toBinaryString (num)). փոխարինել ('', '0')

var int trayBit = binaryString.substring (0, 1)

var int tankBit = binaryString.substring (2, 3) var int heatBit = binaryString.substring (7, 8) var int rinseBit = binaryString.substring (6, 7)

եթե (trayBit == "0") {

postUpdate (Coffee_Status, "Tray Missing")} if (tankBit == "1") {postUpdate (Coffee_Status, "Fill Tank")} if (rinseBit == "1") {postUpdate (Coffee_Status, "Press Rotary")} եթե (trayBit == "1" && tankBit == "0" && rinseBit == "0") {postUpdate (Coffee_Status, "Ready")}

}

եթե (պատասխան == "Անջատված") {postUpdate (Coffee_Status, "Off")} ավարտ

Քայլ 9. Կատարելագործում/Todo

Պարզեցրեք նախնական կարգավորումը ՝ միանալով wifi - Կատարված է: Հրաժարվեց «ադմինիստրատորի ռեժիմի» գաղափարից, քանի որ դա նյարդայնացնում էր: Այժմ պարզապես մուտքագրեք SSID և գաղտնաբառ: Պահվում է EEPROM- ում, եթե թարմացնեք/փոխեք վեբ ինտերֆեյսի միջոցով:

Ավելի նոր ծածկագիրն աջակցում է նաև OTA- ի թարմացումները, սակայն դրա համար անհրաժեշտ կլինի արդիականացնել EEPROM- ը ESP-01 մոդուլում `համապատասխան OTA- ի տարրերը աշխատելու կամ մեկնաբանելու համար:

Ավելացրեք կոդ մեքենայից պատասխանների մշակման համար և կարդացեք կարգավիճակը, ինչպիսին է սկուտեղը, դատարկ հիմքը և լցված բաքը - Կատարված է: Ես կոդ եմ ավելացրել ՝ կարգավիճակը հետ կարդալու և հա/սուրճի համար հրապարակելու համար: Սա պարզապես հում պատասխաններն են, և ես դեռ աշխատում եմ դրանց մեկնաբանման վրա, բայց մինչ այժմ ես ունեմ, որ սկուտեղը բացակայում է, իսկ «Տանկը» դատարկ է աշխատում: Այն հարցնում է մեքենան յուրաքանչյուր 9 վայրկյանը մեկ, երբ միացված է և հրապարակում է MQTT- ի պատասխանը:

Պատասխանը HEX է, բայց առանձին բիթերը ցույց են տալիս սենսորները:

Կոդ ավելացրեք վեբ էջերին ՝ HTTP GET հրամանների միջոցով անմիջական վերահսկողության համար:

Իրերի ինտերնետի մրցույթ 2017 թ
Իրերի ինտերնետի մրցույթ 2017 թ
Իրերի ինտերնետի մրցույթ 2017 թ
Իրերի ինտերնետի մրցույթ 2017 թ

Իրերի ինտերնետի առաջին մրցանակ 2017

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