Sadržaj:
- Korak 1: Zahtjevi
- Korak 2: Postavljanje
- Korak 3: Postavljanje hardvera
- Korak 4: Postavljanje firmvera
- Korak 5: Ubidots razvoj aplikacije
- Korak 6: Konfiguracije nadzorne ploče
Video: Kako izgraditi sistem za otkrivanje pokreta s Arduinom: 7 koraka
2024 Autor: John Day | [email protected]. Zadnja izmjena: 2024-01-30 08:05
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:
- Automatizacija vrata i kapija
- Parking senzori za označavanje slobodnih mjesta
- Daljinski nadzor nivoa rezervoara
- Pametne kuće i objekti za osvjetljenje i sigurnost
- Jedinice za otkrivanje i brojanje u transportnim linijama
- Označite otkrivanje na štampanim materijalima
- Otkrivanje tekućine unutar nagiba kartona, plastike i papira
- Detekcija udaljenosti
- 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
- Perje HUZZAH sa ESP8266MB7389-100
- Ultrazvučni senzor
- Arduino IDE 1.8.2 ili noviji
- 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
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
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 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:
- Unutar trenutnog uređaja "control-motion" stvorite novu zadanu varijablu pod nazivom "box", koja će primati 1 svaki put kada se broji nova jedinica.
- Idite na Upravljanje uređajima -> Događaji i kliknite plavu ikonu plus u gornjem desnom kutu stranice za dodavanje novog događaja.
- 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
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:
ALARM ZA OTKRIVANJE POKRETA: 7 koraka
ALARM ZA OTKRIVANJE POKRETA: Zdravo, prijatelji u vodiču Pokazat ću vam kako se aktivira alarm za otkrivanje pokreta. glavna komponenta ovog projekta je PIR senzor
SMS alarmni sistem za otkrivanje pokreta DIY: 5 koraka (sa slikama)
SMS alarmni sistem za detekciju pokreta DIY: U ovom projektu kombinirat ću jeftini PIR senzor pokreta s TC35 GSM modulom za izradu alarmnog sistema koji vam šalje "UZBIJEDNU INTRUDERU" SMS kad god neko pokuša ukrasti vaše stvari. Hajde da počnemo
Alarmni sistem za otkrivanje pokreta: 11 koraka (sa slikama)
Alarmni sistem za otkrivanje pokreta: Napomena! Reactive Blocks više nije dostupan za preuzimanje. Osnovna USB kamera može se koristiti za otkrivanje pokreta u prostoriji. U sljedećim koracima pokazat ćemo vam kako možete koristiti reaktivne blokove za programiranje gotove Java aplikacije koja šalje SMS
Nadogradite "uradi sam" lonac za zalijevanje sa WiFi -em u alarmni uređaj za otkrivanje kretnji za otkrivanje pokreta "Uradi sam": 17 koraka
Nadogradite "uradi sam" lonac za zalijevanje sa WiFi -jem u aparat za alarme za otkrivanje kretnji za otkrivanje pokreta "Uradi sam": U ovom članku pokazat ćemo vam kako nadograditi svoj lonac za samolijevanje s vlastitim WiFi -jem u DIY lonac za samolijevanje s WiFi -jem i alarmom za detekciju kretanja. niste pročitali članak o tome kako izgraditi lonac za samostalno zalijevanje s WiFi -jem, možete fin
Kako izgraditi kutiju za zvučnike na gitari ili izgraditi dvije za svoj stereo .: 17 koraka (sa slikama)
Kako izgraditi kutiju za zvučnike na gitari ili izgraditi dvije za svoj stereo uređaj. Htio sam novi zvučnik za gitaru uz cijevno pojačalo koje gradim. Zvučnik će ostati vani u mojoj radnji pa ne mora biti ništa posebno. Tolex prekrivač se može previše lako oštetiti pa sam samo poprskao vanjsku crnu boju nakon laganog pijeska