Përmbajtje:

Si të ndërtoni një sistem të zbulimit të lëvizjes me Arduino: 7 hapa
Si të ndërtoni një sistem të zbulimit të lëvizjes me Arduino: 7 hapa

Video: Si të ndërtoni një sistem të zbulimit të lëvizjes me Arduino: 7 hapa

Video: Si të ndërtoni një sistem të zbulimit të lëvizjes me Arduino: 7 hapa
Video: Leap Motion SDK 2024, Nëntor
Anonim
Si të ndërtoni një sistem të zbulimit të lëvizjes me Arduino
Si të ndërtoni një sistem të zbulimit të lëvizjes me Arduino

Ndërtoni një numërues të prodhimit të lëvizjes dhe pranisë duke përdorur një pendë HUZZAH të programuar me Arduino dhe të mundësuar nga Ubidots.

Lëvizja efektive fizike dhe zbulimi i prezencës në Shtëpi të Zgjuara dhe Prodhim i Zgjuar mund të jetë shumë i dobishëm në aplikacione që variojnë nga zgjidhjet e të moshuarve të Ambientit të Ndihmuar në Ambient (AAL) ose një Sistemi të Numërimit të Prodhimit që ushqen një MASH më të madh. Aplikimet e tjera për Zbulimin e Lëvizjes dhe Prezencës përfshijnë por nuk kufizohen në:

  1. Automatizimi i dyerve dhe portave
  2. Sensorë parkimi për të përcaktuar vende të lira
  3. Monitorimi i nivelit të rezervuarit në distancë
  4. Shtëpi dhe pajisje të zgjuara për ndriçim dhe siguri
  5. Njësitë e zbulimit dhe numërimit në linjat transportuese
  6. Shënoni zbulimin në materialet e shtypura
  7. Zbulimi i lëngjeve brenda animeve të kartonit, plastikës dhe letrës
  8. Zbulimi i distancës
  9. Njerëzit kundërvihen

Ndërsa ka shumë aplikime për praninë dhe lëvizjen, ka po aq sensorë për të mbledhur të dhëna, të tilla si sensorë kapacitiv, induktiv, fotoelektrik dhe tejzanor. Në varësi të kostove, kushteve mjedisore dhe kërkesave të saktësisë, duhet të zgjidhni pajisjen më të mirë të përshtatshme për një mjedis dhe kërkesat e aplikimit.

Për këtë tutorial, ne do të përqëndrohemi në ndërtimin e një sporteli prodhimi në kohë reale; aplikacioni do të numërojë çdo njësi që kalon në një rrip transportieri. Ne do të përdorim Arduino IDE për të programuar një Feather HUZZAH ESP8266, një sensor tejzanor dhe Ubidots për të zhvilluar aplikacionin tonë dhe për të shfaqur pultin tonë të IoT.

Hapi 1: Kërkesat

  1. Pendë HUZZAH me ESP8266MB7389-100
  2. Sensor tejzanor
  3. Arduino IDE 1.8.2 ose më e lartë
  4. Llogaria Ubidots -ose Licenca STEM

Hapi 2: Konfigurimi

  • I Konfigurimi i harduerit
  • II Konfigurimi i firmuerit
  • III. Zhvillimi i Aplikimit Ubidots (ngjarje, ndryshore dhe pult)

Hapi 3: Konfigurimi i harduerit

Konfigurimi i harduerit
Konfigurimi i harduerit
Konfigurimi i harduerit
Konfigurimi i harduerit

Sensori tejzanor MB7389-100 është një opsion me kosto të ulët për aplikimet industriale me kërkesa të gamës së gjerë dhe të ulët të energjisë në kushte sfiduese të motit falë vlerësimit të tij IPv67.

Për të filluar, pasqyroni diagramin më poshtë për të bashkuar sensorin tejzanor në pendën HUZZAH ESP8266.

SH NOTNIM: Leximi i sensorit mund të merret si lexime analoge ose PWM; më poshtë do të shpjegojmë konfigurimin për leximin e PWM, për informacion shtesë ju lutemi shihni shembujt e treguar më sipër.

[Opsionale] vendosni mikrokontrolluesin dhe sensorët brenda kutisë de IP67 për t'i mbrojtur nga pluhuri, uji dhe faktorë të tjerë kërcënues të mjedisit. Rasti standard duket i ngjashëm me atë të treguar në fotot e mësipërme.

Hapi 4: Konfigurimi i firmuerit

Konfigurimi i firmuerit
Konfigurimi i firmuerit
Konfigurimi i firmuerit
Konfigurimi i firmuerit

Së pari, duhet të instaloni Feat Huzzah në Arduino IDE dhe të përpiloni kodin. Mos harroni të verifikoni këtë konfigurim duke bërë një test të thjeshtë të ndezjes. Për informacion të mëtejshëm në lidhje me lidhjen e pajisjes tuaj Feather, shikoni këtë udhëzues të dobishëm të konfigurimit të harduerit.

Për të dërguar të dhëna të sensorit në Platformën e Zhvillimit IoT të Ubidots, kopjoni dhe ngjisni kodin më poshtë në Arduino IDE. Mos harroni të caktoni emrin e rrjetit Wi-Fi, fjalëkalimin dhe shenjën e llogarisë suaj Ubidots aty ku tregohet në kod.

/****************************** Bibliotekat e përfshira *************** **************** /#include /***************************** ** Konstantet dhe objektet *******************************Ubidots*/const char*SSID_NAME = "xxxxxxxx"; // Vendos këtu emrin tënd SSID char char* SSID_PASS = "xxxxxxxx"; // Vendos këtu fjalëkalimin tënd char* TOKEN = "Assig_your_ubidots_token"; // Vendosni këtu TOKENconst char tuaj* DEVICE_LABEL = "lëvizje-kontroll"; // Etiketa e pajisjes suajconst char* VARIABLE_LABEL = "distancë"; // Etiketa juaj e ndryshueshmeconst char* USER_AGENT = "ESP8266"; const char* VERSION = "1.0"; const char* HTTPSERVER = "industrial.api.ubidots.com"; // Përdoruesit e biznesit të Ubidots // const char* HTTPSERVER = " things.ubidots.com "; // Ubidots Përdoruesit edukativ në HTTPPORT = 80;/ * Sensori tejzanor */const int pwPin1 = 5; // Pina PWM ku është lidhur sensoriWiFiClient clientUbi;/****************************** Funksione ndihmëse *** ************************** ** ** Merr gjatësinë e ndryshores së trupit @arg trupi i tipit char @të dhënat e kthimitLen gjatësia e ndryshores*/int dataLen (ndryshore char*) {uint8_t dataLen = 0; për (int i = 0; i distanca / 25.4* / distanca notuese = pulseIn (pwPin1, HIGH); sendToUbidots (DEVICE_LABEL, VARIABLE_LABEL, distanca); vonesë (1000);} void sendToUbidots (const char* device_label, const char* variable_label, vlera e sensorit notues) {char * body = (char *) malloc (sizeof (char) * 150); char * data = (char *) malloc (sizeof (char) * 300); / * Hapësirë për të ruajtur vlerat për të dërguar * / char str_val [10]; /*---- Transformon vlerat e sensorëve në tipin e shkronjave -----* / /*4 është gjerësia minimale, 2 është saktësia; vlera e notit kopjohet në str_val* / dtostrf (sensor_value, 4, 2, str_val); /* Ndërton trupin për t'u dërguar në kërkesë* /sprintf (body, "{"%s / ":%s}", variable_label, str_val); /* Ndërton HTTP kërkesa për të qenë POST */sprintf (të dhëna, "POST /api/v1.6/devices/%s", pajisja_label); sprintf (të dhëna, "%s HTTP/1.1 / r / n", të dhëna); sprintf (të dhëna, "%sHost: things.ubidots.com / r / n", të dhëna); sprintf (të dhëna, "%sUser-Agjenti:%s/%s / r / n", të dhëna, USER_AGENT, VERSION); sprintf (të dhëna, " %sX-Auth-Token: %s / r / n", të dhëna, TOKEN); sprint f (të dhëna, "%sLidhja: mbyll / r / n", të dhëna); sprintf (të dhënat, "%sLloji i përmbajtjes: aplikacioni/json / r / n", të dhëna); sprintf (të dhëna, " %sPërmbajtja-Gjatësia: %d / r / n / r / n", të dhëna, dataLen (trupi)); sprintf (të dhëna, "%s%s / r / n / r / n", të dhëna, trupi); / * Lidhja fillestare */ clientUbi.connect (HTTPSERVER, HTTPPORT); / * Verifikoni lidhjen me klientin */ if (clientUbi.connect (HTTPSERVER, HTTPPORT)) {Serial.println (F ("Postimi i ndryshoreve tuaja:")); Serial.println (të dhëna); / * Dërgoni Kërkesën HTTP */ clientUbi.print (të dhëna); } / * Ndërsa klienti është në dispozicion lexoni përgjigjen e serverit * / ndërsa (clientUbi.available ()) {char c = clientUbi.read (); Serial.shkruani (c); } / * Kujtesë falas * / falas (të dhëna); falas (trupi); / * Ndaloni klientin */ clientUbi.stop ();}

ProTip: mund të kontrolloni nëse pajisja juaj është e lidhur saktë duke hapur monitorin serik në Arduino IDE.

Mund të verifikoni që një pajisje është krijuar në sfondin tuaj Ubidots duke e parë atë në llogarinë tuaj Menaxhimi i Pajisjeve -> Pajisjet.

Duke klikuar pajisjen tuaj, do të gjeni një ndryshore të quajtur "distancë" ku ruhen leximet e sensorit. Ky emër u caktua në kodin që sapo keni ngjitur në Arduino IDE. Nëse dëshironi të rregulloni ndryshoret tuaja automatike, ju lutemi bëni këtë duke redaktuar kartën e Pajisjes ose duke ndezur një kod të azhurnuar me nomenklaturën e saktë të ndryshoreve për aplikacionin tuaj.

Me Feather HUZZAH ESP8266 të lidhur dhe duke raportuar të dhëna në Ubidots, tani është koha për të ndërtuar aplikacionin duke përdorur konfigurimin e aplikacionit pa kod të dizajnuar me kujdes të Ubidots.

Hapi 5: Zhvillimi i Aplikimit Ubidots

Zhvillimi i aplikacionit Ubidots
Zhvillimi i aplikacionit Ubidots
Zhvillimi i aplikacionit Ubidots
Zhvillimi i aplikacionit Ubidots
Zhvillimi i aplikacionit Ubidots
Zhvillimi i aplikacionit Ubidots

Konfigurimi i ngjarjes Ubidots

Leximet aktuale që po i dërgojmë Ubidots janë hyrje në distancë. Për përkthimin e këtyre leximeve në daljen e dëshiruar që duam - njësitë e numëruara - ne duhet të krijojmë një ngjarje duke ndjekur këto hapa:

  1. Brenda pajisjes aktuale "lëvizje-kontroll" krijoni një ndryshore të re të paracaktuar të quajtur "kuti", e cila do të marrë një 1 çdo herë që një njësi e re numërohet.
  2. Shkoni te Menaxhimi i Pajisjes -> Ngjarje dhe klikoni ikonën blu plus në këndin e sipërm të djathtë të faqes për të shtuar një ngjarje të re.
  3. Konfiguroni ngjarjen tuaj duke filluar me "Nëse shkakton":
  • Zgjidhni një ndryshore: "distanca"
  • Vlera: vlera (e parazgjedhur)
  • Lessshtë më e vogël ose e barabartë me [distancën maksimale të pritshme] midis sensorit dhe kutive që kalojnë*aplikacioni ynë kërkon 500 mm
  • Për 0 minuta
  • Ruaj

4. Pasi nxitësit të jenë konfiguruar në specifikimet e aplikacionit tuaj, klikoni ikonën portokalli "plus" në këndin e sipërm të djathtë për të shtuar një veprim të kushtëzuar.

5. Zgjidhni "Set Variable" si veprim.

6. Tjetra, zgjidhni variablin e krijuar më parë "kutitë" dhe vlerën "1".

7. Ruani ndryshimet. Nëse ngjarja është e rregulluar siç duhet, ajo do të dërgojë një "1" sa herë që distanca midis sensorit dhe njësisë është më e gjatë se një prag i treguar, që sugjeron që nuk ka asnjë objekt afër - dhe duhet të numërojë një njësi të re që sapo ka kaluar Me

Në kartën Device specific Device, do të gjeni se variabli "kuti" ku dërgohet një "1" sa herë që ndihet prania e një njësie.

Veçanërisht e dobishme për rripat transportues industrial dhe njësitë që numërojnë këtë prototip mund të personalizohet për t'iu përshtatur mjediseve ose pajisjeve të ndryshme thjesht në kodimin tuaj ose zhvillimin e aplikacioneve tuaja.

8. Vizualizoni numrin e njësive të ndjerë (ose herët kur një objekt u zbulua) Tani, duke përdorur ndryshoren "kuti", ne do të krijojmë një ndryshore të re të dritares rrotulluese për të përmbledhur sasinë totale të leximeve të marra nga ndryshorja "kuti" në një spam të përcaktuar (minuta, orë, ditë, javë, etj). Për të ekzekutuar këtë zhvillim, ndiqni këto hapa të thjeshtë:

Caktoni kredencialet e mëposhtme ndryshores tuaj të re të dritares që lëviz

Zgjidhni një pajisje: kontrollin e lëvizjes (ose emrin e pajisjes që po dërgoni të dhënat tuaja)

Zgjidhni një ndryshore: kuti

Llogarit shumën: shumën

Çdo: "1" orë (ose sipas kërkesave tuaja të aplikimit)

Tani caktoni një emër për ndryshoren e re që tregon numrin e kutive (ose lëvizjeve) të numëruara në një orë, ashtu si "kutitë/orë" ose "njësitë/orë.

Hapi 6: Konfigurimet e pultit

Konfigurimet e pultit
Konfigurimet e pultit

Së fundi, krijoni një pult për të shfaqur numrin e njësive të ndjerë.

Shkoni te Menaxhimi i Pajisjeve -> Pultet dhe shtoni një widget të ri. Ky widget do të shfaqë sasinë e kutive të numëruara sot të ndara në orë.

Caktoni kredencialet e mëposhtme në widget -in tuaj të ri për të vizualizuar numërimin tuaj.

Si dëshironi të shihni të dhënat tuaja?: Grafiku

Zgjidhni një lloj widget: grafiku i linjave

Shtoni një pajisje: lëvizje-kontroll

Shtoni një ndryshore: kuti/orë

Përfundo Dhe me këtë zhvillim të fundit të pultit - aplikacioni juaj është i plotë dhe tani keni një sistem efikas dhe efektiv të zbulimit të lëvizjes dhe pranisë. Këtu keni një vështrim përfundimtar në rezultatet tona.

Recommended: