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 sustav za otkrivanje pokreta s Arduinom: 7 koraka
2024 Autor: John Day | [email protected]. Zadnja promjena: 2024-01-30 09:34
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:
- Automatizacija vrata i vrata
- Parking senzori za označavanje slobodnih mjesta
- Daljinski nadzor razine spremnika
- Pametne kuće i objekti za osvjetljenje i sigurnost
- Jedinice za otkrivanje i brojanje u transportnim linijama
- Označite otkrivanje na tiskanim materijalima
- Otkrivanje tekućine unutar kartona, plastike i papira
- Detekcija udaljenosti
- 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
- Perje HUZZAH s ESP8266MB7389-100
- Ultrazvučni senzor
- Arduino IDE 1.8.2 ili noviji
- 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
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
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 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:
- Unutar trenutnog uređaja "kontrola kretanja" stvorite novu zadanu varijablu pod nazivom "kutije", 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)
- 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
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:
Kako izgraditi sustav zalijevanja biljaka pomoću Arduina: 7 koraka
Kako izgraditi sustav zalijevanja biljaka pomoću Arduina: U ovom ćemo vodiču naučiti kako napraviti sustav za zalijevanje biljaka pomoću senzora vlage, pumpe za vodu i bljeskanjem zelene LED diode ako je sve u redu te OLED zaslon i Visuino. Pogledajte video
SMS alarmni sustav za otkrivanje pokreta DIY: 5 koraka (sa slikama)
SMS alarmni sustav za otkrivanje pokreta DIY: U ovom projektu kombinirat ću jeftini PIR senzor pokreta s TC35 GSM modulom kako bih izgradio alarmni sustav koji vam šalje " UPUTSTVO ZA UPOTREBU " SMS kad god netko pokuša ukrasti vaše stvari. Započnimo
Kako napraviti pametni alarmni sustav za otkrivanje poplava pomoću Raspberry Pi i argona čestica: 6 koraka
Kako napraviti pametni alarmni sustav za otkrivanje poplava pomoću Raspberry Pi -a i čestica argona: Standardni senzori za poplave izvrsni su za sprječavanje velikih oštećenja u vašem domu ili na radnom mjestu. Ali otežava prisustvo alarmu ako niste kod kuće. Naravno mogli biste ih kupiti pametno Ovaj sustav alarma za poplavu otkriva bilo kakvu tekućinu i aktivira alarm
Alarmni sustav za otkrivanje pokreta: 11 koraka (sa slikama)
Alarmni sustav za otkrivanje pokreta: Napomena! Reactive Blocks više nije dostupan za preuzimanje. Osnovna USB kamera može se koristiti za detekciju pokreta u prostoriji. U sljedećim koracima pokazat ćemo vam kako možete koristiti reaktivne blokove za programiranje gotove Java aplikacije koja šalje SMS
Kako izgraditi kutiju zvučnika za gitaru 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 trgovini pa ne mora biti ništa posebno. Tolex prekrivač mogao bi se previše lako oštetiti pa sam samo poprskao crnu vanjsku stranu nakon laganog pijeska