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

Աղբի համակարգ `7 քայլ
Աղբի համակարգ `7 քայլ

Video: Աղբի համակարգ `7 քայլ

Video: Աղբի համակարգ `7 քայլ
Video: Աղբի տեսակավորումը կօգնի ոչ միայն բնությանը, այլև կարող է դառնալ եկամտի աղբյուր 2024, Նոյեմբեր
Anonim
Աղբի համակարգ
Աղբի համակարգ

Մենք որոշեցինք փորձել միջոցներ ձեռնարկել ՝ հետևելու կամ թաղամասի համայնքի աղբի լցոնմանը, կամ հարևանի յուրաքանչյուր աղբի սենսորին `աղբահանությունն ավելի արդյունավետ դարձնելու համար: Մենք կարծում էինք, որ եթե երկու շաբաթը մեկ բեռնատար մեքենա գա հավաքածուի համար, ապա ի՞նչ կլինի, եթե ես կամ հարևանս միայն մի փոքր դուրս գանք: Արդյո՞ք անարդյունավետ չի լինի ուղարկել բեռնատար, որտեղ հարևանի կեսը չի ուղարկել աղբարկղերը: Հիանալի կլիներ, եթե հնարավոր լիներ տեսնել մեր հարևանի աղբարկղը լցված, և այնուհետև օգտագործել նրանց աղբը, եթե իմը լիքն էր, իսկ իրենցը դատարկ էր և հակառակը: Մենք որոշեցինք օգտագործել ուլտրաձայնային տվիչը ՝ HC-SR04- ը, ինչպես նաև ազնվամորու pi- ն, որպեսզի փորձենք լուծել այս նախագիծը:

Պարագաներ

Ուլտրաձայնային տվիչ (HC-SR04)

Raspberry Pi (մենք օգտագործել ենք Pi 4 Model B)

Breadboard

Թռիչքային մալուխներ

Մի քանի ռեզիստոր (3 x 1k ohm)

Քայլ 1: HC-SR04- ի միացում

HC-SR04- ի միացում
HC-SR04- ի միացում

Քանի որ մենք օգտագործում ենք Raspberry Pi- ն, մենք պետք է օգտագործենք լարման բաժանարար `Pi- ի GPIO կապում մտնող լարումը կարգավորելու համար, քանի որ դրանք թույլ են տալիս միայն 3.3v: HC-SR04- ն օգտագործում է 5 Վ, բայց այն Pi- ին միացնելիս անհրաժեշտ է իջեցնել մինչև 3.3 Վ: Միացրեք համապատասխանաբար 5V և գրունտային կապումներն ու ըստ ձեր ծրագրի ամրացրեք արձագանքը և ձգան կապող կոճակները հարգալից կապումներին: Մեր ծրագրում մենք օգտագործել ենք 23 -րդ և 24 -րդ կապերը համապատասխանաբար էխոյի և ձգանի համար:

Քայլ 2: Mosquitto և Paho MQTT

Նախքան Python- ում ծրագրավորումը սկսելը, որպեսզի ուլտրաձայնային սենսորը աշխատի Pi- ի հետ, մենք պետք է տեղադրենք այս ծրագրերը, որպեսզի ուլտրաձայնային տվիչը հաղորդակցվի մեր ծրագրավորման Node-RED ծրագրակազմի հետ: Mosquitto- ն MQTT բրոքեր է, որը կարող եք օգտագործել Pi- ում, մինչդեռ Paho MQTT- ն այն գրադարանն է, որը թույլ է տալիս ծածկագրել Python- ում ՝ սենսորը MQTT բրոքերի հետ հաղորդակցվելու համար: Այս երկուսը տեղադրելու համար դուք պետք է մուտքագրեք այս հրամանները ձեր Pi տերմինալում

sudo apt թարմացում

sudo apt install -y mosquitto mosquitto- հաճախորդներ

sudo apt-get տեղադրել python3-pip

sudo pip3 տեղադրել paho-mqtt

Քայլ 3. Ուլտրաձայնային տվիչի Python ծրագիր

Սա այն ծրագիրն է, որով ես կարդում էի սենսորից մուտքային տվյալները և նաև հրապարակում MQTT բրոքերին:

Քայլ 4: Node-RED

Հանգույց-ԿԱՐՄԻՐ
Հանգույց-ԿԱՐՄԻՐ
Հանգույց-ԿԱՐՄԻՐ
Հանգույց-ԿԱՐՄԻՐ
Հանգույց-ԿԱՐՄԻՐ
Հանգույց-ԿԱՐՄԻՐ
Հանգույց-ԿԱՐՄԻՐ
Հանգույց-ԿԱՐՄԻՐ

Որոշ հանգույցներ ծրագրում նախապես տեղադրված չեն, ուստի գուցե անհրաժեշտ լինի տեղադրել այն ներկապնակներից: Դրանք, որոնք դուք պետք է տեղադրեք, են node-red-dashboard և node-red-node-sqlite:

Այստեղ մենք սկսում ենք օգտագործել մեր ծրագրավորման ծրագրակազմը և սենսորը: Առաջին հանգույցը, որը ձեզ հարկավոր կլինի, MQTT-in Node- ն է, որը թույլ է տալիս մեզ օգտագործել վերևից գործարկվող մեր ցուցիչը ՝ տվյալ ծրագրակազմին տվյալներ ուղարկելու համար: Մեր օգտագործած միջակայքի հանգույցը շրջում է մեր ունեցած արժեքները (այսինքն. 5 սմ -ը լի է ծրագրից, այնպես որ այն շրջում ենք 100%-ով): Շրջանակի հանգույցից հետո մենք ունենք 2 գործառական հանգույց, մեկը `հաղորդագրությունը մեր վահանակին ցուցադրելու և մեկը` աղբը լցված տեսողականորեն ցուցադրելու համար: Ֆունկցիայի հանգույցների ծրագիրը կցվում է:

Հնարավորության դեպքում այս հոսքը կարող է օգտագործվել մի քանի ուլտրաձայնային տվիչների համար: Մեր նախագծի համար, սակայն, մենք պետք է սիմուլյացիոն տվյալներ անեինք, քանի որ չէինք կարողանում ձեռք բերել ավելի շատ տվիչներ: Ինչպես մենք դա արեցինք, շատ նման է, բայց մենք ունենք կոճակներ, որոնցով օգտվողը կարող է սեղմել ՝ աղբի յուրաքանչյուրում պատահականորեն ավելացնելու 1-10 տոկոսը: Մենք օգտագործեցինք 2 կոճակ, մեկը `աղբը ավելացնելու համար, և մեկը` մաքրելու համար: Չափիչը, հաղորդագրությունները և ցուցիչը դեռ նույնն են, ինչ աղբը հաշվելու և հաշվառելու ծածկագիրը, սակայն, մի փոքր այլ է:

Քայլ 5: Տվյալների մուտքագրում

Գրանցման տվյալներ
Գրանցման տվյալներ
Գրանցման տվյալներ
Գրանցման տվյալներ
Գրանցման տվյալներ
Գրանցման տվյալներ

Մենք որոշեցինք, որ լավ գաղափար կլինի մուտք գործել, թե որքան լցված են աղբը, երբ բեռնատարը գալիս է աղբը դատարկելու: Sqlite հանգույցի օգնությամբ մենք կարողանում ենք կարդալ և գրել տվյալներ, ինչը նույնպես պահպանում է այն Pi- ում: Դուք պետք է տեղադրեք այս հանգույցը, ինչպես ես արդեն ասել եմ:

Տվյալների ստեղծման և գրանցման քայլերը հետևյալն են.

1. Ստեղծեք տվյալների բազան

2. Գրանցեք տվյալները

3. Քաշեք տվյալները ՝ մեր ցուցատախտակին ցուցադրելու համար

4. Մաքրել և ջնջել տվյալները

SQL- ի գործելաոճն այն է, որ դուք պետք է ստեղծեք գործարկվող թեման, որը ՍՏԵATEԵԼ Աղյուսակ, ՄՏԱԵԼ ՄԵ, ԸՆՏՐԵԼ ԱՌԱՆ և DEՆTEԵԼ ԱՌԱՆ: Օգտագործելով ժամանակային նշանների հանգույցներ, մենք կարող ենք թեմաներ իրականացնել sqlite հանգույցի վրա, որն կատարում է այդ գործառույթներից յուրաքանչյուրը (ստեղծել, տեղադրել, ընտրել և ջնջել): Մենք պետք է միայն մեկ անգամ ստեղծենք տվյալների բազան, և երբ դա արվի, մենք կարող ենք տվյալներ մուտքագրել դրան: Տվյալների բազան ստեղծվելուց հետո մենք կարող ենք մուտքագրել տվյալները, և մենք նորից օգտագործել ենք օգտվողի մուտքը `բեռնատար մեքենայի գալուց հետո մուտք գործելու համար: Մենք այնպես ենք արել, որ չկարողանաք մուտքագրել տվյալները, մինչև բեռնատարը թույլ չտա գալ, որը 5 հանդերձանք է `80% հզորությամբ (համարվում է լիքը): Մենք նաև կրկին օգտագործեցինք միջակայքի հանգույցը ՝ 500-ը 0-100%-ով հետ բերելու համար: Այնուհետև մենք հնարավորություն ունենք ջնջել բոլոր տվյալները տվյալների բազայից, եթե ցանկանում ենք: UI սեղանի հանգույցը մի հանգույց է, որը թույլ է տալիս մեզ տեսնել սեղանը գեղեցիկ ձևաչափված ՝ մեր վահանակի վրա:

Քայլ 6: Դասավորություն

Այս ամենի ավարտից հետո դուք կարող եք ստեղծել այնպիսի դասավորություն, որը կցանկանայիք Node-RED- ի օգնությամբ: Կողքի ներդիրում դուք կկարողանաք դրանք տեղադրել ըստ ձեր ցանկության, և կան շատ ավելի հարմարեցման տարբերակներ: Կից ներկայացված է նաև իմ ընթացքը իմ ամբողջ ծրագրի համար:

Քայլ 7: Եզրակացություն

Այս նախագիծն ավարտելուց հետո կան ոլորտներ, որտեղ մենք կարող ենք տեսնել, որ ծրագիրը հետագայում կզարգանա: Ես երբեք չգտա անտառահատումները ինքնաբերաբար կատարելու եղանակը, քանի որ միակ միջոցը, որ մենք կարող էինք անել, դա այն էր, որ այն ընդմիջումով մուտք գործեր, և մեզ կրկնակի թվերի կարիք չէր լինի, եթե աղբատարը մեկ անգամ գար: Կարծում եմ, որ դա մասամբ պայմանավորված է նրանով, թե ինչպես որոշեցինք այն մեծապես կախված լինել գործառական հանգույցներից և ծրագրավորումից, քանի որ մեզ ավելի հարմար է այդ ծրագրավորումը: Ավարտելուց հետո ուսումնասիրելուց հետո պարզ դարձավ, որ կան հանգույցներ, որոնք ստեղծված են ամեն ինչի համար, և դա կարող էր կյանքը շատ ավելի հեշտացնել, եթե ավելի վաղ գտնեինք անջատիչի և rbe հանգույցների գործառույթը: Կար նաև ուլտրաձայնային տվիչների համար պատրաստված հանգույց, որը մենք չկարողացանք աշխատել: Դա ամեն ինչ ավելի դյուրին կդարձներ, քանի որ MQTT- ի կամ Python ծրագրի կարիքը չէր լինի, քանի որ դա պարզապես ձգան և արձագանքող կապում հանգույց է: Մենք որոշեցինք աշխատել դրա շուրջ ՝ կազմելով Python ծրագիրը, ինչպես տեսաք վերևում: Հսկայական հուշում յուրաքանչյուրի համար, ով ցանկանում է սուզվել Node-RED- ի մեջ, այն է, որ դուք պետք է օգտագործեք բազմաթիվ վրիպազերծման հանգույցներ `պարզելու համար, թե արդյոք յուրաքանչյուր հոսք աշխատում է և դուրս է բերում այն, ինչ ցանկանում եք/պետք է:

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