Obsah:

Jak vybudovat systém detekce pohybu pomocí Arduina: 7 kroků
Jak vybudovat systém detekce pohybu pomocí Arduina: 7 kroků

Video: Jak vybudovat systém detekce pohybu pomocí Arduina: 7 kroků

Video: Jak vybudovat systém detekce pohybu pomocí Arduina: 7 kroků
Video: Say NO to WAR! ❌ Share this video to everyone you can! 🙏 2024, Červenec
Anonim
Jak vybudovat systém detekce pohybu pomocí Arduina
Jak vybudovat systém detekce pohybu pomocí Arduina

Vytvořte čítač pohybu a přítomnosti pomocí Feather HUZZAH naprogramovaného pomocí Arduina a poháněného Ubidots.

Efektivní detekce fyzického pohybu a přítomnosti v chytrých domácnostech a chytré výrobě může být velmi užitečná v aplikacích od starších řešení s asistovaným životem s okolním životem (AAL) nebo systému počítání výroby, který napájí větší MES. Mezi další aplikace pro detekci pohybu a přítomnosti patří mimo jiné:

  1. Automatizace dveří a bran
  2. Parkovací senzory pro označení volných míst
  3. Dálkové monitorování hladiny nádrže
  4. Chytré domy a zařízení pro osvětlení a bezpečnost
  5. Detekce a počítání jednotek v dopravníkových linkách
  6. Detekce značek na tištěných materiálech
  7. Detekce kapalin uvnitř nakloněných kartonů, plastů a papíru
  8. Detekce vzdálenosti
  9. Lidé počítají

I když existuje mnoho aplikací pro přítomnost a pohyb, existuje stejně mnoho senzorů pro sběr dat, jako jsou kapacitní, indukční, fotoelektrické a ultrazvukové senzory. V závislosti na nákladech, podmínkách prostředí a požadavcích na přesnost byste měli zvolit nejvhodnější hardware pro požadavky prostředí a aplikace.

V tomto kurzu se zaměříme na vybudování čítače produkce v reálném čase; aplikace bude počítat každou jednotku procházející kolem na dopravníkovém pásu. Pomocí Arduino IDE naprogramujeme Feather HUZZAH ESP8266, ultrazvukový senzor a Ubidots k vývoji naší aplikace a zobrazení palubní desky IoT.

Krok 1: Požadavky

  1. Peří HUZZAH s ESP8266MB7389-100
  2. Ultrazvukový senzor
  3. Arduino IDE 1.8.2 nebo vyšší
  4. Účet Ubidots -nebo licence STEM

Krok 2: Nastavení

  • I Nastavení hardwaru
  • II. Nastavení firmwaru
  • III. Vývoj aplikací Ubidots (události, proměnné a řídicí panely)

Krok 3: Nastavení hardwaru

Nastavení hardwaru
Nastavení hardwaru
Nastavení hardwaru
Nastavení hardwaru

Ultrazvukový snímač MB7389-100 je díky hodnocení IPv67 nízkonákladovou volbou pro průmyslové aplikace s širokým dosahem a nízkou spotřebou energie v náročných povětrnostních podmínkách.

Chcete -li začít, zrcadlením níže uvedeného diagramu připojte ultrazvukový senzor k Feather HUZZAH ESP8266.

POZNÁMKA: Odečet snímače může být analogový nebo PWM; níže vysvětlíme nastavení pro čtení PWM, další informace viz výše uvedené příklady.

[Volitelně] umístěte mikrořadič a senzory do pouzdra IP67, aby byly chráněny před prachem, vodou a dalšími ohrožujícími faktory životního prostředí. Standardní případ vypadá podobně jako ten, který je zobrazen na fotografiích výše.

Krok 4: Nastavení firmwaru

Nastavení firmwaru
Nastavení firmwaru
Nastavení firmwaru
Nastavení firmwaru

Nejprve byste měli nainstalovat Feather Huzzah do Arduino IDE a zkompilovat kód. Nezapomeňte toto nastavení ověřit jednoduchým testem mrkání. Další informace o připojení zařízení Feather najdete v této užitečné příručce pro nastavení hardwaru.

Chcete -li odeslat data ze senzorů na vývojovou platformu Ubidots IoT, zkopírujte a vložte níže uvedený kód do Arduino IDE. Nezapomeňte přiřadit název sítě Wi-Fi, heslo a token účtu Ubidots, pokud je to uvedeno v kódu.

/******************************** Včetně knihoven *************** ****************/#zahrnout /****************************** ** Konstanty a objekty ******************************** // //*Ubidots*/const char*SSID_NAME = "xxxxxxxx"; // Sem vložte své SSID nameconst char* SSID_PASS = "xxxxxxxx"; // Sem vložte hesloconst char* TOKEN = "Assig_your_ubidots_token"; // Sem vložte svůj TOKENconst char* DEVICE_LABEL = "motion-control"; // štítek vašeho zařízeníconcon char* VARIABLE_LABEL = "vzdálenost"; // Vaše proměnná labelconst char* USER_AGENT = "ESP8266"; const char* VERSION = "1.0"; const char* HTTPSERVER = "industrial.api.ubidots.com"; // Ubidots Firemní uživatelé // const char* HTTPSERVER = " things.ubidots.com “; // Ubidots Vzdělávací uživateléint HTTPPORT = 80;/ * Ultrazvukový senzor */const int pwPin1 = 5; // Pin PWM, kde je připojen senzorWiFiClient clientUbi;/*********************************************** ****************************************************> délka proměnné*/int dataLen (char* proměnná) {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); / * Prostor pro ukládání hodnot k odeslání * / char str_val [10]; /*---- Transformuje hodnoty senzorů na typ char -----* / /*4 je minimální šířka, 2 je přesnost; plovoucí hodnota je zkopírována na str_val* / dtostrf (sensor_value, 4, 2, str_val); /* Vytvoří tělo, které má být odesláno do požadavku* /sprintf (body, "{"%s / ":%s}", proměnný_štítek, str_val); /* Staví HTTP žádost o POST */sprintf (data, „POST /api/v1.6/devices/%s“, označení_zařízení); sprintf (data, „%s HTTP/1.1 / r / n“, data); sprintf (data "%sHost: things.ubidots.com / r / n", data); sprintf (data, "%sUser-Agent:%s/%s / r / n", data, USER_AGENT, VERSION); sprintf (data, " %sX-Auth-Token: %s / r / n", data, TOKEN); sprint f (data, "%sConnection: close / r / n", data); sprintf (data, "%sContent-Type: application/json / r / n", data); sprintf (data, " %sContent-Length: %d / r / n / r / n", data, dataLen (tělo)); sprintf (data, "%s%s / r / n / r / n", data, tělo); / * Počáteční připojení */ clientUbi.connect (HTTPSERVER, HTTPPORT); / * Ověřit připojení klienta */ if (clientUbi.connect (HTTPSERVER, HTTPPORT)) {Serial.println (F ("Odesílání proměnných:")); Serial.println (data); / * Odeslat požadavek HTTP */ clientUbi.print (data); } / * Když je klient k dispozici, přečtěte si odpověď serveru * / while (clientUbi.available ()) {char c = clientUbi.read (); Serial.write (c); } / * Volná paměť * / zdarma (data); volný (tělo); / * Zastavte klienta */ clientUbi.stop ();}

ProTip: můžete zkontrolovat, zda je vaše zařízení správně připojeno, otevřením sériového monitoru v Arduino IDE.

Můžete si ověřit, že je zařízení vytvořeno ve vašem backendu Ubidots, tím, že ho zobrazíte ve svém účtu Správa zařízení -> Zařízení.

Kliknutím na své zařízení najdete proměnnou zvanou „vzdálenost“, kde jsou uloženy naměřené hodnoty ze snímače. Toto jméno bylo přiřazeno v kódu, který jste právě vložili do Arduino IDE. Chcete -li upravit automatické proměnné, proveďte to úpravou karty zařízení nebo blikáním aktualizovaného kódu se správnou nomenklaturou proměnných pro vaši aplikaci.

S připojeným Feather HUZZAH ESP8266 a vykazováním dat do Ubidots je nyní načase vytvořit aplikaci pomocí pečlivě navržené konfigurace aplikací bez kódu Ubidots.

Krok 5: Vývoj aplikací Ubidots

Vývoj aplikací Ubidots
Vývoj aplikací Ubidots
Vývoj aplikací Ubidots
Vývoj aplikací Ubidots
Vývoj aplikací Ubidots
Vývoj aplikací Ubidots

Konfigurace události Ubidots

Aktuální hodnoty, které posíláme Ubidotům, jsou vstupy na vzdálenost. Pro převod těchto údajů na požadovaný výstup, který chceme - počítané jednotky - bychom měli vytvořit událost podle těchto kroků:

  1. Uvnitř aktuálního zařízení „motion-control“vytvořte novou výchozí proměnnou nazvanou „boxy“, která obdrží 1 při každém počítání nové jednotky.
  2. Přejděte do Správa zařízení -> Události a kliknutím na modrou ikonu plus v pravém horním rohu stránky přidejte novou událost.
  3. Nakonfigurujte svou událost počínaje „Pokud se spustí“:
  • Vyberte proměnnou: „vzdálenost“
  • Hodnota: hodnota (výchozí)
  • Je menší nebo rovna [maximální očekávané vzdálenosti} mezi senzorem a kolem procházejících boxů*naše aplikace požaduje 500 mm
  • Po dobu 0 minut
  • Uložit

4. Jakmile jsou spouště nakonfigurovány podle specifikací vaší aplikace, přidejte podmíněnou akci kliknutím na oranžovou ikonu „plus“v pravém horním rohu.

5. Jako akci vyberte „Nastavit proměnnou“.

6. Dále vyberte dříve vytvořenou výchozí proměnnou „boxy“a hodnotu „1“.

7. Uložte změny. Pokud je událost správně nastavena, odešle „1“pokaždé, když je vzdálenost mezi senzorem a jednotkou delší než uvedená prahová hodnota, což naznačuje, že v blízkosti není žádný objekt - a měla by počítat novou jednotku, která právě prošla kolem.

Na kartě Zařízení specifické pro Feather zjistíte, že proměnná „políčka“, kam je odesláno „1“, kdykoli je detekována přítomnost jednotky.

Obzvláště užitečné pro průmyslové dopravní pásy a počítání jednotek, tento prototyp lze přizpůsobit tak, aby vyhovoval různým prostředím nebo hardwaru jednoduše ve vašem kódování nebo vývoji vašich aplikací.

8. Vizualizujte počet detekovaných jednotek (nebo kolikrát byl detekován objekt) Nyní pomocí proměnné „boxy“vytvoříme novou proměnnou rolovacího okna, která bude součtem celkového množství naměřených hodnot přijatých z proměnné „krabice“v definovaný spam (minuty, hodiny, dny, týdny atd.). Chcete -li provést tento vývoj, postupujte podle těchto jednoduchých kroků:

Přiřaďte následující proměnné vaší nové proměnné rolovacího okna

Vyberte zařízení: pohybové ovládání (nebo název zařízení, kterému odesíláte data)

Vyberte proměnnou: pole

Vypočítejte: součet

Každá: „1“hodina (nebo podle požadavků vaší aplikace)

Nyní přiřaďte nové proměnné název, který udává počet políček (nebo pohybů) počítaných za hodinu, stejně jako „políčka/hodina“nebo „jednotky/hodiny“.

Krok 6: Konfigurace řídicího panelu

Konfigurace řídicího panelu
Konfigurace řídicího panelu

Nakonec vytvořte řídicí panel, který zobrazí počet detekovaných jednotek.

Přejděte na Správa zařízení -> Panely a přidejte nový widget. Tento widget bude zobrazovat počet dnes spočítaných políček rozdělený podle hodin.

Chcete -li vizualizovat svůj počet, přiřaďte svému novému widgetu následující přihlašovací údaje.

Jak byste chtěli vidět svá data ?: Graf

Vyberte typ widgetu: spojnicový graf

Přidejte zařízení: pohybové ovládání

Přidejte proměnnou: pole/hodinu

Dokončit. A díky tomuto konečnému vývoji řídicího panelu - vaše aplikace je kompletní a nyní máte účinný a účinný systém detekce pohybu a přítomnosti. Zde je konečný pohled na naše výsledky.

Doporučuje: