Kazalo:
- 1. korak: Zahteve
- 2. korak: Nastavitev
- 3. korak: Namestitev strojne opreme
- 4. korak: Nastavitev vdelane programske opreme
- 5. korak: Razvoj aplikacije Ubidots
- 6. korak: Konfiguracije nadzorne plošče
Video: Kako zgraditi sistem za zaznavanje gibanja z Arduinom: 7 korakov
2024 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2024-01-30 12:04
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:
- Avtomatizacija vrat in vrat
- Parkirni senzorji za označevanje prostih mest
- Daljinski nadzor nad nivojem rezervoarja
- Pametni domovi in objekti za razsvetljavo in zaščito
- Enote za odkrivanje in štetje v transportnih linijah
- Označite zaznavanje na tiskanih materialih
- Zaznavanje tekočine v nagibih kartona, plastike in papirja
- Zaznavanje razdalje
- Š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
- Pero HUZZAH z ESP8266MB7389-100
- Ultrazvočni senzor
- Arduino IDE 1.8.2 ali novejši
- 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
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
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
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:
- Znotraj trenutne naprave "nadzor gibanja" ustvarite novo privzeto spremenljivko, imenovano "polja", ki bo prejela 1 vsakič, ko se šteje nova enota.
- Pojdite na Upravljanje naprav -> Dogodki in kliknite modro ikono plus v zgornjem desnem kotu strani, da dodate nov dogodek.
- 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
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:
Nočna svetloba: zaznavanje gibanja in teme - brez mikro: 7 korakov (s slikami)
Nočna svetloba zaznavanja gibanja in teme Lahko bi rekli, da je to zaradi vaše lastne varnosti, če ponoči vstanete in poskušate varno priti do vrat. Seveda lahko uporabite nočno svetilko ali glavno
Zaznavanje gibanja pod osvetlitvijo postelje: 16 korakov (s slikami)
Gibanje pod posteljno razsvetljavo: Ste kdaj poskušali ponoči tiho vstati iz postelje, samo da bi se kaj spotaknili in zbudili vso hišo? Nočne luči z zaznavanjem gibanja, ki so diskretno nameščene pod vašo posteljo, zagotavljajo svetlobo nizke stopnje, ki je dovolj svetla, da vas vodi okoli teh potepuških kock LEGO
SMS -alarmni sistem za zaznavanje gibanja DIY: 5 korakov (s slikami)
SMS -alarmni sistem za odkrivanje gibanja DIY: V tem projektu bom združil poceni senzor gibanja PIR z GSM modulom TC35, da bom zgradil alarmni sistem, ki vam pošlje " NEPREKIDNO OPOZORILO " SMS vsakič, ko vam kdo ukrade stvari. Začnimo
Spremljanje kuščarskega terarija z uporabo krmilnika WiFi Adosia IoT + zaznavanje gibanja: 17 korakov (s slikami)
Spremljanje kuščarskega terarija z uporabo Adosia IoT WiFi krmilnika + zaznavanje gibanja: V tej vadnici vam bomo pokazali, kako zgraditi preprost kuščarski terarij za peščico jajc, ki smo jih pomotoma našli in jih motili med vrtnarjenjem zunaj. Želimo, da se jajca varno izležejo, zato bomo le ustvarili varen prostor z uporabo plastike
Alarmni sistem za zaznavanje gibanja: 11 korakov (s slikami)
Alarmni sistem za zaznavanje gibanja: Opomba! Reactive Blocks ni več na voljo za prenos. Za zaznavanje gibanja v prostoru lahko uporabite osnovno kamero USB. V naslednjih korakih vam bomo pokazali, kako lahko z reaktivnimi bloki programirate pripravljeno aplikacijo Java, ki pošilja SMS