Talaan ng mga Nilalaman:

Kumpletuhin ang Arduino-based Vehicle GPS + GPRS Anti-steal System: 5 Hakbang (na may Mga Larawan)
Kumpletuhin ang Arduino-based Vehicle GPS + GPRS Anti-steal System: 5 Hakbang (na may Mga Larawan)

Video: Kumpletuhin ang Arduino-based Vehicle GPS + GPRS Anti-steal System: 5 Hakbang (na may Mga Larawan)

Video: Kumpletuhin ang Arduino-based Vehicle GPS + GPRS Anti-steal System: 5 Hakbang (na may Mga Larawan)
Video: 15 MOST INNOVATIVE PERSONAL TRANSPORTS CURRENTLY IN DEVELOPMENT 2024, Nobyembre
Anonim
Image
Image
Ang Hardware
Ang Hardware

Kumusta kayong lahat!

Nais kong bumuo ng isang kumpletong solusyon para sa isang aparato ng anti-steal na sasakyan ng GPS, na kung saan ay:

bilang mura hangga't maaari

bilang kumpleto hangga't maaari

bilang ito-gumagana-lamang-walang-ibang-to-gawin hangga't maaari

Kaya't nagtapos ako sa pagbuo ng isang solusyon na nakabatay sa Arduino na nagkakahalaga sa akin ng kabuuang 25 $, higit pa o mas kaunti.

Tulad ng nakikita mo mula sa video, gumagana lang ito! Sinimulan mo ang kotse, nakakakuha ka ng isang abiso sa iyong mobile phone na ang kotse ay gumagalaw, pagkatapos ay buksan mo ang mobile app at maaari mong makita ang kotse na gumagalaw sa real time (na may isang segundo ng pag-update ng 10 segundo).

Gagabayan ka ng tutorial na ito sa lahat ng mga hakbang, na isinasaalang-alang maraming mga sangkap sa solusyon:

1) ang hardware (nakabatay sa Arduino)

2) ang software (Arduino program)

3) higit pang software (pagtanggap ng server sa mga lokasyon ng gps)

4) mas maraming software (ang mobile app)

Simulan na natin..

Hakbang 1: Ang Hardware

Ang Hardware
Ang Hardware

Listahan ng bibilhin:

1) Arduino Uno R3 o clone. Ginamit ko ang clone na "DCcEle DCcduino uno", na tila hindi na magagamit. Narito ang isang katumbas: sa Aliexpress - 3.75 $

2) Yunit ng GPS para sa Arduino (GY-NEO6MV2 bagong module ng GPS na may Flight Control Flight Control EEPROM MWC APM2.5 malaking antena NEO6MV2). Ginamit ko ito: sa Aliexpress - 6.66 $

3) GPRS / GSM unit para sa Arduino (SIM800L V2.0 5V Wireless GSM GPRS MODULE Quad-Band W / Antenna Cable Cap). Ginamit ko ito: sa Aliexpress - 6.71 $

4) Spare dupont cables tulad nito: sa Aliexpress - 0.89 $

5) IoT data sim card (o anumang iba pang sim card na may koneksyon sa data). Ginamit ko ito: mula sa Hologram.io. Mayroon akong isang libreng developer, bayad lamang sa pagpapadala - 7.50 $

Kabuuan: 25.51 $, ngunit mayroon na ako ng mga kable kaya mas mababa ito pagkatapos ng $ 25!

Ipinapakita ng dalawang larawan ang mga bahagi bago tipunin, at ang pangwakas na produkto. Ang mga koneksyon na kailangan mong gawin ay:

Arduino - SIM800L

10 - I-reset

GND - GND (2 sa kanila)

5v - 5v

7 - SIM_TXD

8 - SIM_RXD

Arduino - GY-NEO6MV2

GND - GND

5v - VCC

3 - RX

4 - TX

Ikonekta ang lahat ng mga kable at antena at tiyaking magpapalakas ka sa Arduino mula sa isang mapagkukunan na may kakayahang bigyan ka ng mga tuktok ng 2A. Ang computer usb ay bahagyang maayos (Gumagamit ako ng isang MacBook Pro), isang "random" na charger ng telepono ay hindi sapat. Karamihan sa mga kotse usb outlet din ay mas mababa sa 1A. Kung ito ang iyong kaso, kailangan mo rin ng isang 12v car 5v power supply na may hindi bababa sa 2A.

Ipasok ang sim card. Kung gumagamit ka ng Hologram.io sim card, tiyaking nagparehistro ka sa kanilang dashboard at buhayin ang sim card (tumatagal ng ilang minuto / oras).

Hakbang 2: Ang Software (Arduino Program)

Ang Software (Arduino Program)
Ang Software (Arduino Program)

Ipagpalagay kong pamilyar ka sa Arduino na programa. Kung hindi man, mangyaring magsimula sa gabay na ito: sa Mga Instructable.

Kailangan mo lamang ng isang panlabas na silid-aklatan, kailangan ko itong i-install nang manu-mano. Pumunta dito: TinyGPS, i-export ang library, at i-install ito sa iyong lokal na folder ng Arduino.

Mula doon, "magnakaw" namin ang ilang code mula sa kanilang pangunahing halimbawa, at babaguhin ito sa aming mga layunin.

Kami ay "magnanakaw" mula sa patnubay na ito at baguhin ang code muli sa aming mga layunin.

Ang resulta ay ang naka-attach na.ino program.

Mayroong isang pares ng mga bagay na maaari mong at DAPAT mag-tweak:

ang tumutukoy sa "SECONDS", at ang "SERVER" ay tumutukoy.

Itinakda ko ang SECONDS sa 10 at narito kung bakit: binibigyan ka ng programa ng developer ng Hologram.io ng 1mb ng libreng data bawat buwan. Na nangangahulugang, nais naming i-minimize ang mga ipinadala na byte, ngunit kailangan din naming i-update ang aming posisyon nang madalas. Gagamitin namin ang karaniwang mga utos ng modem AT upang magpadala ng mga packet ng UDP sa aming server na tumatanggap ng mga mensahe, na may lat / lon, bawat isa ay gumagamit ng 4 bytes, at bilis na gumagamit ng 1 byte. Kaya't ang kabuuang pag-update ng gps ay 20 bytes (IP header) plus 8 bytes (UDP header) plus 9 bytes (payload). 37 bytes yan. Ipagpalagay na ang aking kotse ay aktibo hindi hihigit sa 2 oras bawat araw, makakaya ko ang isang pag-update bawat 10 segundo at ubusin lamang ang 806kb sa isang buwan (31 araw). Nagbibigay iyon sa akin ng 218kb para sa oras ng pagmamaneho kaysa sa aking sarili, iyon ay, ang magnanakaw ng kotse. Na nagbibigay sa akin ng 16.76 na oras ng pagsubaybay ng gps sa labas ng aking oras sa pagmamaneho, na may isang pag-update bawat 10 segundo.

Ngayon, ang mga packet ng UDP na ito ay kailangang pumunta sa kung saan. Gumagamit ako ng isang server ng Ubuntu na naka-host sa isang cloud ng CloudAtCost, na binili ko para sa 8 $ na may isang 80% na diskwento, at kung alin ang nagsisilbi sa akin ng iba pang mga layunin, sa gayon ay hindi napupunta sa mga kalkulasyon ng gastos. Kung hindi mo nais na magbayad para sa isang server, maaari kang makakuha ng isang libreng halimbawa ng Amazon AWS para sa 12months, at mai-install dito ang Ubuntu. Kapag mayroon ka nang pag-set up ng iyong server (tingnan ang susunod na hakbang), kunin ang static IP address nito, at ilagay ito sa tabi ng kahulugan ng SERVER.

Hakbang 3: Higit pang Software (Tanggap ng server sa panig ng Mga Lokasyon ng Gps)

Parehong CloudAtCost at Amazon ay mayroong isang paunang naka-configure na imahe ng Ubuntu (CloudAtCost ay nasa Ubuntu 14.04). Kaya't hindi ako dumadaan sa mga hakbang upang mai-install ang Ubuntu, dahil hindi mo na kailangan. Kung gumagamit ka ng CloudAtCost, baka gusto mong mag-upgrade sa Ubuntu 16.04, tapos na sa isang

sudo apt-get update && sudo apt-get upgrade && sudo apt-get dist-upgrade

Pagkatapos ay kailangan mong i-install ang LAMP (sumangguni sa patnubay na ito: dito), kahit na hindi kami gagamit ng PHP.

I-install ang Python gamit ang

sudo apt-get install python-minimal pip

Pagkatapos magdagdag ng isang pares ng mga module:

i-install ang pip - gumagamit ng mga kahilingan sa urllib3

Kailangan naming itakda / var / www na maisusulat mo, kaya't gawin natin:

sudo adduser IYONG_USER www-datasudo chown -R www-data: www-data / var / www

sudo chmod -R g + rwX / var / www

Ngayon, kailangan namin ng isang "server" upang i) makatanggap ng mga packet ng UDP, ii) itayo ang track, iii) magpadala ng isang abiso sa aming mobile phone, at isang "server" upang maihatid ang nilikha na track ng gps (ito ay magiging apache).

Para sa unang server, kopyahin ang nakalakip na code ng sawa. Kailangan mong i-configure ang mga sumusunod na bagay:

iftttuser = "IYONG USTTT USER"

iftttpass = "IYONG IFTTT PASSWORD"

iftttappletid = "ANG IYONG IFTTT NOTIFICATION APPLET"

iftttkey = "ANG IYONG IFTTT KEY"

iftttevent = "IYONG PANGYAYARI IFTTT"

Tulad ng nahulaan mo, gumagamit kami ng IFTTT sa mga real-time na notification ng server sa aming mga mobile phone. Sundin ang gabay na ito: dito ngunit sa halip na piliin ang "padalhan ako ng isang sms", piliin ang "magpadala ng isang abiso sa app". Kunin ang iyong applet id (mag-scroll sa ilalim ng pagsasaayos ng applet upang makita ito) at gamitin iyon sa itaas. Gamitin din ang susi na nilikha sa mga setting sa itaas. Ang kaganapan ng IFTTT ay ang pangalang ibinigay mo sa iyong applet, binigyan ko ito ng "carmoving".

Ngayon, walang mga real-time na platform ng mga notification ng real-time nang libre, AFAIK. Kung may alam ka sa isa, ipaalam sa akin. Ang IFTTT ay may pagkaantala. Ang pagkaantala na ito ay maaaring mabawasan ng ilang segundo kung gagamitin mo ang email trigger. Sa kasamaang palad, hindi ito maaasahan. Ang bagong nilikha na webhook ay may pagkaantala ng 15 minuto. Ngunit hindi namin nais na maghintay ng 15 minuto upang malaman na ang aming sasakyan ay ninakaw, tama? Iyon ang password ng pagtatanong sa iyo na i-setup ang lahat ng mga setting sa itaas. Kung i-scroll mo ang code ng sawa, nakikita mo na may ilang mga linya, katulad ng 45-53, upang i-automate ang pagpapaandar na "suriin ngayon" ng IFTTT, na pinipilit ang isang biglaang pag-check ng mga nag-trigger, at nagpapalitaw ng abiso nang mas mababa sa 1 segundo! Walang anuman:)

Kapag na-setup mo na ang iyong python code sa kung saan, patakbuhin lamang ito. Kung ikaw ay isang gumagamit ng pro, simulan ito sa server boot. Sumangguni sa tonelada ng mga libreng gabay sa online kung paano ito gawin, halimbawa ang isang ito.

Hakbang 4: Kahit na Mas Maraming Software (ang Mobile App)

Kahit Higit pang Software (ang Mobile App)
Kahit Higit pang Software (ang Mobile App)
Kahit Higit pang Software (ang Mobile App)
Kahit Higit pang Software (ang Mobile App)
Kahit Higit pang Software (ang Mobile App)
Kahit Higit pang Software (ang Mobile App)
Kahit Higit pang Software (ang Mobile App)
Kahit Higit pang Software (ang Mobile App)

Kailangan namin ng isang mabilis at simpleng paraan upang mailarawan lamang ang track ng gps na pinapanatiling napapanahon ng server sa nakaraang hakbang. Posibleng, kailangan itong gumana sa lahat ng uri ng smartphone.

Gumamit tayo pagkatapos ng isang cross-platform mobile app suite, tulad ng Ionic / Cordova. Gumagamit ako ng Ionic v1, huwag malito ito sa Ionic Native, o Ionic v2, ibang bagay iyan.

Sundin ang mga napaka-simpleng hakbang na ito upang simulan ang iyong unang proyekto sa Ionic: dito.

Pagkatapos, kailangan mong magsimula ng isang bagong proyekto batay sa google maps sdk, tulad nito:

ionic simulan ang myapp maps

Pumunta sa folder na "mga mapagkukunan" at kopyahin ang malaking imahe ng kotse dito bilang "icon.png". I-upload sa halip ang maliliit na mga icon bilang "car2.png" at "start.png" sa isang lugar sa iyong server, tulad ng https://yourserver/car2.png. Kakailanganin mo ang mga ito bilang mga marker sa iyong app.

Gamitin ang nakalakip na index.html (palitan ang pangalan ng index.html.txt sa index.html), directives.js, at mga Controllers.js file, at ilagay ang mga ito sa www (index.html), www / js (lahat ng js).

idagdag ang iyong platform tulad nito:

ionic magdagdag ng plaftorm android

bumuo ng tulad nito:

ionic build android

pagkatapos sasabihin sa iyo ng ionic kung saan itinayo nito ang iyong.apk na maaari mong mai-install sa iyong mobile phone.

Upang bumuo para sa iOS, kakailanganin mo ng isang Mac, at Xcode. Pagkatapos ay maaaring i-save ng ionic ang isang proyekto sa Xcode, na maaari mong buksan sa Xcode at bumuo para sa iyong telepono. Kung wala kang isang iOS developer account, kakailanganin mong ikabit ang iyong telepono sa Xcode at i-setup ang iyong telepono para sa pagpapaunlad upang mai-install ang app doon. Ito ay nasa labas ng saklaw ng pagtuturo na ito.

Sa iba't ibang mga js file, kakailanganin mong hanapin ang mga linya na naaayon sa "car2.png" at "start.png" at baguhin ang mga ito sa landas ng iyong mga imahe. Parehas para sa "plan.json".

Ayan yun!!

Hakbang 5: Gawain sa Hinaharap

1) Inilagay ko ang lahat sa isang karton na kahon na maaari kong itago saanman malapit sa usb outlet. Ang pinakamahusay na bagay na dapat gawin ay ang pag-mount ng isang mas mahusay na kaso sa ilalim ng hood ng kotse, na may 12v-> 5v converter.

2) Sa pamamagitan ng isang Bluetooth sensor, maaari mo talagang "maunawaan" kung nasa kotse ka, kaya't hindi mai-on ang gps system.

3) Magbayad lamang para sa isang plano ng data ng sim at itakda ang mga SECONDS sa 1 upang masiyahan sa pagsubaybay ng super-real-time:)

Inaasahan kong nasiyahan ka sa unang turo kong ito!

Inirerekumendang: