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

Green House- ի ավտոմատացում ՝ 11 քայլ
Green House- ի ավտոմատացում ՝ 11 քայլ

Video: Green House- ի ավտոմատացում ՝ 11 քայլ

Video: Green House- ի ավտոմատացում ՝ 11 քայլ
Video: Ինչպե՞ս աճեցնել 11 կգ ձմերուկ բանջարանոցում: 2024, Հուլիսի
Anonim
Green House- ի ավտոմատացում
Green House- ի ավտոմատացում

Greenերմոցային տան ավտոմատացումն այն նախագիծն է, որտեղ ջերմոցային տնտեսության երեք պարամետր ՝ հողային խոնավություն, ջերմաստիճան և խոնավություն, օգտագործողը վերահսկում է հեռակա կարգով ՝ պարզապես վեբ դիտարկիչի միջոցով:

Քայլ 1: Պահանջվում են բաղադրիչներ

Պահանջվող բաղադրիչներ
Պահանջվող բաղադրիչներ
Պահանջվող բաղադրիչներ
Պահանջվող բաղադրիչներ
Պահանջվող բաղադրիչներ
Պահանջվող բաղադրիչներ

Ստորև թվարկված են որոշ անհրաժեշտ բաղադրիչներ

1. Ազնվամորի PI մոդել B

2. NodeMCU զարգացման խորհուրդ

3. ESP8266 Wifi մոդուլ

4. Խոնավության ցուցիչ

5. DHT11 ջերմաստիճանի և խոնավության ցուցիչ

6. 5V Single Channel ռելե

7. 5 Վ սուզվող ջրի պոմպ

8. Հացի տախտակ

9. Հացի տախտակի էլեկտրամատակարարման մոդուլ

Քայլ 2: Լեզու և արձանագրություն

Լեզուն և արձանագրությունը
Լեզուն և արձանագրությունը
Լեզուն և արձանագրությունը
Լեզուն և արձանագրությունը
Լեզուն և արձանագրությունը
Լեզուն և արձանագրությունը
  • C լեզուն օգտագործվում է միկրոկարգավորիչների համար:
  • MQTT հաղորդագրություններ. MQTT նշանակում է MQ Telemetry Transport: Դա հրապարակման/բաժանորդագրման, չափազանց պարզ և թեթև հաղորդագրությունների արձանագրություն է, որը նախատեսված է սահմանափակ սարքերի և ցածր թողունակության, բարձր ուշացման կամ անվստահելի ցանցերի համար: Դիզայնի սկզբունքներն են `նվազագույնի հասցնել ցանցի թողունակության և սարքի ռեսուրսների պահանջները` միաժամանակ փորձելով ապահովել հուսալիություն և առաքման որոշակի երաշխիք: Այս սկզբունքները նաև պարզեցնում են, որ արձանագրությունը իդեալական է դարձնում միացված սարքերի «մեքենա-մեքենա» (M2M) կամ «Իրերի ինտերնետ» աշխարհը, ինչպես նաև բջջային հավելվածների համար, որտեղ թողունակությունը և մարտկոցի հզորությունը գերակա են:
  • Python ծրագիրը օգտագործվում է ջրի հոսքի և տվյալների բազայի միացման ավտոմատացման համար:

Քայլ 3. Eclipse Mosquitto MQTT բրոքեր

Eclipse Mosquitto MQTT բրոքեր
Eclipse Mosquitto MQTT բրոքեր

Այստեղ ես օգտագործեցի Mosquitto MQTT բրոքերը `հանգույցների միջև հեշտ հաղորդագրությունների հաղորդակցության համար:

Eclipse Mosquitto- ն բաց կոդով (EPL/EDL լիցենզավորված) հաղորդագրությունների բրոքեր է, որն իրականացնում է MQTT արձանագրության 5.0, 3.1.1 և 3.1 տարբերակները: Mosquitto- ն թեթև է և հարմար է բոլոր սարքերի համար ՝ ցածր էներգիայի մեկ տախտակի համակարգիչներից մինչև լիարժեք սերվերներ:

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

Mosquitto նախագիծը տրամադրում է նաև C գրադարան MQTT հաճախորդների իրականացման համար, ինչպես նաև mosquitto_pub և mosquitto_sub հրամանի տող MQTT հաճախորդներին:

Քայլ 4. Տվյալների հոսքը ամբողջ նախագծում

Վերոնշյալ պատկերում հանգույցներն են

  1. NodeMCU
  2. Ազնվամորի PI
  3. ESP8266

NodeMCU- ն Կանաչ տան զգայուն մասն է, իսկ ESP8266- ը `ակտիվացնող մասը, որը ջուր է մատակարարում, երբ գետնին ջուր է պետք` ըստ սենսորների:

Ազնվամորի PI- ն պարունակում է Mosquitto Broker և Python հաճախորդ, որը բաժանորդագրվում է MQTT բրոքերից ստացվող հաղորդագրություններին և տվյալները պահում է SQL սերվերի մեջ:

Քայլ 5. Սենսորների միացում NodeMCU- ի հետ

Սենսորների միացում NodeMCU- ի հետ
Սենսորների միացում NodeMCU- ի հետ

DHT11 ջերմաստիճանի և խոնավության սենսորը և ջրի խոնավության տվիչը կարող են աշխատել 3.3 վոլտ լարման վրա:

NodeMCU- ն չի կարող ապահովել ավելի քան 3.3 վոլտ: Այսպիսով, սենսորները կարող են ուղղակիորեն միացվել NodeMCU միկրոկառավարիչի տախտակին:

Քայլ 6. Սուզվող ջրի պոմպի միացում ESP8266- ի հետ

Սուզվող ջրի պոմպի միացում ESP8266- ի հետ
Սուզվող ջրի պոմպի միացում ESP8266- ի հետ
Սուզվող ջրի պոմպի միացում ESP8266- ի հետ
Սուզվող ջրի պոմպի միացում ESP8266- ի հետ

Անհրաժեշտության դեպքում ջուրը մատակարարելու համար օգտագործվում է սուզվող ջրի պոմպ:

Pumpրի պոմպին շահագործման համար անհրաժեշտ է 5 վոլտ սնուցման աղբյուր:

Շարժիչը միացնելու համար անհրաժեշտ է մեկ ալիքի ռելե: ESP8266- ի GPIO2 քորոցի ակտիվացման դեպքում ռելեն միացված է և ինքնաբերաբար ջուր է մատակարարում `օգտագործելով սուզվող ջրի պոմպը:

Այստեղ արտաքին էներգիայի մատակարարումը տրամադրվում է ESP8266 տախտակին, ռելեին և սուզվող ջրի պոմպին:

Իմ ամբողջական ապարատային կապը վերևում պատկերված է:

Քայլ 7. Mosquitto Broker- ի տեղադրում և Python ծրագրի գործարկում Raspberry Pi- ում

Ստորև բերված են Raspberry PI- ում Mosquitto բրոքեր տեղադրելու քայլերը

Բացեք տերմինալը և մուտքագրեք հետևյալ հրամանները

sudo apt-add-repository ppa: mosquitto-dev/mosquitto-ppa

sudo apt-get թարմացում

sudo apt-get տեղադրել մոծակ

sudo apt-get տեղադրեք մոծակների հաճախորդներ

Այն պետք է ինքնաբերաբար սկսի մոծակին:

Stopառայությունը դադարեցնելու և գործարկելու համար անհրաժեշտ էր օգտագործել

sudo ծառայություն stop mosquitto

sudo ծառայություն սկսել մոծակ

Իմ հայտնաբերած կայքերի մեծ մասը որտեղ է օգտագործվում ձևաչափը:

sudo /etc/init.d/mosquitto կանգառ

Քայլ 8: Ինչպե՞ս է աշխատում MQTT- ն:

Ինչպես է աշխատում MQTT- ն
Ինչպես է աշխատում MQTT- ն

MQTT- ը IoT նախագծերում ամենաշատ օգտագործվող արձանագրություններից մեկն է: Այն նշանակում է Message Queuing Telemetry Transport:

Բացի այդ, այն նախագծված է որպես թեթև հաղորդագրությունների արձանագրություն, որն օգտագործում է հրապարակման/բաժանորդագրման գործողությունները `հաճախորդների և սերվերի միջև տվյալների փոխանակման համար: Ավելին, դրա փոքր չափը, էներգիայի ցածր օգտագործումը, տվյալների նվազագույն փաթեթները և իրականացման հեշտությունը արձանագրությունը դարձնում են իդեալական «մեքենա-մեքենա» կամ «իրերի ինտերնետ» աշխարհում:

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

* Երբ սարքը (հաճախորդը) ցանկանում է տվյալներ ուղարկել բրոքերին, մենք այս գործողությունը անվանում ենք «հրապարակում»:

* Երբ սարքը (հաճախորդը) ցանկանում է տվյալներ ստանալ բրոքերից, մենք այս գործողությունը կոչում ենք «բաժանորդագրվել»:

Քայլ 9. mingրագրավորում NodeMCU և ESP8266

Ստորև բերված են NodeMCU և ESP8266 Microcontroller տախտակի աղբյուրի կոդը

Քայլ 10. Վեբ էջի նախագծում և միացում SQL տվյալների շտեմարանին

Վեբ էջը նախագծված է HTML, CSS և PHP լեզուներով:

PHP- ն օգտագործվում է տվյալների բազայից սենսորների ընթերցումները հանելու և այն HTML էջում ցուցադրելու համար:

Որպես այս նախագծի սիրտ օգտագործվում է պիթոնի ծրագիրը:

Այն աշխատանքները, որոնք կատարում են python ծրագիրը, հետևյալն են.

  1. Այն բաժանորդագրվում է մի թեմայի, որտեղ սենսորը ուղարկում է սենսորի ընթերցումները:
  2. Այն հրապարակում է ջրի պոմպի միացման/անջատման հրամանը MQTT բրոքերին:
  3. Այն պահում է սենսորի ընթերցումը SQL տվյալների բազայում:

Այստեղ իմ դեպքում python ծրագիրը և SQL տվյալների բազան առկա են նոութբուքում: Վեբ էջը, որն անցնում է Տեղական հաղորդավարի միջոցով:

Ստորև բերված է իմ python ծրագրի աղբյուրի կոդը:

Քայլ 11: Ամբողջական աշխատանք

Ամբողջական Աշխատանք
Ամբողջական Աշխատանք

Հետևյալը այն քայլերն են, որոնցով գործընթացը շարունակվում է:

  1. NodeMCU- ն աշխատում է որպես զգայուն մաս և կարդում է ջերմաստիճանը, խոնավությունը և հողի խոնավության մակարդակը:
  2. Այն ընթերցումներն ուղարկում է MQTT բրոքերին ՝ «Թեմա 1» թեմայով
  3. Նոթբուքում Python ծրագիրը գործում է և այն բաժանորդագրվում է «Թեմա 1» թեմային MQTT բրոքերի հետ:
  4. Երբ NodeMCU- ն ուղարկում է ընթերցումները, ապա Mosquitto MQTT բրոքերն անմիջապես տվյալները ուղարկում է python ծրագրին:
  5. Այնուհետև Python ծրագիրը հաշվարկում է, թե արդյոք անհրաժեշտ է ջուրը Գրին տանը: Այնուհետև ընթերցումները պահում է SQL տվյալների շտեմարանում:
  6. Եթե Green House- ում ջուր է անհրաժեշտ, ապա python ծրագիրը հրապարակում է ջրի պոմպի միացման/անջատման մասին հաղորդագրությունը Mosquitto MQTT բրոքերին ՝ «Թեմա 2» թեմայով:
  7. ESP8266- ը աշխատում է որպես շարժիչ: Այն բաժանորդագրվում է «Թեմա 2» թեմային, թե որ թեմայով է պիթոն ծրագիրը հրապարակում հաղորդագրությունը: Երբ python ծրագիրը հրապարակում է որևէ հաղորդագրություն, այն անմիջապես փոխանցվում է ESP8266- ին: Ըստ միացման/անջատման հաղորդագրության, այն միացրել/անջատել է սուզվող ջրի պոմպը:
  8. Վեբ էջում կենդանի ընթերցումները ցուցադրելու վերջին փուլը: Վեբ էջը վերցնում է տվյալները SQL տվյալների բազայից, որտեղ python ծրագիրը պահում է տվյալները ուղղակիորեն և ցուցադրում ընթերցումները էջում:

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