Sadržaj:

Kako izgraditi sustav za otkrivanje pokreta s Arduinom: 7 koraka
Kako izgraditi sustav za otkrivanje pokreta s Arduinom: 7 koraka

Video: Kako izgraditi sustav za otkrivanje pokreta s Arduinom: 7 koraka

Video: Kako izgraditi sustav za otkrivanje pokreta s Arduinom: 7 koraka
Video: ЗАПРЕЩЁННЫЕ ТОВАРЫ с ALIEXPRESS 2023 ШТРАФ и ТЮРЬМА ЛЕГКО! 2024, Srpanj
Anonim
Kako izgraditi sustav za otkrivanje pokreta s Arduinom
Kako izgraditi sustav za otkrivanje pokreta s Arduinom

Izgradite brojač proizvodnje kretanja i prisutnosti pomoću Feather HUZZAH -a programiranog s Arduinom, a pokreće ga Ubidots.

Učinkovito otkrivanje fizičkog kretanja i prisutnosti u pametnim domovima i pametnoj proizvodnji može biti vrlo korisno u aplikacijama, od starijih rješenja za pomoć u okruženju (AAL) ili sustava za brojanje proizvodnje koji hrani veće MES. Ostale aplikacije za otkrivanje pokreta i prisutnosti uključuju, ali nisu ograničene na:

  1. Automatizacija vrata i vrata
  2. Parking senzori za označavanje slobodnih mjesta
  3. Daljinski nadzor razine spremnika
  4. Pametne kuće i objekti za osvjetljenje i sigurnost
  5. Jedinice za otkrivanje i brojanje u transportnim linijama
  6. Označite otkrivanje na tiskanim materijalima
  7. Otkrivanje tekućine unutar kartona, plastike i papira
  8. Detekcija udaljenosti
  9. Brojači ljudi

Iako postoji mnogo aplikacija za prisutnost i kretanje, postoji jednako mnogo senzora za prikupljanje podataka, poput kapacitivnih, induktivnih, fotoelektričnih i ultrazvučnih senzora. Ovisno o troškovima, uvjetima okoliša i zahtjevima točnosti, potrebno je odabrati najbolji hardver za okruženje i zahtjeve primjene.

Za ovaj vodič ćemo se usredotočiti na izgradnju brojača proizvodnje u stvarnom vremenu; aplikacija će brojati svaku jedinicu koja prolazi pored na pokretnoj traci. Arduino IDE koristit ćemo za programiranje Feather HUZZAH ESP8266, ultrazvučnog senzora i Ubidota za razvoj naše aplikacije i prikaz naše IoT nadzorne ploče.

Korak 1: Zahtjevi

  1. Perje HUZZAH s ESP8266MB7389-100
  2. Ultrazvučni senzor
  3. Arduino IDE 1.8.2 ili noviji
  4. Ubidots račun -ili -STEM licenca

Korak 2: Postavljanje

  • I Postavljanje hardvera
  • II. Postavljanje firmvera
  • III. Ubidots razvoj aplikacije (događaji, varijable i nadzorne ploče)

Korak 3: Postavljanje hardvera

Postavljanje hardvera
Postavljanje hardvera
Postavljanje hardvera
Postavljanje hardvera

Ultrazvučni senzor MB7389-100 jeftina je opcija za industrijske primjene sa zahtjevima širokog raspona i niske potrošnje energije u izazovnim vremenskim uvjetima zahvaljujući svojoj ocjeni IPv67.

Za početak zrcalite donji dijagram za pričvršćivanje ultrazvučnog senzora na pero HUZZAH ESP8266.

NAPOMENA: Očitavanje senzora može se uzeti kao analogno očitanje ili PWM; u nastavku ćemo objasniti postavljanje za čitanje PWM -a, za dodatne informacije pogledajte gore navedene primjere.

[Po želji] postavite mikrokontroler i senzore u kućište de IP67 kako biste ih zaštitili od prašine, vode i drugih prijetećih čimbenika okoliša. Standardno kućište izgleda slično onome prikazanom na gornjim fotografijama.

Korak 4: Postavljanje firmvera

Postavljanje firmvera
Postavljanje firmvera
Postavljanje firmvera
Postavljanje firmvera

Prvo biste trebali instalirati Feather Huzzah u Arduino IDE i sastaviti kôd. Ne zaboravite provjeriti ovu postavku jednostavnim testom treptanja. Za dodatne informacije o povezivanju vašeg Feather uređaja pogledajte ovaj korisni vodič za postavljanje hardvera.

Za slanje podataka senzora na Ubidots IoT razvojnu platformu, kopirajte i zalijepite donji kod u Arduino IDE. Ne zaboravite dodijeliti naziv Wi-Fi mreže, lozinku i token vašeg Ubidots računa gdje je naznačeno u kodu.

/******************************** Knjižnice uključene *************** **************** /#include /****************************** ** Konstante i objekti ******************************* //*Ubidoti*/const char*SSID_NAME = "xxxxxxxx"; // Ovdje unesite svoj SSID nameconst char* SSID_PASS = "xxxxxxxx"; // Ovdje unesite svoju lozinkuconst char* TOKEN = "Assig_your_ubidots_token"; // Ovdje stavite svoj TOKENconst char* DEVICE_LABEL = "upravljanje kretanjem"; // labelconst char vašeg uređaja* VARIABLE_LABEL = "udaljenost"; // Vaša varijabla labelconst char* USER_AGENT = "ESP8266"; const char* VERSION = "1.0"; const char* HTTPSERVER = "industrial.api.ubidots.com"; // Ubidots Poslovni korisnici // const char* HTTPSERVER = " things.ubidots.com "; // Ubidots Educational usersint HTTPPORT = 80;/ * Ultrazvučni senzor */const int pwPin1 = 5; // PWM pin na koji je senzor spojenWiFiClient clientUbi;/****************************** Pomoćne funkcije *** **************************** // ** Dobiva duljinu tijela @arg varijable tijelo tipa char @return dataLen duljina varijable*/int dataLen (char* varijabla) {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); / * Razmak za spremanje vrijednosti za slanje * / char str_val [10]; /*---- Pretvara vrijednosti senzora u tip char -----* / /*4 je minimalna širina, 2 je preciznost; float vrijednost se kopira na str_val* / dtostrf (sensor_value, 4, 2, str_val); /* Stvara tijelo za slanje u zahtjev* /sprintf (body, "{"%s / ":%s}", variable_label, str_val); /* Stvara HTTP zahtjev za POST */sprintf (podaci, "POST /api/v1.6/devices/%s", oznaka_uređaja); sprintf (podaci, "%s HTTP/1.1 / r / n", podaci); sprintf (podaci, "%sHost: things.ubidots.com / r / n", podaci); sprintf (podaci, "%sUser-Agent:%s/%s / r / n", podaci, USER_AGENT, VERSION); sprintf (podaci, " %sX-Auth-Token: %s / r / n", podaci, TOKEN); sprint f (podaci, "%sPovezivanje: zatvori / r / n", podaci); sprintf (podaci, "%sContent-Type: application/json / r / n", podaci); sprintf (podaci, " %sContent-Length: %d / r / n / r / n", podaci, dataLen (tijelo)); sprintf (podaci, "%s%s / r / n / r / n", podaci, tijelo); / * Početna veza */ clientUbi.connect (HTTPSERVER, HTTPPORT); / * Provjerite vezu s klijentom */ if (clientUbi.connect (HTTPSERVER, HTTPPORT)) {Serial.println (F ("Objavljivanje vaših varijabli:")); Serial.println (podaci); / * Slanje HTTP zahtjeva */ clientUbi.print (podaci); } / * Dok je klijent dostupan pročitajte odgovor poslužitelja * / while (clientUbi.available ()) {char c = clientUbi.read (); Serial.write (c); } / * Slobodna memorija * / slobodna (podaci); slobodan (tijelo); / * Zaustavite klijenta */ clientUbi.stop ();}

ProTip: možete provjeriti je li vaš uređaj ispravno spojen otvaranjem serijskog monitora u Arduino IDE -u.

Možete provjeriti je li uređaj izrađen u vašoj pozadini Ubidots tako da ga pogledate na svom računu Upravljanje uređajima -> Uređaji.

Klikom na vaš uređaj pronaći ćete varijablu pod nazivom "udaljenost" gdje se pohranjuju očitanja senzora. Ovo ime je dodijeljeno kodu koji ste upravo zalijepili u Arduino IDE. Ako želite prilagoditi automatske varijable, učinite to uređivanjem kartice uređaja ili bljeskanjem ažuriranog koda s ispravnom nomenklaturom varijabli za svoju aplikaciju.

S Feather HUZZAH ESP8266 povezanim i izvješćivanjem podataka na Ubidots, sada je vrijeme za izradu aplikacije koristeći Ubidots pažljivo osmišljenu konfiguraciju aplikacije bez koda.

Korak 5: Ubidots razvoj aplikacije

Ubidots razvoj aplikacija
Ubidots razvoj aplikacija
Ubidots razvoj aplikacija
Ubidots razvoj aplikacija
Ubidots razvoj aplikacija
Ubidots razvoj aplikacija

Ubidots Konfiguracija događaja

Trenutna očitanja koja šaljemo u Ubidots unos su udaljenosti. Za prevođenje ovih očitanja u željeni izlaz koji želimo - prebrojane jedinice - trebali bismo stvoriti događaj slijedeći ove korake:

  1. Unutar trenutnog uređaja "kontrola kretanja" stvorite novu zadanu varijablu pod nazivom "kutije", koja će primati 1 svaki put kada se broji nova jedinica.
  2. Idite na Upravljanje uređajima -> Događaji i kliknite plavu ikonu plus u gornjem desnom kutu stranice za dodavanje novog događaja.
  3. Konfigurirajte svoj događaj koji počinje s "Ako se aktivira":
  • Odaberite varijablu: "udaljenost"
  • Vrijednost: vrijednost (zadano)
  • Je li manja ili jednaka [maksimalnoj očekivanoj udaljenosti] između senzora i kutija koje prolaze*naša aplikacija traži 500 mm
  • Na 0 minuta
  • Uštedjeti

4. Nakon što su okidači konfigurirani prema specifikacijama vaše aplikacije, kliknite narančastu ikonu "plus" u gornjem desnom kutu da biste dodali uvjetnu radnju.

5. Odaberite "Postavi varijablu" kao radnju.

6. Zatim odaberite prethodno stvorenu zadanu varijablu "kutije" i vrijednost "1".

7. Spremite promjene. Ako je događaj ispravno postavljen, poslat će "1" svaki put kada je udaljenost između senzora i jedinice veća od naznačenog praga, što znači da u blizini nema objekta - i trebala bi brojati novu jedinicu koja je upravo prošla.

Na kartici Uređaj specifičan za perje, vidjet ćete da se varijabla "kutije" u kojima se šalje "1" svaki put kad se osjeti prisutnost jedinice.

Posebno koristan za industrijske transportne trake i brojanje jedinica, ovaj prototip može se prilagoditi tako da odgovara različitim okruženjima ili hardveru jednostavno u vašem kodiranju ili razvoju vaših aplikacija.

8. Vizualizirajte broj mjernih jedinica (ili puta otkrivanja objekta) Sada ćemo, koristeći varijablu "kutije", stvoriti novu promjenjivu prozorsku varijablu koja će zbrojiti ukupnu količinu očitanja primljenih iz varijable "kutije" u definirani neželjeni sadržaj (minute, sati, dani, tjedni itd.) Da biste izvršili ovaj razvoj, slijedite ove jednostavne korake:

Dodijelite sljedeće vjerodajnice novoj varijabli rotirajućeg prozora

Odaberite uređaj: upravljanje pokretom (ili naziv uređaja kojem šaljete podatke)

Odaberite varijablu: okviri

Izračunajte: zbir

Svaki: "1" sat (ili prema vašim zahtjevima za prijavu)

Sada dodijelite naziv novoj varijabli koji označava broj kutija (ili pomaka) izbrojenih u satu, baš poput "kutija/sat" ili "jedinica/sati".

Korak 6: Konfiguracije nadzorne ploče

Konfiguracije nadzorne ploče
Konfiguracije nadzorne ploče

Na kraju, izradite nadzornu ploču za prikaz broja mjernih jedinica.

Idite na Upravljanje uređajima -> Nadzorne ploče i dodajte novi widget. Ovaj će widget prikazati količinu danas izbrojanih kutija razvrstanih po satima.

Dodijelite sljedeće vjerodajnice svom novom widgetu kako biste vizualizirali svoj broj.

Kako želite vidjeti svoje podatke ?: Grafikon

Odaberite vrstu widgeta: linijski grafikon

Dodajte uređaj: upravljanje pokretom

Dodajte varijablu: kutije/sat

Završi. S ovim konačnim razvojem nadzorne ploče - vaša je aplikacija potpuna i sada imate učinkovit i djelotvoran sustav za otkrivanje pokreta i prisutnosti. Evo konačnog pogleda na naše rezultate.

Preporučeni: