Talaan ng mga Nilalaman:

IDC2018IOT Leg Running Tracker: 6 Mga Hakbang
IDC2018IOT Leg Running Tracker: 6 Mga Hakbang

Video: IDC2018IOT Leg Running Tracker: 6 Mga Hakbang

Video: IDC2018IOT Leg Running Tracker: 6 Mga Hakbang
Video: Night 2024, Hulyo
Anonim
IDC2018IOT Leg Running Tracker
IDC2018IOT Leg Running Tracker

Lumabas kami sa ideyang ito bilang bahagi ng kursong "Internet Of Things" sa IDC Herzliya.

Ang layunin ng proyekto ay upang mapahusay ang mga pisikal na aktibidad na may kasamang pagpapatakbo o paglalakad gamit ang NodeMCU, ilang sensor at isang maaaring server. Ang resulta ng proyektong ito ay isang napaka kapaki-pakinabang na aparato ng IOT na maaaring ibaling sa hinaharap sa isang tunay na produkto ng produksyon na gagamitin kahit saan! Mangyaring ipaalam sa amin kung ano ang palagay mo:)

Bago ka magsimula, tiyaking mayroon ka:

* NodeMCU aparato.

* 1 Piezoelectric sensor.

* MPU6050 sensor.

* Isang malaking matrix.

* Elastic lubid.

* Firebase account.

Opsyonal:

* Maramihang sensor ng Piezoelectric

* multiplexer

Hakbang 1: Pag-set up at Pag-calibrate ng MPU6050

Image
Image

"loading =" tamad"

Pag-set up ng Piezo
Pag-set up ng Piezo

Mga tagubilin:

  • Ikonekta ang piezo sa 1M risistor (tingnan ang kalakip na larawan).
  • I-upload ang naka-attach na sketch.
  • Ikonekta ang aparato sa isang paa gamit ang nababanat na lubid.
  • Buksan ang "serial plotter".
  • Panoorin ang video na naka-attach sa hakbang na ito.

Hakbang 3: Pagsasama ng Mga Sensor sa Arduino

Image
Image
Pagsasama ng Mga Sensor sa Arduino
Pagsasama ng Mga Sensor sa Arduino

Nakita namin kung paano i-calibrate ang mga sensor, ngayon isasama namin ang pareho ng mga sensor sa NodeMCU!

  • Ikonekta ang parehong mga sensor sa aparato, gamitin ang parehong mga pin tulad ng sa mga hakbang 1 + 2.
  • I-load ang kalakip na sketch.
  • Ikonekta ang aparato gamit ang 2 sensor sa isang paa.
  • Buksan ang "serial plotter".
  • Panoorin ang kalakip na video.

Hakbang 4: Pagpapadala ng Data sa Cloud

Pagpapadala ng Data sa Cloud!
Pagpapadala ng Data sa Cloud!
Pagpapadala ng Data sa Cloud!
Pagpapadala ng Data sa Cloud!
Pagpapadala ng Data sa Cloud!
Pagpapadala ng Data sa Cloud!

Sa hakbang na ito ikokonekta namin ang aming aparato sa cloud at magpapadala ng data upang makita ang ilang mga kamangha-manghang mga tsart!

Gagamitin namin ang MQTT protocol at magpapadala ng data sa isang libreng server na tinatawag na "Adafruit".

TANDAAN: Hindi sinusuportahan ng Adafruit ang pagpapadala ng data ng ilang beses bawat segundo, gumagana ito sa mas mabagal na tulin, samakatuwid magpapadala kami ng isang average ng aming mga puntos ng data, at hindi ang mga data point mismo. Susubukan naming ibahin ang data mula sa aming 2 sensor sa average na data gamit ang mga sumusunod na pagbabago:

* Ang oras ng pagtuklas ng hakbang ay mababago sa mga hakbang bawat minuto. Ang tagal ng bawat hakbang ay matatagpuan ng (millis () - step_timestamp), at ang pag-average ay maaaring gawin gamit ang isang filter, tulad ng nakita natin dati: val = val * 0.7 + new_val * 0.3.

* Hakbang ng hakbang ay mababago sa average na lakas ng hakbang. Gagamitin namin ang parehong pamamaraan ng paggamit ng "max" para sa bawat hakbang, ngunit gagamit kami ng isang filter upang gumawa ng isang pag-average gamit ang average na filter = average * 0.6 + new_val * 0.4.

Mga tagubilin:

  • Ipasok ang website ng Adafruit sa address io.adafruit.com at tiyaking mayroon kang isang account.
  • Lumikha ng isang bagong dashboard, maaari mo itong pangalananang "Aking mga hakbang na detektor".
  • Sa loob ng dashboard, pindutin ang button na + at piliin ang "line chart", at lumikha ng feed na pinangalanang "steps_per_min".
  • Sa loob ng dashboard, pindutin ang button na + at piliin ang "line chart", at lumikha ng feed na pinangalanang "average_step_power".
  • Dapat mo na ngayong makita ang 2 walang laman na mga tsart para sa bawat isa sa mga patlang.
  • Gamitin ang naka-attach na sketch at itakda ang sumusunod na pagsasaayos:

USERNAME = iyong Adafruit username.

KEY = ang iyong Adafruit key

WLAN_SSID = Pangalan ng WIFI

WLAN_PASS = pumasa ang WIFI

mpuStepThreshold = Threshold mula sa hakbang 2

Pagkatapos ay maaari mong ikonekta ang aparato sa isang paa at ang sketch ay magpapadala ng mga data ng mga hakbang sa server!

Hakbang 5: Paggamit ng 2 Mga Device sa Parehong Oras

Paggamit ng 2 Mga Device sa Parehong Oras
Paggamit ng 2 Mga Device sa Parehong Oras
Paggamit ng 2 Mga Device sa Parehong Oras
Paggamit ng 2 Mga Device sa Parehong Oras

Sa hakbang na ito, gagayahin namin ang 2 tao na naglalakad kasama ang aparato nang sabay!

Gumagamit kami ng 2 magkakaibang mga aparato - na may parehong mga puntos ng data tulad ng ipinaliwanag sa hakbang 4.

Kaya't ito ay talagang madali, mayroong 3 simpleng gawain:

1) lumikha ng mga karagdagang feed para sa data mula sa ika-2 aparato, iminumungkahi namin ang pagbibigay ng isang post-fix ng "_2"

2) baguhin ang mga bloke sa dashboard upang ipakita ang data mula sa parehong feed.

3) palitan ang pangalan ng mga feed sa sketch ng pangalawang aparato.

4) Tingnan ang mga resulta!

TANDAAN:

Labanan ng adafruit ang data na masyadong mabilis, maaaring kailanganin upang ayusin ang dalas kung saan ipinapadala ang data sa server. gawin iyon sa pamamagitan ng paghahanap ng sumusunod sa sketch:

/ / Magpadala bawat 5 segundo na hindi lalampas sa limitasyon ng Adafruit para sa mga libreng gumagamit. // Kung gumagamit ka ng premium o iyong sariling server huwag mag-atubiling baguhin. // Sa tuwing magpadala ng isang alternating point ng data. kung (millis () - lastTimeDataSent> 5000) {

Hakbang 6: Mga Pagpapahusay, Mga Tala at Mga Plano sa Hinaharap

Ang pangunahing hamon:

Ang pangunahing hamon sa proyekto ay ang pagsubok sa NodeMCU sa isang pisikal na aktibidad. Madalas na nakakakonekta ang usb cable, at kapag sinusubukang lumipat nang mabilis ay maaaring may mga problema sa paglayo ng mga pin. Maraming beses na na-debug namin ang isang piraso ng code na talagang gumana, at ang problema ay nasa pisikal na larangan.

Nalampasan namin ang hamong ito sa pamamagitan ng pagdala ng laptop malapit sa runner, at pagsulat ng bawat piraso ng code nang paisa-isa.

Ang isa pang hamon ay upang gawing maayos ang pakikipag-ugnay ng iba't ibang mga bahagi:

  • Ang piezo na may acceleromter: Kinalot iyon tulad ng inilarawan sa hakbang 3, ng isang malikhaing ideya na mayroon kami.
  • Ang mga sensor sa server: tulad ng inilarawan sa hakbang 4, binago namin ang mga halaga sa iba pang mga halagang maaaring ipadala sa isang server sa isang mas mabagal na tulin.

Ang mga limitasyon ng system:

  • Kailangan ng pagkakalibrate bago magamit.
  • Kailangang gawing isang mas matibay na produkto, na hindi madaling masira sa isang pisikal na aktibidad.
  • Ang sensor ng piezoelectric ay hindi masyadong tumpak.
  • Kailangan ng koneksyon sa wifi. (Madaling malulutas gamit ang hotspot ng cell phone)

Mga plano sa hinaharap

Ngayon, na mayroon kaming isang ganap na gumaganang aparato sa pagmamanman ng paa may mga karagdagang pagpapahusay na maaaring magawa!

Maramihang mga piza!

  • Ikonekta ang mga piezos sa iba't ibang mga lugar sa paa.
  • Gumamit ng multiplexer dahil sinusuportahan lamang ng NodeMCU ang isang analog pin.
  • Maaaring magpakita ng isang mapa ng init ng paa upang ilarawan ang mga lugar ng epekto.
  • Maaaring gamitin ang data na ito upang lumikha ng mga alerto sa maling pustura at balanse ng katawan.

Maraming mga aparato!

  • Ipinakita namin sa iyo kung paano ikonekta ang 2 mga aparato sa parehong oras, ngunit maaari mong ikonekta ang 22 piezos sa 22 mga manlalaro ng soccer!
  • Maaaring mailantad ang data sa panahon ng laro upang maipakita ang ilang mga kagiliw-giliw na sukatan tungkol sa mga manlalaro!

Mga advanced sensor

Gumamit kami ng piezo at accelerometer, ngunit maaari kang magdagdag ng iba pang mga aparato na magpapayaman sa output at magbibigay ng higit pang data:

  • Tumpak na mga tamad upang makita ang mga yapak.
  • Sukatin ang distansya sa pagitan ng paa at lupa.
  • Sukatin ang distansya sa pagitan ng iba't ibang mga manlalaro (Sa kaso ng maraming mga aparato)

Inirerekumendang: