Სარჩევი:

ხელნაკეთი რეალურ დროში GPS Tracker (SIM800L, Ublox NEO-6M, Arduino): 8 ნაბიჯი
ხელნაკეთი რეალურ დროში GPS Tracker (SIM800L, Ublox NEO-6M, Arduino): 8 ნაბიჯი

ვიდეო: ხელნაკეთი რეალურ დროში GPS Tracker (SIM800L, Ublox NEO-6M, Arduino): 8 ნაბიჯი

ვიდეო: ხელნაკეთი რეალურ დროში GPS Tracker (SIM800L, Ublox NEO-6M, Arduino): 8 ნაბიჯი
ვიდეო: როგორ ვთქვა KIPPY? #კიპი (HOW TO SAY KIPPY? #kippy) 2024, ივლისი
Anonim
ხელნაკეთი რეალურ დროში GPS Tracker (SIM800L, Ublox NEO-6M, Arduino)
ხელნაკეთი რეალურ დროში GPS Tracker (SIM800L, Ublox NEO-6M, Arduino)

მაშასადამე თქვენ გაქვთ GSM მოდული, რომელიც ჩემნაირად დევს? ასევე GPS- ტრეკერი?

ჩვენც იგივეს ვფიქრობთ!

ამ ინსტრუქციებში, მე შევეცდები გიხელმძღვანელოთ, როგორ მიაღწიოთ თქვენს მიზანს ახალბედა პერსპექტივიდან.

რადგან მე არ მქონდა ელექტროტექნიკის წინა ცოდნა (სიმართლე გითხრათ, პროექტს არ სჭირდება ბევრი, მაგრამ არა) და არ მქონდა წარმოდგენა, თუ როგორ უნდა გამეკეთებინა მოწყობილობა, რომელიც მონაცემებს რეალურ დროში გადასცემს ვებ სერვერს, მე შევხვდი უამრავ პრობლემას. მიუხედავად ამისა, მე საბოლოოდ მოვახერხე საქმეების გამართვა.

ამრიგად, ამ გაკვეთილში მინდა ხაზი გავუსვა იმ შეცდომებს, რაც დამწყებმა შეიძლება დაუშვას და შესაბამისად ააშენოს პროექტი.

დაიმახსოვრეთ: ყოველთვის იყავით ფრთხილად ელექტროენერგიაზე მუშაობისას!

შენიშვნა: მე არ ვარ პროფესიონალი. კოდი შეიძლება არ იყოს საკმარისად დახვეწილი თქვენი ყველა საჭიროებისთვის. პროექტი მიზნად ისახავს იყოს "ჰობის პროექტი", მაგრამ! ის მუშაობდა ჩემთვის და თუ ის მუშაობდა ჩემთვის, ის ასევე იმუშავებდა თქვენთვის!

ნაბიჯი 1: წინაპირობები

წინაპირობები
წინაპირობები
წინაპირობები
წინაპირობები
წინაპირობები
წინაპირობები

GSM მოდული - SIM800L

  • საკმაოდ პატარა, ადვილად გამოსაყენებელი
  • მობილური ინტერნეტის გამოყენების შესაძლებლობა (GPRS)
  • იაფი

GPS მოდული - Ublox NEO6M

  • ასევე პატარა
  • ძალიან კარგად უმკლავდება თავის საქმეს

მიკროკონტროლი - შეიძლება იყოს ყველაფერი - თქვენ შეგიძლიათ გამოიყენოთ ცნობილი Arduino Uno ან Nano სივრცის გასათავისუფლებლად

ბატარეა - მე გამოვიყენე 18650 უჯრედი, როგორც ძირითადი და ერთადერთი კვების წყარო (ნომინალური 3.7V)

ბატარეის დამჭერი - რატომ? - რადგან 18650 ბატარეის შედუღება საკმაოდ საშიშია სიცხის გამო.

DC -DC Boost Converter Step Up მოდული 5V - უნდა ჰქონდეს, რადგან Arduino- ს მე ვიყენებ სჭირდება 5V

ინსტრუმენტები, ძირითადი ნივთები, რომლებიც შეიძლება გამოგადგეს:

მავთულები, გასაყიდი რკინა, პურის დაფა ტესტირებისთვის

ნაბიჯი 2: მთავარი კონცეფცია

მთავარი კონცეფცია
მთავარი კონცეფცია

სისტემის ძირითადი კონცეფცია შემდეგია:

იგი შედგება 3 ნაწილისგან:

  1. მოწყობილობა - რომელსაც აქვს შესაბამისი GPS კოორდინატები და შეუძლია სერვერთან დისტანციურად დაკავშირება და მონაცემების გაგზავნა
  2. ვებ სერვერი - რომელსაც შეუძლია შემომავალი მონაცემების მიღება - მისი შენახვა - და ემსახურება სხვა კლიენტებს
  3. პლატფორმა - სადაც შეგვიძლია კოორდინატების ნახვა - იდეალურ შემთხვევაში ის უნდა იყოს მობილური აპლიკაცია, ან ვებ გვერდი

ნაბიჯი 3: SIM800L მოდული

SIM800L მოდული
SIM800L მოდული
SIM800L მოდული
SIM800L მოდული

გამიჭირდა მოდულთან მუშაობა.

მინდა დავიწყო ზოგიერთი მახასიათებლით და მითითებით.

მონაცემთა ფურცლის მიხედვით:

  • მუშაობს 3.4V - 4.4V დიაპაზონში
  • მას შეუძლია SMS- ის გაგზავნა, ხმოვანი ზარების განხორციელება სხვა ტელეფონებზე და ინტერნეტთან დაკავშირებაც კი!
  • ჩვენ შეგვიძლია მასთან კომუნიკაცია AT- ბრძანებების საშუალებით!
  • მას შეუძლია გამოიყენოს 2A– მდე პიკის დროს! შენიშვნა: თქვენ ალბათ ვერ შეძლებთ მისი გაზომვას მულტიმეტრით - მისი შერჩევის დაბალი მაჩვენებლების გამო

ჩემი გამოცდილება არის ის, რომ SIM800L ქვემოთ 3.8V ნამდვილად არ მუშაობს.

დამატებითი ინფორმაციისთვის ეწვიეთ: მონაცემთა ცხრილს

ასე რომ, თქვენი სამუშაოა უზრუნველყოთ მოდულისთვის მინიმუმ 3.8 ვ (იდეალურად 4 ვ), ელექტროენერგიის მიწოდება, რომელიც გამოდის მინიმუმ 2 ა.

სანამ საბოლოო მოწყობილობაში გამოიყენებთ მოდულს, მე გირჩევთ დაამყაროთ კომუნიკაცია თქვენს SIM800L და თქვენს კომპიუტერთან, რათა დარწმუნდეთ, რომ თქვენი მოწყობილობა მუშაობს გამართულად.

პირველ რიგში, შეაერთეთ SIM ბარათი, როგორც ზემოთ მოცემულ სურათზე.

კომპიუტერთან დასაკავშირებლად შეგიძლიათ გამოიყენოთ USB to TTL გადამყვანი ან Arduino.

ახლა, არდუინოსთან ერთად მივდივარ.

შეაერთეთ SIM800L VCC და GND თქვენი კვების წყაროს ტერმინალებთან.

შეაერთეთ TX Arduino მე –10 ციფრულ პინთან, RX arduino– ს მე –11 ციფრულ პინთან.

ჩამოტვირთეთ კოდი, მე დავუკავშირდი ამ ნაბიჯს.

კოდის საშუალებით შეგიძლიათ გაგზავნოთ ბრძანებები და დააბრუნოთ ისინი თქვენს სერიულ მონიტორზე.

რამდენიმე მარტივი ბრძანება:

AT აბრუნებს OK, თუ კავშირი გამართულია.

ATD+123456789; დარეკეთ მოცემულ ტელეფონის ნომერზე. შენიშვნა: არ დაგავიწყდეთ მისი დასრულება მძიმით.

AT+CPIN? აბრუნებს SIM ბარათის სტატუსს (ჩაკეტილია თუ არა)

თუ გსურთ SMS- ის გაგზავნა, თქვენ უნდა დაასრულოთ თქვენი შეყვანა სპეციალური სიმბოლოთი, ეს შეიძლება გაკეთდეს "$" სიმბოლოთი.

შემდგომი საინტერესო ბრძანებებისათვის გირჩევთ წაიკითხოთ ეს.

არსებობს სხვადასხვა ბრძანებები, გაეცანით მათ, ისინი ნამდვილად სასარგებლოა.

არის წითელი სტატუსის LED რომელიც გეუბნებათ რა ოპერაციაშია SIM800L.

64 MS ON - 800MS OFF - SIM800L არ არის რეგისტრირებული ქსელში.

64 MS ON - 3000MS OFF - SIM800L რეგისტრირებულია ქსელში.

64 MS ON - 300MS OFF - SIM800l არის GPRS რეჟიმში

თუ SIM800L აგრძელებს გადატვირთვას დაახლოებით 8-10 მოციმციმე შემდეგ, ეს შეიძლება გამოწვეული იყოს ეფექტური ელექტრომომარაგების არარსებობით.

თუ AT– ის შემდეგ არ ხართ კარგად, შეამოწმეთ გაყვანილობა! თუ თქვენ გაქვთ მულტიმეტრი, შეამოწმეთ მავთულის უწყვეტობა.

შეამოწმეთ მავთულხლართებისა და შედუღების სახსრების კავშირი! მოდული იმუშავებს მხოლოდ მოციმციმედ.

ნაბიჯი 4: უბლოქსი ნეო 6 მ

უბლოქსი ნეო 6 მ
უბლოქსი ნეო 6 მ
უბლოქსი ნეო 6 მ
უბლოქსი ნეო 6 მ

ზოგიერთი მახასიათებელი

  • მაქსიმალური ძაბვა: 3.6V - მე მას ვიყენებდი Arduino– ს 3.3V პინით
  • მაქსიმალური მიმდინარე გათამაშება არის 67mA - ასე რომ თქვენ შეგიძლიათ მისი ენერგია არდუინოდან
  • ტემპერატურის დიაპაზონი: -40-85 გრადუსი ცელსიუსი (მგონი მოგიხდება)

ერთეული, რომელიც მე შევუკვეთე, მოყვა ანტენა, რომელიც ჩანს სურათზე, მე უბრალოდ ჩავრთავ შესაბამის სლოტში.

როდესაც სიგნალი აქვს, აციმციმდება ლურჯი LED.

პირველი, შეამოწმეთ როგორ მუშაობს GPS აქ, თუ არ იცით.

როდესაც მოწყობილობა ჩართულია და აღმოაჩენს 3 თანამგზავრს, ის აგზავნის უამრავ მძიმით გამოყოფილ მნიშვნელობას არდუინოში, როგორც ზემოთ.

ჩვენი სამუშაოს დასახმარებლად, ჩვენ შეგვიძლია გამოვიყენოთ გარე ბიბლიოთეკები, რომ გავაანალიზოთ ეს მონაცემები, რათა ადამიანებმა იკითხონ.

თქვენ შეგიძლიათ გამოიყენოთ TinyGps ბიბლიოთეკა ან NeoGPS ბიბლიოთეკა. მე მეორე გამოვიყენე, რადგან ეს უფრო მსუბუქი წონაა.

ტესტირებისთვის, თქვენ უნდა დაუკავშიროთ დენის ქინძისთავები arduino 3.3V და GND.

ჩამოტვირთეთ ეს კოდი და გამოიყენეთ იგი თქვენი GPS– ით. RX ციფრული პინი 10, TX ციფრული პინი 11

შენიშვნა: არ დაგავიწყდეთ მოდულის გამოყენება გარეთ, სასურველია, როცა ღრუბელი არ არის.

ნახევარი წუთის შემდეგ, მოწყობილობა უნდა აციმციმდეს და გამოუშვას თქვენი GPS კოორდინატები!:)

ერთხელ, თქვენ იცით, რომ თქვენი SIM800L და GPS მოდული მუშაობს ადექვატურად, შეგიძლიათ გადადით შემდეგ საფეხურზე.

ნაბიჯი 5: წრე

წრიული სქემა
წრიული სქემა

წრე არის როგორც სურათზე.

ასე რომ, 3.4V - 4.2V 18650 ბატარეა არის ენერგიის მთავარი წყარო. Sim800L იღებს ენერგიას პირდაპირ მისგან. მათ შორის არის კონდენსატორი პარალელურად, მიკროსქემის სტაბილურობის გასაუმჯობესებლად.

როდესაც აირჩევთ კონდენსატორს, თქვენ უნდა აირჩიოთ დაბალი ESR კაპაქტორი.

ერთი 5V გამაძლიერებელი გადამყვანი აძლიერებს ბატარეის ძაბვას 5V– მდე (ir საჭიროა, რადგან Arduino მუშაობს 5V– ით).

5V დენის რკინიგზა აქ ნანოს უკავშირდება. Sim800L და Neo6m დაკავშირებულია ნანოსთან, როგორც სურათზეა. (Sim Tx-D10, SimRx-D11; NeoTX-D3, NeoRX-D4)

D12 უკავშირდება RST– ს, ასე რომ ჩვენ შეგვიძლია პროგრამულად გადატვირთოთ სისტემა (SIM800L SIM– ის გარდა). შენიშვნა: ეს გადატვირთვის მეთოდი შეიძლება არ იყოს საუკეთესო პრაქტიკა)

და ბოლოს, ორი LEDS უკავშირდება NANO- ს, ასე რომ ჩვენ შეგვიძლია ვუთხრათ მომხმარებელს, თუ რაიმე შეცდომა ხდება.

ნაბიჯი 6: კოდი

კოდი თან ერთვის Instructables– ს ან გადახედეთ github– ს.

თქვენ შეგიძლიათ შეცვალოთ ის, რომ სწორად იმუშაოს თქვენი საჭიროებისთვის, ან შეგიძლიათ გამოიყენოთ სხვისი კოდი, თუ გსურთ.

waitUntilResponse (); დამხმარე ფუნქცია ამოღებულია მისი კოდიდან. შეამოწმეთ მისი ნამუშევარი და ასევე კოდი!

მოკლედ, დაყენების ფუნქციაში, ჩვენ უნდა გავააქტიუროთ ჩვენი SIM800L მოდულის GPRS კავშირი. ჩვენ ვიცით, წარმატებულია თუ არა LED სწრაფად აციმციმდება. (setupGPRSC კავშირი ())

მარყუჟის ფუნქციაში - ყოველ 15 წამში ეწოდება sendData () ფუნქცია - რომელსაც აქვს HTTP მოთხოვნა

გამოვიყენე შეკითხვის სტრიქონები, რომ გადავიტანო მონაცემები ვებ სერვერზე ამ ფორმატში:

ip adress/file.php? key = მნიშვნელობა & გასაღები = მნიშვნელობა მაგ.

თუ რაიმე შეცდომა მოხდება, შესაბამისი LED ანათებს. (SIM, GPS)

ნაბიჯი 7: ვებ სერვერი

ვებ სერვერი
ვებ სერვერი

ჩვენი გამოყენებისთვის, მარტივი მსუბუქი ვებ სერვერი საკმარისია.

არსებობს რამდენიმე ვარიანტი, რომელთაგან შეგიძლიათ აირჩიოთ:

  1. თქვენ შეგიძლიათ გამოიყენოთ კომპანიის დისტანციური სერვერი, რომლისთვისაც ალბათ რეგულარულად უნდა გადაიხადოთ.
  2. თქვენ შეგიძლიათ გამოიყენოთ საკუთარი კომპიუტერი. მე მას მხოლოდ შესამოწმებლად ვთავაზობ, ის ნამდვილად არ არის ეფექტური 24/7 გაშვება, ენერგიის დაკარგვის, უსაფრთხოების საკითხების გამო.
  3. თქვენ შეგიძლიათ გამოიყენოთ პატარა კომპიუტერი, როგორიცაა Raspberry PI. მსუბუქი, იაფი, არ მოიხმარს დიდ ენერგიას.

მე ვცადე მე -2 და მე -3 ვარიანტი, ისინი კარგად მუშაობდნენ. კარგად, მთავარი მიზანი არ არის ამ ინსტრუქციის სერვერები, მაგრამ მე რამდენიმე რჩევას მოგცემთ.

თუ თქვენ იყენებთ კომპიუტერს, თქვენ იყენებთ ალბათ Windows- ს. მე რომ შენ ადგილას ვიყო, მასზე დავაყენებდი Apache ან XAMPP სერვერს.

XAMPP– ს უკვე აქვს PHP მასში, გარდა ამისა მას ასევე გააჩნია HTML, Perl და მონაცემთა ბაზის მმართველი სისტემა. PHP– ით შეგიძლიათ შექმნათ დინამიური სერვერი. თუ გსურთ გამოიყენოთ ადგილობრივი სერვერი, რომელიც თქვენ შექმენით მსოფლიოს ნებისმიერი ადგილიდან, თქვენ უნდა მიანიჭოთ სტატიკური IP თქვენს კომპიუტერს და განახორციელოთ პორტების გადაცემა. სტატიკური IP– ის სასარგებლო სახელმძღვანელო:

და მთელი პორტორის მიმცემი:

თუ თქვენ გაქვთ ჟოლო, კარგი პრაქტიკაა მისი გამოყენება. თქვენ შეგიძლიათ გაეცნოთ Linux ბრძანებებს და გაუშვათ თქვენი საკუთარი სერვერი 24/7.

ოპერაციული სისტემა იყო Raspbian Jessie უთავო კონფიგურაციით (კლავიატურის, მონიტორის გარეშე) - მე ვაკონტროლებდი მას ჩემი კომპიუტერით SSH კავშირით.

მე გამოვიყენე Putty ჩემს ჟოლოში შესასვლელად. ნუ დაგავიწყდებათ თქვენი ანგარიშის პაროლის შეცვლა ისე, რომ სხვები ვერ შევიდნენ თქვენში Pi. ნაგულისხმევი არის: pi, passw: ჟოლო.

მე დავაყენე lighttpd ვებ სერვერი sqlite3– ით. კარგი გაკვეთილი ნაპოვნია აქ:

სერვერის კოდში ძირითადად PHP გამოვიყენე. PHP– ით შეგიძლიათ მიიღოთ მონაცემები, წაიკითხოთ/დაწეროთ მონაცემთა ბაზები - დაშიფროთ შეკითხვა json ფორმატში და ა.შ.… ეს გაკვეთილი ძალიან დაგეხმარებათ, თუ როგორ მართოთ თქვენი მონაცემთა ბაზა PHP– ით.

თქვენ შეგიძლიათ ნახოთ ჩემი კოდი github– ზე, server_files საქაღალდეში.

და რა თქმა უნდა, თქვენ უნდა ჩართოთ პორტის გადაგზავნა თქვენს Pi- ზე თქვენს როუტერზე, თუკი გსურთ დისტანციურად წვდომა.

ნაბიჯი 8: დასრულება/გამოცდილება

დანართი ჯერ არ არის გაკეთებული.

ჩემი გამოცდილება ის არის, რომ სისტემა არ არის ძალიან ცუდი. მაგრამ სტაბილურობის გაუმჯობესება ელოდება.

თუ ტრეკერი არ მუშაობდა ჩემ მიერ მიმაგრებული კოდით, არ ინერვიულოთ. შეეცადეთ დარწმუნდეთ, რომ SIM800L და NEO 6M მუშაობს ისე, როგორც უნდა. შეგიძლიათ თავისუფლად შეცვალოთ ჩემი კოდი, ან მოძებნოთ უკეთესი. მე უბრალოდ იმედი მაქვს, რომ მე შემიძლია გაჩვენოთ მაგალითი, თუ როგორ შეგიძლიათ დაასრულოთ ეს პროექტი.

მე ვიღებ ნებისმიერ რჩევას, შესწორებას კომენტარებიდან. Არ მოგერიდოთ შეკითხვების დასმა.

გირჩევთ: