Բովանդակություն:
- Քայլ 1: Տեղադրման ուղեցույց
- Քայլ 2: Վերահսկման ցուցադրություն
- Քայլ 3. Partրագրում օգտագործվող մասերի/ծրագրակազմի ցանկ
- Քայլ 4: I/0 ցուցակ
- Քայլ 5: Էլեկտրագծերի դիագրամ
- Քայլ 6: Arduino ծածկագիրը
- Քայլ 7: Ազնվամորի Pi 3 B+
- Քայլ 8: Python
- Քայլ 9: MySQL
- Քայլ 10: Հանգույց-կարմիր
Video: UCL - IIOT ջերմոց. 11 քայլ
2024 Հեղինակ: John Day | [email protected]. Վերջին փոփոխված: 2024-01-30 09:48
Այս նախագիծը ջերմոցային տնտեսության հետ մեր ավելի վաղ ծրագրի ընդլայնումն է (https://www.instructables.com/id/EAL-EMBEDDED-GREE…):
Այս նախագծում մենք ավելացրեցինք տվյալների բազա, որտեղ մենք գրանցում ենք մեր բոլոր տվյալները, այնուհետև պատկերացնում ենք այն կարմիր-հանգույցով `ավելի մեծ ակնարկի համար:
Մեր տվյալների շտեմարանում մուտքագրված բովանդակությունը «Հողի խոնավություն, ջերմաստիճան և խոնավություն» է, որը ներկայացված է տարբեր դիագրամներում:
Բացի dataloggin- ից, մենք նաև կարող ենք վերահսկել, թե որ պրոֆիլն է ակտիվ ջերմոցում և հեռակա վերահսկել այն:
Հետո մենք կարող ենք նաև կառավարել պոմպը և օդափոխիչը ձեռքով:
Քայլ 1: Տեղադրման ուղեցույց
Առաջին քայլը բոլոր տարբեր բաղադրիչների տեղադրումն է:
Փակագծերի ներսում () մենք թվարկել ենք, թե որտեղ է բաղադրիչը միացված: Օրինակ, Arduino- ն միացված է Raspberry Pi- ին USB մալուխի միջոցով:
Օգտագործված սարքավորում.
- Arduino (ազնվամորի Pi)
- Ազնվամորի Pi 3 B+
- Հողի հիգրոմետր (Arduino)
- DHT11 սենսոր (Arduino)
- HG-320 սուզվող ջրի պոմպ (ռելե)
- 5 Վ ռելե (Arduino)
- Համակարգչային երկրպագու (ռելե)
- 230V սնուցման աղբյուր (պոմպ)
Օգտագործված ծրագրակազմ.
- Raspbian (OS Raspberry Pi- ի համար)
- Arduino IDE
- Python (Raspberry Pi)- PySerial- MySQLclient
- Հանգույց-կարմիր (ազնվամորի Pi)- Pythonshell- ամփոփիչ- MySQL- վահանակ
- MySQL սերվեր (freemysqlhosting.net)
Սկզբում դուք ստիպված կլինեք միացնել ապարատային բաղադրիչները, ուստի ջերմոցը կառուցելու համար հետևեք այս ուղեցույցին. Տեղադրեք ուղեցույց:
Այնուհետև դուք ստիպված կլինեք տեղադրել Raspbian OS ձեր Raspberry Pi- ի վրա: Դրանից հետո դուք ստիպված կլինեք տեղադրել Python, այնուհետև տեղադրել python գրադարանները:
Հաջորդ քայլը Raspberry Pi- ի վրա տեղադրել Node-Red- ը, այնուհետև անցնել պալետների կառավարիչ և տեղադրել ավելի վաղ նշված մոդուլները:
Հետո գնացեք այս կայք Անվճար MySQL Server և ստեղծեք անվճար MySQL սերվեր:
Երբ այս ամենն ավարտվի, դուք պատրաստ եք Python- ի սցենարը փոխանցել ձեր Raspberry Pi- ին, ներմուծել Node-Red սցենարը և վերբեռնել Arduino- ի կոդը:
Քայլ 2: Վերահսկման ցուցադրություն
Քայլ 3. Partրագրում օգտագործվող մասերի/ծրագրակազմի ցանկ
Usedերմոցը պատրաստելու համար մենք օգտագործել ենք հետևյալ տեխնոլոգիան
- Արդուինո
- Ազնվամորի Պի
- Հանգույց-կարմիր
- Պիթոն
- PHPMyAdmin
Քայլ 4: I/0 ցուցակ
Քայլ 5: Էլեկտրագծերի դիագրամ
Քայլ 6: Arduino ծածկագիրը
Arduino ծածկագիրն աշխատում է ՝ տպելով տվյալները, որոնք չափվում են սենսորներով, սերիական կապին, որտեղ այն ընթերցվում է Raspberry Pi- ի կողմից և փոխանցվում տվյալների բազա:
Arduino- ն ունի նաև Raspberry Pi- ին միացված թվային մուտքագրիչներ, որոնք կարդում է Arduino- ն, և եթե երեքից մեկը դառնում է HIGH, պրոֆիլը կփոխվի IF հայտարարության պատճառով:
Նաև մենք արդիականացրել ենք ծածկագիրը, որպեսզի ուշացման փոխարեն օգտագործի Millis- ը, ինչը հնարավորություն է տալիս հետույքներն ու մնացած ծածկագիրը անընդհատ կարդալ հին ընդմիջումով ընդմիջման փոխարեն:
Քայլ 7: Ազնվամորի Pi 3 B+
Մենք օգտագործեցինք Raspberry Pi 3 B+ ՝ մեր Arduino- ն ինտերնետին և MySQL տվյալների շտեմարանին միացնելու համար: Սա մեզ հնարավորություն տվեց պահպանել տվյալները մեր տվիչներից և տեսողական ինտերֆեյս կազմել վերջնական օգտագործողի համար: Օգտվողի ինտերֆեյսի համար մենք օգտագործել ենք Node-Red- ը ՝ Dashboard- ի ներկապնակով:
Բայց մինչ մենք կարող էինք ցուցադրել մեր սենսորային տվյալները Node-Red- ի վրա, մեզ անհրաժեշտ էր տվյալներ ներբեռնել MySQL տվյալների բազայում, և դրա համար մենք պատրաստեցինք Python սցենար, որը կաշխատեր մեր Raspberry Pi- ի վրա:
Քայլ 8: Python
Python սցենարը օգտագործվում է Arduino- ից եկող սերիական հաղորդակցության տվյալների ստացման համար: Այնուհետեւ սցենարը տվյալները ուղարկում է MySQL տվյալների բազա:
Մենք օգտագործեցինք երկու գրադարան ՝ pyserial և mysqlclient:
Այսպիսով, առաջին քայլը կլինի ներբեռնել այս երկու գրադարանները.
- PySerial
- MySQLclient
PySerial- ն օգտագործվում է սերիական հաղորդակցության միջոցով Arduino- ից տվյալներ հավաքելու համար:
սարք = '/dev/ttyUSB0'
arduino = սերիա: Սերիալ (սարք, 9600)
Առաջին գիծը օգտագործվում է մեր COM նավահանգստի սահմանման համար: Raspberry Pi- ի վրա դա /dev /ttyUSB0 է, որը մենք օգտագործում ենք Arduino- ի համար: Երկրորդ տողը սերիական նավահանգիստը Arduino- ին բացելու համար է: Մենք պարզապես սահմանում ենք, թե որ COM- պորտը և ինչ արագությամբ է աշխատում կապը:
Մնացած ծածկագիրը գործարկվում է while loop- ում:
Հաջորդը մենք օգտագործում ենք մի քանի Try and Except բլոկներ: Սկզբում կոդը փորձում է գործարկել Try բլոկի ներսում, եթե դա ձախողվի, այն կաշխատի Except բլոկից: Բայց եթե Try բլոկը լավ է աշխատում, այն չի գործարկում Բացառությամբ բլոկը, այլ գործարկում է մնացած ծածկագիրը:
Այսպիսով, Try բլոկների ներսում մենք ունենք ծածկագիր, որը կկարդա սերիալ-հաղորդակցությունը և այն կուղարկի մեր MySQL տվյալների բազա:
hygrolist = arduino.readlines (1)
templist = arduino.readlines (2) humidlist = arduino.readlines (3)
Այսպիսով, վերը նշված կոդը սերիալային հաղորդակցության տողեր կարդալու համար է: Կոդի վերջում նշված թիվը սահմանում է սերիալում կարդացած տողը: Այսպիսով, այս տողերը դասակարգվում են տարբեր փոփոխականների մեջ:
Երբ Arduino- ի տվյալները ստացվում են, մենք օգտագործել ենք mysqlclient մոդուլը ՝ տվյալները մեր MySQL Server- ին ուղարկելու համար:
db = _mysql.connect (host = "sql7.freemysqlhosting.net", օգտվող = "sql7256552", passwd = "3ebtbP8FQ2", db = "sql7256552")
Այս տողը նախատեսված է մեր MySQL տվյալների շտեմարանին միանալու համար: Այն սահմանում է սերվերը, օգտվողի անունը, գաղտնաբառը և տվյալների բազային, որին այն պետք է միանա սերվերի ներսում: Այստեղ դուք պետք է նշեք ձեր MySQL DB- ի կապը:
db.query ( INSERTINTO` TempHumid` (`ջերմաստիճան`, `խոնավ`
Այսպիսով, այստեղ մենք վերցնում ենք մեր DB կապը և SQL հարցում ենք կատարում: Հարցումն ասում է, որ արժեքները պետք է տեղադրվեն «TempHumid» աղյուսակի ներսում, այնուհետև «temp», «խոնավ» և «hygro» սյունակներում: Վերջին մասը ((%s, %s, %s) »տողերի ձևաչափումն է և օգտագործվում է տվյալների բազային ընթերցելու համար այն ձևաչափը տալու համար:
Եվ այս ամբողջ գործողությունը դրվում է մի որոշ ժամանակաշրջանում, որպեսզի մենք շարունակենք տվյալներ ստանալ MySQL սերվերին ուղարկված:
Եթե ցանկանում եք տեսնել ամբողջ ծածկագիրը, ներբեռնեք python սցենարը (TempHumid.py):
Քայլ 9: MySQL
MySQL սերվերի համար մենք անվճար ծառայություն ենք օգտագործել www.freemysqlhosting.net կայքում: Մենք կարող էինք սերվեր սարքել տեղում Raspberry Pi- ով, բայց մենք գնացինք անվճար ծառայությամբ, որպեսզի այն ամբողջությամբ միացված լինի ամպին/ինտերնետին:
Ձեր MySQL- ին մուտք գործելու համար դուք պետք է գնաք phpmyadmin.co և մուտք գործեք ձեր freemysqlhosting հաշվի հավատարմագրերով:
Երբ ներսում եք, դուք պետք է ստեղծեք «TempHumid» անունով աղյուսակ, այս աղյուսակի ներսում պետք է ստեղծեք 4 սյունակ, որոնք կոչվում են ՝ «ID», «temp», «խոնավ» և «hygro»: Առաջին սյունակում (ID) դուք պետք է նշեք A_I վանդակը (ավտոմատ ավելացում): Սա այնպես է, որ ID սյունակը յուրաքանչյուր տվյալների հավաքածուին տալիս է ID: Հետևյալ բոլոր սյունակները պետք է սահմանվեն որպես INT (ամբողջ թիվ) և ստանդարտ արժեքը սահմանեն NULL:
Քայլ 10: Հանգույց-կարմիր
Մեր նախագծում մենք օգտագործեցինք Node-Red գրաֆիկական ինտերֆեյս պատրաստելու համար: Node-Red- ն աշխատում է Raspberry Pi- ի վրա և հավաքում է տվյալներ մեր MySQL տվյալների բազայից և ցուցադրում է այդ տվյալները բլիթաձև չափիչներով և գրաֆիկական գծապատկերներով, որպեսզի վերջնական օգտագործողը կարողանա վերահսկել տվյալները: Node-Red- ի խելացի բանն այն է, որ այն կարող է դիտվել ցանկացած սարքի վրա, ինչը նշանակում է, որ կայքը կփոխվի չափի տվյալ սարքի համար, որը դիտում է բովանդակությունը:
Մեր Node-Red ծրագրավորումը տեղադրելու համար նայեք Քայլ 1-ին և ներբեռնեք «Node-Red.docx» անվանումը կրող փաստաթուղթը: Այնուհետև պատճենեք և տեղադրեք տեքստը Node-Red- ում ՝ վերին աջ անկյունում ներմուծման գործառույթի միջոցով:
Դրանից հետո փոխեք ձեր MySQL DB- ի DB կարգավորումները:
Խորհուրդ ենք տալիս:
Ավտոմատ փակ ջերմոց Ikea Socker- ի հիման վրա. 5 քայլ
Ավտոմատ փակ ջերմոց ՝ հիմնված Ikea Socker- ի վրա: Ողջույն, սա իմ առաջին հրահանգն է: Ես շատ բան սովորեցի այս հասարակության հետ, և կարծում եմ, որ ժամանակն է վերադարձնել իմ համեստ գաղափարները: I'mավում եմ իմ անգլերենի համար, աղքատ է, բայց կանեմ ամեն ինչ, ինչ կարող եմ: Գաղափարն այն էր, որ պատրաստեմ սեղանի ջերմոց, որը թույլ կտա ինձ սերմեր աճեցնել և
Հիանալի ջերմոց ՝ ավտոմատ ջրելով, ինտերնետ կապով և շատ ավելին ՝ 7 քայլ (նկարներով)
Հիանալի ջերմոց ՝ ավտոմատ ջրելով, ինտերնետ կապով և շատ ավելին. Բարի գալուստ այս հրահանգներ: Մարտի սկզբին ես այգու խանութում էի և մի քանի ջերմոց տեսա: Եվ քանի որ ես վաղուց էի ուզում նախագիծ կազմել բույսերի և էլեկտրոնիկայի միջոցով, առաջ գնացի և գնեցի մեկը ՝ https://www.instagram.com/p
MAG (մանրանկարչություն ավտոմատ ջերմոց). 9 քայլ
MAG (մանրանկարչություն ավտոմատ ջերմոց). Մայրս շատ ժամանակ բավականին զբաղված է: Այսպիսով, ես ուզում էի օգնել նրան ՝ ավտոմատացնելով իր ջերմոցները: Այս կերպ նա կարող է մի փոքր ժամանակ խնայել, քանի որ կարիք չունի բույսերը ջրել: Ես դրան կկարողանամ հասնել MAG- ի (Մանրանկարչության ավտոմատ այգի) միջոցով: Ինչպես
IGreenhouse - Խելացի ջերմոց. 17 քայլ (նկարներով)
IGreenhouse - Խելացի ջերմոց. Տնային պայմաններում աճեցված մրգերն ու բանջարեղենը հաճախ ավելի լավն են, քան գնում եք, բայց երբեմն կարող եք կորցնել ձեր ջերմոցի տեսողությունը: Այս նախագծում մենք կկազմենք խելացի ջերմոց: Այս ջերմոցը ինքնաբերաբար կբացի և կփակի նրա պատուհաններն ու դուռը
Խելացի ջերմոց ՝ 12 քայլ
Խելացի ջերմոց. Երբևէ ունեցե՞լ եք այն խնդիրը, որ ձեր ջերմոցում չափազանց շոգ է եղել, այնպես որ ձեր բոլոր բույսերը մահացել են, քանի որ մոռացել եք բացել օդափոխիչները: Այլևս մի նայեք, խելացի ջերմոցը այս խնդրի լուծումն է: ինչպես կառուցել քեզ