Самодельный GPS-трекер в реальном времени (SIM800L, Ublox NEO-6M, Arduino): 8 шагов
Самодельный GPS-трекер в реальном времени (SIM800L, Ublox NEO-6M, Arduino): 8 шагов
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 В)

Держатель батареи - зачем? - потому что паять батарею 18650 довольно опасно из-за высокой температуры.

Повышающий модуль DC-DC повышающего преобразователя на 5 В - должен иметь, так как для Arduino, который я использовал, требуется 5 В.

Инструменты, основные вещи, которые могут пригодиться:

Провода, паяльник, макет для проверки

Шаг 2: Основная концепция

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

Основная концепция системы заключается в следующем:

Он состоит из 3-х частей:

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

Шаг 3: модуль SIM800L

Модуль SIM800L
Модуль SIM800L
Модуль SIM800L
Модуль SIM800L

У меня были тяжелые времена с модулем.

Я хотел бы начать с некоторых характеристик и ссылок.

Согласно паспорту:

  • Он работает в диапазоне от 3,4 В до 4,4 В.
  • Он может отправлять SMS, совершать голосовые вызовы на другие телефоны и даже подключаться к Интернету!
  • Мы можем общаться с ним через AT-команды!
  • Он может использовать до 2 А в часы пик! Примечание: вы, вероятно, не сможете измерить его мультиметром - из-за его низкой частоты дискретизации.

Мой опыт показывает, что SIM800L ниже 3,8 В на самом деле не работает.

Для получения дополнительной информации посетите: техническое описание

Итак, ваша задача - подать на модуль не менее 3,8 В (в идеале 4 В), источник питания, который выдает не менее 2 А.

Перед использованием модуля в последнем устройстве я предлагаю вам установить связь с вашим 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 ВКЛ - 300MS ВЫКЛ - SIM800l находится в режиме GPRS

Если SIM800L продолжает перезагружаться примерно после 8-10 миганий, это может быть связано с отсутствием эффективного источника питания.

Если после AT не все в порядке, проверьте проводку! Если у вас есть мультиметр, проверьте целостность проводов.

Проверьте соединения проводов и паяные соединения! Модуль будет работать только при мигании.

Шаг 4: Ublox Neo 6m

Ублокс Нео 6м
Ублокс Нео 6м
Ублокс Нео 6м
Ублокс Нео 6м

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

  • Максимальное напряжение: 3,6 В - я запитал его от вывода Arduino 3,3 В
  • Максимальный потребляемый ток составляет 67 мА, поэтому вы можете запитать его от Arduino.
  • Температурный режим:: -40-85 по Цельсию (думаю, вам подойдет)

Заказанный мной блок поставлялся с антенной, показанной на картинке, я просто вставляю ее в соответствующий слот.

Устройство при наличии сигналов мигает синим светодиодом.

Сначала проверьте, как работает GPS, если вы не знаете.

Когда устройство включено и находит 3 спутника, оно отправляет множество значений, разделенных запятыми, на Arduino, как указано выше.

Чтобы облегчить нашу работу, мы можем использовать некоторые внешние библиотеки для анализа этих данных, чтобы они были более удобочитаемыми.

Вы можете использовать библиотеку TinyGps или библиотеку NeoGPS. Я использовал второй, потому что он более легкий.

Для тестирования вам необходимо подключить выводы питания к Arduino 3.3V и GND.

Загрузите этот код и используйте его со своим GPS. RX цифровой контакт 10, TX цифровой контакт 11

Примечание: не забывайте использовать модуль на открытом воздухе, желательно, когда нет облаков.

Через полминуты устройство должно мигнуть и выдать ваши GPS-координаты!:)

Как только вы узнаете, что ваш SIM800L и модуль GPS работают нормально, вы можете переходить к следующему шагу.

Шаг 5: Схема

Схема
Схема

Схема как на картинке.

Итак, аккумулятор 18650 3,4-4,2 В является основным источником питания. Sim800L получает энергию напрямую от него. Между ними параллельно установлен конденсатор, чтобы улучшить стабильность цепи.

Когда вы выбираете конденсатор, вы должны выбирать конденсатор с низким ESR.

Один повышающий преобразователь на 5 В повышает напряжение батареи до 5 В (требуется, потому что Arduino работает с 5 В).

Шина питания 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 (), которая имеет

Я использовал строки запроса для отправки данных на веб-сервер в следующем формате:

IP-адрес / file.php? ключ = значение & ключ = значение например

Если произойдет какая-либо ошибка, загорится соответствующий светодиод. (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 для входа в свою Raspberry. Не забудьте изменить пароль своей учетной записи, чтобы другие не могли войти в ваш Pi. По умолчанию: pi, пароль: raspberry.

Я установил веб-сервер lighttpd с sqlite3. Хороший учебник можно найти здесь:

Я использовал в основном PHP в серверном коде. С помощью PHP вы можете получать данные, читать / писать базы данных - кодировать запрос в формат json и т. Д.… Этот учебник очень поможет вам, как управлять своей базой данных с помощью PHP.

Вы также можете просмотреть мой код на github, в папке server_files.

И, конечно же, вы должны включить переадресацию портов на Pi на вашем маршрутизаторе, если вы хотите получить доступ к нему удаленно.

Шаг 8: Конец / Опыт

Ограждение еще предстоит.

По моим впечатлениям, система работает неплохо. Но впереди нас ждут улучшения стабильности.

Если трекер не работал с кодом, который я прикрепил, не волнуйтесь. Постарайтесь убедиться, что SIM800L и NEO 6M работают должным образом. Вы можете свободно изменять мой код или искать лучший. Я просто надеюсь, что смогу показать вам пример, как вы можете завершить этот проект.

Принимаю любые советы, исправления из комментариев. Не стесняться спрашивать.

Рекомендуемые: