Turinys:
- 1 žingsnis: Reikalavimai
- 2 veiksmas: sąranka
- 3 žingsnis: Aparatūros sąranka
- 4 veiksmas: programinės įrangos sąranka
- 5 veiksmas: „Ubidots“programų kūrimas
- 6 veiksmas: prietaisų skydelio konfigūracijos
Video: Kaip sukurti judesio aptikimo sistemą naudojant „Arduino“: 7 žingsniai
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:45
Sukurkite judesio ir buvimo gamybos skaitiklį naudodami „Feather HUZZAH“, suprogramuotą su „Arduino“ir maitinamą „Ubidots“.
Veiksmingas fizinio judesio ir buvimo aptikimas išmaniuosiuose namuose ir išmaniojoje gamyboje gali būti labai naudingas įvairiose srityse, pradedant senyvo amžiaus aplinka, padedančia gyventi (AAL), arba gamybos skaičiavimo sistema, kuri maitina didesnį MES. Kitos judesio ir buvimo aptikimo programos apima, bet neapsiriboja:
- Durų ir vartų automatika
- Parkavimo jutikliai, skirti laisvoms vietoms pažymėti
- Nuotolinis bako lygio stebėjimas
- Protingi namai ir apšvietimo bei saugumo priemonės
- Vienetų aptikimas ir skaičiavimas konvejerio linijose
- Pažymėkite aptikimą spausdintose medžiagose
- Skysčio aptikimas kartono, plastiko ir popieriaus viduje
- Atstumo aptikimas
- Žmonės skaito
Nors yra daug buvimo ir judesio programų, yra tiek pat daug duomenų rinkimo jutiklių, tokių kaip talpiniai, indukciniai, fotoelektriniai ir ultragarsiniai jutikliai. Atsižvelgiant į išlaidas, aplinkos sąlygas ir tikslumo reikalavimus, reikia pasirinkti tinkamiausią techninę įrangą, atitinkančią aplinkos ir taikymo reikalavimus.
Šioje pamokoje mes sutelksime dėmesį į realaus laiko gamybos skaitiklio kūrimą; programa suskaičiuos kiekvieną konvejeriu pravažiuojantį įrenginį. Mes naudosime „Arduino IDE“, norėdami užprogramuoti „Feather HUZZAH ESP8266“, ultragarsinį jutiklį ir „Ubidots“, kad sukurtume savo programą ir parodytume „IoT“prietaisų skydelį.
1 žingsnis: Reikalavimai
- Plunksna HUZZAH su ESP8266MB7389-100
- Ultragarsinis jutiklis
- „Arduino IDE 1.8.2“arba naujesnė versija
- „Ubidots“paskyra arba STEM licencija
2 veiksmas: sąranka
- I Aparatūros sąranka
- II. Firmware sąranka
- III. „Ubidots“programų kūrimas (įvykiai, kintamieji ir informacijos suvestinės)
3 žingsnis: Aparatūros sąranka
Dėl IPv67 įvertinimo ultragarsinis jutiklis MB7389-100 yra nebrangus pasirinkimas pramoniniam naudojimui, turintis platų diapazoną ir mažos energijos sąnaudos sudėtingomis oro sąlygomis.
Norėdami pradėti, atspindėkite žemiau pateiktą schemą, kad ultragarso jutiklį pritvirtintumėte prie plunksnos HUZZAH ESP8266.
PASTABA: jutiklio rodmenys gali būti imami kaip analoginiai arba PWM; toliau paaiškinsime PWM skaitymo sąranką, papildomos informacijos ieškokite aukščiau pateiktuose pavyzdžiuose.
[Pasirinktinai] įdėkite mikrovaldiklį ir jutiklius į de IP67 dėklą, kad apsaugotumėte juos nuo dulkių, vandens ir kitų grėsmingų aplinkos veiksnių. Standartinis dėklas atrodo panašus į tą, kuris pavaizduotas aukščiau esančiose nuotraukose.
4 veiksmas: programinės įrangos sąranka
Pirmiausia turite įdiegti „Feather Huzzah“į „Arduino IDE“ir surinkti kodą. Nepamirškite patikrinti šios sąrankos atlikdami paprastą mirksėjimo testą. Norėdami gauti daugiau informacijos apie „Feather“įrenginio prijungimą, peržiūrėkite šį naudingą aparatūros sąrankos vadovą.
Norėdami siųsti jutiklių duomenis į „Ubidots IoT Development Platform“, nukopijuokite ir įklijuokite žemiau esantį kodą į „Arduino IDE“. Nepamirškite priskirti „Wi-Fi“tinklo pavadinimo, slaptažodžio ir „Ubidots“paskyros prieigos rakto, kur nurodyta kode.
/******************************** Bibliotekos įtrauktos *************** **************** /#include /***************************** ** Konstantos ir objektai ******************************* //*„Ubidots“*/const char*SSID_NAME = "xxxxxxxx"; // Įdėkite čia savo SSID vardo įrašą char* SSID_PASS = "xxxxxxxx"; // Įdėkite čia savo slaptažodžio įrašymo simbolį* TOKEN = "Assig_your_ubidots_token"; // Įdėkite čia savo TOKENconst char* DEVICE_LABEL = "motion-control"; // Jūsų įrenginio labelconst char* VARIABLE_LABEL = "atstumas"; // Jūsų kintamasis labelconst char* USER_AGENT = "ESP8266"; const char* VERSION = "1.0"; const char* HTTPSERVER = "industrial.api.ubidots.com"; // "Ubidots" verslo vartotojai // const char* HTTPSERVER = " things.ubidots.com “; // „Ubidots Educational usersintint HTTPPORT = 80;/ * Ultragarsinis jutiklis */const int pwPin1 = 5; // PWM kaištis, prie kurio prijungtas jutiklis „WiFiClient“klientas „Ubi“;/******************************* Pagalbinės funkcijos *** **************************** kintamojo*/int dataLen ilgis (char* kintamasis) {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); / * Erdvė vertėms saugoti siųsti * / char str_val [10]; /*---- paverčia jutiklių reikšmes į char tipą -----* / /*4 yra mažiausias plotis, 2 yra tikslumas; plūdės vertė nukopijuojama į str_val* / dtostrf (sensor_value, 4, 2, str_val); /* Sukuria turinį, kuris turi būti išsiųstas į užklausą* /sprintf (body, "{"%s / ":%s}", variable_label, str_val); /* Sukuria HTTP prašymas būti POST */sprintf (duomenys, „POST /api/v1.6/devices/%s“, device_label); sprintf (duomenys, „%s HTTP/1.1 / r / n“, duomenys); sprintf (duomenys, "%sHost: things.ubidots.com / r / n", duomenys); sprintf (duomenys, "%sUser-Agent:%s/%s / r / n", duomenys, USER_AGENT, VERSION); sprintf (duomenys, " %sX-Auth-Token: %s / r / n", duomenys, TOKEN); sprintas f (duomenys, "%sConnection: uždaryti / r / n", duomenys); sprintf (duomenys, "%sContent-Type: application/json / r / n", duomenys); sprintf (duomenys, " %sContent-Length: %d / r / n / r / n", data, dataLen (body)); sprintf (duomenys, "%s%s / r / n / r / n", duomenys, tekstas); / * Pradinis ryšys */ clientUbi.connect (HTTPSERVER, HTTPPORT); / * Patikrinkite kliento ryšį */ if (clientUbi.connect (HTTPSERVER, HTTPPORT)) {Serial.println (F ("Jūsų kintamųjų skelbimas:")); Serial.println (duomenys); / * Siųsti HTTP užklausą */ clientUbi.print (duomenys); } / * Kol klientas pasiekiamas, perskaitykite serverio atsakymą * / while (clientUbi.available ()) {char c = clientUbi.read (); Serial.write (c); } / * Laisva atmintis * / laisva (duomenys); laisvas (kūnas); / * Sustabdykite klientą */ clientUbi.stop ();}
„ProTip“: atidarydami „Arduino IDE“serijinį monitorių, galite patikrinti, ar jūsų įrenginys prijungtas teisingai.
Galite patikrinti, ar įrenginys sukurtas jūsų „Ubidots“vidinėje sistemoje, peržiūrėję jį savo paskyroje Įrenginių tvarkymas -> Įrenginiai.
Spustelėję savo įrenginį, rasite kintamąjį, vadinamą „atstumu“, kuriame saugomi jutiklio rodmenys. Šis vardas buvo priskirtas kodui, kurį ką tik įklijavote į „Arduino IDE“. Jei norite pakoreguoti automatinius kintamuosius, redaguokite įrenginio kortelę arba mirksėkite atnaujintu kodu, atitinkančiu jūsų programos kintamųjų nomenklatūrą.
Kai „Feather HUZZAH ESP8266“prijungtas ir teikia duomenis „Ubidots“, dabar laikas kurti programą naudojant „Ubidots“kruopščiai sukurtą programos be kodo konfigūraciją.
5 veiksmas: „Ubidots“programų kūrimas
„Ubidots“įvykių konfigūracija
Dabartiniai rodmenys, kuriuos siunčiame „Ubidots“, yra atstumo įvestys. Norėdami išversti šiuos rodmenis į norimą išvestį, kurią norime - suskaičiuotus vienetus - turėtume sukurti įvykį atlikdami šiuos veiksmus:
- Dabartinio prietaiso „judesio valdymas“viduje sukurkite naują numatytąjį kintamąjį, pavadintą „dėžutės“, kuris kiekvieną kartą skaičiuojant naują vienetą gaus 1.
- Eikite į Įrenginių valdymas -> Įvykiai ir spustelėkite mėlyną pliuso piktogramą viršutiniame dešiniajame puslapio kampe, kad pridėtumėte naują įvykį.
- Konfigūruokite savo įvykį, pradedant nuo „Jei suaktyvina“:
- Pasirinkite kintamąjį: „atstumas“
- Reikšmė: vertė (numatytoji)
- Mažesnis arba lygus [didžiausias numatomas atstumas} tarp jutiklio ir pro jį einančių dėžių*mūsų programa reikalauja 500 mm
- 0 minučių
- Sutaupyti
4. Kai aktyvikliai bus sukonfigūruoti pagal jūsų programos specifikacijas, spustelėkite oranžinę „pliuso“piktogramą viršutiniame dešiniajame kampe, kad pridėtumėte sąlyginį veiksmą.
5. Kaip veiksmą pasirinkite „Nustatyti kintamąjį“.
6. Tada pasirinkite anksčiau sukurtą numatytąjį kintamąjį „dėžutės“ir reikšmę „1“.
7. Išsaugokite pakeitimus. Jei įvykis tinkamai nustatytas, jis kaskart atsiųs „1“, kai atstumas tarp jutiklio ir įrenginio yra ilgesnis už nurodytą slenkstį, o tai rodo, kad šalia nėra objekto - ir turėtų būti skaičiuojamas naujas ką tik praėjęs įrenginys.
Kortelėje „Plunksninis įrenginys“pamatysite, kad kintamasis „langeliai“, kur „1“siunčiamas bet kuriuo metu, kai aptinkamas vieneto buvimas.
Šis prototipas, ypač naudingas pramoniniams konvejeriams ir vienetų skaičiavimui, gali būti pritaikytas, kad tiktų įvairioms aplinkoms ar techninei įrangai, tiesiog jūsų kodavimo ar programų kūrimo metu.
8. Vizualizuokite aptiktų vienetų skaičių (arba tai, kiek kartų objektas buvo aptiktas) Dabar, naudodamiesi kintamuoju „dėžutės“, mes sukursime naują besikeičiančio lango kintamąjį, kuris apibendrins bendrą rodmenų, gautų iš kintamojo „dėžutės“, skaičių apibrėžtas šlamštas (minutės, valandos, dienos, savaitės ir kt.). Norėdami atlikti šį kūrimą, atlikite šiuos paprastus veiksmus:
Priskirkite šiuos kredencialus naujam besisukančio lango kintamajam
Pasirinkite įrenginį: judesio valdymas (arba įrenginio, iš kurio siunčiate duomenis, pavadinimas)
Pasirinkite kintamąjį: langelius
Apskaičiuokite: sumą
Kas 1 valandą (arba pagal jūsų prašymus)
Dabar priskirkite pavadinimą naujam kintamajam, kuris nurodo langelių (ar judesių), suskaičiuotų per valandą, skaičių, kaip „dėžutės per valandą“arba „vienetai/valandos“.
6 veiksmas: prietaisų skydelio konfigūracijos
Galiausiai sukurkite prietaisų skydelį, kuriame būtų rodomas aptiktų vienetų skaičius.
Eikite į Įrenginių valdymas -> Informacijos suvestinės ir pridėkite naują valdiklį. Šiame valdiklyje bus rodomas šiandien suskaičiuotų dėžių kiekis, suskirstytas pagal valandas.
Priskirkite šiuos kredencialus naujam valdikliui, kad vizualizuotumėte savo skaičių.
Kaip norėtumėte matyti savo duomenis?: Diagrama
Pasirinkite valdiklio tipą: linijinė diagrama
Pridėkite įrenginį: judesio valdymas
Pridėkite kintamąjį: dėžutės per valandą
Baigti. Su šiuo galutiniu prietaisų skydelio kūrimu - programa baigta ir dabar turite veiksmingą ir efektyvią judesio ir buvimo aptikimo sistemą. Štai paskutinis mūsų rezultatų žvilgsnis.
Rekomenduojamas:
„Pasidaryk pats“judesio aptikimo SMS signalizacijos sistema: 5 žingsniai (su paveikslėliais)
„Pasidaryk pats“judesio aptikimo SMS signalizacijos sistema: Šiame projekte aš sujungsiu pigų PIR judesio jutiklį su TC35 GSM moduliu, kad sukurtų signalizacijos sistemą, kuri atsiųs jums „INTRUDER ALERT“. SMS, kai kas nors bando pavogti jūsų daiktus. Pradėkime
Kaip sukurti išmaniąją potvynių aptikimo signalizacijos sistemą naudojant Raspberry Pi ir argono daleles: 6 žingsniai
Kaip padaryti išmaniąją potvynių aptikimo aliarmo sistemą naudojant Raspberry Pi ir Argon daleles: turėdami standartinius potvynių jutiklius puikiai išvengsite didžiulės žalos jūsų namams ar darbo vietai. Tačiau dėl to sunku, jei nesate namuose apsilankyti signalizacijoje. Žinoma Galite nusipirkti išmaniųjų. Ši potvynių aliarmo sistema aptinka bet kokį skystį ir suaktyvina aliarmą
Kaip sukurti kalbančią PIR judesio apsaugos sistemą: 3 žingsniai
Kaip sukurti kalbančią PIR judesio apsaugos sistemą: šiame vaizdo įraše mes padarysime apsaugos sistemą, kuri aptinka judesį ir kalba. Šiame projekte PIR jutiklis aptinka judesį, o „DFPlayer Mini MP3“modulis atkuria anksčiau apibrėžtą garsą
Globėjas V1.0 --- Durų akutės kameros atnaujinimas naudojant „Arduino“(judesio aptikimo įrašymas ir elektros smūgio funkcijos): 5 žingsniai
Globėjas V1.0 ||| Durų skylių kameros atnaujinimas naudojant „Arduino“(judesio aptikimo įrašymas ir elektros smūgio funkcijos): užsisakiau žvilgsnio kamerą, bet kai ją naudoju, supratau, kad nėra automatinio įrašymo funkcijos (suaktyvinama judesio aptikimu). Tada aš pradėjau tirti, kaip tai veikia. Jei norite įrašyti vaizdo įrašą, 1- laikykite nuspaudę maitinimo mygtuką beveik 2 sekundes
Kaip sukurti autonominį krepšinio žaidimo robotą, naudojant „IRobot“, sukurti kaip pagrindą: 7 žingsniai (su paveikslėliais)
Kaip sukurti autonominį krepšinio žaidimo robotą naudojant „IRobot“sukurti kaip pagrindą: tai mano įrašas, skirtas iššūkiui „iRobot Create“. Sunkiausia viso šio proceso dalis buvo nuspręsti, ką robotas ketina daryti. Norėjau pademonstruoti puikias „Create“savybes, kartu pridėdamas šiek tiek robo nuojautos. Visas mano