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

Ինչպես կառուցել շարժման հայտնաբերման համակարգ Arduino- ով. 7 քայլ
Ինչպես կառուցել շարժման հայտնաբերման համակարգ Arduino- ով. 7 քայլ

Video: Ինչպես կառուցել շարժման հայտնաբերման համակարգ Arduino- ով. 7 քայլ

Video: Ինչպես կառուցել շարժման հայտնաբերման համակարգ Arduino- ով. 7 քայլ
Video: Marlin Firmware 2.0.x Explained 2024, Հուլիսի
Anonim
Ինչպես կառուցել շարժման հայտնաբերման համակարգ Arduino- ի միջոցով
Ինչպես կառուցել շարժման հայտնաբերման համակարգ Arduino- ի միջոցով

Կառուցեք շարժման և ներկայության արտադրության հաշվիչ ՝ օգտագործելով Arduino- ով ծրագրավորված և Ubidots- ի միջոցով աշխատող փետուր HUZZAH:

Ֆիզիկական շարժման և ներկայության արդյունավետ հայտնաբերումը «Խելացի տներում» և «Խելացի արտադրություն» -ում կարող է շատ օգտակար լինել տարատեսակ միջավայրի օժանդակ կյանքի (AAL) լուծումներից կամ արտադրության հաշվման համակարգից, որն ապահովում է ավելի մեծ MES- ներ: Շարժման և ներկայության հայտնաբերման այլ ծրագրեր ներառում են, բայց չեն սահմանափակվում.

  1. Դռների և դարպասների ավտոմատացում
  2. Կայանման տվիչներ ՝ ազատ տեղեր նշանակելու համար
  3. Տանկի մակարդակի հեռակա մոնիտորինգ
  4. Խելացի տներ և հարմարություններ լուսավորության և անվտանգության համար
  5. Փոխադրիչ գծերում միավորների հայտնաբերում և հաշվառում
  6. Տպագիր նյութերի վրա նշումների հայտնաբերում
  7. Ստվարաթղթի, պլաստիկի և թղթի թեքությունների ներսում հեղուկի հայտնաբերում
  8. Հեռավորության հայտնաբերում
  9. Մարդիկ հակադարձում են

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

Այս ձեռնարկի համար մենք կկենտրոնանանք իրական ժամանակի արտադրության հաշվիչ կառուցելու վրա. դիմումը կհաշվի փոխակրիչ գոտու վրայով անցնող յուրաքանչյուր միավոր: Մենք կօգտագործենք Arduino IDE- ն ՝ փետուր HUZZAH ESP8266, ուլտրաձայնային տվիչ և Ubidots ծրագրավորելու համար ՝ մեր ծրագիրը մշակելու և IoT վահանակը ցուցադրելու համար:

Քայլ 1: Պահանջներ

  1. Փետուր HUZZAH ESP8266MB7389-100- ով
  2. Ուլտրաձայնային տվիչ
  3. Arduino IDE 1.8.2 կամ ավելի բարձր
  4. Ubidots հաշիվ -կամ STEM լիցենզիա

Քայլ 2: Կարգավորում

  • I Hardware Setup
  • II. Fրագրաշարի տեղադրում
  • III. Ubidots հավելվածների մշակում (իրադարձություններ, փոփոխականներ և վահանակներ)

Քայլ 3: Սարքավորման կարգավորում

Սարքաշարի տեղադրում
Սարքաշարի տեղադրում
Սարքաշարի տեղադրում
Սարքաշարի տեղադրում

Ուլտրաձայնային սենսոր MB7389-100- ը ցածր գնով տարբերակ է արդյունաբերական ծրագրերի համար `մեծ սպեկտրի և ցածր էներգիայի սպառման պահանջներով, դժվարին եղանակային պայմաններում` իր IPv67 վարկանիշի շնորհիվ:

Սկսելու համար, հայելու ներքևի դիագրամը ՝ ուլտրաձայնային տվիչը կցելու համար փետուրին HUZZAH ESP8266:

ՈEՇԱԴՐՈԹՅՈՆ. Սենսորի ընթերցումը կարող է ընդունվել որպես անալոգային ընթերցումներ կամ PWM; ստորև մենք պատրաստվում ենք բացատրել PWM ընթերցման կարգավորումը, լրացուցիչ տեղեկությունների համար տես վերևում ներկայացված օրինակները:

[Ptionանկության դեպքում] տեղադրեք միկրոհսկիչը և տվիչները de IP67 պատյանում `դրանք փոշուց, ջրից և շրջակա միջավայրի այլ սպառնալիքներից պաշտպանելու համար: Ստանդարտ գործը նման է վերը նշված լուսանկարներում ցուցադրվածին:

Քայլ 4: Fրագրաշարի տեղադրում

Fրագրաշարի տեղադրում
Fրագրաշարի տեղադրում
Fրագրաշարի տեղադրում
Fրագրաշարի տեղադրում

Նախ, դուք պետք է տեղադրեք Feather Huzzah- ը Arduino IDE- ում և կազմեք ծածկագիրը: Հիշեք, որ հաստատեք այս կարգավորումը ՝ կատարելով մի պարզ թարթող թեստ: Ձեր փետուր սարքը միացնելու մասին լրացուցիչ տեղեկությունների համար այցելեք այս օգտակար սարքավորման տեղադրման ուղեցույցը:

Սենսորների տվյալները Ubidots IoT զարգացման պլատֆորմ ուղարկելու համար պատճենեք և տեղադրեք ստորև նշված կոդը Arduino IDE- ում: Հիշեք, որ նշանակեք Wi-Fi ցանցի անունը, գաղտնաբառը և ձեր Ubidots հաշվի նշանը, որտեղ նշված է ծածկագրում:

/****************************** Գրադարանները ներառված են *************** ****************/#ներառում /****************************** ** Մշտականներ և առարկաներ ***************************** //*Ubidots*/const char*SSID_NAME = "xxxxxxxx"; // Տեղադրեք ձեր SSID անունը char char* SSID_PASS = "xxxxxxxx"; // Տեղադրեք այստեղ ձեր գաղտնաբառըconst char* TOKEN = "Assig_your_ubidots_token"; // Տեղադրեք այստեղ ձեր TOKENconst char* DEVICE_LABEL = "motion-control"; // Ձեր սարքը պիտակավորված է char* VARIABLE_LABEL = "հեռավորություն"; // Ձեր փոփոխական labelconst char* USER_AGENT = "ESP8266"; const char* VERSION = "1.0"; const char* HTTPSERVER = "industrial.api.ubidots.com"; // Ubidots Բիզնեսի օգտվողներ // const char* HTTPSERVER = " things.ubidots.com »; // Ubidots Կրթական օգտվողներ HTTPPORT = 80;/ * Ուլտրաձայնային տվիչ */const int pwPin1 = 5; // PWM կապը, որտեղ միացված է սենսորը WiFiClient clientUbi;/******************************* Օժանդակ գործառույթներ *** *** ** երկարության փոփոխական*/int dataLen (char* փոփոխական) {uint8_t dataLen = 0; for (int i = 0; i distance / 25.4* / float distance = pulseIn (pwPin1, HIGH); sendToUbidots (DEVICE_LABEL, VARIABLE_LABEL, distance); ուշացում (1000);} void sendToUbidots (const char* device_label, const char* variable_label, float sensor_value) {char * body = (char *) malloc (sizeof (char) * 150); char * data = (char *) malloc (sizeof (char) * 300); / * Ուղարկելու արժեքները պահելու տարածք * / char str_val [10]; /*---- Սենսորների արժեքները փոխակերպում է ածխի տիպի -----* / /*4-ը նվազագույն լայնություն է, 2-ը ՝ ճշգրիտ; բոց արժեքը պատճենված է str_val* / dtostrf (sensor_value, 4, 2, str_val); /* Կառուցում է հարցման մեջ ուղարկվող մարմինը* /sprintf (body, "{"%s / ":%s}", variable_label, str_val); /* Կառուցում է HTTP խնդրանք լինել POST */sprintf (տվյալներ, «POST /api/v1.6/devices/%s», device_label); sprintf (տվյալներ, «%s HTTP/1.1 / r / n», տվյալներ); sprintf (տվյալներ, "%sHost: things.ubidots.com / r / n", տվյալներ); sprintf (տվյալներ, "%sUser-Agent:%s/%s / r / n", data, USER_AGENT, VERSION); sprintf (data, " %sX-Auth-Token: %s / r / n", տվյալներ, TOKEN); սպրինտ f (տվյալներ, "%sConnection: close / r / n", տվյալներ); sprintf (տվյալներ, "%sContent-Type: application/json / r / n", տվյալներ); sprintf (տվյալներ, " %sContent-Length: %d / r / n / r / n", data, dataLen (body)); sprintf (տվյալներ, "%s%s / r / n / r / n", տվյալներ, մարմին); / * Սկզբնական կապ */ clientUbi.connect (HTTPSERVER, HTTPPORT); / * Հաստատեք հաճախորդի կապը */ if (clientUbi.connect (HTTPSERVER, HTTPPORT)) {Serial.println (F ("Փոփոխականների տեղադրում.")); Serial.println (տվյալներ); / * Ուղարկեք HTTP հայցը */ clientUbi.print (տվյալներ); } / * Քանի դեռ հաճախորդը հասանելի է, կարդացեք սերվերի պատասխանը * / while (clientUbi.available ()) {char c = clientUbi.read (); Սերիա. Գրել (գ); } / * Ազատ հիշողություն * / անվճար (տվյալներ); անվճար (մարմին); / * Դադարեցնել հաճախորդին */ clientUbi.stop ();}

Հուշում. Կարող եք ստուգել, արդյոք ձեր սարքը ճիշտ է միացված ՝ Arduino IDE- ում սերիական մոնիտորը բացելով:

Կարող եք հաստատել, որ սարքը ստեղծվել է ձեր Ubidots- ի հետնամասում ՝ այն դիտելով ձեր հաշվի սարքի կառավարում -> սարքեր:

Սարքը սեղմելով ՝ դուք կգտնեք «հեռավորություն» կոչվող փոփոխական, որտեղ պահվում են սենսորի ընթերցումները: Այս անունը նշանակվել է Arduino IDE- ում հենց նոր տեղադրված ծածկագրում: Եթե ցանկանում եք հարմարեցնել ձեր ավտոմատ փոփոխականները, խնդրում ենք դա անել ՝ խմբագրելով Սարքի քարտը կամ ձեր դիմումի համար փոփոխականների ճիշտ անվանացանկով թարթելով թարմացված ծածկագիրը:

Փետուր HUZZAH ESP8266- ի հետ միացված և տվյալների հաղորդման Ubidots- ին, այժմ ժամանակն է կառուցել ծրագիրը `օգտագործելով Ubidots- ի մանրակրկիտ մշակված կոդազերծ հավելվածի կազմաձևը:

Քայլ 5. Ubidots հավելվածների մշակում

Ubidots հավելվածների մշակում
Ubidots հավելվածների մշակում
Ubidots հավելվածների մշակում
Ubidots հավելվածների մշակում
Ubidots հավելվածների մշակում
Ubidots հավելվածների մշակում

Ubidots իրադարձության կազմաձևում

Ընթացիկ ընթերցումները, որոնք մենք ուղարկում ենք Ubidots- ին, հեռավորության մուտքագրումներ են: Այս ընթերցումները ցանկալի ելքի մեջ թարգմանելու համար, որը մենք ցանկանում ենք `հաշվված միավորներ, մենք պետք է ստեղծենք իրադարձություն ՝ հետևելով այս քայլերին.

  1. Ներկայիս «շարժման վերահսկում» սարքի ներսում ստեղծեք նոր լռելյայն փոփոխական, որը կոչվում է «արկղեր», որը նոր միավորը հաշվելիս կստանա 1:
  2. Գնացեք Սարքի կառավարում -> Իրադարձություններ և կտտացրեք կապույտ գումարած պատկերակին ՝ էջի վերին աջ անկյունում ՝ նոր իրադարձություն ավելացնելու համար:
  3. Կազմաձևեք ձեր իրադարձությունը, որը սկսվում է «Եթե գործարկվի» բառով.
  • Ընտրեք փոփոխական ՝ «հեռավորություն»
  • Արժեքը `արժեքը (կանխադրված)
  • Սենսորից և*կողքով անցնող տուփերի միջև [մեր ակնկալվող առավելագույն հեռավորությունը] փոքր է կամ հավասար ՝ մեր դիմումը պահանջում է 500 մմ
  • 0 րոպեի ընթացքում
  • Պահել

4. Երբ գործարկիչները կազմաձևվեն ձեր դիմումի բնութագրերին, կտտացրեք նարնջագույն «գումարած» պատկերակին ՝ վերին աջ անկյունում `պայմանական գործողություն ավելացնելու համար:

5. Որպես գործողություն ընտրեք «Սահմանել փոփոխականը»:

6. Հաջորդը, ընտրեք նախկինում ստեղծված լռելյայն փոփոխական «տուփեր» և «1» արժեքը:

7. Պահպանեք փոփոխությունները: Եթե միջոցառումը պատշաճ կերպով կազմված է, այն «1» կուղարկի ամեն անգամ, երբ սենսորի և միավորի միջև հեռավորությունը նշված շեմից ավելի է, ինչը ենթադրում է, որ մոտակայքում ոչ մի առարկա չկա, և պետք է հաշվել նոր անցած միավորը:.

Փետուրի հատուկ սարքի քարտում դուք կգտնեք, որ փոփոխական «տուփեր», որտեղ «1» է ուղարկվում ցանկացած պահի, երբ զգացվի միավորի ներկայությունը:

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

8. Պատկերացրեք զգացված միավորների քանակը (կամ երբ օբյեկտ է հայտնաբերվել) Այժմ, օգտագործելով «տուփեր» փոփոխականը, մենք պատրաստվում ենք ստեղծել նոր շարժական պատուհանի փոփոխական `« արկղերից »փոփոխականից ստացված ընթերցումների ընդհանուր գումարը հավաքելու համար: սահմանված սպամ (րոպեներ, ժամեր, օրեր, շաբաթներ և այլն): Այս զարգացումն իրականացնելու համար հետևեք այս պարզ քայլերին.

Նշեք հետևյալ հավատարմագրերը ձեր նոր շարժական պատուհանի փոփոխականին

Ընտրեք սարք. Շարժման հսկողություն (կամ այն սարքի անունը, որին դուք ուղարկում եք ձեր տվյալները)

Ընտրեք փոփոխական. Տուփեր

Հաշվիր գումարը

Ամեն: «1» ժամ (կամ ըստ ձեր դիմումի պահանջների)

Այժմ նոր փոփոխականին նշանակեք անուն, որը ցույց է տալիս մեկ ժամում հաշված տուփերի (կամ շարժումների) քանակը, ինչպես «տուփեր/ժամ» կամ «միավոր/ժամ»:

Քայլ 6: Կառավարման վահանակի կազմաձևեր

Վահանակի կազմաձևեր
Վահանակի կազմաձևեր

Վերջապես, ստեղծեք վահանակ ՝ զգայուն միավորների քանակը ցուցադրելու համար:

Գնացեք Սարքի կառավարում -> Գործիքային վահանակներ և ավելացրեք նոր վիջեթ: Այս վիջեթը կցուցադրի այսօր հաշված տուփերի քանակը ՝ բաժանված ժամերով:

Նշեք հետևյալ հավատարմագրերը ձեր նոր վիջեթին ՝ ձեր հաշիվը պատկերավոր դարձնելու համար:

Ինչպե՞ս կցանկանայիք տեսնել ձեր տվյալները: գծապատկեր

Ընտրեք վիջեթի տեսակ. Գծային գծապատկեր

Ավելացնել սարք. Շարժման վերահսկում

Ավելացնել փոփոխական ՝ տուփեր/ժամ

Ավարտել Եվ այս վերջին վահանակի մշակմամբ `ձեր հավելվածն ավարտված է, և այժմ ունեք շարժումների և ներկայության հայտնաբերման արդյունավետ և արդյունավետ համակարգ: Ահա մեր արդյունքների վերջնական տեսքը:

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