Tartalomjegyzék:

Mozgásérzékelő rendszer felépítése Arduino segítségével: 7 lépés
Mozgásérzékelő rendszer felépítése Arduino segítségével: 7 lépés

Videó: Mozgásérzékelő rendszer felépítése Arduino segítségével: 7 lépés

Videó: Mozgásérzékelő rendszer felépítése Arduino segítségével: 7 lépés
Videó: F&Home Radio #7, czujnik ruchu z sondą temperatury rH-P1T1 2024, Július
Anonim
Hogyan építsünk mozgásérzékelő rendszert az Arduino segítségével
Hogyan építsünk mozgásérzékelő rendszert az Arduino segítségével

É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:

  1. Ajtó és kapu automatizálása
  2. Parkolási érzékelők a szabad helyek kijelölésére
  3. A tartály szintjének távfelügyelete
  4. Okos otthonok és létesítmények a világításhoz és a biztonsághoz
  5. Egységek észlelése és számlálása szállítószalagokban
  6. Jelzésérzékelés a nyomtatott anyagokon
  7. Folyadékérzékelés a karton-, műanyag- és papírbillentéseken belül
  8. Távolságérzékelés
  9. 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

  1. Toll HUZZAH ESP8266MB7389-100
  2. Ultrahangos érzékelő
  3. Arduino IDE 1.8.2 vagy újabb
  4. 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

Hardver beállítása
Hardver beállítása
Hardver beállítása
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

Firmware beállítás
Firmware beállítás
Firmware beállítás
Firmware beállítás

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 alkalmazásfejlesztés
Ubidots alkalmazásfejlesztés
Ubidots alkalmazásfejlesztés
Ubidots alkalmazásfejlesztés
Ubidots alkalmazásfejleszté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:

  1. 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.
  2. 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.
  3. 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

Irányítópult -konfigurációk
Irányítópult -konfigurációk

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: