Sisällysluettelo:

Liiketunnistusjärjestelmän rakentaminen Arduinolla: 7 vaihetta
Liiketunnistusjärjestelmän rakentaminen Arduinolla: 7 vaihetta

Video: Liiketunnistusjärjestelmän rakentaminen Arduinolla: 7 vaihetta

Video: Liiketunnistusjärjestelmän rakentaminen Arduinolla: 7 vaihetta
Video: KIINANWEBASTOON HUKKALÄMMÖN TALTEENOTTO JÄRJESTELMÄN RAKENNUS KOKONAISUUDESSAAN 2024, Marraskuu
Anonim
Kuinka rakentaa liiketunnistusjärjestelmä Arduinolla
Kuinka rakentaa liiketunnistusjärjestelmä Arduinolla

Rakenna liike- ja läsnäolotuottolaskuri Feather HUZZAH -ohjelmistolla, joka on ohjelmoitu Arduinolla ja powered by Ubidots.

Tehokas fyysisen liikkeen ja läsnäolon havaitseminen älykkäissä kodeissa ja älykkäässä valmistuksessa voi olla erittäin hyödyllistä sovelluksissa, jotka vaihtelevat ikääntyneistä AAL -ratkaisuista (AAL) tai tuotannonlaskentajärjestelmästä, joka ruokkii suurempaa MES: ää. Muita liikkeen ja läsnäolon havaitsemisen sovelluksia ovat muun muassa seuraavat:

  1. Ovien ja porttien automaatio
  2. Pysäköintianturit ilmaisten paikkojen osoittamiseen
  3. Säiliön tason etävalvonta
  4. Älykkäät kodit ja tilat valaistukseen ja turvallisuuteen
  5. Yksiköiden havaitseminen ja laskeminen kuljetinlinjoissa
  6. Merkki tunnistus painetuissa materiaaleissa
  7. Nesteen tunnistus pahvin, muovin ja paperin kallistuksissa
  8. Etäisyyden tunnistus
  9. Ihmiset laskurit

Vaikka on olemassa monia sovelluksia läsnäololle ja liikkeelle, on yhtä monta dataa keräävää anturia, kuten kapasitiivisia, induktiivisia, valosähköisiä ja ultraääni -antureita. Kustannuksista, ympäristöolosuhteista ja tarkkuusvaatimuksista riippuen on valittava ympäristön ja sovelluksen vaatimuksiin parhaiten sopiva laitteisto.

Tässä opetusohjelmassa keskitymme reaaliaikaisen tuotantolaskurin rakentamiseen; sovellus laskee kaikki kuljetinhihnalla ohittavat yksiköt. Käytämme Arduino IDE: tä Feather HUZZAH ESP8266: n, ultraäänianturin ja Ubidotien ohjelmoimiseen sovelluksemme kehittämiseksi ja IoT -kojelaudan näyttämiseksi.

Vaihe 1: Vaatimukset

  1. Höyhen HUZZAH ja ESP8266MB7389-100
  2. Ultraääni -anturi
  3. Arduino IDE 1.8.2 tai uudempi
  4. Ubidots -tili tai STEM -lisenssi

Vaihe 2: Asennus

  • I Laitteiston asennus
  • II. Laiteohjelmiston asennus
  • III. Ubidots -sovellusten kehittäminen (tapahtumat, muuttujat ja koontinäytöt)

Vaihe 3: Laitteiston asennus

Laitteiston asennus
Laitteiston asennus
Laitteiston asennus
Laitteiston asennus

Ultraääni-anturi MB7389-100 on edullinen vaihtoehto teollisiin sovelluksiin, joissa IPv67-luokituksen ansiosta on laaja valikoima ja alhainen virrankulutus vaativissa sääolosuhteissa.

Aloita peilaamalla alla oleva kaavio ja kiinnitä ultraäänianturi Feather HUZZAH ESP8266 -laitteeseen.

HUOMAUTUS: Anturin lukema voi olla analoginen tai PWM; alla selitämme PWM -lukemisen asetukset, lisätietoja on yllä olevissa esimerkeissä.

[Valinnaisesti] aseta mikro-ohjain ja anturit de IP67 -kotelon sisään suojaamaan niitä pölyltä, vedeltä ja muilta uhkaavilta ympäristötekijöiltä. Vakiokotelo näyttää samanlaiselta kuin yllä olevissa kuvissa.

Vaihe 4: Laiteohjelmiston asennus

Laiteohjelmiston asennus
Laiteohjelmiston asennus
Laiteohjelmiston asennus
Laiteohjelmiston asennus

Ensin sinun on asennettava Feather Huzzah Arduino IDE: hen ja koottava koodi. Muista tarkistaa tämä asetus tekemällä yksinkertainen vilkkuva testi. Lisätietoja Feather -laitteen liittämisestä on tässä hyödyllisessä laitteiston asennusoppaassa.

Jos haluat lähettää anturitietoja Ubidots IoT Development Platformille, kopioi ja liitä alla oleva koodi Arduino IDE: hen. Muista määrittää Wi-Fi-verkon nimi, salasana ja Ubidots-tunnuksesi, jos koodi on mainittu.

/******************************** Kirjastot mukana *************** ****************/#sisältää /****************************** ** Vakiot ja objektit ******************************* //*Ubidots*/const char*SSID_NAME = "xxxxxxxx"; // Laita tähän SSID -nimimerkkisi char* SSID_PASS = "xxxxxxxx"; // Kirjoita tähän salasanasicon* char* TOKEN = "Assig_your_ubidots_token"; // Laita tähän TOKENconst char* DEVICE_LABEL = "motion-control"; // Laitteesi labelconst char* VARIABLE_LABEL = "distance"; // Muuttuva labelconst char* USER_AGENT = "ESP8266"; const char* VERSION = "1.0"; const char* HTTPSERVER = "industrial.api.ubidots.com"; // Ubidots Business -käyttäjät // const char* HTTPSERVER = " things.ubidots.com "; // Ubidots Educational usersint HTTPPORT = 80;/ * Ultraäänianturi */const int pwPin1 = 5; // PWM -nasta, johon anturi on kytkettyWiFiClient clientUbi;/********************************************** **************************** muuttujan*/int dataLen pituus (char* muuttuja) {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); / * Tila tallennettaville arvoille * / char str_val [10]; /*---- Muuntaa anturien arvot char-tyypiksi -----* / /*4 on vähimmäisleveys, 2 on tarkkuus; float-arvo kopioidaan str_val* / dtostrf (sensor_value, 4, 2, str_val); /* Rakentaa kehon lähetettäväksi pyyntöön* /sprintf (body, "{"%s / ":%s}", variable_label, str_val); /* Rakentaa HTTP: n pyyntö olla POST */sprintf (data, "POST /api/v1.6/devices/%s", device_label); 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); sprintti 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 (body)); sprintf (data, "%s%s / r / n / r / n", data, teksti); / * Ensimmäinen yhteys */ clientUbi.connect (HTTPSERVER, HTTPPORT); / * Tarkista asiakasyhteys */ if (clientUbi.connect (HTTPSERVER, HTTPPORT)) {Serial.println (F ("Muuttujien lähettäminen:")); Serial.println (data); / * Lähetä HTTP -pyyntö */ clientUbi.print (data); } / * Kun asiakas on käytettävissä, lue palvelimen vastaus * / while (clientUbi.available ()) {char c = clientUbi.read (); Serial.write (c); } / * Vapaa muisti * / vapaa (data); vapaa (runko); / * Pysäytä asiakas */ clientUbi.stop ();}

ProTip: voit tarkistaa, onko laitteesi kytketty oikein, avaamalla sarjamonitori Arduino IDE: ssä.

Voit varmistaa, että laite on luotu Ubidots -taustajärjestelmässäsi, katsomalla sitä tililläsi Laitehallinta -> Laitteet.

Napsauttamalla laitettasi löydät muuttujan nimeltä "etäisyys", johon anturin lukemat tallennetaan. Tämä nimi on annettu koodissa, jonka olet juuri liittänyt Arduino IDE: hen. Jos haluat säätää automaattisia muuttujia, tee se muokkaamalla laitekorttia tai vilkkumalla päivitetty koodi, joka sisältää sovelluksellesi sopivan muuttujan nimikkeistön.

Kun Feather HUZZAH ESP8266 on yhdistetty ja raportoi tietoja Ubidotsille, on nyt aika rakentaa sovellus käyttämällä Ubidotsin huolellisesti suunniteltuja koodittomia sovellusmäärityksiä.

Vaihe 5: Ubidots -sovellusten kehittäminen

Ubidots -sovellusten kehittäminen
Ubidots -sovellusten kehittäminen
Ubidots -sovellusten kehittäminen
Ubidots -sovellusten kehittäminen
Ubidots -sovellusten kehittäminen
Ubidots -sovellusten kehittäminen

Ubidots -tapahtumakokoonpano

Nykyiset lukemat, jotka lähetämme Ubidotsille, ovat etäisyydet. Jos haluat kääntää nämä lukemat haluttuun lähtöön, jonka haluamme - lasketut yksiköt -, meidän on luotava tapahtuma seuraavasti:

  1. Luo nykyisen laitteen "liikeohjaus" luo uusi oletusmuuttuja "laatikot", joka saa 1: n aina, kun uusi yksikkö lasketaan.
  2. Siirry Laitehallinta -> Tapahtumat -kohtaan ja lisää uusi tapahtuma napsauttamalla sivun oikeassa yläkulmassa olevaa sinistä plus -kuvaketta.
  3. Määritä tapahtuma, joka alkaa "Jos laukaisee":
  • Valitse muuttuja: "etäisyys"
  • Arvo: arvo (oletus)
  • On pienempi tai yhtä suuri kuin [suurin odotettu etäisyys} anturin ja ohitettavien laatikoiden välillä*sovelluksemme vaatii 500 mm
  • 0 minuutin ajan
  • Tallentaa

4. Kun liipaisimet on määritetty sovelluksesi määritysten mukaan, lisää ehdollinen toiminto napsauttamalla oranssia "plus" -kuvaketta oikeassa yläkulmassa.

5. Valitse toiminnoksi "Aseta muuttuja".

6. Valitse seuraavaksi aiemmin luotu oletusmuuttuja "laatikot" ja arvo "1".

7. Tallenna muutokset. Jos tapahtuma on asetettu oikein, se lähettää "1" joka kerta, kun anturin ja laitteen välinen etäisyys on pidempi kuin ilmoitettu kynnys, mikä viittaa siihen, että lähellä ei ole mitään - ja sen pitäisi laskea juuri ohitettu yksikkö.

Höyhenkohtainen laite -kortista löydät muuttujat "laatikot", joihin "1" lähetetään aina, kun yksikön läsnäolo havaitaan.

Tämä prototyyppi on erityisen hyödyllinen teollisille kuljetinhihnoille ja yksiköiden laskemiselle.

8. Visualisoi havaittujen yksiköiden lukumäärä (tai kuinka monta kertaa kohde havaittiin) Luomme nyt "laatikot" -muuttujan avulla uuden liikkuvan ikkunan muuttujan, joka summaa muuttujan "laatikot" vastaanottamien lukujen kokonaismäärän määritetty roskapostia (minuutteja, tunteja, päiviä, viikkoja jne.). Suorita tämä kehitys noudattamalla näitä yksinkertaisia ohjeita:

Määritä seuraavat kirjautumistiedot uudelle ikkunan muuttujalle

Valitse laite: liikeohjaus (tai sen laitteen nimi, jolle lähetät tietoja)

Valitse muuttuja: laatikot

Laske: summa

Joka 1 tunti (tai hakemuksesi mukaan)

Anna nyt uudelle muuttujalle nimi, joka ilmaisee laatikoiden (tai liikkeiden) lukumäärän tunnissa, aivan kuten "laatikot/tunti" tai "yksiköt/tunnit".

Vaihe 6: Kojelaudan asetukset

Kojelaudan kokoonpanot
Kojelaudan kokoonpanot

Luo lopuksi kojelauta havaittujen yksiköiden lukumäärän näyttämiseksi.

Siirry kohtaan Laitehallinta -> Koontinäytöt ja lisää uusi widget. Tämä widget näyttää ruutujen määrän, joka on laskettu tänään, eriteltynä tunneittain.

Määritä seuraavat tiedot uudelle widgetillesi, jotta voit visualisoida laskusi.

Miten haluat nähdä tietosi?: Kaavio

Valitse widgetin tyyppi: viivakaavio

Lisää laite: liikeohjaus

Lisää muuttuja: laatikot/tunti

Viedä loppuun. Tämän viimeisen koontinäyttökehityksen avulla - sovellus on valmis ja sinulla on nyt tehokas ja tehokas liikkeen ja läsnäolon havaitsemisjärjestelmä. Tässä on viimeinen katsaus tuloksiin.

Suositeltava: