Tartalomjegyzék:
- 1. lépés: Követelmények
- 2. lépés: Beállítás
- 3. lépés: Hardver beállítása
- 4. lépés: Firmware beállítása
- 5. lépés: Ubidots alkalmazásfejlesztés
- 6. lépés: A műszerfal konfigurációi
Videó: Mozgásérzékelő rendszer felépítése Arduino segítségével: 7 lépés
2024 Szerző: John Day | [email protected]. Utoljára módosítva: 2024-01-30 09:40
Építsen mozgás- és jelenlét -termelési számlálót egy Feather HUZZAH programozásával, amelyet Arduino programoz, és Ubidots hajt.
A hatékony fizikai mozgás és jelenlét észlelése az intelligens otthonokban és az intelligens gyártásban nagyon hasznos lehet az olyan alkalmazásokban, mint az idős környezeti asszisztens élet (AAL) megoldások vagy a termelési számláló rendszer, amely nagyobb MES -t táplál. A mozgás- és jelenlétérzékelés egyéb alkalmazásai közé tartozik, de nem kizárólagosan:
- Ajtó és kapu automatizálása
- Parkolási érzékelők a szabad helyek kijelölésére
- A tartály szintjének távfelügyelete
- Okos otthonok és létesítmények a világításhoz és a biztonsághoz
- Egységek észlelése és számlálása szállítószalagokban
- Jelzésérzékelés a nyomtatott anyagokon
- Folyadékérzékelés a karton-, műanyag- és papírbillentéseken belül
- Távolságérzékelés
- Az emberek számlálnak
Bár sok jelenlét- és mozgásalkalmazás létezik, ugyanannyi adatgyűjtő érzékelő van, mint például kapacitív, induktív, fotoelektromos és ultrahangos érzékelők. A költségektől, a környezeti feltételektől és a pontossági követelményektől függően ki kell választani a környezethez és az alkalmazási követelményekhez legjobban illeszkedő hardvert.
Ebben az oktatóanyagban a valós idejű termelési számláló építésére fogunk összpontosítani; az alkalmazás minden szállítószalagon elhaladó egységet számba vesz. Az Arduino IDE segítségével egy HUZZAH ESP8266 tollat, egy ultrahangos érzékelőt és Ubidot programozunk az alkalmazás fejlesztéséhez és az IoT műszerfal megjelenítéséhez.
1. lépés: Követelmények
- Toll HUZZAH ESP8266MB7389-100
- Ultrahangos érzékelő
- Arduino IDE 1.8.2 vagy újabb
- Ubidots fiók -vagy STEM licenc
2. lépés: Beállítás
- I Hardver beállítása
- II. Firmware beállítás
- III. Ubidots alkalmazásfejlesztés (események, változók és irányítópultok)
3. lépés: Hardver beállítása
Az MB7389-100 ultrahangos érzékelő alacsony költségű opció ipari alkalmazásokhoz, széles körű és alacsony energiafogyasztási igényekkel kihívást jelentő időjárási körülmények között, IPv67 besorolásának köszönhetően.
A kezdéshez tükrözze az alábbi ábrát, hogy az ultrahangos érzékelőt a HUZZAH ESP8266 tollhoz rögzítse.
MEGJEGYZÉS: Az érzékelő leolvasása lehet analóg vagy PWM; az alábbiakban a PWM leolvasásának beállítását ismertetjük, további információkért lásd a fenti példákat.
[Opcionálisan] helyezze a mikrovezérlőt és az érzékelőket a de IP67 tokba, hogy megvédje őket a portól, a víztől és más veszélyes környezeti tényezőktől. A standard tok hasonlít a fenti képeken láthatóhoz.
4. lépés: Firmware beállítása
Először telepítse a Feather Huzzah -t az Arduino IDE -be, és fordítsa le a kódot. Ne felejtse el ellenőrizni ezt a beállítást egy egyszerű villogó teszt elvégzésével. A Feather eszköz csatlakoztatásával kapcsolatos további információkért tekintse meg ezt a hasznos hardverbeállítási útmutatót.
Ha érzékelő adatokat szeretne küldeni az Ubidots IoT fejlesztői platformra, másolja ki és illessze be az alábbi kódot az Arduino IDE -be. Ne felejtse el hozzárendelni a Wi-Fi hálózat nevét, jelszavát és Ubidots-fiókjának tokenjét, ahol a kód jelzi.
/******************************** Könyvtárak szerepelnek *************** **************** /#include /****************************** ** Állandók és objektumok ******************************* //*Ubidots*/const char*SSID_NAME = "xxxxxxxx"; // Ide írja az SSID nevétconst char* SSID_PASS = "xxxxxxxx"; // Ide írja be a jelszavát* char* TOKEN = "Assig_your_ubidots_token"; // Tedd ide a TOKENconst char* DEVICE_LABEL = "motion-control"; // Az eszköz labelconst char* VARIABLE_LABEL = "távolság"; // A változó labelconst char* USER_AGENT = "ESP8266"; const char* VERSION = "1.0"; const char* HTTPSERVER = "industrial.api.ubidots.com"; // Ubidots üzleti felhasználók // const char* HTTPSERVER = " things.ubidots.com "; // Ubidots Educational usersint HTTPPORT = 80;/ * Ultrahangos érzékelő */const int pwPin1 = 5; // A PWM érintkező, amelyhez az érzékelő csatlakozik Wi -Fi kliens kliensUbi;/******************************* Kiegészítő funkciók *** **************************** a változó hossza*/int dataLen (char* változó) {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); / * Szóköz az elküldendő értékek tárolásához * / char str_val [10]; /*---- Átalakítja az érzékelők értékeit char típusra -----* / /*4 minimális szélesség, 2 pontosság; lebegő érték másolása az str_val* / dtostrf (sensor_value, 4, 2, str_val); /* Felépíti a kérésbe küldendő törzset* /sprintf (body, "{"%s / ":%s}", variable_label, str_val); /* Létrehozza a HTTP -t kérés POST */sprintf (adatok, "POST /api/v1.6/devices/%s", device_label); sprintf (adatok, "%s HTTP/1.1 / r / n", data); sprintf (adatok, "%sHost: things.ubidots.com / r / n", adatok); sprintf (adatok, "%sUser-Agent:%s/%s / r / n", adatok, USER_AGENT, VERSION); sprintf (data, " %sX-Auth-Token: %s / r / n", adatok, TOKEN); sprint f (adatok, "%sConnection: bezár / r / n", adatok); sprintf (adatok, "%sContent-Type: application/json / r / n", adatok); sprintf (adatok, " %sContent-Length: %d / r / n / r / n", data, dataLen (body)); sprintf (adatok, "%s%s / r / n / r / n", adatok, törzs); / * Kezdeti kapcsolat */ clientUbi.connect (HTTPSERVER, HTTPPORT); / * Ellenőrizze az ügyfélkapcsolatot */ if (clientUbi.connect (HTTPSERVER, HTTPPORT)) {Serial.println (F ("A változók közzététele:")); Serial.println (adatok); / * Küldje el a HTTP kérést */ clientUbi.print (adatok); } / * Amíg az ügyfél elérhető, olvassa el a szerver válaszát * / while (clientUbi.available ()) {char c = clientUbi.read (); Soros.írás (c); } / * Szabad memória * / szabad (adat); szabad (test); / * Állítsa le az ügyfelet */ clientUbi.stop ();}
ProTip: az Arduino IDE soros monitorának megnyitásával ellenőrizheti, hogy készüléke megfelelően van -e csatlakoztatva.
Az Eszközkezelés -> Eszközök fiókban megtekintve ellenőrizheti, hogy egy eszköz létrejött -e az Ubidots háttérrendszerben.
A készülékre kattintva talál egy "távolság" nevű változót, ahol az érzékelő leolvasása tárolódik. Ezt a nevet az Arduino IDE -ben most beillesztett kódhoz rendelték. Ha módosítani szeretné az automatikus változókat, kérjük, tegye ezt meg az Eszköz kártya szerkesztésével, vagy az alkalmazáshoz megfelelő változó nómenklatúrával frissített kód villogásával.
Mivel a Feather HUZZAH ESP8266 csatlakoztatva van és jelentést készít az adatokról az Ubidots számára, itt az ideje, hogy az alkalmazást az Ubidots gondosan megtervezett, kódmentes alkalmazáskonfigurációjával építse fel.
5. lépés: Ubidots alkalmazásfejlesztés
Ubidots eseménykonfiguráció
Az Ubidots -nak küldött aktuális értékek távolságbemenetek. Ahhoz, hogy ezeket az értékeket a kívánt kimenetre fordíthassuk - számlált egységeket - létre kell hoznunk egy eseményt az alábbi lépések szerint:
- A jelenlegi "mozgásvezérlő" eszközben hozzon létre egy új, "dobozok" nevű alapértelmezett változót, amely minden egyes új egység megszámlálásakor 1-et kap.
- Lépjen az Eszközkezelés -> Események menüpontra, és kattintson az oldal jobb felső sarkában található kék plusz ikonra új esemény hozzáadásához.
- Konfigurálja az eseményt az "If trigger" szöveggel kezdődően:
- Válasszon változót: "távolság"
- Érték: érték (alapértelmezett)
- Kisebb vagy egyenlő a [maximális várható távolság}} az érzékelő és az elhaladó dobozok között*, alkalmazásunk 500 mm -t ír elő
- 0 percig
- Megment
4. Miután az aktiválási szabályokat konfigurálta az alkalmazás specifikációihoz, kattintson a narancssárga "plusz" ikonra a jobb felső sarokban egy feltételes művelet hozzáadásához.
5. Válassza ki a „Változó beállítása” műveletet.
6. Ezután válassza ki a korábban létrehozott "dobozok" alapértelmezett változót és az "1" értéket.
7. Mentse el a módosításokat. Ha az esemény megfelelően van beállítva, akkor az "1" értéket küld minden alkalommal, amikor az érzékelő és az egység közötti távolság meghaladja a jelzett küszöbértéket, ami azt sugallja, hogy nincs tárgy a közelben - és számolni kell egy új egységet, amely éppen elhaladt mellette.
A tollspecifikus eszköz kártyán azt találja, hogy a változó "dobozok", ahol az "1" jelzést küldi, valahányszor érzékeli az egység jelenlétét.
Különösen hasznos az ipari szállítószalagoknál és az egységek számlálásánál, ez a prototípus testreszabható, hogy illeszkedjen a különböző környezetekhez vagy hardverekhez, egyszerűen a kódolásban vagy az alkalmazásfejlesztésben.
8. Vizualizálja az észlelt egységek számát (vagy egy objektum észlelésének idejét) Most a "dobozok" változó használatával létrehozunk egy új gördülő ablak változót, amely összegzi a "dobozok" változótól kapott leolvasások teljes összegét meghatározott spam (perc, óra, nap, hét, stb.). A fejlesztés végrehajtásához kövesse az alábbi egyszerű lépéseket:
Rendelje hozzá a következő hitelesítő adatokat az új gördülő ablak változóhoz
Válasszon egy eszközt: mozgásvezérlő (vagy annak az eszköznek a neve, amelyről adatokat küld)
Válasszon egy változót: dobozok
Számítsa ki: összeget
Minden: "1" óra (vagy a kérelmek szerint)
Most adjon nevet az új változónak, amely jelzi az egy órában számított dobozok (vagy mozgások) számát, akárcsak a "dobozok/óra" vagy az "egységek/órák".
6. lépés: A műszerfal konfigurációi
Végül hozzon létre egy műszerfalat az érzékelt egységek számának megjelenítéséhez.
Lépjen az Eszközkezelés -> Irányítópultok menüpontba, és adjon hozzá új widgetet. Ez a widget megjeleníti a ma számlált dobozok mennyiségét órákra lebontva.
Rendelje hozzá a következő hitelesítő adatokat az új widgethez a szám megjelenítéséhez.
Hogyan szeretné látni az adatait?: Diagram
Válassza ki a widget típusát: vonaldiagram
Eszköz hozzáadása: mozgásvezérlés
Adjon hozzá egy változót: dobozok/óra
Befejez. Ezzel az utolsó műszerfal fejlesztéssel - az alkalmazás befejeződött, és most hatékony és eredményes mozgás- és jelenlétérzékelő rendszerrel rendelkezik. Íme egy utolsó pillantás eredményeinkre.
Ajánlott:
Növénymonitor felépítése Arduino segítségével: 7 lépés
Hogyan építsünk növénymonitorot Arduino segítségével: Ebben az oktatóanyagban megtanuljuk, hogyan lehet érzékelni a talaj nedvességét egy nedvességérzékelő segítségével, és zöld LED -t villogni, ha minden rendben van, és OLED kijelző és Visuino. Nézze meg a videót
Energiafigyelő eszköz felépítése részecske -elektron segítségével: 5 lépés (képekkel)
Energiafigyelő eszköz építése részecske -elektron segítségével: A legtöbb vállalkozásban az energiát üzleti költségnek tekintjük. A számla megjelenik postán vagy e -mailben, és a törlés dátuma előtt fizetjük ki. Az IoT és az intelligens eszközök megjelenésével az Energy új helyet kezd el foglalni az üzleti életben
Pizero mozgásérzékelő webkamera biztonsági rendszer: 3 lépés
Pizero mozgásérzékelő webkamera biztonsági rendszer: Ez a rendszer egy pizerót, wifi kulcsot és egy régi webkamerát használ egy személyre szabott gyufásdobozban. Mozgásérzékelő videókat rögzít 27 képkocka / másodperc sebességgel minden jelentős mozgásról a felhajtón. Ezután feltölti a klipeket egy dropbox fiókba. Megtekintheti a naplókat és
Színrendező rendszer: Arduino alapú rendszer két övvel: 8 lépés
Színrendező rendszer: Arduino alapú rendszer két övvel: Az ipari területen lévő termékek és tárgyak szállítása és/vagy csomagolása szállítószalagok segítségével készült vonalakkal történik. Ezek az övek bizonyos sebességgel segítik az elemek egyik pontból a másikba történő áthelyezését. Egyes feldolgozási vagy azonosítási feladatok
Mozgásérzékelő használata a RaspberryPi és a Telegram Bot segítségével: 4 lépés
A mozgásérzékelő használata a RaspberryPi és a Telegram Bot segítségével: Sziasztok. Ebben a bejegyzésben Raspberry Pi táviratbotot fogunk használni PIR (mozgás) érzékelővel