Sisukord:

Kuidas luua Arduino abil liikumistuvastussüsteemi: 7 sammu
Kuidas luua Arduino abil liikumistuvastussüsteemi: 7 sammu

Video: Kuidas luua Arduino abil liikumistuvastussüsteemi: 7 sammu

Video: Kuidas luua Arduino abil liikumistuvastussüsteemi: 7 sammu
Video: Kuidas panna kokku bluetoothi teel juhitava auto elektroonikaskeem? | R69-1214 2024, November
Anonim
Kuidas luua Arduino abil liikumistuvastussüsteemi
Kuidas luua Arduino abil liikumistuvastussüsteemi

Ehitage liikumise ja kohaloleku tootmise loendur, kasutades Feather HUZZAH, mis on programmeeritud Arduinoga ja mida toidab Ubidots.

Tõhus füüsilise liikumise ja kohaloleku tuvastamine nutikodudes ja nutikas tootmises võib olla väga kasulik rakendustes, alates eakatest ümbritseva eluviisiga lahendustest (AAL) või tootmise loendussüsteemist, mis toidab suuremat turgu. Muud rakendused liikumise ja kohaloleku tuvastamiseks hõlmavad järgmist, kuid mitte ainult:

  1. Uste ja väravate automaatika
  2. Parkimisandurid vabade kohtade määramiseks
  3. Paagi taseme kaugjälgimine
  4. Nutikad kodud ja seadmed valgustuse ja turvalisuse tagamiseks
  5. Ühikute tuvastamine ja loendamine konveieriliinides
  6. Märgi tuvastamine trükitud materjalidel
  7. Vedeliku tuvastamine papist, plastist ja paberist kallutatuna
  8. Kauguse tuvastamine
  9. Inimesed loendurid

Kuigi kohaloleku ja liikumise jaoks on palju rakendusi, on andmete kogumiseks võrdselt sama palju andureid, näiteks mahtuvuslikud, induktiivsed, fotoelektrilised ja ultraheliandurid. Sõltuvalt kuludest, keskkonnatingimustest ja täpsusnõuetest tuleks valida keskkonnale ja rakenduse nõuetele kõige sobivam riistvara.

Selle õpetuse puhul keskendume reaalajas tootmisloenduri loomisele; rakendus arvestab iga konveierilindil mööduvat ühikut. Kasutame Arduino IDE -d sulgede HUZZAH ESP8266, ultraheli anduri ja Ubidotide programmeerimiseks, et arendada oma rakendust ja kuvada meie asjade Interneti armatuurlauda.

Samm: nõuded

  1. Suled HUZZAH koos ESP8266MB7389-100
  2. Ultraheli andur
  3. Arduino IDE 1.8.2 või uuem
  4. Ubidotsi konto -või STEM -litsents

2. samm: seadistamine

  • I Riistvara seadistamine
  • II. Püsivara seadistamine
  • III. Ubidotsi rakenduste arendus (sündmused, muutujad ja armatuurlauad)

Samm: riistvara seadistamine

Riistvara seadistamine
Riistvara seadistamine
Riistvara seadistamine
Riistvara seadistamine

Tänu IPv67 reitingule on ultraheliandur MB7389-100 odav lahendus tööstuslikeks rakendusteks, millel on lai valik ja vähe energiatarbimist keerulistes ilmastikutingimustes.

Alustuseks peegeldage allolevat diagrammi, et kinnitada ultraheliandur sulgi HUZZAH ESP8266 külge.

MÄRKUS. Anduri näidud võivad olla analoognäidud või PWM; allpool selgitame PWM -i lugemise seadistust, lisateabe saamiseks vaadake ülaltoodud näiteid.

[Valikuliselt] asetage mikrokontroller ja andurid IP67 korpuse sisse, et kaitsta neid tolmu, vee ja muude ähvardavate keskkonnategurite eest. Tavaline ümbris näeb välja sarnane ülaltoodud fotodel näidatuga.

Samm: püsivara seadistamine

Püsivara seadistamine
Püsivara seadistamine
Püsivara seadistamine
Püsivara seadistamine

Esiteks peaksite installima Feather Huzzah Arduino IDE -sse ja koostama koodi. Ärge unustage seda seadistust kontrollida, tehes lihtsa vilkuva testi. Feather -seadme ühendamise kohta lisateabe saamiseks lugege seda kasulikku riistvara häälestamise juhendit.

Andurite andmete saatmiseks Ubidots IoT arendusplatvormile kopeerige ja kleepige allolev kood Arduino IDE -sse. Ärge unustage määrata WiFi-võrgu nime, parooli ja oma Ubidotsi konto luba, kui koodis on näidatud.

/******************************** Raamatukogud kaasas *************** **************** /#include /****************************** ** Konstandid ja objektid ******************************* //*Ubidots*/const char*SSID_NAME = "xxxxxxxx"; // Pane siia oma SSID nimiconst char* SSID_PASS = "xxxxxxxx"; // Pane siia oma paroolisõnade märk* TOKEN = "Assig_your_ubidots_token"; // Pane siia oma TOKENconst char* DEVICE_LABEL = "motion-control"; // Teie seadme etiketi koonumärk* VARIABLE_LABEL = "kaugus"; // Teie muutuja labelconst char* USER_AGENT = "ESP8266"; const char* VERSION = "1.0"; const char* HTTPSERVER = "industrial.api.ubidots.com"; // Ubidots Business kasutajad // const char* HTTPSERVER = " things.ubidots.com "; // Ubidots Educational usersint HTTPPORT = 80;/ * Ultraheliandur */const int pwPin1 = 5; // PWM -tihvt, kuhu andur on ühendatudWiFiClient clientUbi;/****************************************************** *************************** muutuja pikkus*/int dataLen (char* muutuja) {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); / * tühik väärtuste salvestamiseks saatmiseks * / char str_val [10]; /*---- Muudab andurite väärtused sümbolitüübiks -----* / /*4 on minimaalne laius, 2 on täpsus; ujuki väärtus kopeeritakse aadressile str_val* / dtostrf (sensor_value, 4, 2, str_val); /* Ehitab päringule saadetava keha* /sprintf (body, "{"%s / ":%s}", variable_label, str_val); /* koostab HTTP taotlus olla POST */sprintf (andmed, "POST /api/v1.6/devices/%s", seadme_märgis); sprintf (andmed, "%s HTTP/1.1 / r / n", andmed); sprintf (andmed, "%sHost: things.ubidots.com / r / n", andmed); sprintf (andmed, "%sUser-Agent:%s/%s / r / n", andmed, USER_AGENT, VERSION); sprintf (andmed, " %sX-Auth-Token: %s / r / n", andmed, TOKEN); sprint f (andmed, "%sConnection: sulge / r / n", andmed); sprintf (andmed, "%sContent-Type: application/json / r / n", andmed); sprintf (andmed, " %sContent-Length: %d / r / n / r / n", andmed, dataLen (keha)); sprintf (andmed, "%s%s / r / n / r / n", andmed, keha); / * Esialgne ühendus */ clientUbi.connect (HTTPSERVER, HTTPPORT); / * Kontrollige kliendiühendust */ if (clientUbi.connect (HTTPSERVER, HTTPPORT)) {Serial.println (F ("Muutujate postitamine:")); Serial.println (andmed); / * Saada HTTP päring */ clientUbi.print (andmed); } / * Kui klient on saadaval, lugege serveri vastust * / while (clientUbi.available ()) {char c = clientUbi.read (); Serial.write (c); } / * Vaba mälu * / vaba (andmed); vaba (keha); / * Peata klient */ clientUbi.stop ();}

ProTip: saate kontrollida, kas teie seade on õigesti ühendatud, avades Arduino IDE jadamonitori.

Saate kontrollida, kas seade on loodud teie Ubidotsi taustaprogrammis, vaadates seda oma kontol Seadmehaldus -> Seadmed.

Kui klõpsate oma seadmel, leiate muutuja nimega "kaugus", kuhu anduri näidud salvestatakse. See nimi määrati koodis, mille olete just Arduino IDE -sse kleepinud. Kui soovite oma automaatseid muutujaid kohandada, tehke seda, muutes seadmekaarti või vilgutades värskendatud koodi, millel on teie rakenduse jaoks õige muutujate nomenklatuur.

Kuna Feather HUZZAH ESP8266 on ühendatud ja annab andmeid Ubidotidele, on nüüd aeg rakendus üles ehitada, kasutades Ubidotsi hoolikalt kavandatud koodivaba rakenduse konfiguratsiooni.

Samm: Ubidotsi rakenduste arendamine

Ubidotsi rakenduste arendamine
Ubidotsi rakenduste arendamine
Ubidotsi rakenduste arendamine
Ubidotsi rakenduste arendamine
Ubidotsi rakenduste arendamine
Ubidotsi rakenduste arendamine

Ubidotsi sündmuste konfiguratsioon

Praegused näidud, mille Ubidotidele saadame, on kaugsisendid. Nende näitude teisendamiseks soovitud väljundiks, mida me soovime - loendatud ühikud -, peaksime looma sündmuse, järgides neid samme:

  1. Praeguse seadme "motion-control" sees looge uus vaikemuutuja nimega "kastid", mis saab iga uue üksuse loendamisel 1.
  2. Avage Seadmehaldus -> Sündmused ja klõpsake uue sündmuse lisamiseks lehe paremas ülanurgas sinist plussikooni.
  3. Konfigureerige oma sündmus, mis algab sõnaga „Kui käivitab”:
  • Valige muutuja: "kaugus"
  • Väärtus: väärtus (vaikimisi)
  • On väiksem või võrdne [maksimaalne eeldatav kaugus} anduri ja mööduvate kastide vahel*meie rakendus nõuab 500 mm
  • 0 minutiks
  • Salvesta

4. Kui päästikud on teie rakenduse spetsifikatsioonidele konfigureeritud, klõpsake tingimusliku toimingu lisamiseks paremas ülanurgas oranžil plussmärgi ikoonil.

5. Valige toiminguks „Määra muutuja”.

6. Järgmisena vali eelnevalt loodud vaikemuutuja "kastid" ja väärtus "1".

7. Salvesta muudatused. Kui sündmus on õigesti seadistatud, saadab see "1" iga kord, kui anduri ja seadme vaheline kaugus on pikem kui näidatud lävi, mis viitab sellele, et läheduses pole ühtegi objekti - ja see peaks loendama uue seadme, mis just möödus.

Kaardilt Feather specific Device leiate, et muutuja "kastid", kuhu saadetakse "1", kui üksuse kohalolekut tajutakse.

Eriti kasulik tööstuslikel konveierilintidel ja selle prototüübi loendamisel saab kohandada nii, et see sobiks erinevate keskkondade või riistvaraga lihtsalt teie kodeerimisel või rakenduste arendamisel.

8. Kujutage ette tajutavate ühikute arvu (või objekti tuvastamise kordi). Nüüd loome muutuja "kastid" abil uue veereva akna muutuja, mis summeerib muutujast "kastid" saadud näitude koguhulga määratletud rämpspost (minutid, tunnid, päevad, nädalad jne). Selle arenduse teostamiseks toimige järgmiselt.

Määrake oma uuele jooksva akna muutujale järgmised volikirjad

Seadme valimine: liikumiskontroll (või selle seadme nimi, kuhu andmed saadate)

Muutuja valimine: kastid

Arvutage: summa

Iga: "1" tund (või vastavalt teie taotlustele)

Nüüd määrake uuele muutujale nimi, mis näitab tunni jooksul loendatud kastide (või liikumiste) arvu, nagu näiteks "kastid/tund" või "ühikud/tunnid".

6. samm: armatuurlaua konfiguratsioonid

Armatuurlaua konfiguratsioonid
Armatuurlaua konfiguratsioonid

Lõpuks looge armatuurlaud, et kuvada tuvastatud ühikute arv.

Avage Seadmehaldus -> Juhtpaneelid ja lisage uus vidin. See vidin kuvab täna loendatud kastide arvu tundide kaupa.

Määrake oma uuele vidinale järgmised mandaadid, et oma loendust visualiseerida.

Kuidas soovite oma andmeid näha?: Diagramm

Valige vidina tüüp: joonediagramm

Seadme lisamine: liikumise juhtimine

Lisage muutuja: kastid tunnis

Lõpetama. Ja selle armatuurlaua viimase arendusega - teie rakendus on valmis ja teil on nüüd tõhus ja tulemuslik liikumise ja kohaloleku tuvastamise süsteem. Siin on viimane ülevaade meie tulemustest.

Soovitan: