Obsah:

Ako vybudovať systém detekcie pohybu pomocou Arduina: 7 krokov
Ako vybudovať systém detekcie pohybu pomocou Arduina: 7 krokov

Video: Ako vybudovať systém detekcie pohybu pomocou Arduina: 7 krokov

Video: Ako vybudovať systém detekcie pohybu pomocou Arduina: 7 krokov
Video: 35 видео со страшными призраками: мегасборник 2023 года [V1] 2024, Júl
Anonim
Ako vybudovať systém detekcie pohybu s Arduino
Ako vybudovať systém detekcie pohybu s Arduino

Postavte počítadlo produkcie pohybu a prítomnosti pomocou peria HUZZAH naprogramovaného pomocou Arduina a napájaného systémom Ubidots.

Účinná detekcia fyzického pohybu a prítomnosti v inteligentných domácnostiach a inteligentnej výrobe môže byť veľmi užitočná v aplikáciách od riešení pre starších ľudí s asistovaným životom (AAL) alebo systému počítania výroby, ktorý napája väčší MES. Ďalšie aplikácie na detekciu pohybu a prítomnosti zahŕňajú, ale nie sú obmedzené na:

  1. Automatizácia dverí a brán
  2. Parkovacie senzory na označenie voľných miest
  3. Diaľkové monitorovanie hladiny nádrže
  4. Inteligentné domy a zariadenia na osvetlenie a bezpečnosť
  5. Detekcia a počítanie jednotiek v dopravníkových linkách
  6. Detekcia značiek na tlačených materiáloch
  7. Detekcia tekutín vo svahoch kartónu, plastu a papiera
  8. Detekcia vzdialenosti
  9. Ľudia počítajú

Aj keď existuje mnoho aplikácií na zisťovanie prítomnosti a pohybu, existuje množstvo snímačov na zber údajov, ako sú kapacitné, indukčné, fotoelektrické a ultrazvukové snímače. V závislosti od nákladov, environmentálnych podmienok a požiadaviek na presnosť by ste si mali vybrať najvhodnejší hardvér pre prostredie a požiadavky na aplikáciu.

V tomto návode sa zameriame na zostavenie počítadla výroby v reálnom čase; aplikácia bude počítať každú jednotku, ktorá prejde okolo na dopravnom páse. Prostredníctvom Arduino IDE naprogramujeme Feather HUZZAH ESP8266, ultrazvukový senzor a Ubidots na vývoj našej aplikácie a zobrazenie palubnej dosky IoT.

Krok 1: Požiadavky

  1. Perie HUZZAH s ESP8266MB7389-100
  2. Ultrazvukový senzor
  3. Arduino IDE 1.8.2 alebo novší
  4. Účet Ubidots -alebo licencia STEM

Krok 2: Nastavenie

  • I Nastavenie hardvéru
  • II. Nastavenie firmvéru
  • III. Vývoj aplikácií Ubidots (udalosti, premenné a dashboardy)

Krok 3: Nastavenie hardvéru

Nastavenie hardvéru
Nastavenie hardvéru
Nastavenie hardvéru
Nastavenie hardvéru

Ultrazvukový snímač MB7389-100 je vďaka hodnoteniu IPv67 lacnou voľbou pre priemyselné aplikácie s požiadavkami na široký rozsah a nízku spotrebu energie v náročných poveternostných podmienkach.

Začnite zrkadlením nižšie uvedeného diagramu a pripojením ultrazvukového senzora k periu HUZZAH ESP8266.

POZNÁMKA: Čítanie senzora môže byť analogické alebo PWM; nižšie vysvetlíme nastavenie čítania PWM, ďalšie informácie nájdete v príkladoch uvedených vyššie.

[Voliteľne] umiestnite mikrokontrolér a senzory do krytu IP67, aby boli chránené pred prachom, vodou a inými hrozivými faktormi životného prostredia. Štandardný prípad vyzerá podobne ako na vyššie uvedených fotografiách.

Krok 4: Nastavenie firmvéru

Nastavenie firmvéru
Nastavenie firmvéru
Nastavenie firmvéru
Nastavenie firmvéru

Najprv by ste mali nainštalovať Feather Huzzah do Arduino IDE a skompilovať kód. Nezabudnite toto nastavenie overiť jednoduchým testom žmurkania. Ďalšie informácie o pripojení zariadenia Feather nájdete v tejto užitočnej príručke nastavenia hardvéru.

Ak chcete odoslať údaje zo senzorov na vývojovú platformu IoT Ubidots, skopírujte a prilepte nižšie uvedený kód do Arduino IDE. Nezabudnite uviesť názov siete Wi-Fi, heslo a token účtu Ubidots tam, kde je to uvedené v kóde.

/********************************************************** **************** /#include /***************************** *** Konštanty a objekty; // Sem zadajte svoj názov SSIDconst char* SSID_PASS = "xxxxxxxx"; // Sem vložte hesloconst char* TOKEN = "Assig_your_ubidots_token"; // Sem vložte svoj TOKENconst char* DEVICE_LABEL = "motion-control"; // label vášho zariadeniaconcon char* VARIABLE_LABEL = "vzdialenosť"; // Vaša premenná labelconst char* USER_AGENT = "ESP8266"; const char* VERSION = "1.0"; const char* HTTPSERVER = "industrial.api.ubidots.com"; // Ubidots Firemní používatelia // const char* HTTPSERVER = " things.ubidots.com “; // Ubidots Edukační používateliaint HTTPPORT = 80;/ * Ultrazvukový senzor */const int pwPin1 = 5; // Pin PWM, kde je pripojený snímačWiFiClient clientUbi;/************************************************** ****************************************************> dĺžka premennej*/int dataLen (char* premenná) {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); / * Priestor na ukladanie hodnôt na odoslanie * / char str_val [10]; /*---- Transformuje hodnoty senzorov na typ char -----* / /*4 je minimálna šírka, 2 je presnosť; plávajúca hodnota sa skopíruje na str_val* / dtostrf (sensor_value, 4, 2, str_val); /* Zostaví telo, ktoré sa má odoslať do požiadavky* /sprintf (body, "{"%s / ":%s}", premenný_štítok, str_val); /* Vytvorí HTTP žiadosť o POST */sprintf (údaje, „POST /api/v1.6/devices/%s“, označenie_zariadenia); sprintf (údaje, „%s HTTP/1.1 / r / n“, údaje); sprintf (údaje, "%sHost: things.ubidots.com / r / n", údaje); sprintf (údaje, "%sUser-Agent:%s/%s / r / n", údaje, USER_AGENT, VERSION); sprintf (údaje, " %sX-Auth-Token: %s / r / n", dáta, TOKEN); šprint f (údaje, "%sPripojenie: zatvorenie / r / n", údaje); sprintf (údaje, "%sContent-Type: application/json / r / n", údaje); sprintf (data, " %sContent-Length: %d / r / n / r / n", data, dataLen (body)); sprintf (údaje, "%s%s / r / n / r / n", údaje, telo); / * Počiatočné pripojenie */ clientUbi.connect (HTTPSERVER, HTTPPORT); / * Overte klientske pripojenie */ if (clientUbi.connect (HTTPSERVER, HTTPPORT)) {Serial.println (F ("Odosielanie premenných:")); Serial.println (údaje); / * Odoslať požiadavku HTTP */ clientUbi.print (údaje); } / * Kým je klient k dispozícii, prečítajte si odpoveď servera * / while (clientUbi.available ()) {char c = clientUbi.read (); Serial.write (c); } / * Voľná pamäť * / voľná (dáta); voľný (telo); / * Zastavte klienta */ clientUbi.stop ();}

ProTip: otvorením sériového monitora v Arduino IDE môžete skontrolovať, či je vaše zariadenie správne pripojené.

Môžete si overiť, že je zariadenie vytvorené vo vašom backende Ubidots, a to tak, že si ho prezriete vo svojom účte Správa zariadenia -> Zariadenia.

Kliknutím na svoje zariadenie nájdete premennú nazývanú „vzdialenosť“, kde sú uložené údaje zo senzora. Tento názov bol priradený kódu, ktorý ste práve vložili do Arduino IDE. Ak chcete upraviť automatické premenné, urobte to úpravou karty zariadenia alebo blikaním aktualizovaného kódu so správnou nomenklatúrou premenných pre vašu aplikáciu.

S pripojeným zariadením Feather HUZZAH ESP8266 a vykazovaním údajov do Ubidots je teraz načase vytvoriť aplikáciu pomocou starostlivo navrhnutej konfigurácie aplikácií bez kódu v Ubidots.

Krok 5: Vývoj aplikácií Ubidots

Vývoj aplikácií Ubidots
Vývoj aplikácií Ubidots
Vývoj aplikácií Ubidots
Vývoj aplikácií Ubidots
Vývoj aplikácií Ubidots
Vývoj aplikácií Ubidots

Konfigurácia udalosti Ubidots

Aktuálne hodnoty, ktoré posielame do Ubidots, sú vstupy na vzdialenosť. Na preklad týchto údajov do požadovaného výstupu, ktorý chceme - počítané jednotky - by sme mali vytvoriť udalosť podľa týchto krokov:

  1. Vo vnútri aktuálneho zariadenia „motion-control“vytvorte novú predvolenú premennú nazývanú „boxy“, ktorá dostane 1 pri každom počítaní novej jednotky.
  2. Prejdite na položku Správa zariadenia -> Udalosti a kliknutím na modrú ikonu plus v pravom hornom rohu stránky pridajte novú udalosť.
  3. Nakonfigurujte svoju udalosť začínajúc „Ak sa spustí“:
  • Vyberte premennú: „vzdialenosť“
  • Hodnota: hodnota (predvolené)
  • Je menšia alebo rovná [maximálnej očakávanej vzdialenosti} medzi senzorom a okolo prechádzajúcimi boxmi*, naša aplikácia požaduje 500 mm
  • Na 0 minút
  • Uložiť

4. Keď sú spúšťače nakonfigurované podľa špecifikácií vašej aplikácie, podmienečnú akciu pridáte kliknutím na oranžovú ikonu „plus“v pravom hornom rohu.

5. Ako akciu vyberte „Nastaviť premennú“.

6. Ďalej zvoľte predtým vytvorenú predvolenú premennú „boxy“a hodnotu „1“.

7. Uložte zmeny. Ak je udalosť správne nastavená, vyšle „1“zakaždým, keď je vzdialenosť medzi senzorom a jednotkou dlhšia ako uvedený prah, čo naznačuje, že sa v blízkosti nenachádza žiadny objekt - a mala by počítať novú jednotku, ktorá práve prešla.

Na karte Špecifické zariadenie pre perie zistíte, že premenná "škatule", kam je odoslané "1", kedykoľvek je zaznamenaná prítomnosť jednotky.

Tento prototyp je obzvlášť vhodný pre priemyselné dopravníkové pásy a počítanie jednotiek a je možné ho prispôsobiť tak, aby vyhovoval rôznym prostrediam alebo hardvéru, jednoducho pri kódovaní alebo vývoji aplikácií.

8. Vizualizujte počet snímaných jednotiek (alebo koľkokrát bol detegovaný objekt) Teraz pomocou premennej „boxy“vytvoríme novú premennú v rolovacom okne, ktorá bude sumarizovať celkový počet hodnôt prijatých z premennej „škatule“v definovaný spam (minúty, hodiny, dni, týždne atď.). Ak chcete vykonať tento vývoj, postupujte podľa týchto jednoduchých krokov:

K novej premennej premenlivého okna priraďte nasledujúce poverenia

Vyberte zariadenie: ovládanie pohybu (alebo názov zariadenia, z ktorého odosielate údaje)

Vyberte premennú: políčka

Vypočítajte: súčet

Každá: „1“hodina (alebo podľa vašich požiadaviek na aplikáciu)

Teraz priraďte novej premennej názov, ktorý udáva počet políčok (alebo pohybov) započítaných za hodinu, rovnako ako „škatule/hodina“alebo „jednotky/hodiny“.

Krok 6: Konfigurácie panela

Konfigurácie panela
Konfigurácie panela

Nakoniec vytvorte informačný panel, ktorý zobrazí počet detekovaných jednotiek.

Prejdite na položku Správa zariadenia -> Panely a pridajte novú miniaplikáciu. Tento widget zobrazí počet dnes napočítaných polí podľa času.

Priraďte svojmu novému widgetu nasledujúce poverenia, aby ste mohli vizualizovať svoj počet.

Ako by ste chceli vidieť svoje údaje ?: Graf

Vyberte typ miniaplikácie: čiarový graf

Pridajte zariadenie: ovládanie pohybu

Pridajte premennú: políčka za hodinu

Skončiť. A vďaka tomuto konečnému vývoju palubnej dosky je vaša aplikácia kompletná a teraz máte účinný a efektívny systém detekcie pohybu a prítomnosti. Tu je konečný pohľad na naše výsledky.

Odporúča: