Talaan ng mga Nilalaman:
- Hakbang 1: Mga Kinakailangan
- Hakbang 2: Pag-setup
- Hakbang 3: Pag-setup ng Hardware
- Hakbang 4: Pag-setup ng Firmware
- Hakbang 5: Ubidots Development Development
- Hakbang 6: Mga Configurasyon ng Dashboard
Video: Paano Bumuo ng isang System ng Pagtuklas ng Paggalaw Sa Arduino: 7 Mga Hakbang
2024 May -akda: John Day | [email protected]. Huling binago: 2024-01-30 13:11
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:
- Automation ng pinto at gate
- Mga sensor ng paradahan upang italaga ang mga libreng spot
- Remote monitoring level ng tank
- Mga matalinong bahay at pasilidad para sa pag-iilaw at seguridad
- Ang mga yunit ng pagtuklas at pagbibilang sa mga linya ng conveyor
- Markahan ang pagtuklas sa mga nakalimbag na materyales
- Pagtuklas ng likido sa loob ng karton, plastik, at mga tilts ng papel
- Pagtuklas ng distansya
- 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
- Balahibo HUZZAH na may ESP8266MB7389-100
- Ultrasonic Sensor
- Arduino IDE 1.8.2 o mas mataas
- 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
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
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-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:
- 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.
- 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.
- 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
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:
Bumuo ng isang Nakasuot na Tracker ng Paggalaw (BLE Mula sa Arduino sa isang Pasadyang Android Studio App): 4 na Hakbang
Bumuo ng isang Nakasuot na Tracker ng Paggalaw (BLE Mula sa Arduino sa isang Pasadyang Android Studio App): Ang Bluetooth Low Energy (BLE) ay isang uri ng mababang komunikasyon sa Bluetooth na kapangyarihan. Ang mga naisusuot na aparato, tulad ng matalinong kasuotan na tinutulungan ko sa disenyo sa Predictive Wear, ay dapat na limitahan ang pagkonsumo ng kuryente hangga't maaari upang mapahaba ang buhay ng baterya, at madalas na magamit ang BLE.
Paggalaw sa Paggalaw Arduino Halloween Kalabasa: 4 Mga Hakbang
Motion Sensing Arduino Halloween Pumpkin: Ang layunin sa likod ng Instructable na ito ay upang lumikha ng isang murang, at madaling paraan upang gumawa ng mga dekorasyon ng Halloween sa bahay nang walang naunang kasanayan o anumang mga magarbong tool. Gumagamit ng madaling mapagkukunan ng mga item mula sa internet, maaari mo ring gawin ang iyong sariling simple at isinapersonal na H
Pinakamadaling Webcam Bilang isang Security Cam - Pagtuklas ng Paggalaw at Mga Larawan sa Email: 4 na Hakbang
Pinakamadaling Webcam Bilang isang Security Cam - Pagtuklas ng Paggalaw at Mga Larawan sa Email: Hindi mo na kailangang mag-download o mag-configure ng software upang makakuha ng mga nakitang kilos na larawan mula sa iyong webcam patungo sa iyong email - gamitin lamang ang iyong browser. Gumamit ng isang napapanahong Firefox, Chrome, Edge, o Opera browser sa Windows, Mac, o Android upang makuha ang larawan
Paano Bumuo ng isang CubeSat Sa Isang Arduino Sa Isang Arducam: 9 Mga Hakbang
Paano Bumuo ng isang CubeSat Gamit ang isang Arduino Na May isang Arducam: Sa unang larawan, mayroon kaming isang Arduino at ito ay tinatawag na " Arduino Uno. &Quot; Sa pangalawang larawan, mayroon kaming isang Arducam, at tinawag itong " Arducam OV2640 2MP mini. &Quot; Kasama ang pangalawang larawan, may mga materyales na kakailanganin mo upang
Paano Bumuo ng isang Guitar Speaker Box o Bumuo ng Dalawang para sa Iyong Stereo .: 17 Mga Hakbang (na may Mga Larawan)
Paano Bumuo ng isang Guitar Speaker Box o Bumuo ng Dalawang para sa Iyong Stereo .: Nais kong isang bagong speaker ng gitara na pumunta sa tubo na itinatayo ko. Ang tagapagsalita ay mananatili sa aking tindahan kaya't hindi ito kailangang maging anumang espesyal. Ang takip ng Tolex ay maaaring napakadaling masira kaya't sinabog ko lang ang itim sa labas pagkatapos ng isang magaan na buhangin