ShiIoTiny. փոքր ավտոմատացում, իրերի ինտերնետ կամ «արձակուրդից վեց ամիս առաջ»

ShiIoTiny. փոքր ավտոմատացում, իրերի ինտերնետ կամ «արձակուրդից վեց ամիս առաջ»

Հիմնական կետերը կամ ինչի մասին է այս հոդվածը

ТՔանի որ մարդկանց հետաքրքրությունները տարբեր են, իսկ մարդիկ քիչ ժամանակ ունեն, ապա հակիրճ հոդվածի բովանդակության մասին։

СԱյս հոդվածը վերահսկիչի նախագծի ակնարկ է նվազագույն գնով և հնարավորություններով տեսողական ծրագրավորում WEB բրաուզերի միջոցով:

ПՔանի որ սա վերանայման հոդված է, որի նպատակն է ցույց տալ, թե «ինչ կարելի է քամել մի կոպեկի վերահսկիչից», դուք չպետք է դրանում խորը ճշմարտություններ և մանրամասն ալգորիթմներ փնտրեք:

РԴիտարկվում են WiFI չիպի վրա հիմնված վերահսկիչ կառուցելու մոտիվացիան, գաղափարները և արդյունքները ESP8266.

Զգուշացեք

Ես չէի ուզում գրել այս հոդվածը: Ես ընդհանրապես հոդվածներ գրելու սիրահար չեմ։ Սրա մասին պետք է մտածել, այն էլ՝ շատ։ Մտածեք, թե ինչպես գրել այնպես, որ ձեզ սխալ հասկացողների թիվը հասցվի նվազագույնի։ Մտածեք, թե ինչպես չգնալ ծայրահեղությունների: Եվ դեռ շատ բան կա մտածելու:
Բայց ընկերներս ասացին, որ քանի որ IoT-ի և այլ փոքր ավտոմատացման ոլորտում իմ ջանքերը հետաքրքիր են իրենց համար, ապա դրանք կարող են նաև հետաքրքիր լինել ուրիշների և լայն հանրության համար: Լավ, որտե՞ղ է հավաքվում հասարակությունը, որը հետաքրքրված է դրանով։ Իհարկե, հանգույցի վրա: Եվ ահա ես եմ։ Հին ընթերցող և նոր գրող.

Ես որևէ պատասխանատվություն չեմ կրում սխալների, անճշտությունների, տառասխալների, հնացած ներկայացման ոճի և այլնի համար, որոնք կարող են դուր չգալ ընթերցողին։ Կարդացեք ձեր ռիսկով:

Նաև անմիջապես զգուշացնում եմ, որ չեմ բացատրի, թե ինչ են MQTT, WiFi և UDP multicast և այլ բաներ, որոնք ուղղակիորեն կապված չեն թեմայի հետ։ Հոդվածի վերջում կան մի քանի հղումներ:

Գաղափարի կամ ինչ-որ տեքստի ծնունդ

ЖԿյանքը հեշտ բան չէ, և Նորին Մեծություն Շանսը կարևոր դեր ունի դրանում։ Այսպիսով, ես ուզում եմ կիսվել, թե ինչպես պատահական իրադարձությունները, զուգորդված բնական ծուլության հետ, հանգեցրին ESP8266-ի վրա հիմնված կարգավորիչի բավականին հետաքրքիր զարգացմանը:

НԱմեն ինչ սկսվեց բավականին սովորական ձևով. ես ուզում էի համակարգ կառուցել երկրի այգիների և թփերի ջրամատակարարման և ջրելու համար:

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

Т«Փոքր ավտոմատացման» թեման կամ, ինչպես սովորաբար ասում են «այս դպրոցական-հաքեր-հիփսթերների» թեման՝ IoT-ի թեման՝ Իրերի ինտերնետ, ինձ վաղուց է հետաքրքրում։ Ինտերնետը լայնորեն կիրառվելուց շատ առաջ:

ЕՆույնիսկ որպես երեխա, ես ուզում էի, որ ամեն ինչ «ինքնուրույն» ինչ-որ բան աներ։ Եվ ցանկալի կլիներ, որ հեռվից ինչ-որ կերպ կառավարեի նրանց։ Բայց այն ժամանակ (80-ականներ, անցած հազարամյակի 90-ականների սկիզբ) սա բավականին դժվար էր։ Համացանցը լայնորեն հասանելի չէր աշխարհում ոչ մի տեղ, ինչպես որ ոչ մի տեղ չկար բջջային հեռախոսներ, պլանշետներ կամ նույնիսկ LCD էկրաններ կամ USB ֆլեշ կրիչներ: Այսպիսով, մենք ստիպված էինք սահմանափակվել «ծափահարել լույսի անջատիչներով» և պարզ ռադիոհեռակառավարմամբ: Բայց այն ժամանակների ու այդ տարիքի համար վատ ու հետաքրքիր չէր։

НՕ՜, սրանք անցյալի բաներ են։ Հիմա 15-րդ դարն է։ Եվ բոլորը գրպանում ունեն սմարթֆոն, ինտերնետը հասանելի է գրեթե ամենուր, որտեղ այն պետք է և ոչ, և հասանելի էլեկտրոնային բաղադրիչների բազան այժմ այնպիսին է, որ ընդամենը XNUMX տարի առաջ Երկիր մոլորակի միջին բնակիչը երբեք չէր երազի դրա մասին։ .

ПՀետևաբար, որոշելով ամառանոցում ջրային գործերի կարգավորիչ կառուցել, ես ուշադրությունս դարձրի ESP8266 չիպի վրա:
Նախ, այս չիպը էժան է: Եվ եթե մեկ կարգավորիչը բավարար չէ, կարող եք տեղադրել երկու, երեք կամ հինգ: Երկրորդ, այն ունի WiFi-ը: Այսինքն՝ ինտերնետի միջոցով կարելի է դիտել, թե ինչ է կատարվում և նույնիսկ վերահսկել գործընթացը ցանկացած սմարթֆոնից։ Իհարկե, ձեզ անհրաժեշտ է մուտքի կետ ինտերնետ հասանելիությամբ, բայց դա խնդիր չէ: Ինչևէ, այն գրեթե ամենուր է կամ պատրաստվում է լինել, այդ թվում՝ իմ տնակում։

ПԸնկղմվելով ESP8266-ի նախագծերի հիասքանչ աշխարհում՝ ես զարմացա, երբ հայտնաբերեցի, որ չնայած այս չիպի զարմանալի հնարավորություններին, դրա վրա նախագծերը, հազվադեպ բացառություններով, բաժանվում են երկու տեսակի. անջատիչները ձեր սմարթֆոնից և նայեք սենսորի ջերմաստիճանի վիճակին ինտերնետի միջոցով»; կամ լավ ու ամուր JavaScript կամ Lua թարգմանիչներ, բայց ցավոք սրտի, նրանք սպառում են գրեթե ողջ հիշողությունը և թույլ չեն տալիս լուրջ բան անել։

ПԻմ առաջին գաղափարը նույնքան պարզ էր, որքան նրբաբլիթները՝ գրել պարզ ծրագիր պոմպերը կառավարելու համար՝ հիմնված սենսորների վիճակի վրա և վերջ: Բայց, տարբեր համակարգերի ներդրման փոցխի վրա ցատկելու առումով փորձված գլանակի պես, ես հասկացա, որ հաստատ չեմ կարողանա նախապես կանխատեսել ալգորիթմի բոլոր թեքությունները, որոնք ես կցանկանայի կամ պետք է ուղղել շինարարության ընթացքում: ջրամատակարարման և ոռոգման համակարգ.

ДՇատ հարմար չէ ծրագիրը մշակել տնակում, մութ գոմում: Բայց դուք պետք է:
Ո՞րն է ելքը։ Իհարկե, առաջին բանը, որ մտքովս անցավ, ալգորիթմը կարգավորելի դարձնելն էր: Գործընկերներիցս մեկը շատ խորհուրդներ տվեց՝ ինչ սարքել և ինչպես: Սրանով նա սպանեց իմ առաջին միտքը բողբոջում։ Նրա շնորհիվ։ Եթե ​​նա իմ աչքի առաջ չբացահայտեր այն պարամետրերի քանակը, որոնք ես պետք է կարգավորեի, ես հավանաբար չէի հրաժարվի այս տարբերակից՝ ստեղծել ալգորիթմի կարգավորումների էջ:

НՊարամետրերի քանակի, և նույնիսկ մեկը մյուսի վրա ազդող պարամետրերի սարսափելի պատկերը սթափեցրեց ինձ։ Եվս մեկ անգամ հասկացա, որ ամեն ինչ չես կարող կանխատեսել...

СԵս մեկ անգամ վերապահում կանեմ՝ ես ծույլ եմ: Շատ ծույլ! Ես, անկեղծ ասած, ծույլ եմ ամեն անգամ վերաշարադրել ծրագիրը: Հետևաբար, խնդիր առաջացավ՝ ինչպե՞ս արագ և հեշտությամբ սահմանել ալգորիթմ, ցանկալի է՝ առանց ծրագրավորման: Ավելին, այս ալգորիթմը բավականին բարդ կլինի. կունենա շատ պարամետրեր; կլինի հատուկ իմ գործին և ոչ պիտանի ուրիշների համար: Իսկ ես շատ եմ ուզում սարքը քիչ թե շատ ունիվերսալ դարձնել...

ПՔանի որ արձակուրդից և ամենատարբեր խողովակների պոմպային աշխատանքներին դեռ մոտ վեց ամիս կար, ես որոշեցի ժամանակս տրամադրել և մտածել, թե ինչպես այն դարձնել հարմար և գեղեցիկ: Ինչպե՞ս ծրագրավորել առանց ծրագրավորման: Ինչպե՞ս անել առանց տրիլիոն պարամետրերի, որոնք կարող են փոխվել կազմաձևման ժամանակ:

КԻնչպես միշտ, մեզնից առաջ ամեն ինչ արդեն հորինված էր. ես հասկացա, որ ուզում եմ ալգորիթմ նկարել գործողությունների քառակուսիների տեսքով և կապել դրանք կապի գծերի հետ, որոնք ցույց են տալիս, թե ուր են թռչում տվյալները: Դե, մատնացույց անելով քառակուսին, ես ուզում եմ կարգավորել դրա առանձին պարամետրերը:

ИԱլգորիթմը քառակուսիներով գծելով սահմանելու գաղափարը նոր չէ: Նման համակարգեր կային դեռ 80-ականներին. Այժմ կա գերհանրաճանաչ NodeRed համակարգը, որը քաջ հայտնի է նրանց, ովքեր արդեն միացել են փոքրածավալ ավտոմատացման/IoT աշխարհին։

НՕհ, ահա խնդիրը. նման համակարգերը նախատեսված են «մեծ համակարգիչների համար»: Վատագույն դեպքում՝ Raspberry PI-ի վրա: Բայց ոչ ESP8266-ի վրա, որն ունի ընդամենը մի քանի տասնյակ կիլոբայթ RAM և չունի օպերացիոն համակարգ:

Кինչ անել? Եվ միայն երկու ելք կա՝ գրեք և նկարեք ծրագիր «մեծ համակարգչի» կամ նոութբուքի վրա, այնուհետև այն ինչ-որ ձևով փոխանցեք ESP8266-ին, կամ փորձեք «խցկել անհնարինը» հենց ESP8266 կարգավորիչի մեջ:

ПՀետևաբար, իմ ունեցած առավելագույն ծրագիրը սա էր. ձեր կարգավորիչը ծրագրավորելու համար ձեզ այլ բան պետք չէ, քան վեբ բրաուզերով նոութբուք: Այսինքն, վեբ զննարկիչով նոութբուք և իմ վերահսկիչ - սա պետք է բավարար լինի կառավարման ծրագրերը ամբողջությամբ կարգավորելու և գրելու և նկարելու համար:

И, ինչպես պարզվեց, դա միանգամայն հնարավոր էր իրականացնել։
Ես ձեզ չեմ ձանձրացնի նախագծի մշակման բոլոր մանրամասներով: Միայն կասեմ, որ մշակման գործընթացում մտքիս ու լեզվի մեջ մտած բառերի հիման վրա հնարավոր կլիներ կազմել առանձին «Էլեկտրոնային արդյունաբերության աշխատողների կողմից օգտագործվող անպարկեշտ լեզվի բառարան« Բայց ամեն ինչ ավարտված է: Ավելի ճիշտ՝ ոչ ամեն ինչ, այլ առաջին, ամենադժվար փուլը, երբ պարզ չէ՝ ապրելու քո գաղափարը կլինի՞, թե՞ դա միայն լուսնյակ գիշերին գորշ ժլատվող մոլորության զառանցանք է:

ПԵս կկիսվեմ դուրս եկածի և անունը ստացածի արդյունքով «ShIoTiny Controller».

Եւ ինչ պատահեց?

Ապարատային ShIoTiny կարգավորիչը ստանդարտ և պարզ է՝ երեք մուտք՝ նախատեսված «չոր կոնտակտի» տիպի սենսորների համար (կոճակներ, եղեգի անջատիչներ, դրանք նաև ջրի մակարդակի տվիչներ են տանկի մեջ), մեկ ADC մուտք, մեկ մուտք՝ ջերմաստիճանի և խոնավության սենսորը միացնելու համար։ DHT22 տեսակ կամ նմանատիպ: Եվ վերջապես, երեք ելք՝ անջատիչ ռելեների տեսքով 220 վոլտ, 1 ամպեր: Ռելեն ասում է 10A, բայց ես ռեալիստ եմ և թույլ չեմ տա 10 Ամպեր տախտակի միջով անցնել: Իսկ պոմպի մեկնարկիչները կառավարելու համար բավական է 1 Ամպեր: Այս ամենը սնուցվում է 5-ից 9 վոլտ լարման աղբյուրից։

ЧՃիշտն ասած, ես հենց այնպես ավելացրեցի ջերմաստիճանի սենսորը, բայց ADC-ի վրա հույսեր ունեի չափելու սնուցման ցանցի լարումը։ Ով գիտի?

РԻհարկե, բոլոր մուտքերը, բացառությամբ DHT22-ի միացման մուտքի, պաշտպանված են ռեզիստորներով և դիոդներով. ես ցանկություն չունեի այրել ESP8266-ը, իսկ դիոդներն ու ռեզիստորներն արժեն ընդամենը մի քանի կոպեկ:

լուսանկար Պատրաստի արտադրանքը կարելի է տեսնել հոդվածի սկզբում: Ես պատվիրեցի այս տախտակներից մի քանիսը. իսկ եթե այրեմ դրանք կամ ստիպված լինեմ կտրել ուղու ոտքերը:
Բայց, բարեբախտաբար, ես ստիպված չէի.

ФԱյս ապրանքը, իհարկե, գեղեցկություն և վեհություն է: Բայց հարմարության համար ստորև ներկայացված է սենսորների և ակտուատորների սիմուլյատորների տախտակին միացնելու գծագրական դիագրամ:

ShiIoTiny. փոքր ավտոմատացում, իրերի ինտերնետ կամ «արձակուրդից վեց ամիս առաջ»

Вմակարդակի սենսորների փոխարեն կան Input1..3 կոճակներ, մեկնարկիչների փոխարեն՝ LED-ներ միացված Relay1..3 ռելեին։ Դե, փոփոխական ռեզիստոր ADC-ի վրա՝ մուտքային լարումը մոդելավորելու համար:
КԵրբ ռելեն անջատված է, կարմիր լուսադիոդը վառվում է: Եվ երբ այն միացված է, այն կանաչ է: Այսպիսով, ես այն կարգաբերեցի սեղանի վրա:

КԱյս ամենից բացի, տախտակի ձախ կողմում կա հոսանքի միակցիչ, իսկ աջում՝ սպասարկման երկու կոճակ՝ Reset և AP։ Դե, կա DIP անջատիչ, որը սարքը միացնում է ծրագրավորման ռեժիմին: Հասանելի է նաև ESP8266 ծրագրավորման միակցիչը USB-UART ադապտերի միջոցով:

Որոշ բացատրություններ կոճակների մասին. Ինչ է Նորից դնել - Եվ այսպես, պարզ է. Եվ ահա կոճակը AP անհրաժեշտ է թարգմանել ShioTiny մուտքի կետի ռեժիմը բացելու համար (կազմաձևման ռեժիմ կամ Կազմաձևման ռեժիմ): Ինչու է դա անհրաժեշտ: Դե, օրինակ, դուք խառնել եք ձեր ցանցի կարգավորումները և ցանկանում եք փոխել դրանք: Սեղմեք AP կոճակը մի քանի վայրկյան (մինչև գեղեցիկ կապույտ լուսադիոդը վառվի): Այնուհետև վերցրեք սմարթֆոնը կամ նոութբուքը, միացրեք WiFi-ը և այնտեղ տեսեք բաց մուտքի կետ esp_8266_xxxx անունով և միացեք դրան: Այնուհետև գնացեք ձեր սմարթֆոնի կամ նոութբուքի բրաուզերը և մուտքագրեք հասցեագոտում՝ 192.168.4.1: Եթե ​​ամեն ինչ կարգին է, ապա դուք տեղափոխվում եք ShioTiny վերահսկիչի էջ և կարող եք նորից կարգավորել այն:

КԻնչպես տեսնում ենք, սարքավորումը ոչ մի բարդ բան չէ: Հետեւաբար օ ծրագրային մաս.

ВԵս նկարագրելու եմ իրականացման բոլոր տարօրինակությունները, բայց ավելի ուշ: Մի օր. Եվ այսօր ես ծրագրաշարը կդիտարկեմ միայն «դրսից», այսինքն ՝ օգտագործողի տեսանկյունից՝ ինքս կամ մեկ ուրիշը, ով ռիսկի է դիմել իմ արհեստը օգտագործելու համար (կան նաև այդպիսի կասկադյորներ):

С Օգտագործողի տեսանկյունից սարքը HTTP սերվեր է, որը հասանելի է WiFi-ի միջոցով: Բոլոր կարգավորումները, ծրագրավորումը և այլն կատարվում են WEB բրաուզերի միջոցով:

ИԱյսպիսով, մենք գնացինք վերահսկիչի էջ: Ի՞նչ ենք մենք տեսնում։ Եվ մենք տեսնում ենք «Վերահսկում և կարգավիճակ» ներդիրը, որը ցույց է տալիս օգտագործվող սարքերի ներկայիս վիճակը՝ մուտքեր, ելքեր, ADC, DHT22: Բացի այդ, ցուցադրվում են մուտքի կետին միացման պարամետրերը (եթե մենք աշխատում ենք WiFi կայանի ռեժիմում); մուտքի կետի պարամետրերը (եթե մենք աշխատում ենք WiFi մուտքի կետի ռեժիմում) կամ երկուսն էլ: Դե, բացի այդ, MQTT բրոքերի հետ կապի պարամետրերը ցուցադրվում են, եթե օգտագործվում է MQTT արձանագրությունը:

ShiIoTiny. փոքր ավտոմատացում, իրերի ինտերնետ կամ «արձակուրդից վեց ամիս առաջ»

КԻնչպես տեսնում ենք, ոչ մի առանձնահատուկ կամ հետաքրքիր բան։ Անգամ սեղմելու բան չկա: Չնայած... Եվս երկու ներդիր կա։ Ցանցի կարգավորումների կարգավորում Networking և ծրագրի շրջանային խմբագիր ԷլԴրաու.

Кուրեմն գուշակեցիք, Networking - սա ցանցի կարգավորում է, բայց ոչ միայն: Այն ունի ևս մի քանի հետաքրքիր պարամետր. Եկեք սեղմենք ներդիրը Networking և մենք այնտեղ կտեսնենք մոտավորապես այն, ինչ ցույց է տրված նկարում:
НՄուտքի կետի անվան և գաղտնաբառի կարգավորում յուրաքանչյուր ռեժիմի համար՝ WiFi կայան և WiFi մուտքի կետ: Ամեն ինչ կարծես պարզ է. Ինչպես նաև կոճակի նպատակը «Սկան WiFi» բավականին թափանցիկ:
А ահա բացվող ցուցակը «ShIoTiny ռեժիմ» պարզաբանում է պահանջում։ Փաստն այն է, որ ես ոչ մի կերպ չէի կարողանում որոշել, թե որ ռեժիմն ինձ ավելի հարմար կլինի աշխատել։ Եվ այդ պատճառով նա տրամադրել է սարքի շահագործման 5 ռեժիմ։

ShiIoTiny. փոքր ավտոմատացում, իրերի ինտերնետ կամ «արձակուրդից վեց ամիս առաջ»

ПԵկեք համառոտ թվարկենք այս գործող ռեժիմները:

Կազմաձևման ռեժիմ - կազմաձևման ռեժիմ: Սա բաց մուտքի կետի ռեժիմ է՝ 192.168.4.1 ֆիքսված հասցեով և esp_8266_xxxx անունով:

Կայանի ռեժիմ — ձեր մուտքի կետին միացված WiFi կայանի ռեժիմ:

AP ռեժիմ - փակ մուտքի կետի ռեժիմ: Դուք ինքներդ եք սահմանել անունը և գաղտնաբառը:

AP + Station ռեժիմ - սա AP ռեժիմ + Station ռեժիմի միաժամանակյա ակտիվացումն է:

Single ռեժիմ — աշխատել ընդհանրապես առանց ցանցային կապի: Միայնակ հսկիչը կրում է իր ծանր բաժինը...

В ռեժիմներից որևէ մեկը, բացառությամբ «Կազմաձևման ռեժիմ», կարող եք արգելափակել WEB էջը՝ նշելով վանդակը «Կողպել վեբը Station ռեժիմում». Սա մի տեսակ անվտանգության նկատառումներով է:

НMQTT-ի կարգավորումներն ակնհայտ են՝ սերվեր, նավահանգիստ, գաղտնաբառ, բաց կապ կամ ըստ SSL. Այստեղ ես չեմ մանրամասնի:

КԻ թիվս այլ բաների, ShIoTiny կարգավորիչը կարող է ուղարկել և ստանալ հատուկ ձևաչափի փաթեթներ multicast-ի միջոցով: Նրա կարգավորումները նույնպես ակնհայտ են՝ խմբի հասցեն և պորտը։
Իհարկե, եթե նկարագրեք կարգավորումների բոլոր նրբությունները, ապա կստանաք առանձին հոդված, բայց դա իմ պլանների մեջ չէ:

Иայո, ներդիրով Networking ամեն ինչ քիչ թե շատ պարզ է. Եկեք անցնենք վերահսկիչի հիմնական առանձնահատկությունին `ծրագրի սխեմայի խմբագրին ԷլԴրաու.

Тներդիրի վրա հպելով ԷլԴրաու, մենք կտեսնենք հետևյալի նման մի բան. Իհարկե, եթե սարքը չունի բեռնված միացում, ապա միացման դաշտը դատարկ կլինի:

ShiIoTiny. փոքր ավտոմատացում, իրերի ինտերնետ կամ «արձակուրդից վեց ամիս առաջ»

Сձախ - տարրերի կամ հանգույցների (հանգույցների) գունապնակ:
Сիրավունքներ - սխեմայի դաշտ կամ պարզապես «սխեմա»:
СՎերևում տեղադրված են սկավառակի և սարքի վրա բեռնելու և բեռնաթափելու կոճակներ, ինչպես նաև խմբագրման կոճակներ:

ДՆրանց համար, ովքեր աշխատել են խմբագիրների հետ, կառավարումն ընդհանուր առմամբ ակնհայտ է։ Դուք պետք է տարր ավելացնեք գծապատկերում. վերցրեք այն մկնիկի օգնությամբ և քաշեք այն գունապնակից դեպի դիագրամ: Եթե ​​Ձեզ անհրաժեշտ է հեռացնել տարրը կամ կապը դիագրամից, սեղմեք դրա կամ դրա վրա մկնիկի օգնությամբ և սեղմեք ստեղնը DEL. Մենք պետք է միացնենք տարրերը. մենք վերցնում ենք մի տարրի մուտքը և միացնում այն ​​մյուսի ելքին:

ЕԿա նաև սանդղակ (SHIFT+մկնիկի անիվ): Ցավոք, հնարավոր չէ պատճենել տարրերը և տարրերի խմբերը: Բայց սա ինձ այնքան էլ չի անհանգստացնում:

КԲացի այդ, տրամաբանական նկատառումներից ելնելով, հանգույցի մուտքը կարող է միացվել միայն մեկ այլ հանգույցի մի ելքի հետ։ Բայց հանգույցի ելքը այլ հանգույցների մի քանի մուտքերով է: Մուտքերը միշտ հանգույցներից ձախ են: Ելքերը միշտ աջ կողմում են:

КԻ՞նչ հնարավորություններ ունենք ալգորիթմներ իրականացնելու համար:
ВՀնարավորությունները բավականին ընդարձակ են։ Ներկապնակը պարունակում է հանգույցներ, որոնք ներկայացնում են վերահսկիչի բոլոր սարքավորումները ShioTinyմուտքեր, ռելեներ, ADC, DHT11/22:

ДՏվյալների մշակման համար կան տրամաբանական և թվաբանական հանգույցներ:

ЧՈրպեսզի մենք սարքի հետ աշխատենք ինտերնետի միջոցով, MQTT բրոքերում կան պարամետրեր բաժանորդագրվելու և հրապարակելու հանգույցներ:

ЕԵթե ​​ցանկանում ենք, որ ShioTiny մի քանի կարգավորիչներ միմյանց հետ փոխանակեն տեղեկատվություն, մենք կարող ենք օգտագործել հանգույցներ՝ պարամետրեր ուղարկելու և ստանալու համար՝ օգտագործելով UDP multicast արձանագրությունը:

КԲացի այդ, կան ժամանակաչափ հանգույցներ; իրադարձությունների մշակման կառավարման հանգույցներ:

ПԵս ձեզ մի քանի օրինակ կբերեմ: Օրինակ, ուզու՞մ եք, որ ջերմաստիճանի և խոնավության տվյալները հրապարակվեն MQTT սերվերում յուրաքանչյուր 30 րոպեն մեկ: Ավելի պարզ բան չէր կարող լինել։ Եկեք նկարենք այսպես.

ShiIoTiny. փոքր ավտոմատացում, իրերի ինտերնետ կամ «արձակուրդից վեց ամիս առաջ»

Жմեմ կոճակ «Վերբեռնում»: Բոլորը!
ЕԵթե ​​դուք ճիշտ եք կարգավորել կապը MQTT բրոքերի հետ «Ցանցային» ներդիրում, ապա այսքանը:
Кյուրաքանչյուր կես ժամը մեկ բրոքերում ջերմաստիճանը կհրապարակվի /T թեմայով, իսկ խոնավությունը՝ /H թեմայում։ Կամ, եթե դուք սահմանել եք ձեր սեփական թեմաների անունները, ապա դրանցից ցածր:
ЗԱկնհայտ հարցն այն է, թե ինչու է 18000-ը 30 րոպե: Որովհետև բոլոր ժամանակները չափվում են վայրկյանի տասներորդով:

ТԱյժմ դուք ցանկանում եք այս սխեմային ավելացնել Relay1 ռելեն ինտերնետի միջոցով միացնելու հնարավորությունը և նույնիսկ որոշակի ժամանակով: Ոչ մի խնդիր. Ավարտենք գծանկարն այսպես.

ShiIoTiny. փոքր ավտոմատացում, իրերի ինտերնետ կամ «արձակուրդից վեց ամիս առաջ»

ОՀինգ կտտացրեք «Վերբեռնում» կոճակին: Բոլորը! Այժմ, բացի նրանից, որ յուրաքանչյուր կես ժամում ջերմաստիճանը և խոնավությունը կհրապարակվեն MQTT բրոքերում, հնարավոր կլինի միացնել Relay1 ռելեը։ Այո, ոչ միայն միացրեք այն, այլ ուղիղ 10 րոպե: Դուք կարող եք միացնել ռելեը՝ հրապարակելով /r1cmd թեման՝ սահմանելով 1։ Իսկ ռելեի իրական վիճակը կհրապարակվի /r1status թեմայում։

ВՑանկանու՞մ եք ոչ միայն միացնել, այլև ժամանակից շուտ անջատել ռելեը: Այո, ինչ ասես։ Ստորև նկարը ցույց է տալիս, թե ինչպես դա անել:

ShiIoTiny. փոքր ավտոմատացում, իրերի ինտերնետ կամ «արձակուրդից վեց ամիս առաջ»

ПԱրդյո՞ք սկզբունքը պարզ է: Դուք պարզապես նկարում եք ալգորիթմը ձեր մկնիկի օգնությամբ: Եվ գրեք մի քանի կարգավորում՝ ժամանակ, թեմայի անվանում և վերջ: Սա շատ ավելի պարզ է, քան մի փունջ կոդ գրելը:

КԻ դեպ, տարբեր գույներով կապեր ընդգծելը «Photoshop» չէ, դա խմբագրի գործառույթներից մեկն է: Միացումները կարող եք գունավորել այնպես, ինչպես ցանկանում եք, որպեսզի չշփոթվեք։

Нհա, և սա դեռ ամենը չէ: Ալգորիթմը վրիպազերծելու համար կա «Մոնիտորի մեկնարկ» կոճակը: Տարօրինակ կերպով, այն միացնում է «մոնիտորի» ռեժիմը: Այս ռեժիմում բոլոր հանգույցների բոլոր ելքերի վիճակը պարբերաբար ընթերցվում է վերահսկիչից ShioTiny և ցուցադրվում է դիագրամի վրա: Մոտավորապես, ինչպես ստորև նկարում:

ShiIoTiny. փոքր ավտոմատացում, իրերի ինտերնետ կամ «արձակուրդից վեց ամիս առաջ»

ТԱյսինքն, մենք կարող ենք «գրեթե իրական ժամանակում» տեսնել, թե ինչ ունենք յուրաքանչյուր հանգույցի մուտքագրման և ելքի վրա: Դա շատ է օգնում, երբ ինչ-որ բան պարզ չէ:

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

Fly է քսուք

КԻհարկե, ես ուզում եմ, որ քսուքի մեջ ճանճ չլինի, բայց աշխարհն իդեալական չէ։ Ե՛վ իմ խմբագիրը, և՛ իմ վերահսկիչը կատարյալ չեն: Ես հայտնաբերեցի երկու հիմնական հատկանիշ, որոնք դեռ չեմ կարողացել վերացնել։

ВՆախ, երբեմն անսարքություններ են առաջանում տարրերը խմբերով տեղափոխելիս: Բայց սա շատ չի խանգարում աշխատանքին։ Ավելի շատ «առանձնահատկություն», քան «bug»:

И, երկրորդը, որոշակի պայմաններում, «Վերբեռնում» կոճակի միջոցով շղթան սարքում բեռնելուց հետո այն վերագործարկվում է: Սա չի խանգարում կյանքին, բայց խմբագրի էջը պետք է թարմացվի:

Ամփոփում

НՀուսով եմ, որ ձեզ դուր եկավ ծրագրեր գրելու փոխարեն ալգորիթմներ նկարելու գաղափարը: Ահա թե ինչպես են պատահական մտքերը, գաղափարներն ու վեճերը երբեմն միանգամայն կենսունակ զարգացումների տեղիք տալիս։

НԱյ, իմ կարծիքով հոդվածի ծավալը հատել է ողջամիտ բոլոր սահմանները։ Այսպիսով, ես կավարտեմ այսօրվա համար:
ПԱսեմ միայն, որ արձակուրդին մնացել է ընդամենը մի քանի շաբաթ, և ես լիովին պատրաստ եմ սեղանի շուրջ կարգավորիչի վրիպազերծումից անցնել «դաշտում» այն կարգաբերելուն:
ЕԵթե ​​որևէ մեկին հետաքրքրում է իմ գաղափարները կամ զարգացման մանրամասները, գրեք ինձ. [էլեկտրոնային փոստով պաշտպանված]

ВՄիշտ ուրախ կլինեմ ստանալ մեկնաբանություններ ու քննադատություններ, եթե դա, իհարկե, տեղին է։

Жողջունում ենք ձեր կարծիքը, դիտողությունները և առաջարկությունները:

Հղումներ, հղումներ և ծանրոցներ

ESP8266
WiFi
MQTT
UDP Multicast

Աշխատողների խնդրանքով

ВԵս տեղադրում եմ չմշակված փաստաթղթերը և որոնվածը (binar):

https://github.com/shiotiny/ShIoTinyBin

Որոնվածը: https://github.com/shiotiny/ShIoTinyBin/blob/master/bin/esp-07-shiotiny.bin

Scheme: https://github.com/shiotiny/ShIoTinyBin/blob/master/doc/esp-07-shiotiny.png

Բաղադրիչների նկարագրությունը և հակիրճ բացատրությունները. https://github.com/shiotiny/ShIoTinyBin/blob/master/doc/ShIoT-esp8266-nodes.pdf

«Ինչպես կարել» հրահանգները կան:

Source: www.habr.com

Добавить комментарий