Talaan ng mga Nilalaman:

Paano Bumuo ng isang System ng Pagtuklas ng Paggalaw Sa Arduino: 7 Mga Hakbang
Paano Bumuo ng isang System ng Pagtuklas ng Paggalaw Sa Arduino: 7 Mga Hakbang

Video: Paano Bumuo ng isang System ng Pagtuklas ng Paggalaw Sa Arduino: 7 Mga Hakbang

Video: Paano Bumuo ng isang System ng Pagtuklas ng Paggalaw Sa Arduino: 7 Mga Hakbang
Video: How to Speed Up Windows 10 Performance (Tagalog) Paano Pabilisin ang mabagal na PC Settings Solution 2024, Hulyo
Anonim
Paano Bumuo ng isang System ng Pagtuklas ng Paggalaw Sa Arduino
Paano Bumuo ng isang System ng Pagtuklas ng Paggalaw Sa Arduino

Bumuo ng isang counter ng paggalaw at presensya gamit ang isang Feather HUZZAH na naka-program sa Arduino at pinalakas ng Ubidots.

Ang mabisang pisikal na paggalaw at pagkakaroon ng pagtuklas sa Smart Homes at Smart Manufacturing ay maaaring maging lubhang kapaki-pakinabang sa mga aplikasyon mula sa mga matatandang solusyon sa Ambient Assisted Living (AAL) o isang Sistema ng Pagbibilang ng Produksyon na nagpapakain ng mas malaking MES. Ang iba pang mga application para sa Motion at Presence Detection ay nagsasama ngunit hindi limitado sa:

  1. Automation ng pinto at gate
  2. Mga sensor ng paradahan upang italaga ang mga libreng spot
  3. Remote monitoring level ng tank
  4. Mga matalinong bahay at pasilidad para sa pag-iilaw at seguridad
  5. Ang mga yunit ng pagtuklas at pagbibilang sa mga linya ng conveyor
  6. Markahan ang pagtuklas sa mga nakalimbag na materyales
  7. Pagtuklas ng likido sa loob ng karton, plastik, at mga tilts ng papel
  8. Pagtuklas ng distansya
  9. Mga counter ng tao

Habang maraming mga application para sa pagkakaroon at paggalaw, mayroong pantay na maraming mga sensor upang mangolekta ng data, tulad ng capacitive, inductive, photoelectric, at ultrasonic sensors. Nakasalalay sa mga gastos, kondisyon sa kapaligiran, at mga kinakailangan sa kawastuhan, dapat piliin ng isa ang pinakamahusay na angkop na hardware para sa isang kinakailangan sa kapaligiran at aplikasyon.

Para sa tutorial na ito, magtutuon kami sa pagbuo ng isang real-time na counter ng produksyon; bibilangin ng application ang bawat yunit na dumadaan sa isang conveyor belt. Gagamitin namin ang Arduino IDE upang magprogram ng isang Feather HUZZAH ESP8266, isang ultrasonic sensor, at Ubidots upang paunlarin ang aming aplikasyon at ipakita ang aming IoT dashboard.

Hakbang 1: Mga Kinakailangan

  1. Balahibo HUZZAH na may ESP8266MB7389-100
  2. Ultrasonic Sensor
  3. Arduino IDE 1.8.2 o mas mataas
  4. Ubidots account-o Lisensya ng STEM

Hakbang 2: Pag-setup

  • Pag-setup ng Hardware
  • II. Pag-setup ng Firmware
  • III. Ubidots Application Development (mga kaganapan, variable, at dashboard)

Hakbang 3: Pag-setup ng Hardware

Pag-setup ng Hardware
Pag-setup ng Hardware
Pag-setup ng Hardware
Pag-setup ng Hardware

Ang Ultrasonic Sensor MB7389-100 ay isang pagpipilian na may mababang halaga para sa mga aplikasyon ng Pang-industriya na may malawak at saklaw na mga kinakailangang pagkonsumo ng lakas sa mapaghamong mga kondisyon ng panahon salamat sa rating ng IPv67.

Upang magsimula, i-mirror ang diagram sa ibaba upang ilakip ang ultrasonic sensor sa Feather HUZZAH ESP8266.

TANDAAN: Ang pagbabasa ng sensor ay maaaring tumagal bilang mga pagbasa sa analog o PWM; sa ibaba ay ipapaliwanag namin ang pag-set up para sa pagbabasa ng PWM, para sa karagdagang impormasyon mangyaring tingnan ang mga halimbawang ipinakita sa itaas.

[Opsyonal] ilagay ang micro-controller at ang mga sensor sa loob ng de IP67 case upang maprotektahan sila mula sa alikabok, tubig, at iba pang nagbabantang mga kadahilanan sa kapaligiran. Ang karaniwang kaso ay katulad ng ipinakita sa mga larawan sa itaas.

Hakbang 4: Pag-setup ng Firmware

Pag-setup ng Firmware
Pag-setup ng Firmware
Pag-setup ng Firmware
Pag-setup ng Firmware

Una, dapat mong i-install ang Feather Huzzah sa Arduino IDE at ipagsama ang code. Tandaang i-verify ang set up na ito sa pamamagitan ng paggawa ng isang simpleng pagsubok na kumukurap. Para sa karagdagang impormasyon tungkol sa pagkonekta ng iyong aparato ng Feather tingnan ang kapaki-pakinabang na gabay sa pag-set up ng hardware.

Upang magpadala ng data ng sensor sa Ubidots IoT Development Platform, kopyahin at i-paste ang code sa ibaba sa Arduino IDE. Alalahaning italaga ang pangalan ng Wi-Fi network, password, at ang iyong Ubidots account Token kung saan nakalagay sa code.

/ ***** ***** ** Mga pare-pareho at bagay ***** ***** ***** ***** // // Ubidots * / const char * SSID_NAME = "xxxxxxxx"; // Ilagay dito ang iyong SSID nameconst char * SSID_PASS = "xxxxxxxx"; // Ilagay dito ang iyong passwordconst char * TOKEN = "Assig_your_ubidots_token"; // Ilagay dito ang iyong TOKENconst char * DEVICE_LABEL = "control-control"; // Ang iyong aparato labelconst char * VARIABLE_LABEL = "distansya"; // Your variable labelconst char * USER_AGENT = "ESP8266"; const char * VERSION = "1.0"; const char * HTTPSERVER = "industrial.api.ubidots.com"; // Ubidots Business users // const char * HTTPSERVER = " bagay.ubidots.com "; // Ubidots Pang-edukasyon mga gumagamitint HTTPPORT = 80; / * Ultrasonic Sensor * / const int pwPin1 = 5; // Ang PWM pin kung saan nakakonekta ang sensor ***** haba ng variable * / int dataLen (char * variable) {uint8_t dataLen = 0; para sa (int i = 0; i distansya / 25.4 * / float distance = pulseIn (pwPin1, HIGH); sendToUbidots (DEVICE_LABEL, VARIABLE_LABEL, distansya); antala (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); / * Space upang mag-imbak ng mga halaga upang maipadala * / char str_val [10]; / * ---- Binabago ang mga halaga ng mga sensor sa uri ng char ----- * / / * 4 ay mininum lapad, 2 ay katumpakan; ang halaga ng float ay nakopya sa str_val * / dtostrf (sensor_value, 4, 2, str_val); / * Binubuo ang katawan upang maipadala sa kahilingan * / sprintf (body, "{"% s / ":% s}", variable_label, str_val); / * Binubuo ang HTTP hiling na maging POST * / sprintf (data, "POST /api/v1.6/devices/%s", device_label); sprintf (data, "% s HTTP / 1.1 / r / n", data); sprintf (data, "% sHost: bagay.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 (body)); sprintf (data, "% s% s / r / n / r / n", data, body); / * Paunang koneksyon * / clientUbi.connect (HTTPSERVER, HTTPPORT); / * I-verify ang koneksyon ng kliyente * / kung (clientUbi.connect (HTTPSERVER, HTTPPORT)) {Serial.println (F ("Pag-post ng iyong mga variable:")); Serial.println (data); / * Ipadala ang Kahilingan sa HTTP * / clientUbi.print (data); } / * Habang magagamit ang kliyente basahin ang tugon ng server * / habang (clientUbi.available ()) {char c = clientUbi.read (); Serial.write (c); } / * Libreng memorya * / libre (data); malaya (katawan); / * Itigil ang client * / clientUbi.stop ();}

ProTip: maaari mong suriin kung ang iyong aparato ay tama na konektado sa pamamagitan ng pagbubukas ng serial monitor sa Arduino IDE.

Maaari mong i-verify na ang isang aparato ay nilikha sa iyong backend ng Ubidots sa pamamagitan ng pagtingin nito sa iyong account Pamamahala sa Device -> Mga Device.

Sa pamamagitan ng pag-click sa iyong aparato, mahahanap mo ang isang variable na tinatawag na "distansya" kung saan nakaimbak ang mga pagbabasa ng sensor. Ang pangalan na ito ay itinalaga sa code na na-paste mo lamang sa Arduino IDE. Kung nais mong ayusin ang iyong mga awtomatikong variable, mangyaring gawin ito sa pamamagitan ng pag-edit ng Device card o sa pamamagitan ng pag-flash ng isang na-update na code gamit ang wastong variable ng nomenclature para sa iyong aplikasyon.

Sa pamamagitan ng koneksyon ng Feather HUZZAH ESP8266 at pag-uulat ng data sa Ubidots, oras na upang buuin ang application gamit ang maingat na idinisenyo na pagsasaayos ng application na walang code ang Ubidots.

Hakbang 5: Ubidots Development Development

Pag-unlad ng Application ng Ubidots
Pag-unlad ng Application ng Ubidots
Pag-unlad ng Application ng Ubidots
Pag-unlad ng Application ng Ubidots
Pag-unlad ng Application ng Ubidots
Pag-unlad ng Application ng Ubidots

Pag-configure ng Kaganapan sa Ubidots

Ang kasalukuyang mga pagbabasa na ipinapadala namin sa Ubidots ay mga input ng distansya. Para sa pagsasalin ng mga pagbabasa na ito sa nais na output na nais namin -mga unit na nabuo- dapat kaming lumikha ng isang kaganapan na sumusunod sa mga hakbang na ito:

  1. Sa loob ng kasalukuyang aparato "paggalaw-kontrol" lumikha ng isang bagong default variable na tinatawag na "mga kahon", na makakatanggap ng isang 1 tuwing bibilangin ang isang bagong yunit.
  2. Pumunta sa Pamamahala ng Device -> Mga Kaganapan, at i-click ang asul na plus na icon sa kanang sulok sa itaas ng pahina upang magdagdag ng isang bagong kaganapan.
  3. I-configure ang iyong kaganapan na nagsisimula sa "Kung nag-trigger":
  • Pumili ng variable: "distansya"
  • Halaga: halaga (default)
  • Ay mas mababa sa o katumbas ng [maximum na inaasahang distansya} sa pagitan ng sensor at mga kahon na dumadaan * tumatawag ang aming application ng 500mm
  • Para sa 0 minuto
  • Magtipid

4. Kapag na-configure ang mga pag-trigger sa mga pagtutukoy ng iyong application, i-click ang orange na "plus" na icon sa kanang sulok sa itaas upang magdagdag ng isang kondisyong aksyon.

5. Piliin ang "Itakda ang Variable" bilang aksyon.

6. Susunod, piliin ang dating nilikha na default variable na "mga kahon" at halagang "1".

7. I-save ang mga pagbabago. Kung ang kaganapan ay maayos na na-set up, magpapadala ito ng isang "1" tuwing ang distansya sa pagitan ng sensor at ng yunit ay mas mahaba kaysa sa isang ipinahiwatig na threshold, na nagpapahiwatig na walang bagay na malapit - at dapat bilangin ang isang bagong yunit na dumaan lamang.

Sa partikular na Feather card ng aparato, mahahanap mo na ang variable na "mga kahon" kung saan ipinapadala ang isang "1" anumang oras na nadama ang pagkakaroon ng isang yunit.

Lalo na kapaki-pakinabang para sa pang-industriya na conveyor sinturon at pagbibilang ng unit ng prototype na ito ay maaaring ipasadya upang magkasya sa iba't ibang mga kapaligiran o hardware sa iyong pag-coding o pag-unlad ng iyong mga application.

8. Mailarawan ang bilang ng mga unit na na-sensed (o kung kailan napansin ang isang bagay) Ngayon, gamit ang variable na "mga kahon", lilikha kami ng isang bagong variable ng window ng window upang mabuo ang kabuuang halaga ng mga pagbasa na natanggap mula sa variable na "mga kahon" sa isang tinukoy na spam (minuto, oras, araw, linggo, atbp). Upang maisagawa ang pag-unlad na ito, sundin ang mga simpleng hakbang na ito:

Italaga ang mga sumusunod na kredensyal sa iyong bagong variable ng lumiligid na window

Pumili ng isang aparato: control-control (o ang pangalan ng aparato na ipinapadala mo sa iyong data)

Pumili ng isang variable: mga kahon

Kalkulahin ang: kabuuan

Tuwing: "1" na oras (o ayon sa iyong mga kahilingan sa aplikasyon)

Ngayon magtalaga ng isang pangalan sa bagong variable na nagpapahiwatig ng bilang ng mga kahon (o paggalaw) na binibilang sa isang oras, tulad ng "mga kahon / oras" o "mga yunit / oras.

Hakbang 6: Mga Configurasyon ng Dashboard

Mga Configurasyon ng Dashboard
Mga Configurasyon ng Dashboard

Panghuli, lumikha ng isang dashboard upang maipakita ang bilang ng mga unit na naka-sensed.

Pumunta sa Pamamahala ng Device -> Mga Dashboard at magdagdag ng isang bagong widget. Ipapakita ng widget na ito ang dami ng mga kahon na binibilang ngayon na pinaghiwalay ng oras.

Italaga ang mga sumusunod na kredensyal sa iyong bagong widget upang mailarawan ang iyong bilang.

Paano mo nais na makita ang iyong data ?: Tsart

Pumili ng isang uri ng widget: tsart ng linya

Magdagdag ng isang aparato: paggalaw-control

Magdagdag ng variable: mga kahon / oras

Tapos na. At sa pangwakas na pag-unlad na dashboard na ito - kumpleto na ang iyong aplikasyon at mayroon ka na ngayong isang mahusay at mabisang sistema ng paggalaw at pagkakaroon ng presensya. Narito ang isang huling pagtingin sa aming mga resulta.

Inirerekumendang: