- Как это устроено:
- Необходимые компоненты:
- Описание схемы:
- Преобразование координат в десятичный градус по GPS:
- Объяснение программирования:
Система слежения за транспортными средствами становится очень важной в наши дни, особенно в случае угнанных автомобилей. Если в вашем автомобиле установлена система GPS, вы можете отслеживать местоположение транспортного средства, и это помогает полиции отслеживать украденные автомобили. Ранее мы создали аналогичный проект, в котором координаты местоположения транспортного средства отправляются на сотовый телефон, проверьте здесь «Отслеживание транспортных средств на базе Arduino с использованием GPS и GSM.
Здесь мы создаем более продвинутую версию системы слежения за транспортными средствами, в которой вы можете отслеживать свой автомобиль на Google Maps. В этом проекте мы отправим координаты местоположения на локальный сервер, и вам просто нужно открыть «веб-страницу» на своем компьютере или мобильном телефоне, где вы найдете ссылку на Google Maps с координатами местоположения вашего автомобиля. Когда вы нажимаете на эту ссылку, вы попадаете на Google Maps, показывая местоположение ваших транспортных средств. В этом автомобиле система слежения с помощью Google Maps, GPS - модуль используется для получения координат местоположения, Wi-Fi модуль для хранения данных посыла на компьютер или мобильный через Wi-Fi и Arduino используется для GPS и Wi-Fi разговаривать друг с другом.
Как это устроено:
Чтобы отслеживать автомобиль, нам нужно найти координаты автомобиля с помощью модуля GPS. Модуль GPS постоянно обменивается данными со спутником для получения координат. Затем нам нужно отправить эти координаты из GPS в нашу Arduino с помощью UART. А затем Arduino извлекает необходимые данные из данных, полученных с помощью GPS.
Перед этим Arduino отправляет команду модулю Wi-Fi ESP8266 для настройки и подключения к маршрутизатору и получения IP-адреса. После этого Arduino инициализирует GPS для получения координат, и на ЖК-дисплее отображается сообщение «Обновление страницы». Это означает, что пользователю необходимо обновить веб-страницу. Когда пользователь обновляет веб-страницу, Arduino получает координаты GPS и отправляет их на веб-страницу (локальный сервер) по Wi-Fi с некоторой дополнительной информацией и ссылкой на карты Google. Теперь, щелкнув эту ссылку, пользователь перенаправляется на Google Maps с координатами, а затем он / она получит текущее местоположение транспортного средства в красной точке на Google Maps. Весь процесс правильно показан в видео в конце.
Необходимые компоненты:
- Arduino UNO
- Модуль Wi-Fi ESP8266
- Модуль GPS
- USB-кабель
- Соединительные провода
- Ноутбук
- Источник питания
- ЖК-дисплей 16x2
- Хлебная доска
- Wi-Fi роутер
Описание схемы:
Схема для этого проекта «Отслеживание транспортных средств с использованием Google Maps» очень проста, и нам в основном нужны Arduino UNO, модуль GPS и модуль Wi-Fi ESP8266. Для отображения статуса можно дополнительно подключить ЖК-дисплей 16x2. Этот ЖК-дисплей подключен к 14-19 (A0-A5) контактам Arduino.
Здесь вывод Tx модуля GPS напрямую подключен к цифровому выводу номер 10 Arduino. Используя здесь Software Serial Library, мы разрешили последовательную связь на контактах 10 и 11, сделали их Rx и Tx соответственно и оставили контакт Rx модуля GPS открытым. По умолчанию выводы 0 и 1 Arduino используются для последовательной связи, но с помощью библиотеки SoftwareSerial мы можем разрешить последовательную связь на других цифровых выводах Arduino. Для питания модуля GPS используется адаптер на 12 Вольт. Пройдите здесь, чтобы узнать «Как использовать GPS с Arduino» и получить координаты.
Контакты Vcc и GND модуля Wi-Fi ESP8266 напрямую подключены к 3,3 В, а GND Arduino и CH_PD также подключены к 3,3 В. Контакты Tx и Rx ESP8266 напрямую подключены к контактам 2 и 3 Arduino. Программная последовательная библиотека также используется здесь для обеспечения последовательной связи на выводах 2 и 3 Arduino. Мы уже подробно рассмотрели интерфейс модуля ESP8266 Wi-Fi с Arduino, также, пожалуйста, ознакомьтесь с разделом «Как отправлять данные из Arduino на веб-страницу с помощью Wi-Fi», прежде чем приступить к этому проекту. Ниже представлено изображение ESP8266:
ESP8266 имеет два светодиода, один красный для индикации питания, а второй синий - это светодиод передачи данных. Синий светодиод мигает, когда ESP отправляет данные через свой вывод Tx. Также не подключайте ESP к источнику +5 В, иначе ваше устройство может выйти из строя. В этом проекте мы выбрали скорость 9600 бод для всех коммуникаций UART.
Пользователь также может видеть связь между модулем Wi-Fi ESP8266 и Arduino на последовательном мониторе со скоростью 9600 бод:
Также посмотрите видео в конце этого проекта, чтобы узнать о подробностях рабочего процесса.
Преобразование координат в десятичный градус по GPS:
Модуль GPS получает координаты со спутника в формате Degree Minute (ddmm.mmmm), и здесь нам нужен формат Decimal Degree для поиска местоположения на Google Maps. Итак, сначала нам нужно преобразовать координаты из формата градуса минут в десятичный формат градусов с помощью заданной формулы.
Предположим, 2856,3465 (ддмм.мммм) - это широта, которую мы получаем от модуля GPS. Теперь первые два числа - это градусы, а оставшиеся - минуты.
Итак, 28 - градус, а 56,3465 - минута.
Теперь здесь нет необходимости преобразовывать часть степени (28), а нужно только преобразовать минутную часть в десятичную степень, разделив 60:
Десятичная градусная координата = градус + минута / 60
Десятичная градусная координата = 28 + 56.3465 / 60
Десятичная градусная координата = 28 + 0,94
Координата в десятичном градусе = 28,94
Тот же процесс будет выполнен для данных долготы. Мы преобразовали координаты из градуса минут в десятичный градус, используя приведенные выше формулы в Arduino Sketch:
float minut = lat_minut.toFloat (); minut = minut / 60; степень с плавающей запятой = lat_degree.toFloat (); широта = градус + минута; minut = long_minut.toFloat (); minut = minut / 60; степень = long_degree.toFloat (); logitude = градус + минута;
Объяснение программирования:
В этом коде мы использовали библиотеку SerialSoftware для взаимодействия ESP8266 и модуля GPS с Arduino. Затем мы определили разные контакты для обоих и инициализировали UART со скоростью 9600 бод. Также включена библиотека LiquidCrystal для интерфейса LCD с Arduino.
#включают
После этого нам нужно определить или объявить переменную и строку для разных целей.
Строка webpage = ""; int i = 0, k = 0; int gps_status = 0; Строка name = "
1. Имя: Ваше имя
"; // 22 String dob ="2. Дата рождения: 12 февраля 1993 г.
"; // 21 String number ="4. Номер автомобиля: RJ05 XY 4201
"; // 29 String cordinat ="Координаты:
"; // 17 String latitude =" "; String logitude =" "; String gpsString =" "; char * test =" $ GPGGA ";Затем мы сделали несколько функций для разных целей, например:
Функция получения данных GPS с координатами:
void gpsEvent () {gpsString = ""; в то время как (1) {в то время как (gps.available ()> 0) {char inChar = (char) gps.read (); gpsString + = inChar; если (я <7) {если (gpsString! = тест) {я = 0;……………….
Функция для извлечения данных из строки GPS и преобразования этих данных в формат десятичной степени из формата десятичной минуты, как объяснялось ранее.
voidordinate2dec () {String lat_degree = ""; для (я = 18; я <20; я ++) lat_degree + = gpsString; Строка lat_minut = ""; для (я = 20; я <28; я ++) lat_minut + = gpsString;……………….
Функция отправки команд на ESP8266 для настройки и подключения к WIFI.
void connect_wifi (String cmd, int t) {int temp = 0, я = 0; в то время как (1) {Serial.println (cmd); Serial1.println (cmd); while (Serial1.available ()> 0)……………….
Функция void show_coordinate () для отображения координат на ЖК-дисплее и последовательном мониторе и функция void get_ip () для получения IP-адреса.
Функция Void Send () для создания строки информации, которая должна быть отправлена на веб-страницу с использованием ESP8266, и функция void sendwebdata () для отправки строки информации на веб-страницу с использованием UART.
В функции цикла void Arduino постоянно ждет веб-страницы формы запроса (обновление веб-страницы).
void loop () {k = 0; Serial.println («Обновите страницу»); lcd.setCursor (0,0); lcd.print («Обновите»); lcd.setCursor (0,1); lcd.print («Ваша веб-страница..»); в то время как (k <1000)……………….
Проверьте полный код ниже.