Orodha ya maudhui:

Moduli ya Kufuatilia Waendeshaji Baiskeli: Hatua 5
Moduli ya Kufuatilia Waendeshaji Baiskeli: Hatua 5

Video: Moduli ya Kufuatilia Waendeshaji Baiskeli: Hatua 5

Video: Moduli ya Kufuatilia Waendeshaji Baiskeli: Hatua 5
Video: Пляжи и смотровые площадки Сан-Диего в КАЛИФОРНИИ: от Ла-Хойи до Пойнт-Лома | влог 3 2024, Novemba
Anonim
Kufuatilia Moduli kwa Wanaendesha Baiskeli
Kufuatilia Moduli kwa Wanaendesha Baiskeli

Moduli hii ya ufuatiliaji kwa waendesha baiskeli ni moduli ambayo hutambua kiotomatiki shambulio kwenye mbio, na ambayo hugundua kuvunjika kwa mitambo kwa kugusa sensa ya kugusa. Wakati moja ya hafla hizi zinatokea, moduli hutuma hafla hiyo kwenye hifadhidata kwenye pi ya raspberry kupitia LoRa. Hafla hii itaonyeshwa kwenye onyesho la LCD na kwenye wavuti. Unaweza pia kutafuta kwenye wavuti kwa mbio maalum ya baiskeli na hafla, na kuongeza mbio za baiskeli au baiskeli kwenye hifadhidata. Nilifanya mradi huu kwa sababu ninavutiwa sana na Baiskeli na IOT, kwa hivyo kuchanganya masomo haya mawili yalinifurahisha sana.

Kabla ya kufanya moduli ya ufuatiliaji kwa waendesha baiskeli, unahitaji kukusanya vifaa vyako. Unaweza kupata zana na vifaa kwenye orodha zilizo hapa chini, au unaweza kupakua BOM (Ujenzi wa Vifaa).

Ugavi:

  • glasi ya plexi (56mm X 85mm)
  • 10 X 2M bolts 10mm na karanga
  • 10 X 3M bolts 10mm na karanga
  • 2 X 3M bolts 50mm na karanga
  • PLA Filament kwa 3D-chapa kesi yako ya LCD
  • kupungua kwa joto
  • Kamba za kiume hadi za Kike
  • PCB ya msingi
  • Vichwa vya kiume
  • Raspberry Pi 3b +
  • Kadi ya SD ya 16GB
  • LCD ya 4X20 ya sparkfun
  • Sensor ya kugusa ya capacitive
  • Buzzer
  • Axe ya 3-axcelero + mita ya gyro
  • Moduli ya GPS
  • Bodi ya SODAQ Mbili
  • Moduli ya LoRa WAN
  • Betri ya 3.7V 1000mAh
  • Usambazaji wa umeme wa Raspberry Pi 3b +

Zana:

  • Bati ya Solder
  • Chuma cha kulehemu
  • Vifungo
  • Bisibisi
  • Jigsaw
  • Mashine ya kuchimba visima
  • Kuchimba visima 2.5 na 3.5
  • Bunduki nyepesi / ya moto ya hewa

Ikiwa unahitaji kununua vifaa vyote, utahitaji bajeti ya € 541.67. Mradi huu ni ghali sana kwa sababu nilitumia kitanda cha maendeleo cha Rapa chenye gharama ambacho kinagharimu € 299 (nilipata nafasi ya kutumia zana hii kutoka shule yangu). Unaweza kutumia Arduino ya kawaida kila wakati kuokoa pesa nyingi, lakini programu zitakuwa tofauti wakati huo.

Hatua ya 1: Mpango wa Fritzing

Mpango wa Fritzing
Mpango wa Fritzing
Mpango wa Fritzing
Mpango wa Fritzing

Hatua ya kwanza ni kujenga nyaya. Kwa mradi huu tuna nyaya 2 za umeme, moja na Raspberry Pi na moja iliyo na bodi ya SADAQ Mbili. Tutaanza na mzunguko wa Raspberry Pi.

Mpango wa Raspberry Pi Fritzing:

Mpango wa Raspberry Pi ni rahisi sana, kitu pekee ambacho tunaunganisha na Pi ni onyesho la 4X20 Sparkfun LCD. Onyesho hufanya kazi na mawasiliano ya serial, SPI au I2C. Itifaki ya mawasiliano unayotumia ni juu yako. Nilitumia itifaki ya SPI kwa sababu ni rahisi sana. Ikiwa unatumia SPI kama mimi, unahitaji miunganisho ifuatayo:

  • VCC LCD VCC Raspberry Pi
  • GND LCD GND Raspberry Pi
  • SDI LCD MOSI (GPIO 10) Raspberry Pi
  • SDO LCD MISO (GPIO 9) Raspberry Pi
  • SCK LCD SCLK (GPIO 11) Raspberry Pi
  • CS LCD CS0 (GPIO 8) Raspberry Pi

Kwenye mpango wa Fritzing utaona kuwa onyesho la LCD ni onyesho la 2X16. Hii ni kwa sababu sikupata 4X20 LCD kwenye frizting. Walakini, viunganisho vyote ni vingine kwa hivyo haijalishi sana.

Mpango wa SODAQ Mbili Fritzing:

Tutaunganisha vifaa 4 vya elektroniki na bodi ya SODAQ Mbili, kwa hivyo mpango huu wa umeme pia ni rahisi sana. Tutaanza na kuunganisha sensorer ya kugusa inayofaa. Sensorer hii OUT-pin itakuwa juu wakati sensorer inaguswa, na itakuwa chini CHINI vinginevyo. Hii inamaanisha pini ya OUT ni pato la dijiti ambalo tunaweza kuunganisha na pembejeo ya dijiti ya bodi ya Mbili. Viunganisho ni kama ifuatavyo:

  • Sensorer kugusa D5 Mbili
  • Sensa ya kugusa ya VCC 3.3V Mbili
  • Sensorer ya kugusa ya GND GND Mbili

Sehemu ya pili ni sensorer ya Triple + gyro sensor. Nilitumia bodi ya GY-521 inayotumia itifaki ya I2C kuwasiliana na bodi ya Mbili. Kumbuka kuwa pini ya AD0 ya bodi ya GY-521 inahitaji kuunganishwa na VCC ya bodi ya Mbili! Hii ni kwa sababu bodi ya Mbili ina saa iliyo na anwani sawa ya I2C kama GY-521. Kwa kuunganisha pini ya AD0 na VCC tunabadilisha anwani ya I I ya C ya GY-521. Viunganisho ni kama ifuatavyo:

  • VCC GY-521 3.3V Mbili
  • GND GY-521 GND Mbili
  • SCL GY-521 SCL Mbili
  • SDA GY-521 SDA Mbili
  • AD0 GY-521 3.3V Mbili

Baada ya hapo tutaunganisha Buzzer. Ninatumia buzzer ya kawaida ambayo hufanya sauti wakati kuna ya sasa. Hii inamaanisha tunaweza kuunganisha tu buzzer na pini ya dijiti ya bodi ya Mbili. Viunganisho ni kama ifuatavyo:

  • + Buzzer D4 Mbili
  • - Buzzer GND Mbili

Mwishowe, tutaunganisha moduli ya GPS. Moduli ya GPS inawasiliana kupitia RX na TX. Viunganisho ni kama ifuatavyo:

  • VCC GPS 3.3V Mbili
  • GND GPS GND Mbili
  • TX GPS RX Mbili
  • RX GPS TX Mbili

Hatua ya 2: Hifadhidata ya kawaida

Hifadhidata ya kawaida
Hifadhidata ya kawaida

Hatua ya pili ni kubuni Hifadhidata ya kawaida. Nimebuni ERD yangu katika Mysql. Utaona hifadhidata yangu imeandikwa kwa lugha ya Uholanzi, nitaelezea meza hapa.

Jedwali 'ploeg':

Jedwali hili ni meza ya vilabu vya baiskeli. Inayo kitambulisho cha kilabu cha baiskeli na jina la kilabu cha baiskeli.

Meza 'wapya':

Jedwali hili ni meza ya waendesha baiskeli. Kila baiskeli ana LoRaID wich pia ni Ufunguo wa Msingi wa meza. Pia wana jina, jina la kwanza, Nchi ya origen na kitambulisho cha kilabu cha baiskeli ambacho kinaunganishwa na meza ya kilabu cha baiskeli.

Jedwali 'plaatsen':

Jedwali hili ni meza ambayo huhifadhi maeneo huko Ubelgiji ambapo mashindano ya baiskeli yanaweza kufanyika. Inayo jina la jiji (ambalo ni Ufunguo wa Msingi) na mkoa ambao mji uko.

Jedwali 'wedstrijden':

Jedwali hili linahifadhi mbio zote za baiskeli. Kitufe cha Msingi cha meza ni kitambulisho. Jedwali pia lina jina la mbio za baiskeli, jiji la mbio ambalo linaunganishwa na meza ya maeneo, umbali wa mbio, jamii ya wapanda baiskeli na tarehe ya mbio.

Jedwali 'gebeurtenissen':

Jedwali hili linahifadhi matukio yote yanayotokea. Hii inamaanisha, wakati baiskeli anahusika katika ajali au ana uharibifu wa mitambo, hafla hiyo itahifadhiwa katika jedwali hili. Kitufe cha Msingi cha meza ni kitambulisho. Jedwali pia lina wakati wa hafla ya hafla, Latitudo ya msimamo, urefu wa nafasi, LoRaID ya mwendesha baiskeli na aina ya tukio (ajali au kuvunjika kwa mitambo).

Jedwali 'wedstrijdrenner':

Jedwali hili ni meza ambayo inahitajika kwa uhusiano wa wengi na wengi.

Hatua ya 3: Sajili Moduli yako ya LoRa

Sajili Moduli yako ya LoRa
Sajili Moduli yako ya LoRa

Kabla ya kuanza na nambari, unahitaji kusajili moduli yako ya LoRa kwenye lango la LoRa. Nilitumia kampuni ya mawasiliano nchini Ubelgiji iitwayo 'Proximus' ambayo inapanga mawasiliano kwa moduli yangu ya LoRa. Takwimu ambazo ninatuma na nodi yangu ya LoRa hukusanyika kwenye wavuti kutoka AllThingsTalk. Ikiwa unataka pia kutumia AllThingsTalk API kukusanya data yako, unaweza kujiandikisha hapa.

Baada ya kujiandikisha kwenye AllThingsTalk, unahitaji kusajili node yako ya LoRa. Ili kufanya hivyo, unaweza kufuata hatua hizi au unaweza kutazama picha hapo juu.

  1. Nenda kwenye 'Vifaa' kwenye menyu kuu
  2. Bonyeza kwenye 'Kifaa kipya'
  3. Chagua nodi yako ya LoRa
  4. Jaza funguo zote.

Sasa umemaliza! Takwimu zote unazotuma na nodi yako ya LoRa itaonekana kwenye kifaa chako cha AllThingsTalk. Ikiwa una shida yoyote na usajili, unaweza kushauriana kila wakati hati za AllThingsTalk.

Hatua ya 4: Kanuni

Kanuni
Kanuni
Kanuni
Kanuni
Kanuni
Kanuni
Kanuni
Kanuni

Kwa mradi huu tutahitaji lugha 5 za kuweka alama: HTML, CSS, Hati ya Java, Python (Flask) na lugha ya Arduino. Kwanza nitaelezea mpango wa Arduino.

Programu ya Arduino:

Mwanzoni mwa programu, ninatangaza anuwai kadhaa za Ulimwenguni. Utaona kwamba ninatumia SoftwareSerial kwa unganisho na GPS yangu. Hii ni kwa sababu bodi ya Mbili ina bandari mbili tu. Unaweza kuunganisha GPS kwa Serial0, lakini hautaweza kutumia kituo cha Arduino kwa utatuzi wakati huo. Hii ndio sababu ninatumia SoftwareSerial.

Baada ya Vigeuzi vya Ulimwenguni, ninatangaza kazi zingine ambazo hufanya iwe rahisi kusoma programu. Walisoma GPS coördinates, hufanya sauti ya buzzer, kutuma maadili kupitia LoRa,…

Kizuizi cha tatu ni kizuizi cha usanidi. Kizuizi hiki ni mwanzo wa programu ambayo huweka pini, mawasiliano ya serial na mawasiliano ya I2C.

Baada ya kuzuia kuanzisha inakuja programu kuu. Mwanzoni mwa kitanzi hiki kuu, ninaangalia ikiwa kifaa cha kugusa kinafanya kazi. Ikiwa ni hivyo, mimi hufanya sauti ya buzzer, hupata data ya GPS na kutuma maadili yote kupitia LoRa au Bluetooth kwa Raspberry PI. Baada ya sensorer ya kugusa, nilisoma maadili ya Accelerometer. Na fomula ninahesabu pembe halisi ya mhimili wa X na Y. Ikiwa maadili haya ni makubwa, tunaweza kuhitimisha kwamba mwendesha baiskeli alianguka. Wakati ajali inatokea, mimi hufanya sauti ya buzzer tena, kupata data ya GPS na kutuma maadili yote kupitia LoRa au Bluetooth kwa Raspberry PI.

Labda unafikiria: 'Kwa nini unatumia Bluetooth na LoRa?'. Hii ni kwa sababu nilikuwa na shida na leseni ya moduli ya LoRa niliyotumia. Kwa hivyo kufanya mpango ufanyie kazi demo yangu, ilibidi nitumie Bluetooth kwa muda.

2. Mwisho wa nyuma:

Mwisho wa nyuma ni ngumu kidogo. Ninatumia Flask kwa njia zangu ambazo zinapatikana kwa mwisho wa mbele, ninatumia socketio kusasisha kurasa za mwisho moja kwa moja kiotomatiki, ninatumia pini za GPIO kuonyesha ujumbe kwenye onyesho la LCD na kupokea ujumbe kupitia Bluetooth (haihitajiki ikiwa unatumia LoRa) na mimi hutumia Threading na Timers kusoma mara kwa mara AllThinksTalk API na kuanza seva ya chupa.

Ninatumia pia hifadhidata ya SQL kuhifadhi ajali zote zinazoingia, soma data ya kibinafsi ya baiskeli na data ya mbio. Hifadhidata hii imeunganishwa na mwisho-nyuma na pia inaendesha kwenye Raspberry Pi. Ninatumia 'Database.py' ya darasa kushirikiana na hifadhidata.

Kama unavyojua kutoka kwa mpango wa Fritzing, LCD imeunganishwa na Raspberry Pi kupitia itifaki ya SPI. Ili kuifanya iwe rahisi zaidi, niliandika darasa 'LCD_4_20_SPI.py'. Pamoja na darasa hili unaweza kubadilisha tofauti, badilisha rangi ya mwangaza, andika ujumbe kwenye skrini,…. Ikiwa unataka kutumia Bluetooth, unaweza kutumia darasa la 'SerialRaspberry.py'. Darasa hili linatawala mawasiliano ya serial kati ya moduli ya Bluetooth na Raspberry Pi. Kitu pekee unachohitaji kufanya ni kuunganisha moduli ya Bluetooth kwenye Raspberry Pi kwa kuunganisha RX kwa TX na virsa versa.

Njia za mwisho wa mbele zimeandikwa na sheria ya @ app.route. Hapa unaweza kutengeneza njia yako mwenyewe ya kuingiza au kupata data ndani au kutoka kwa hifadhidata. Hakikisha kuwa na majibu kila wakati mwishoni mwa njia. Huwa narudisha kitu cha JSON mwisho wa mbele, hata wakati kosa lilitokea. Unaweza kutumia ubadilishaji katika url kwa kuweka mpangilio wa ubadilishaji.

Ninatumia socketio kwa ukurasa wa wavuti na shambulio la mbio. Wakati Raspberry Pi inapata ajali, mimi hutoa ujumbe kwa mwisho wa mbele kupitia socketio. Mwisho wa mbele basi unajua kwamba lazima wasome hifadhidata tena kwa sababu kulikuwa na ajali mpya.

Utaona kwamba katika nambari yangu mawasiliano ya LoRa yamewekwa kwa amri. Ikiwa unataka kutumia LoRa, unahitaji kuanza kipima muda ambacho kinarudia kutuma ombi kwa AllThinksTalk API. Kutoka kwa API hii, utapokea maadili ya sensorer (GPS, Muda, Aina ya Ajali) ambayo hutumwa na nodi maalum ya LoRa. Unaweza kutumia maadili haya kuingiza ajali kwenye hifadhidata.

3. mwisho wa pindo:

Mwisho frond lina 3 lugha. HTML ya maandishi ya wavuti, CSS kwa alama ya wavuti na JavaScript kwa mawasiliano na mwisho wa nyuma. Nina kurasa 4 za wavuti za mradi huu:

  • Index.html ambapo unaweza kupata mbio zote za baiskeli.
  • Ukurasa ulio na ajali zote na uharibifu wa mitambo kwa mbio nzuri.
  • Ukurasa ambapo unaweza kuongeza mitungi kwenye hifadhidata na kuhariri timu yao.
  • Ukurasa ambapo unaweza kuongeza mbio mpya na washiriki wake wote kwenye hifadhidata.

Jinsi unavyozibuni ni kamili kwako. Unaweza kupata msukumo kutoka kwa wavuti yangu ikiwa unataka. Kwa bahati mbaya tovuti yangu imetengenezwa kwa lugha ya Uholanzi, samahani kwa hiyo.

Nina faili tofauti ya CSS na faili ya JavaScript kwa kila ukurasa. Kila faili ya JavaScript hutumia kuchota kupata data kutoka hifadhidata kupitia mwisho wa nyuma. Wakati hati inapokea data, html inabadilika kwa nguvu. Katika ukurasa ambapo unaweza kupata ajali na uharibifu wa mitambo, utapata ramani ambayo hafla zote zinafurahi. Nilitumia kijikaratasi kuonyesha ramani hii.

Unaweza kuangalia nambari zangu zote hapa kwenye Github yangu.

Hatua ya 5: Jenga Ujenzi

Jenga Ujenzi
Jenga Ujenzi
Jenga Ujenzi
Jenga Ujenzi
Jenga Ujenzi
Jenga Ujenzi

Kabla ya kuanza na ujenzi, hakikisha una vifaa vyote kutoka kwa BOM au kutoka kwa ukurasa wa 'Zana + za Ugavi'.

Raspberry Pi + LCD

Tutaanza na kesi ya Raspberry Pi. Unaweza alwas 3D kuchapisha kesi, hii pia lilikuwa wazo langu la kwanza. Lakini kwa sababu tarehe yangu ya mwisho ilikuwa inakaribia sana, niliamua kutoa kesi rahisi. Nilichukua kesi ya kawaida kutoka kwa Raspberry Pi, na nikachimba shimo kwa waya kutoka kwa onyesho langu la LCD. Ili kufanya hivyo, fuata tu hatua hizi rahisi:

  1. Piga shimo kwenye kifuniko cha kesi hiyo. Nilifanya hivyo kwa kuchimba visima vya 7mm kando ya kifuniko. Unaweza kuona hii kwenye picha hapo juu.
  2. Chukua waya kutoka kwa onyesho la LCD na uteleze kichwa kinapungua juu ya waya.
  3. Tumia bunduki nyepesi au moto ili kufanya kichwa kipungue.
  4. Vuta waya na kichwa kinapunguka kupitia shimo kwenye kesi hiyo, na uziunganishe tena kwenye LCD.

Sasa kwa kuwa uko tayari na kesi ya Raspberry Pi, unaweza kuanza na kesi ya onyesho la LCD. Nilichapisha 3D kesi hiyo kwa Uonyesho wangu wa LCD kwa sababu nimepata kesi mkondoni kwenye kiunga hiki. Ilinibidi tu kufanya mabadiliko kidogo kwenye urefu wa kesi hiyo. Unapofikiria kuchora ni mzuri, unaweza kusafirisha faili na uanze kuchapisha. Ikiwa haujui kuchapisha 3D, unaweza kufuata mafundisho haya juu ya jinsi ya kuchapisha 3D na fusion 360.

Ujenzi wa SODAQ MBili

Sikufanya kesi kwa bodi ya SODAQ Mbili. Nilitumia glasi ya plexi kuweka vifaa vyangu bila kesi kupangilia ujenzi. Ikiwa unataka kufanya hii pia, unaweza kufuata hatua hizi:

  1. Saini alama ya macho na vipindi vya bodi ya SODAQ Mbili. Vipimo ni: 85mm X 56mm
  2. Kata plexiglass na jigsaw.
  3. Weka vifaa vya elektroniki kwenye plexiglass na saini mashimo na penseli.
  4. Piga mashimo ambayo umetia saini tu na mashimo ya kusimama kwa kuchimba visima 3.5mm.
  5. Weka vitu vyote vya elektroniki kwenye plexiglass na bolts 3mm na karanga.
  6. Hatua ya mwisho ni kuweka mlolongo juu ya ubao wa Mbili. Unaweza kufanya hivyo kwa machafuko, lakini nilitumia bolts mbili za 3M 50mm na karanga 8 3M kuweka plexiglass juu ya bodi.

Ilipendekeza: