Съдържание:

Домашен GPS тракер в реално време (SIM800L, Ublox NEO-6M, Arduino): 8 стъпки
Домашен GPS тракер в реално време (SIM800L, Ublox NEO-6M, Arduino): 8 стъпки

Видео: Домашен GPS тракер в реално време (SIM800L, Ublox NEO-6M, Arduino): 8 стъпки

Видео: Домашен GPS тракер в реално време (SIM800L, Ublox NEO-6M, Arduino): 8 стъпки
Видео: Мини GPS-Трекер GF-07 с Микрофоном Обзор и Настройка 2024, Юли
Anonim
Домашен GPS тракер в реално време (SIM800L, Ublox NEO-6M, Arduino)
Домашен GPS тракер в реално време (SIM800L, Ublox NEO-6M, Arduino)

Значи имате GSM модул, лежащ като мен? Също и GPS-тракер?

Ние мислим същото!

В тази инструкция ще се опитам да ви насоча как да постигнете целта си от гледна точка на начинаещ.

Тъй като нямах предишни познания по електротехника (честно казано, проектът не се нуждае от толкова много, но не) и нямах представа как да направя устройство, което изпомпва данни в реално време към уеб сървър, срещнах множество проблеми. Все пак в крайна сметка успях да накарам нещата да работят.

Така че в този урок искам да подчертая грешките, които може да направи начинаещият, и съответно да изградя проекта.

Запомнете: Винаги бъдете внимателни, докато работите с електричество!

ЗАБЕЛЕЖКА: Не съм професионалист. Кодът може да не е достатъчно сложен за всички ваши нужди. Проектът е замислен да бъде „хоби проект“, но! при мен се получи. И ако работи за мен, щеше да работи и за вас!

Стъпка 1: Предпоставки

Предпоставки
Предпоставки
Предпоставки
Предпоставки
Предпоставки
Предпоставки

GSM МОДУЛ - SIM800L

  • Доста мъничка, лесна за използване
  • Възможност за използване на мобилен интернет (GPRS)
  • Евтини

GPS МОДУЛ - Ublox NEO6M

  • Също малък
  • Справя се много добре с работата си

Микроконтролер - може да бъде всичко - можете да използвате известния Arduino Uno или Nano, за да освободите малко място

Батерия - Използвах 18650 клетка като основен и единствен източник на захранване (номинални 3,7 V)

Поставка за батерия - защо? - защото запояването на 18650 батерия е доста опасно поради топлината.

DC -DC усилващ преобразувател модул 5V - Трябва да има, тъй като използваният от мен Arduino се нуждае от 5V

Инструменти, основни неща, които могат да ви бъдат полезни:

Жици, поялник, макет за тестване

Стъпка 2: Основна концепция

Основна концепция
Основна концепция

Основната концепция на системата е следната:

Състои се от 3 части:

  1. Устройство - което има подходящи GPS -координати и може да се свърже отдалечено със сървър и да изпраща данни към него
  2. Уеб сървър - който може да получава входящи данни - да ги съхранява - и да обслужва други клиенти
  3. Платформата - където можем да видим координатите - в идеалния случай сега трябва да е мобилно приложение или уебсайт

Стъпка 3: Модулът SIM800L

Модулът SIM800L
Модулът SIM800L
Модулът SIM800L
Модулът SIM800L

Имах трудни моменти с модула.

Бих искал да започна с някои характеристики и препратки.

Според листа с данни:

  • Работи между 3.4V - 4.4V
  • Той може да изпраща SMS, да осъществява гласови повиквания до други телефони и дори да се свързва с интернет!
  • Можем да комуникираме с него чрез AT-команди!
  • Може да използва до 2А в пикови часове! Забележка: вероятно няма да можете да го измерите с мултицет - поради ниските му честоти на вземане на проби

Моят опит е, че SIM800L под 3.8V всъщност не работи.

За допълнителна информация посетете: лист с данни

Така че вашата работа е да осигурите поне 3.8V към модула (в идеалния случай 4V), захранване, което извежда поне 2A.

Преди да използвате модула в последното устройство, предлагам да установите комуникация със своя SIM800L и компютъра си, за да се уверите, че устройството ви работи правилно.

Първо, включете SIM картата, както е на снимката по -горе.

За да го свържете с вашия компютър, можете да използвате USB към TTL конвертор или Arduino.

Сега отивам с Arduino.

Свържете SIM800L VCC и GND към терминалите на източника на захранване.

Свържете TX към 10 -ия цифров щифт на Arduino, RX към 11 -ия цифров пин на Arduino.

Изтеглете кода, който свързах в тази стъпка.

С кода можете да изпращате команди и да ги връщате обратно на вашия сериен монитор.

Някои прости команди:

AT Връща ОК, ако връзката е ОК.

ATD+123456789; Обадете се на даден телефонен номер. Забележка: Не забравяйте да завършите с точка и запетая.

AT+CPIN? Връща състоянието на SIM картата (заключена или не)

Ако искате да изпратите SMS, трябва да завършите въвеждането си със специален знак, това може да стане със символа '$'.

За по -интересни команди ви предлагам да прочетете това.

Има различни команди, запознайте се с тях, те са наистина полезни.

Има червен светодиод за състоянието, който ви казва в каква операция е 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: Ublox Neo 6m

Ublox Neo 6м
Ublox Neo 6м
Ublox Neo 6м
Ublox Neo 6м

Някои характеристики

  • Максимално напрежение: 3.6V - захранвах го с 3.3V щифт на Arduino
  • Максималният ток е 67mA - така че можете да го захранвате от arduino
  • Температурен диапазон: -40-85 по Целзий (предполагам, че ще ви пасне)

Устройството, което поръчах, идва с антена, видяна на снимката, просто я включвам в съответния слот.

Устройството, когато има сигнали, мига със син светодиод.

Първо проверете как работи GPS тук, ако не знаете.

Когато устройството е включено и намери 3 спътника, то изпраща много стойности, разделени със запетая, към Arduino, както по -горе.

За да си помогнем в работата, можем да използваме някои външни библиотеки, за да анализираме тези данни, за да бъдат по -четими за хората.

Можете да използвате библиотека 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 захранващата шина е свързана с Nano тук. Sim800L и Neo6m са свързани с Nano, както е на снимката. (Sim Tx-D10, SimRx-D11; NeoTX-D3, NeoRX-D4)

D12 е свързан към RST, така че можем да рестартираме системата програмно (с изключение на SIM800L). ЗАБЕЛЕЖКА: Този метод за рестартиране може да не е най -добрата практика)

И накрая, два светодиода са свързани към NANO, така че можем да кажем на потребителя, ако възникне някаква грешка.

Стъпка 6: Код

Кодът е прикачен към Instructables или разгледайте github.

Можете да го промените, за да работи правилно за вашите нужди, или можете да използвате другия код, ако искате.

waitUntilResponse (); помощната функция е взета от кода му. Проверете работата му и кодирайте също!

Накратко, във функцията за настройка трябва да разрешим GPRS връзката на нашия модул SIM800L. Знаем дали е успешен, ако светодиодът мига бързо. (setupGPRSConnection ())

Във функцията цикъл - на всеки 15 секунди се извиква функцията sendData () - която има HTTP заявка

Използвах низове за заявки, за да изпращам данни към уеб сървъра в този формат:

ip адрес/file.php? ключ = стойност & ключ = стойност напр.

Ако възникне някаква грешка, съответният светодиод ще светне. (SIM, GPS)

Стъпка 7: Уеб сървър

Уеб сървър
Уеб сървър

За наша употреба е достатъчен прост лек уеб сървър.

Има няколко опции, от които можете да избирате:

  1. Можете да използвате отдалечен сървър на компания, за който вероятно трябва да плащате редовно.
  2. Можете да използвате собствен компютър. Предлагам го само за тестване, не е наистина ефективно да го пускате денонощно поради загуба на енергия и проблеми с безопасността.
  3. Можете да използвате малък компютър, като Raspberry PI. Лек, евтин, не консумира много енергия.

Опитах втория и третия вариант, работеха добре. Е, основната цел не са сървърите на тази инструкция, но ви намеквам някои съвети.

Ако използвате компютър, вероятно използвате Windows. На ваше място бих инсталирал Apache или XAMPP сървър върху него.

XAMPP вече има PHP в него, освен това той също идва с HTML, Perl и система за управление на база данни. С PHP можете да направите динамичен сървър. Ако искате да използвате локалния сървър, който току -що сте направили от всяка точка на света, трябва да присвоите статичен IP на вашия компютър и да извършите малко пренасочване на портове. Полезен урок за статичен IP адрес:

И цялото нещо за спедиторство:

Ако имате малина, е добра практика да я използвате. Можете да се запознаете с командите на Linux и да стартирате свой собствен сървър 24/7.

Операционната система беше Raspbian Jessie с безглавна настройка (без клавиатура, монитор) - управлявах я с компютъра си чрез SSH връзка.

Използвах Putty, за да вляза в моята малинка. Не забравяйте да промените паролата на акаунта си, така че другите да не могат да влизат във вас, Pi. По подразбиране е: pi, passw: raspberry.

Инсталирах lighttpd уеб сървър с sqlite3. Добър урок е намерен тук:

Използвах предимно PHP в кода на сървъра. С PHP можете да получавате данни, да четете/записвате бази данни - да кодирате заявка във формат json и т.н. … Този урок ще ви помогне много, как да управлявате вашата база данни с PHP.

Можете също да видите моя код в github, в папката server_files.

И разбира се, трябва да активирате пренасочването на портове към вашия Pi на вашия рутер, ако искате да имате достъп до това от разстояние.

Стъпка 8: Край/опит

Тепърва ще се прави заграждение.

Моят опит е, че системата не работи толкова лошо. Но се очакват подобрения в стабилността.

Ако тракерът не работи с прикачения от мен код, не се притеснявайте. Опитайте се да се уверите, че SIM800L и NEO 6M работят както трябва. Можете да променяте свободно моя код или да търсите по -добър. Надявам се, че бих могъл да ви покажа пример, как можете да завършите този проект.

Приемам всякакви съвети, поправки от коментарите. Чувствайте се свободни да попитате.

Препоръчано: