Sadržaj:

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

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

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

Napravite brojač proizvodnje pokreta i prisutnosti koristeći pero HUZZAH programirano s Arduinom i pokrenuto Ubidots -om.

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ć pri ambijentalnom stanovanju (AAL) ili sistema 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 kapija
  2. Parking senzori za označavanje slobodnih mjesta
  3. Daljinski nadzor nivoa rezervoara
  4. Pametne kuće i objekti za osvjetljenje i sigurnost
  5. Jedinice za otkrivanje i brojanje u transportnim linijama
  6. Označite otkrivanje na štampanim materijalima
  7. Otkrivanje tekućine unutar nagiba kartona, plastike i papira
  8. Detekcija udaljenosti
  9. Brojači ljudi

Iako postoji mnogo aplikacija za prisutnost i kretanje, postoji podjednako mnogo senzora za prikupljanje podataka, poput kapacitivnih, induktivnih, fotoelektričnih i ultrazvučnih senzora. Ovisno o troškovima, uvjetima okoline i zahtjevima tačnosti, potrebno je odabrati hardver koji najbolje odgovara okruženju i zahtjevima primjene.

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

Korak 1: Zahtjevi

  1. Perje HUZZAH sa 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 Podešavanje hardvera
  • II. Postavljanje firmvera
  • III. Ubidots razvoj aplikacija (događaji, varijable i nadzorne ploče)

Korak 3: Postavljanje hardvera

Postavljanje hardvera
Postavljanje hardvera
Postavljanje hardvera
Postavljanje hardvera

Ultrazvučni senzor MB7389-100 je jeftina 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 ili PWM; u nastavku ćemo objasniti podešavanje za čitanje PWM -a, za dodatne informacije pogledajte primjere prikazane gore.

[Opcionalno] postavite mikrokontroler i senzore u kućište de IP67 kako biste ih zaštitili od prašine, vode i drugih prijetećih faktora okoline. 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.

Da biste poslali podatke 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.

/******************************** Uključene biblioteke *************** **************** /#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 unesite TOKENconst char* DEVICE_LABEL = "kontrolu kretanja"; // 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 priključen senzorWiFiClient clientUbi;/******************************** Pomoćne funkcije *** **************************** // ** Dobiva dužinu tijela @arg varijable tijelo tipa char @return dataLen dužina promenljive*/int dataLen (promenljiva 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); / * 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); /* Pravi telo za slanje u zahtev* /sprintf (body, "{"%s / ":%s}", variable_label, str_val); /* Pravi HTTP zahtjev da bude 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 klijenta */ if (clientUbi.connect (HTTPSERVER, HTTPPORT)) {Serial.println (F ("Postavljanje vaših varijabli:")); Serial.println (podaci); / * Slanje HTTP zahtjeva */ clientUbi.print (podaci); } / * Dok je klijent dostupan pročitajte odgovor servera * / while (clientUbi.available ()) {char c = clientUbi.read (); Serial.write (c); } / * Slobodna memorija * / besplatna (podaci); besplatno (telo); / * Zaustavite klijenta */ clientUbi.stop ();}

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

Možete provjeriti je li uređaj kreiran 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 svoje automatske varijable, učinite to uređivanjem kartice uređaja ili bljeskanjem ažuriranog koda s ispravnom nomenklaturom varijabli za svoju aplikaciju.

Sa Feather HUZZAH ESP8266 povezanim i izvještavanjem podataka na Ubidots, sada je vrijeme za izradu aplikacije pomoću pažljivo dizajnirane Ubidots konfiguracije 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 su unosi za udaljenost. 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 "control-motion" stvorite novu zadanu varijablu pod nazivom "box", 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)
  • Manje je ili jednako [maksimalnoj očekivanoj udaljenosti] između senzora i kutija koje prolaze*naša aplikacija traži 500 mm
  • 0 minuta
  • Save

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 kreiranu zadanu varijablu "kutije" i vrijednost "1".

7. Sačuvajte promene. 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 treba računati novu jedinicu koja je upravo prošla.

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

Posebno koristan za industrijske transportne trake i brojanje jedinica, ovaj prototip se može 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 vremena otkrivanja objekta) Sada ćemo, koristeći varijablu "boks", stvoriti novu promjenjivu prozorsku varijablu koja će zbrojiti ukupnu količinu očitanja primljenu iz varijable "kutije" u definirana neželjena pošta (minute, sati, dani, sedmice itd.). Da biste izvršili ovaj razvoj, slijedite ove jednostavne korake:

Dodijelite sljedeće vjerodajnice novoj varijabli rotirajućeg prozora

Odaberite uređaj: kontrola pokreta (ili naziv uređaja na koji šaljete svoje podatke)

Odaberite varijablu: kutije

Izračunajte: zbir

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

Sada dodijelite naziv novoj varijabli koji označava broj kutija (ili pokreta) izbrojanih 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, stvorite nadzornu ploču za prikaz broja mjernih jedinica.

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

Dodijelite sljedeće vjerodajnice svom novom widgetu za vizualizaciju vašeg broja.

Kako biste željeli vidjeti svoje podatke ?: Grafikon

Odaberite vrstu widgeta: linijski grafikon

Dodajte uređaj: kontrola pokreta

Dodajte varijablu: kutije/sat

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

Preporučuje se: