Talaan ng mga Nilalaman:

Homemade Realtime GPS Tracker (SIM800L, Ublox NEO-6M, Arduino): 8 Hakbang
Homemade Realtime GPS Tracker (SIM800L, Ublox NEO-6M, Arduino): 8 Hakbang

Video: Homemade Realtime GPS Tracker (SIM800L, Ublox NEO-6M, Arduino): 8 Hakbang

Video: Homemade Realtime GPS Tracker (SIM800L, Ublox NEO-6M, Arduino): 8 Hakbang
Video: GPS Module with Arduino- Ublox NEO-6M 2024, Nobyembre
Anonim
Homemade Realtime GPS Tracker (SIM800L, Ublox NEO-6M, Arduino)
Homemade Realtime GPS Tracker (SIM800L, Ublox NEO-6M, Arduino)

Kaya mayroon kang isang module ng GSM na namamalagi tulad ko? Gayundin isang GPS-tracker?

Parehas kami ng iniisip!

Sa mga itinuturo na ito, susubukan kong gabayan ka kung paano makakamit ang iyong layunin mula sa pananaw ng isang newbie.

Dahil wala akong dating kaalaman sa electrical engineering (upang maging matapat, ang proyekto ay hindi gaanong kailangan, ngunit nah), at walang bakas kung paano gumawa ng isang aparato na nagbobomba ng real-time na data sa isang webserver, nakakaranas ako ng maraming mga problema. Gayunpaman, sa kalaunan ay nakaya kong gumana ang mga bagay.

Kaya, sa tutorial na ito, nais kong bigyang-diin ang mga pagkakamali na maaaring magawa ng isang starter, at buuin ang proyekto nang naaayon.

Tandaan: Laging mag-ingat habang nagtatrabaho ka sa kuryente!

TANDAAN: Hindi ako propesyonal. Ang code ay maaaring hindi sapat na sopistikado para sa lahat ng iyong pangangailangan. Nilayon ang proyekto na maging isang "hobby project", ngunit! gumana ito para sa akin. At kung ito ay gumana para sa akin, gagana rin ito para sa iyo!

Hakbang 1: Mga Kinakailangan

Mga Pangangailangan
Mga Pangangailangan
Mga Pangangailangan
Mga Pangangailangan
Mga Pangangailangan
Mga Pangangailangan

GSM MODULE - SIM800L

  • Medyo maliit, madaling gamiting
  • May kakayahang gumamit ng mobile internet (GPRS)
  • Mura naman

MODYUL ng GPS - Ublox NEO6M

  • Maliit din
  • Mahusay na pinangangasiwaan ang trabaho nito

Ang isang microcontroller - maaaring maging anumang bagay - maaari mong gamitin ang sikat na Arduino Uno o ang Nano upang palayain ang ilang puwang

Baterya - Gumamit ako ng isang 18650 cell bilang pangunahing, at tanging mapagkukunan lamang ng kapangyarihan (Nominal 3.7V)

May hawak ng baterya - bakit? - dahil ang paghihinang ng isang bateryang 18650 ay medyo mapanganib dahil sa init.

DC-DC Boost Converter Step Up Module 5V - Dapat mayroon, dahil ang Arduino na ginamit ko ay nangangailangan ng 5V

Mga tool, pangunahing bagay na maaaring magamit:

Mga wire, soldering iron, breadboard para sa pagsubok

Hakbang 2: Pangunahing Konsepto

Pangunahing Konsepto
Pangunahing Konsepto

Ang pangunahing konsepto ng system ay ang mga sumusunod:

Binubuo ito ng 3 bahagi:

  1. Ang isang aparato - na mayroong tamang GPS-Coordinates at maaaring kumonekta sa isang server mula sa malayo at magpadala ng data dito
  2. Isang webserver - na maaaring makatanggap ng papasok na data - iimbak ito - at maghatid sa iba pang mga kliyente
  3. Ang platform - kung saan maaari nating tingnan ang mga coordinate - mainam na dapat itong maging isang mobile application, o isang website

Hakbang 3: Ang Modyul na SIM800L

Ang Module ng SIM800L
Ang Module ng SIM800L
Ang Module ng SIM800L
Ang Module ng SIM800L

Nahirapan ako sa modyul.

Nais kong magsimula sa ilang mga katangian at sanggunian.

Ayon sa datasheet:

  • Ito ay nagpapatakbo sa pagitan ng 3.4V - 4.4V
  • Maaari itong magpadala ng SMS, gumawa ng mga tawag sa boses sa iba pang mga telepono, at kahit kumonekta sa Internet!
  • Maaari kaming makipag-usap dito sa pamamagitan ng mga AT-command!
  • Maaari itong gumamit ng hanggang 2A sa pinakamataas na oras! Tandaan: malamang na hindi mo ito masusukat sa isang multimeter - dahil sa mababang mga rate ng pag-sample

Ang aking karanasan ay ang SIM800L sa ibaba 3.8V ay hindi talaga gumagana.

Para sa susunod na pagbisita sa impormasyon: datasheet

Kaya't ang iyong trabaho ay upang magbigay ng hindi bababa sa 3.8V sa module (perpekto na 4V), isang supply ng kuryente na naglalabas ng hindi bababa sa 2A.

Bago gamitin ang module sa pangwakas na aparato, iminumungkahi ko na magtaguyod ka ng komunikasyon sa iyong SIM800L at sa iyong computer upang matiyak na gumagana nang maayos ang iyong aparato.

Una sa mga bagay, plug in ang SIM Card tulad ng larawan sa itaas.

Upang ikonekta ito sa iyong PC, maaari mong gamitin ang isang USB sa TTL converter o isang Arduino.

Ngayon, sumama ako sa Arduino.

Ikonekta ang SIM800L VCC at GND sa iyong mga power source terminal.

Ikonekta ang TX sa Arduino ika-10 digital na pin, RX sa arduino ika-11 digital na pin.

I-download ang code, naka-link ako sa hakbang na ito.

Gamit ang code, maaari kang magpadala ng mga utos, at ibalik ang mga ito, sa iyong Serial Monitor.

Ang ilang mga simpleng utos:

AT Returns OK, kung ang koneksyon ay OK.

ATD + 123456789; Tumawag sa isang ibinigay na numero ng telepono. Tandaan: Huwag kalimutan na wakasan ito sa isang kalahating titik.

SA + CPIN? Ibinabalik ang katayuan ng SIM Card (naka-lock o hindi)

Kung nais mong magpadala ng isang SMS, kailangan mong wakasan ang iyong input sa isang espesyal na character, magagawa ito sa simbolong '$'.

Para sa susunod na kagiliw-giliw na mga utos iminumungkahi ko na basahin mo ito.

Mayroong iba't ibang mga utos, pamilyar sa kanila, talagang kapaki-pakinabang ang mga ito.

Mayroong isang pulang katayuan na LED na nagsasabi sa iyo kung anong operasyon ang SIM800L.

64 MS ON - 800MS OFF - Ang SIM800L ay hindi nakarehistro sa network.

64 MS ON - 3000MS OFF - Ang SIM800L ay nakarehistro sa network.

64 MS ON - 300MS OFF - Ang SIM800l ay nasa GPRS mode

Kung ang SIM800L ay patuloy na mag-restart pagkatapos ng halos 8-10 blinks, maaaring ito ay sanhi ng kakulangan ng mahusay na supply ng kuryente.

Kung hindi ka makakakuha ng OK pagkatapos ng AT, suriin ang mga kable! Kung mayroon kang isang multimeter, suriin ang pagpapatuloy ng mga wire.

Suriin ang mga koneksyon ng mga wires at solder joint! Gagana lang ang module kapag kumukurap.

Hakbang 4: Ublox Neo 6m

Ublox Neo 6m
Ublox Neo 6m
Ublox Neo 6m
Ublox Neo 6m

Ang ilang mga katangian

  • Pinakamataas na boltahe: 3.6V - Pinapagana ko ito gamit ang 3.3V pin ng Arduino
  • Ang Max na kasalukuyang gumuhit ay 67mA - upang mapagana mo ito mula sa arduino
  • Saklaw ng temperatura:: -40-85 Celsius (Sa palagay ko magkasya ito sa iyo)

Ang yunit na inorder ko ay mayroong isang antena na nakikita sa larawan, isaksak ko lang iyon sa kaukulang slot.

Ang aparato kapag may mga signal, kumikislap na may asul na LED.

Una, suriin kung paano gumagana ang isang GPS dito, kung hindi mo alam.

Kapag ang aparato ay nakabukas, at nakakahanap ng 3 mga satellite, nagpapadala ito ng maraming mga hiwalay na halaga ng kuwit sa Arduino tulad ng nasa itaas.

Upang matulungan ang aming trabaho, maaari naming gamitin ang ilang panlabas na libararies upang ma-parse ang data na ito upang mas mabasa ng tao.

Maaari mong gamitin ang TinyGps library o NeoGPS library. Ginamit ko ang ika-2 dahil iyon ay ang morelightweight.

Para sa pagsubok, kailangan mong ikonekta ang mga power pin sa arduino 3.3V at GND.

I-download ang code na ito, at gamitin ito sa iyong GPS. RX Digital pin 10, TX Digital pin 11

Tandaan: Huwag kalimutang gamitin ang module sa labas ng bahay, mas mabuti kapag walang ulap.

Pagkatapos ng kalahating minuto, dapat magpikit ang aparato at i-output ang iyong mga coordinate sa GPS!:)

Kapag, alam mo na ang iyong SIM800L at module ng GPS ay gumagana nang maayos, maaari kang pumunta sa susunod na hakbang.

Hakbang 5: Circuitry

Circuitry
Circuitry

Ang circuit ay tulad ng nasa larawan.

Kaya, ang 3.4V - 4.2V 18650 na baterya ay ang pangunahing mapagkukunan ng kuryente. Ang Sim800L ay nakakakuha ng enerhiya nang direkta mula rito. Mayroong isang kapasitor sa pagitan ng mga ito sa paralell upang mapabuti ang katatagan ng circuit.

Kapag pumili ka ng isang kapasitor, dapat kang pumili ng isang mababang ESR capactior.

Ang isang 5V step-up converter ay nagpapalakas ng boltahe ng baterya sa 5V (kailangan ng ir dahil gumagana ang Arduino sa 5V).

Ang 5V power rail ay konektado sa Nano dito. Ang Sim800L at Neo6m ay konektado kay Nano tulad ng nasa larawan. (Sim Tx-D10, SimRx-D11; NeoTX-D3, NeoRX-D4)

Ang D12 ay konektado sa RST, kaya't nakakapag-program namin ulit ang program (maliban sa SIM800L). TANDAAN: Ang reboot na methode na ito ay maaaring hindi ang pinakamahusay na kasanayan)

At ang panghuli, ang dalawang LEDS ay konektado sa NANO, upang masabi namin sa gumagamit, kung may anumang error na nangyayari.

Hakbang 6: Code

Ang code ay naka-attach sa Mga Instructable o tingnan ang github.

Maaari mong baguhin ito upang gumana nang maayos para sa iyong mga pangangailangan, o maaari mong gamitin ang code ng iba kung nais mo.

waitUntilResponse (); Ang pagpapaandar ng helper ay kinuha mula sa kanyang code. Suriin ang kanyang trabaho, at code din!

Sa madaling sabi, sa pag-andar ng pag-setup, kailangan naming paganahin ang koneksyon ng GPRS ng aming module na SIM800L. Alam namin kung ito ay matagumpay kung ang LED blinks mabilis. (setupGPRSConnection ())

Sa pagpapaandar ng loop - bawat 15 sec ang pagpapaandar ng sendData () ay tinatawag na - na mayroong kahilingan sa

Gumamit ako ng mga string ng query upang itulak ang data sa webserver sa format na ito:

ip adress / file.php? key = halaga & key = halaga hal.

Kung may anumang error na mangyayari, ang naaangkop na LED ay sindihan. (SIM, GPS)

Hakbang 7: Webserver

Webserver
Webserver

Para sa aming paggamit, sapat na ang isang simpleng magaan na webserver.

Mayroong ilang mga pagpipilian na maaari kang pumili mula sa:

  1. Maaari kang gumamit ng isang malayuang server ng isang kumpanya, na maaaring kailangan mong bayaran nang regular.
  2. Maaari mong gamitin ang iyong sariling computer. Iminumungkahi ko lamang ito para sa pagsubok, hindi talaga ito mahusay na patakbuhin ito 24/7, dahil sa pag-aaksaya ng enerhiya, mga isyu sa kaligtasan.
  3. Maaari kang gumamit ng isang maliit na computer, tulad ng Raspberry PI. Magaan, murang, hindi kumakain ng maraming lakas.

Sinubukan ko ang ika-2, at ika-3 na pagpipilian, mahusay silang gumana. Sa gayon, ang pangunahing hangarin ay hindi mga server ng mga itinuturo na ito, ngunit pinapahiwatig ko sa iyo ang ilang mga payo.

Kung gumagamit ka ng isang PC, gumagamit ka marahil ng Windows. Kung ako ay ikaw, mag-i-install ako ng isang Apache o XAMPP server dito.

Ang XAMPP ay mayroon nang PHP sa loob nito, bukod sa mayroon din itong HTML, Perl, at isang Database Managing System. Sa PHP, maaari kang gumawa ng isang dynamic na server. Kung nais mong gamitin ang lokal na server na iyong nagawa mula sa kahit saan sa mundo, kailangan mong magtalaga ng static IP sa iyong PC at gumawa ng ilang portforwarding. Isang kapaki-pakinabang na tutorial para sa static IP:

At ang buong bagay na pang-portforward:

Kung mayroon kang isang Raspberry, mahusay na kasanayan na gamitin ito. Maaari kang maging pamilyar sa mga utos ng Linux, at patakbuhin ang iyong sariling server 24/7.

Ang OS ay si Raspbian Jessie na may setup na walang ulo (walang keyboard, monitor) - Kinontrol ko ito sa aking computer na may koneksyon sa SSH.

Ginamit ko si Putty upang mag-log in sa aking Raspberry. Huwag kalimutang baguhin ang password ng iyong account, upang ang iba ay hindi makapag-log in sa iyo Pi. Ang default ay: pi, passw: raspberry.

Nag-install ako ng isang lighttpd webserver na may sqlite3. Mahusay na tutorial na nahanap dito:

Pangunahing ginamit ko ang PHP sa server code. Sa PHP maaari kang makatanggap ng data, basahin / isulat ang mga database - i-encode ang isang query sa isang json format, atbp.… Ang tutulong na ito ay makakatulong sa iyo ng marami, kung paano pamahalaan ang iyong database sa PHP.

Maaari mong tingnan ang aking code sa github din, sa folder ng server_files.

At syempre, kailangan mong paganahin ang pag-portforward sa iyong Pi sa iyong router, kung nais mong i-access iyon nang malayuan.

Hakbang 8: Pagtatapos / Karanasan

Ang isang enclosure ay gagawin pa.

Ang aking eksperto ay iyon, ang system ay gumagana hindi masyadong masama. Ngunit may mga pagpapabuti sa katatagan na naghihintay.

Kung hindi gumana ang tracker kasama ang code na aking na-attach, huwag mag-alala. Subukang tiyakin na ang SIM800L at NEO 6M ay gumagana tulad ng dapat. Maaari mong baguhin nang malaya ang aking code, o maghanap ng mas mahusay na isa. Inaasahan ko lang, na maipakita ko sa iyo ang isang halimbawa, kung paano mo makukumpleto ang proyektong ito.

Tumatanggap ako ng anumang payo, pagwawasto mula sa mga komento. Huwag mag-atubiling magtanong.

Inirerekumendang: