Kazalo:

Kako zgraditi sistem za zaznavanje gibanja z Arduinom: 7 korakov
Kako zgraditi sistem za zaznavanje gibanja z Arduinom: 7 korakov

Video: Kako zgraditi sistem za zaznavanje gibanja z Arduinom: 7 korakov

Video: Kako zgraditi sistem za zaznavanje gibanja z Arduinom: 7 korakov
Video: Иоша Бах: время, гипотеза моделирования, существование 2024, November
Anonim
Kako zgraditi sistem za zaznavanje gibanja z Arduinom
Kako zgraditi sistem za zaznavanje gibanja z Arduinom

Zgradite števec proizvodnje gibanja in prisotnosti s pomočjo Feather HUZZAH, programiranega z Arduinom in ki ga poganja Ubidots.

Učinkovito zaznavanje fizičnega gibanja in prisotnosti v pametnih domovih in pametni proizvodnji je lahko zelo uporabno v aplikacijah, ki segajo od starejših rešitev za pomoč pri bivanju v okolju (AAL) ali sistema za štetje proizvodnje, ki napaja večje MES. Druge aplikacije za zaznavanje gibanja in prisotnosti vključujejo, vendar niso omejene na:

  1. Avtomatizacija vrat in vrat
  2. Parkirni senzorji za označevanje prostih mest
  3. Daljinski nadzor nad nivojem rezervoarja
  4. Pametni domovi in objekti za razsvetljavo in zaščito
  5. Enote za odkrivanje in štetje v transportnih linijah
  6. Označite zaznavanje na tiskanih materialih
  7. Zaznavanje tekočine v nagibih kartona, plastike in papirja
  8. Zaznavanje razdalje
  9. Števci ljudi

Čeprav obstaja veliko aplikacij za prisotnost in gibanje, je enako veliko senzorjev za zbiranje podatkov, kot so kapacitivni, induktivni, fotoelektrični in ultrazvočni senzorji. Odvisno od stroškov, okoljskih pogojev in zahtev glede natančnosti je treba izbrati najprimernejšo strojno opremo za okolje in zahteve uporabe.

V tej vadnici se bomo osredotočili na izdelavo števca proizvodnje v realnem času; aplikacija bo štela vsako enoto, ki gre mimo na tekočem traku. Arduino IDE bomo uporabili za programiranje Feather HUZZAH ESP8266, ultrazvočnega senzorja in Ubidots za razvoj naše aplikacije in prikaz naše nadzorne plošče IoT.

1. korak: Zahteve

  1. Pero HUZZAH z ESP8266MB7389-100
  2. Ultrazvočni senzor
  3. Arduino IDE 1.8.2 ali novejši
  4. Ubidots račun -ali licenca STEM

2. korak: Nastavitev

  • I Nastavitev strojne opreme
  • II. Namestitev vdelane programske opreme
  • III. Razvoj aplikacij Ubidots (dogodki, spremenljivke in nadzorne plošče)

3. korak: Namestitev strojne opreme

Namestitev strojne opreme
Namestitev strojne opreme
Namestitev strojne opreme
Namestitev strojne opreme

Ultrazvočni senzor MB7389-100 je poceni možnost za industrijske aplikacije s širokim razponom in nizko porabo energije v zahtevnih vremenskih razmerah, zahvaljujoč oceni IPv67.

Za začetek zrcalite spodnji diagram za pritrditev ultrazvočnega senzorja na pero HUZZAH ESP8266.

OPOMBA: Odčitavanje senzorja je lahko analogno ali PWM; spodaj bomo razložili nastavitev za branje PWM, za dodatne informacije si oglejte zgornje primere.

[Po želji] mikrokrmilnik in senzorje postavite v ohišje de IP67, da jih zaščitite pred prahom, vodo in drugimi nevarnimi okoljskimi dejavniki. Standardno ohišje je podobno tistemu, prikazanemu na zgornjih fotografijah.

4. korak: Nastavitev vdelane programske opreme

Namestitev vdelane programske opreme
Namestitev vdelane programske opreme
Namestitev vdelane programske opreme
Namestitev vdelane programske opreme

Najprej morate namestiti Feather Huzzah v Arduino IDE in sestaviti kodo. Ne pozabite preveriti te nastavitve s preprostim testom utripanja. Za dodatne informacije o priključitvi naprave Feather si oglejte ta uporaben priročnik za nastavitev strojne opreme.

Če želite poslati podatke senzorjev na razvojno platformo Ubidots IoT, kopirajte in prilepite spodnjo kodo v Arduino IDE. Ne pozabite dodeliti imena omrežja Wi-Fi, gesla in žetona računa Ubidots, kjer je navedeno v kodi.

/******************************** Knjižnice vključene *************** **************** /#include /****************************** ** Konstante in predmeti ******************************* //*Ubidots*/const char*SSID_NAME = "xxxxxxxx"; // Vnesite svoj SSID nameconst char* SSID_PASS = "xxxxxxxx"; // Vnesite gesloconcon char* TOKEN = "Assig_your_ubidots_token"; // Vnesite svoj TOKENconst char* DEVICE_LABEL = "nadzor gibanja"; // labelconst char vaše naprave* VARIABLE_LABEL = "razdalja"; // Vaša spremenljivka labelconst char* USER_AGENT = "ESP8266"; const char* VERSION = "1.0"; const char* HTTPSERVER = "industrial.api.ubidots.com"; // Ubidots Poslovni uporabniki // const char* HTTPSERVER = " things.ubidots.com "; // Ubidots Izobraževalni uporabnikiintTPTPPORT = 80;/ * Ultrazvočni senzor */const int pwPin1 = 5; // pin PWM, kamor je priključen senzorWiFiClient clientUbi;/******************************** Pomožne funkcije *** **************************** // ** Dobi dolžino telesa @arg spremenljivke telesa tipa char @return dataLen dolžina spremenljivke*/int dataLen (spremenljivka char*) {uint8_t dataLen = 0; for (int i = 0; i distance / 25.4* / float distance = pulseIn (pwPin1, HIGH); sendToUbidots (DEVICE_LABEL, VARIABLE_LABEL, distance); delay (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); / * Presledek za shranjevanje vrednosti za pošiljanje * / char str_val [10]; /*---- Pretvori vrednosti senzorjev v tip char -----* / /*4 je minimalna širina, 2 je natančnost; plavajoča vrednost se kopira na str_val* / dtostrf (sensor_value, 4, 2, str_val); /* Ustvari telo za pošiljanje v zahtevo* /sprintf (body, "{"%s / ":%s}", variable_label, str_val); /* Ustvari HTTP zahteva, da je POST */sprintf (podatki, "POST /api/v1.6/devices/%s", naprava_znaka); sprintf (podatki, "%s HTTP/1.1 / r / n", podatki); sprintf (podatki, "%sHost: things.ubidots.com / r / n", podatki); sprintf (podatki, "%sUser-Agent:%s/%s / r / n", podatki, USER_AGENT, VERSION); sprintf (podatki, " %sX-Auth-Token: %s / r / n", podatki, TOKEN); sprint f (podatki, "%sConnection: close / r / n", podatki); sprintf (podatki, "%sContent-Type: application/json / r / n", podatki); sprintf (podatki, " %sContent-Length: %d / r / n / r / n", podatki, dataLen (telo)); sprintf (podatki, "%s%s / r / n / r / n", podatki, telo); / * Začetna povezava */ clientUbi.connect (HTTPSERVER, HTTPPORT); / * Preverite odjemalsko povezavo */ if (clientUbi.connect (HTTPSERVER, HTTPPORT)) {Serial.println (F ("Objavljanje spremenljivk:")); Serial.println (podatki); / * Pošlji zahtevo HTTP */ clientUbi.print (podatki); } / * Medtem ko je odjemalec na voljo, preberite odgovor strežnika * / while (clientUbi.available ()) {char c = clientUbi.read (); Serial.write (c); } / * Prosti pomnilnik * / prost (podatki); prost (telo); / * Ustavite odjemalca */ clientUbi.stop ();}

ProTip: če je naprava pravilno povezana, lahko preverite tako, da odprete serijski monitor v Arduino IDE.

Preverite, ali je naprava ustvarjena v zaledju Ubidots, tako da si jo ogledate v svojem računu Upravljanje naprav -> Naprave.

S klikom na napravo boste našli spremenljivko, imenovano "razdalja", kjer so shranjeni odčitki senzorja. To ime je bilo dodeljeno v kodi, ki ste jo pravkar prilepili v Arduino IDE. Če želite prilagoditi samodejne spremenljivke, to storite tako, da uredite kartico naprave ali utripate posodobljeno kodo s pravilno nomenklaturo spremenljivk za vašo aplikacijo.

Ker je Feather HUZZAH ESP8266 povezan in poroča o podatkih na Ubidots, je zdaj čas za izdelavo aplikacije s skrbno zasnovano konfiguracijo aplikacije brez kod.

5. korak: Razvoj aplikacije Ubidots

Razvoj aplikacij Ubidots
Razvoj aplikacij Ubidots
Razvoj aplikacij Ubidots
Razvoj aplikacij Ubidots
Razvoj aplikacij Ubidots
Razvoj aplikacij Ubidots

Konfiguracija dogodka Ubidots

Trenutni odčitki, ki jih pošiljamo Ubidotsu, so vnosi na daljavo. Za pretvorbo teh odčitkov v želeni izhod, ki ga želimo - šteti enote - moramo ustvariti dogodek po teh korakih:

  1. Znotraj trenutne naprave "nadzor gibanja" ustvarite novo privzeto spremenljivko, imenovano "polja", ki bo prejela 1 vsakič, ko se šteje nova enota.
  2. Pojdite na Upravljanje naprav -> Dogodki in kliknite modro ikono plus v zgornjem desnem kotu strani, da dodate nov dogodek.
  3. Konfigurirajte svoj dogodek, ki se začne z "Če se sproži":
  • Izberite spremenljivko: "razdalja"
  • Vrednost: vrednost (privzeto)
  • Je manjša ali enaka [največji pričakovani razdalji] med senzorjem in polji, ki gredo mimo*, naša aplikacija zahteva 500 mm
  • Za 0 minut
  • Shrani

4. Ko so sprožilci konfigurirani v skladu s specifikacijami vaše aplikacije, kliknite oranžno ikono "plus" v zgornjem desnem kotu, da dodate pogojno dejanje.

5. Kot dejanje izberite »Nastavi spremenljivko«.

6. Nato izberite predhodno ustvarjeno privzeto spremenljivko "polja" in vrednost "1".

7. Shranite spremembe. Če je dogodek pravilno nastavljen, bo poslal "1" vsakič, ko je razdalja med senzorjem in enoto daljša od označenega praga, kar pomeni, da v bližini ni nobenega predmeta - in bi morala šteti novo enoto, ki je pravkar šla mimo.

Na kartici Device Perfect Device boste ugotovili, da spremenljivka "polja", kjer se pošlje "1", kadar koli zazna prisotnost enote.

Ta prototip, ki je še posebej uporaben za industrijske transportne trakove in štetje enot, lahko prilagodite tako, da se prilega različnim okoljem ali strojni opremi preprosto v vašem kodiranju ali razvoju aplikacij.

8. Vizualizirajte število zaznanih enot (ali čas zaznavanja objekta) Zdaj bomo s spremenljivko "box" ustvarili novo spremenljivo okno, ki sešteje skupno količino odčitkov, sprejetih iz spremenljivke "box" v določena neželena pošta (minute, ure, dnevi, tedni itd.) Če želite izvesti ta razvoj, sledite tem preprostim korakom:

Novi spremenljivki tekočega okna dodelite naslednje poverilnice

Izberite napravo: nadzor gibanja (ali ime naprave, ki ji pošiljate podatke)

Izberite spremenljivko: polja

Izračunajte: vsoto

Vsako: "1" uro (ali glede na vaše zahteve za prijavo)

Zdaj dodelite ime novi spremenljivki, ki označuje število polj (ali premikov), štetih v eni uri, tako kot "škatle/ura" ali "enote/ure".

6. korak: Konfiguracije nadzorne plošče

Konfiguracije nadzorne plošče
Konfiguracije nadzorne plošče

Na koncu ustvarite nadzorno ploščo, ki prikazuje število zaznanih enot.

Pojdite na Upravljanje naprav -> Nadzorne plošče in dodajte nov gradnik. Ta pripomoček bo prikazal količino preštetih polj, razvrščenih po urah danes.

Novemu pripomočku dodelite naslednje poverilnice za vizualizacijo štetja.

Kako bi radi videli svoje podatke ?: Grafikon

Izberite vrsto pripomočka: črtni grafikon

Dodajte napravo: nadzor gibanja

Dodajte spremenljivko: polja/uro

Končaj. S tem končnim razvojem nadzorne plošče - vaša aplikacija je popolna in zdaj imate učinkovit in učinkovit sistem zaznavanja gibanja in prisotnosti. Tukaj je končni pogled na naše rezultate.

Priporočena: