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

UCL - IIoT - Ֆերմերների շուկա. 7 քայլ
UCL - IIoT - Ֆերմերների շուկա. 7 քայլ

Video: UCL - IIoT - Ֆերմերների շուկա. 7 քայլ

Video: UCL - IIoT - Ֆերմերների շուկա. 7 քայլ
Video: UCL-IIoT-Datalogger 2024, Հուլիսի
Anonim
UCL - IIoT - Ֆերմերների շուկա
UCL - IIoT - Ֆերմերների շուկա

Farmersmarket դրամապանակը կարող է օգտագործվել տոնավաճառներում, ֆերմերային շուկաներում կամ այլ հավաքույթներում, որտեղ ապրանքներ են վաճառվում:

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

Այն պատրաստել են Դանիայի Լիլեբելտի համալսարանական քոլեջի երեք ուսանողներ: Մեր նախորդ նախագծից ՝ The coin sorter- ից, մենք սովորել ենք շատ նոր բաներ, որոնք մենք կներառենք կառուցման մեջ: Մենք որոշեցինք հրաժարվել մետաղադրամների տեսակավորումից և փոխարենը ստիպել մեքենային հաշվել դրանք ՝ դրանք տեղադրելով ընդհանուր մետաղադրամների տուփի մեջ:

Դրամապանակը բաղկացած է հինգ սլայդներից կամ սլոթերից ՝ մեկը յուրաքանչյուր տեսակի մետաղադրամի համար: Երբ մետաղադրամը տեղադրվում է համապատասխան անցքի մեջ, այն կընկնի ներքև ՝ անդրադարձիչի կողքով, որը բարձր ազդանշան է ուղարկում arduino- ին: Մենք կօգտագործենք ազդանշանը մետաղադրամների արժեքը հաշված ընդհանուրին ավելացնելու, այն արտաքին էկրանին ցուցադրելու և նոր ընդհանուրը սերվեր ուղարկելու համար: Երբ սերվերը ստանա ընդհանուր գումարը, այն կթարմացնի առցանց գտած UI- ն ՝ ցույց տալով նոր ընդհանուրը:

Նկարագրություն Մետաղադրամների հինգ անցքով տուփ, որը տանում է դեպի հինգ առանձին, ներքին սահիկներ, մեկը ՝ յուրաքանչյուր տեսակի մետաղադրամի համար ՝ 1kr, 2kr, 5kr, 10kr, 20kr

LCD էկրան, որը ցույց է տալիս տուփի վերևում տեղադրված կանխիկ գումարը:

Տուփի վերին հատվածը ամրացված է ծակոցներով: Վերևը բարձրացնելով ՝ arduino- ի պատյանները դուրս կգան LCD- ից, մետաղադրամների սլաքներից, արտացոլող սարքերից և այլն:

Բաղադրիչներ և նյութեր - Տուփ պատրաստելու գործիքներ և սարքավորումներ (կարող են լինել ստվարաթուղթ կամ փայտ)

- Arduino Mega 2560

- 30 jumperwires

- 5 x LDR «Լույսի ցուցիչ»

- 5 x 220 օմ դիմադրիչներ

- 5 x 10k ohm դիմադրողներ

- 5 x սպիտակ LED

- LCD 16x02 մոդուլ

- Մետաղադրամներ

Կոդ Arduino- ում

Ինչպես արդեն նշվեց, այս նախագիծը ծագում է ավելի վաղ ութ ամիս առաջ մեր կատարած նախագծից (https://www.instructables.com/id/Coin-Sorting-Machine/): Դրա շնորհիվ մենք կարողանում ենք վերաօգտագործել ծածկագրի մեծ մասը arduino- ում, չնայած դրանում կան ավելի փոքր փոփոխություններ: Ինչպես կտեսնեք, կոդը բավականին պարզ է, ինչը Arduino- ի հետ մի փոքր փորձ ունեցող ցանկացած անձ պետք է կարողանա հասկանալ:

Node-RED Node-RED- ը այն գործիքն է, որը մենք կօգտագործենք arduino- ից և ձեր համակարգչից տվյալները ստանալու համար, այնուհետև ինտերնետից, եթե դա ձեզ հետաքրքրում է: Node-RED- ի օգտագործման մեկ այլ կարևոր պատճառ է հանդիսանում Arduino- ի տվյալները դյուրընկալելի ձևով ներկայացնելու ունակությունը այն մարդկանց համար, ովքեր չունեն Arduino- ի և Node-RED- ի ծրագրավորման/կոդավորման փորձ:

Տվյալների բազան Wampserver- ի միջոցով մենք կարող ենք Arduino- ից մեր արժեքները պահել տվյալների բազայում: Wampserver- ի միջոցով հնարավոր է ստեղծել և փոխարինել ձեր սեփական տվյալների բազան, ինչպես ցանկանում եք ՝ օգտագործելով phpMyAdmin ՝ MySQL- ը կառավարելու համար: Մեր դեպքում մենք ունենք վեց արժեք, որոնք մենք պետք է պահենք (մեկը `յուրաքանչյուր տեսակի մետաղադրամի համար և մեկը` արդյունքի համար), և, հետևաբար, մենք ստեղծել ենք վեց սյունակ, որոնցում յուրաքանչյուր արժեք կարող է պահվել:

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

Ինչպես է դա աշխատում?
Ինչպես է դա աշխատում?

Ավելի մանրամասն կալվածքում մենք այժմ կբացատրենք, թե ինչպես է աշխատում մեր համակարգը:

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

LDR լույսի սենսորը կնկատի լույսի նվազված քանակությունը, երբ մետաղադրամը անցնում է սենսորի կողքով, ինչը Arduino ծրագրին կհանգեցնի «Antal» փոփոխականի (թիվը) մեկի ավելացմանը, քանի որ այժմ մեքենայում կա մեկ մետաղադրամ: Միևնույն ժամանակ, մետաղադրամի արժեքը ավելացվում է «արդյունք» փոփոխականին: «արդյունքը» կցուցադրվի LCD- ում `իր նոր արժեքով:

«Անթալ» -ի և «արդյունքի» նոր արժեքներն ուղարկվում են Node-RED, որի վահանակը ինքն իրեն կթարմացնի այս արժեքներով: Վերջապես Node-RED- ը արժեքները ուղարկում է մեր տվյալների բազա:

Եվ կրկնել:

Քայլ 2: Տուփ պատրաստելը

Այս անգամ մենք օգտագործում էինք Illustrator- ը ՝ մեր տուփը նախագծելու համար: Լազերային դանակով մենք պետք է ճշգրիտ պատրաստենք այս տուփը և այն հնարավորությունները, որոնք պահանջվում են մեր նախագծի համար: Ի վերջո, դա ձեզն է ՝ որոշելու, թե ինչպես կատարել կատարյալ տուփ ձեր նախագծի համար:

Քայլ 3. Arduino- ի ավելացում

Ավելացնելով Arduino- ն
Ավելացնելով Arduino- ն

It'sամանակն է Arduino- ն ներդնել տուփի մեջ: Սա կարող է բավականին դժվար լինել, քանի որ սենսորը կարող է իրեն անկանխատեսելի պահել: (Նոր) Այս քայլում մենք փոխեցինք մեր օգտագործած սենսորը `այս տվիչների նախապես նշված անհուսալիության պատճառով (tcrt 5000): Փոխարենը մենք ընտրել ենք ավելի պարզ LDR սենսոր (Լույսի կախվածության դիմադրություն): Այս սենսորից ելքը անալոգային արժեք է, որը փոխվում է ՝ կախված սենսորին հասնող լույսի քանակից:

Քայլ 4: Arduino կոդ

Այս քայլում մենք կենտրոնանում ենք ծրագրաշարի վրա: Arduino ծածկագիրն այսպիսին է.

const int sensorPin1 = 3; // TCRT-5000 ցուցիչ, որը միացված է nr pin- ին: 2 int sensorState1 = 0; // Պարունակում է սենսորի արժեքը (բարձր/ցածր)

int Antal10 = 0; // Փոփոխական, որը պահում է մեքենայի մեջ դրված մետաղադրամների քանակը int

Արդյունք = 0; // Փոփոխական, որը պահում է մեքենայի մեջ դրված բոլոր մետաղադրամների համակցված արժեքը

void setup () {Serial.begin (9600); }

void loop () {int sensorState1 = analogRead (sensorPin1); // Կարդում է սենսորի վիճակը

եթե (540 <sensorState1 <620) {// Երբ սենսորների ելքային արժեքը 540 -ից 620 -ի միջև է

Անթալ 10 += 10; // - կա մի մետաղադրամ, որը անցնում է սենսորից, որն արգելափակում է որոշ լույս

resultat += 10; // - և սենսորը կարդալու է լույսի ավելի ցածր մակարդակ}

Serial.print (արդյունք);

Serial.print (","); // Փոփոխականներին բաժանում է ստորակետով, որն անհրաժեշտ է Node-RED- ում փոփոխականների արժեքները կարդալիս

Serial.println (Antal10); // - և նաև անհրաժեշտ է, երբ այդ արժեքները պետք է պահվեն տվյալների բազայում

ուշացում (100); }

Այս ծածկագիրը գրված է միայն մեկ տվիչի համար `ավելի հեշտ ընթերցելու համար:

Ամբողջական կոդը ՝

Քայլ 5: Node-RED

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

Երբ Arduino ծածկագիրն աշխատում է այնպես, ինչպես պետք է, կարող եք սկսել ծրագրավորել Node-RED- ը, որը հանդես կգա որպես Arduino- ի և տվյալների բազայի միջև միջին կապ և որպես սարքի աշխատանքի տեսողական ցուցադրում: Node-RED- ի ծրագրավորումը բաղկացած է տարբեր գործառույթներով հանգույցների օգտագործումից և այդ պարամետրերի ճիշտ պարամետրերի տեղադրումից:

Երբ մեր տվյալները հասնում են Node-RED, այն ուղարկվում է երկու տարբեր պառակտման գործառույթների: Այս գործառույթներից մեկը այժմ բաժանված տվյալները փոխանցում է տվյալների բազա: Մյուսը տարբեր տվյալների արժեքներ է ուղարկում իրենց վահանակի յուրաքանչյուր հանգույցի վրա, որոնք այժմ պետք է տեսանելի լինեն վահանակի վրա:

Ինչպես նշվեց, մենք ունենք վեց արժեք, որոնք պետք է բուժվեն: Node-Red- ի կառավարման վահանակի միջոցով մենք կարող ենք ցուցադրել այս արժեքները, ինչպես կտեսնեք նկարի 3-րդ մասի վերևի աջ մասում գտնվող պատկերում:

Հանգույց-RED կոդ:

Քայլ 6: Տվյալների բազա

Տվյալների շտեմարան
Տվյալների շտեմարան

Այժմ մենք օգտագործում ենք տվյալների բազա `արժեքները պահելու համար: Wampserver- ի միջոցով հնարավոր է օգտագործել phpMyAdmin ՝ MySQL- ը կառավարելու և ձեր սեփական տվյալների շտեմարան ստեղծելու համար ՝ օգտագործելով տեղական սերվեր ՝ ձեր հատուկ կարիքներին համապատասխան:

Սկզբից տվյալների բազա (ֆերմերային շուկա) զրոյից կազմելիս պետք է կազմել աղյուսակ (mont_tabel), որում պահում եք ձեր արժեքները: Կախված նրանից, թե որքան տվյալներ ունեք, և ինչպես պետք է դրանք պատվիրեք, կարող եք պատրաստել այնքան աղյուսակ, որքան անհրաժեշտ է: Քանի որ մենք պետք է պահենք վեց տարբեր արժեքներ, և, հետևաբար, մեզ անհրաժեշտ էր վեց սյունակ ՝ մեկը յուրաքանչյուր արժեքի համար, մեր աղյուսակում: Վերևի նկարում դուք կարող եք տեսնել մեր տվյալների բազան:

Երբ մեր տվյալները հասնում են Node-RED, այն պառակտվում է պառակտման գործառույթով, և այժմ տվյալները ուղարկվում են տվյալների բազա:

Քայլ 7: Գնահատում

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

Սենսորները TCRT-5000- ից և պարզ LDR լույսի ցուցիչից փոխելը շատ ավելի կայունություն տվեց, քանի որ սենսորների մոտ արագ կարդալու ունակությունը, երբ մետաղադրամն անցնում է դրանով: TCRT-5000- ի հետ աշխատելիս շատ գործոններ պետք է հաշվի առնել, որպեսզի սենսորը աշխատի այնպես, ինչպես կցանկանայիք:

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

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