Satura rādītājs:

Kā izveidot kustības noteikšanas sistēmu ar Arduino: 7 soļi
Kā izveidot kustības noteikšanas sistēmu ar Arduino: 7 soļi

Video: Kā izveidot kustības noteikšanas sistēmu ar Arduino: 7 soļi

Video: Kā izveidot kustības noteikšanas sistēmu ar Arduino: 7 soļi
Video: ESP32 Turorial 1 - Introduction to SunFounder's ESP32 IoT Learnig kit Software and Arduino IDE 2024, Jūlijs
Anonim
Kā izveidot kustības noteikšanas sistēmu ar Arduino
Kā izveidot kustības noteikšanas sistēmu ar Arduino

Izveidojiet kustības un klātbūtnes veidošanas skaitītāju, izmantojot Feather HUZZAH, kas ieprogrammēts ar Arduino un kuru darbina Ubidots.

Efektīva fiziskās kustības un klātbūtnes noteikšana viedajās mājās un viedajā ražošanā var būt ļoti noderīga lietojumos, sākot no vecāka gadagājuma cilvēku dzīves vides (AAL) risinājumiem vai ražošanas skaitīšanas sistēmas, kas baro lielāku TES. Citas kustības un klātbūtnes noteikšanas lietojumprogrammas ietver, bet ne tikai:

  1. Durvju un vārtu automatizācija
  2. Parkošanās sensori, lai apzīmētu brīvas vietas
  3. Attālā tvertnes līmeņa kontrole
  4. Gudras mājas un telpas apgaismojumam un drošībai
  5. Vienību noteikšana un skaitīšana konveijera līnijās
  6. Atzīmju noteikšana uz drukātajiem materiāliem
  7. Šķidruma noteikšana kartona, plastmasas un papīra slīpumu iekšpusē
  8. Attāluma noteikšana
  9. Cilvēki skaitītāji

Lai gan ir daudz lietojumprogrammu klātbūtnei un kustībai, datu vākšanai ir tikpat daudz sensoru, piemēram, kapacitatīvie, induktīvie, fotoelektriskie un ultraskaņas sensori. Atkarībā no izmaksām, vides apstākļiem un precizitātes prasībām jāizvēlas videi un pielietojuma prasībām vispiemērotākā aparatūra.

Šajā apmācībā mēs koncentrēsimies uz reāllaika ražošanas skaitītāja izveidi; lietojumprogramma saskaitīs katru vienību, kas iet garām konveijeram. Mēs izmantosim Arduino IDE, lai ieprogrammētu spalvu HUZZAH ESP8266, ultraskaņas sensoru un Ubidots, lai izstrādātu mūsu lietojumprogrammu un parādītu mūsu IoT informācijas paneli.

1. darbība. Prasības

  1. Spalvas HUZZAH ar ESP8266MB7389-100
  2. Ultraskaņas sensors
  3. Arduino IDE 1.8.2 vai jaunāka
  4. Ubidots konts vai STEM licence

2. darbība: iestatīšana

  • I Aparatūras iestatīšana
  • II. Programmaparatūras iestatīšana
  • III. Ubidots lietojumprogrammu izstrāde (notikumi, mainīgie un informācijas paneļi)

3. darbība. Aparatūras iestatīšana

Aparatūras iestatīšana
Aparatūras iestatīšana
Aparatūras iestatīšana
Aparatūras iestatīšana

Pateicoties IPv67 vērtējumam, ultraskaņas sensors MB7389-100 ir lēts risinājums rūpnieciskiem lietojumiem ar plašu diapazonu un zemu enerģijas patēriņu sarežģītos laika apstākļos.

Lai sāktu, atspoguļojiet zemāk redzamo diagrammu, lai ultraskaņas sensoru piestiprinātu pie spalvas HUZZAH ESP8266.

PIEZĪME: Sensora rādījumus var uzskatīt par analogiem vai PWM; zemāk mēs izskaidrosim PWM lasīšanas iestatījumus, lai iegūtu papildinformāciju, lūdzu, skatiet iepriekš parādītos piemērus.

[Pēc izvēles] ievietojiet mikrokontrolleri un sensorus IP67 korpusā, lai pasargātu tos no putekļiem, ūdens un citiem apdraudošiem vides faktoriem. Standarta korpuss izskatās līdzīgs tam, kas parādīts iepriekš redzamajos fotoattēlos.

4. solis: programmaparatūras iestatīšana

Programmaparatūras iestatīšana
Programmaparatūras iestatīšana
Programmaparatūras iestatīšana
Programmaparatūras iestatīšana

Pirmkārt, jums vajadzētu instalēt Feather Huzzah Arduino IDE un apkopot kodu. Neaizmirstiet pārbaudīt šo iestatījumu, veicot vienkāršu mirgošanas testu. Lai iegūtu papildinformāciju par Feather ierīces pievienošanu, skatiet šo noderīgo aparatūras iestatīšanas rokasgrāmatu.

Lai nosūtītu sensora datus uz Ubidots IoT izstrādes platformu, nokopējiet un ielīmējiet zemāk esošo kodu Arduino IDE. Neaizmirstiet piešķirt Wi-Fi tīkla nosaukumu, paroli un Ubidots konta marķieri, ja tas ir norādīts kodā.

/******************************* Bibliotēkas iekļautas *************** **************** /#include /****************************** ** Konstantes un objekti ******************************* //*Ubidots*/const char*SSID_NAME = "xxxxxxxx"; // Ievietojiet šeit savu SSID nosaukumuconst char* SSID_PASS = "xxxxxxxx"; // Ievietojiet šeit savu paroliconst char* TOKEN = "Assig_your_ubidots_token"; // Ieliec šeit savu TOKENconst char* DEVICE_LABEL = "motion-control"; // Jūsu ierīces labelconst char* VARIABLE_LABEL = "distance"; // Jūsu mainīgais labelconst char* USER_AGENT = "ESP8266"; const char* VERSION = "1.0"; const char* HTTPSERVER = "industrial.api.ubidots.com"; // Ubidots biznesa lietotāji // const char* HTTPSERVER = " things.ubidots.com "; // Ubidots Educational usersint HTTPPORT = 80;/ * Ultraskaņas sensors */const int pwPin1 = 5; // PWM tapa, kur sensors ir pievienots WiFlient clientUbi;/******************************************************* *************************** mainīgā*/int dataLen garums (char* mainīgais) {uint8_t dataLen = 0; for (int i = 0; i distance / 25,4* / float distance = pulseIn (pwPin1, HIGH); sendToUbidots (DEVICE_LABEL, VARIABLE_LABEL, distance); kavēšanās (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); / * Vieta, kur glabāt nosūtāmās vērtības * / char str_val [10]; /*---- Pārveido sensoru vērtības uz char veidu -----* / /*4 ir minimālais platums, 2 ir precizitāte; pludiņa vērtība tiek kopēta uz str_val* / dtostrf (sensor_value, 4, 2, str_val); /* Veido korpusu, kas jānosūta pieprasījumā* /sprintf (pamatteksts, "{"%s / ":%s}", variable_label, str_val); /* veido HTTP pieprasījums būt POST */sprintf (dati, "POST /api/v1.6/devices/%s", device_label); sprintf (dati, "%s HTTP/1.1 / r / n", dati); sprintf (dati, "%sHost: things.ubidots.com / r / n", dati); sprintf (dati, "%sUser-Agent:%s/%s / r / n", dati, USER_AGENT, VERSION); sprintf (dati, " %sX-Auth-Token: %s / r / n", dati, TOKEN); sprints f (dati, "%sSavienojums: aizvērt / r / n", dati); sprintf (dati, "%sContent-Type: application/json / r / n", dati); sprintf (dati, " %sContent-Length: %d / r / n / r / n", dati, dataLen (pamatteksts)); sprintf (dati, "%s%s / r / n / r / n", dati, pamatteksts); / * Sākotnējais savienojums */ clientUbi.connect (HTTPSERVER, HTTPPORT); / * Pārbaudiet klienta savienojumu */ if (clientUbi.connect (HTTPSERVER, HTTPPORT)) {Serial.println (F ("Mainīgo ievietošana:")); Serial.println (dati); / * Nosūtīt HTTP pieprasījumu */ clientUbi.print (dati); } / * Kamēr klients ir pieejams, izlasiet servera atbildi * / while (clientUbi.available ()) {char c = clientUbi.read (); Serial.write (c); } / * Brīva atmiņa * / brīva (dati); bezmaksas (ķermenis); / * Apturiet klientu */ clientUbi.stop ();}

ProTip: varat pārbaudīt, vai jūsu ierīce ir pareizi pievienota, atverot sērijas monitoru Arduino IDE.

Jūs varat pārbaudīt, vai ierīce ir izveidota jūsu Ubidots aizmugurē, apskatot to savā kontā Ierīču pārvaldība -> Ierīces.

Noklikšķinot uz savas ierīces, jūs atradīsit mainīgo, ko sauc par "attālumu", kur tiek glabāti sensora rādījumi. Šis vārds tika piešķirts kodā, kuru tikko ielīmējāt Arduino IDE. Ja vēlaties pielāgot automātiskos mainīgos, lūdzu, rediģējiet ierīces karti vai mirgojiet atjauninātu kodu ar savai lietojumprogrammai atbilstošo mainīgo nomenklatūru.

Kad Feather HUZZAH ESP8266 ir savienots un ziņo par datiem Ubidots, tagad ir pienācis laiks izveidot lietojumprogrammu, izmantojot Ubidots rūpīgi izstrādāto lietojumprogrammu konfigurāciju bez koda.

5. darbība. Ubidots lietojumprogrammu izstrāde

Ubidots lietojumprogrammu izstrāde
Ubidots lietojumprogrammu izstrāde
Ubidots lietojumprogrammu izstrāde
Ubidots lietojumprogrammu izstrāde
Ubidots lietojumprogrammu izstrāde
Ubidots lietojumprogrammu izstrāde

Ubidots notikuma konfigurācija

Pašreizējie rādījumi, ko mēs nosūtām Ubidots, ir attāluma ievadi. Lai pārvērstu šos rādījumus vēlamajā iznākumā, ko mēs vēlamies - saskaitītās vienības -, mums jāizveido notikums, veicot šādas darbības:

  1. Pašreizējās ierīces "kustības kontrole" iekšpusē izveidojiet jaunu noklusējuma mainīgo ar nosaukumu "kastes", kas katru reizi, kad tiks saskaitīta jauna vienība, saņems 1.
  2. Atveriet Ierīču pārvaldība -> Notikumi un noklikšķiniet uz zilās pluszīmes ikonas lapas augšējā labajā stūrī, lai pievienotu jaunu notikumu.
  3. Konfigurējiet savu notikumu, sākot ar “Ja aktivizētāji”:
  • Atlasiet mainīgo: "distance"
  • Vērtība: vērtība (noklusējums)
  • Ir mazāks vai vienāds ar [maksimālais paredzamais attālums}) starp sensoru un garām braucošajām kastēm*mūsu lietojumprogramma pieprasa 500 mm
  • Uz 0 minūtēm
  • Saglabāt

4. Kad aktivizētāji ir konfigurēti atbilstoši jūsu lietojumprogrammas specifikācijām, augšējā labajā stūrī noklikšķiniet uz oranžās ikonas “plus”, lai pievienotu nosacītu darbību.

5. Kā darbību atlasiet “Iestatīt mainīgo”.

6. Pēc tam izvēlieties iepriekš izveidoto noklusējuma mainīgo "kastes" un vērtību "1".

7. Saglabājiet izmaiņas. Ja notikums ir pareizi iestatīts, tas katru reizi, kad attālums starp sensoru un ierīci ir lielāks par norādīto slieksni, nosūtīs “1”, kas liek domāt, ka tuvumā nav neviena objekta, un tam vajadzētu saskaitīt jaunu vienību, kas tikko pagājusi garām.

Kartē Spalvu īpašā ierīce jūs atradīsit, ka mainīgais "lodziņš", kur tiek nosūtīts "1" jebkurā laikā, kad tiek uztverta vienības klātbūtne.

Īpaši noderīga rūpnieciskām konveijera lentēm un vienību skaitīšanai, šo prototipu var pielāgot, lai tas atbilstu dažādām vidēm vai aparatūrai, vienkārši iekļaujot jūsu kodējumu vai lietojumprogrammu izstrādi.

8. Vizualizējiet uztverto vienību skaitu (vai reizes, kad objekts tika atklāts) Tagad, izmantojot mainīgo "kastes", mēs izveidosim jaunu mainīgā loga mainīgo, lai summētu kopējo nolasījumu skaitu, kas saņemts no mainīgā "kastes" definēts surogātpasts (minūtes, stundas, dienas, nedēļas utt.). Lai veiktu šo izstrādi, rīkojieties šādi:

Piešķiriet šādus akreditācijas datus jaunajam mainīgā loga mainīgajam

Izvēlieties ierīci: kustības vadību (vai tās ierīces nosaukumu, no kuras sūtāt savus datus)

Atlasiet mainīgo: kastes

Aprēķiniet: summu

Ik pēc 1 stundas (vai atbilstoši jūsu pieteikuma pieprasījumiem)

Tagad piešķiriet jaunajam mainīgajam nosaukumu, kas norāda stundu laikā saskaitīto lodziņu (vai kustību) skaitu, tāpat kā "kastes stundā" vai "vienības stundā".

6. darbība: informācijas paneļa konfigurācijas

Informācijas paneļa konfigurācijas
Informācijas paneļa konfigurācijas

Visbeidzot, izveidojiet informācijas paneli, lai parādītu uztverto vienību skaitu.

Dodieties uz Ierīču pārvaldība -> Informācijas paneļi un pievienojiet jaunu logrīku. Šajā logrīkā tiks parādīts šodien saskaitīto lodziņu skaits, sadalīts pa stundām.

Piešķiriet šādus akreditācijas datus savam jaunajam logrīkam, lai vizualizētu savu skaitu.

Kā jūs vēlētos redzēt savus datus?: Diagramma

Atlasiet logrīka veidu: līniju diagramma

Pievienojiet ierīci: kustības vadība

Pievienojiet mainīgo: kastes stundā

Pabeigt. Un ar šo pēdējo paneļa izstrādi - jūsu lietojumprogramma ir pabeigta, un tagad jums ir efektīva un efektīva kustības un klātbūtnes noteikšanas sistēma. Šeit ir pēdējais mūsu rezultātu apskats.

Ieteicams: