Arduino_Nano_liquidCrystal_I2C_gps(NEOM8N)
Introduction: Arduino_Nano_liquidCrystal_I2C_gps(NEOM8N)
As this is my first instructable, it may have plenty of flaws ;-)
Your comments and critique are welcomed to correct anything wrong in this instructable (cheers!)..
And if you need help. don’t be shy. ask. I enjoy helping others make stuff work ;-)
The Arduino software is an accumulation of other peoples work.(not mine, other than some tweaking).
The result of all parts connected, and software.
Will be something that looks kinna like this on your LCD
LAT: XX.XXXXXX
LONG: XX.XXXXXX
In this instructable you will need the following components.
An Arduino NANO (please buy an original to help support the fine work of its creators).
A UBLOX NEO-M8N gps module (in my image, the antenna is taped with double sided tape to the reciever).
The Fritzing image has a coppernicus module only for illustration purposes (might not work with this module?)
An LCD (16×2) with a serial (backpack) interface mounted on the back.
The attached files are those required to install to your Arduino library..
. (the software that’ll make the hardware run!)
Download, . decompress(unzip). and add them to your library.
The library ( on my Windows7 laptop) is found at c:\. Program Files(X86). Arduino. libraries.
Arduino: GPS Display Location on I2C 2×16 LCD with Visuino © GPL3+
Build GPS Location LCD Display with Arduino and program it — quick and easy!
Few days ago somebody asked me to make a tutorial on how to show GPS Latitude, and Longitude on a LCD Display. I promised to make one, and here it is.
In this tutorial, I will show you how you can connect Serial GPS Module , and I2C LCD Display to Arduino Nano , and show the location data from the GPS on the LCD .
Please note that since the Arduino Nano has only one Serial Port and it is used to program the board, you will need to program the Arduino before you connect the Serial GPS Module!
Step 1: Components
- One Arduino compatible board (I use Arduino Nano , because I have one, but any other will be just fine)
- One GPS module
- One I2C 16×2 LCD Display (Back side of the LCD with the I2C adapter showed on Picture 2 )
- One small Breadboard (Any breadboard can be used, or any other way to connect 3 wires together)
- 3 Female-Male jumper wires
- 5 Female-Female jumper wires
Step 2: Start Visuino, and select the Arduino Board type
Since the Arduino Nano has only one Serial port, and it is needed to program the Arduino, you will need to program the Arduino Nano before the GPS is connected.
To start programming the Arduino, you will need to have the Arduino IDE installed from here: http://www.arduino.cc/ .
Please be aware that there are some critical bugs in Arduino IDE 1.6.6.
Make sure that you install 1.6.7 or higher, otherwise this Tutorial will not work!
The Visuino : https://www.visuino.com also needs to be installed.
- Start Visuino as shown in the first picture
- Click on the » Tools » button on the Arduino component ( Picture 1 ) in Visuino
- When the dialog appears, select Arduino Nano as shown in Picture 2
Step 3: In Visuino: Add and connect GPS, and LCD components
- Type » GPS » in the Filter box of the Component Toolbox then select the » Serial GPS » component ( Picture 1 ), and drop it in the design area
- Connect the » Out » pin of the LCD component to the to the » In » pin of the » Serial[ 0 ] » of the Arduino component ( Picture 2 )
- Type » lcd » in the Filter box of the Component Toolbox then select the » Liquid Crystal Display (LCD) — I2C » component ( Picture 3 ), and drop it in the design area
- Connect the » Out » pin of the LCD component to the to the » In » pin of the » I2C channel » of the Arduino component ( Picture 4 )
Step 4: In Visuino: Add, and setup Text and Analog Value elements to display the Latitude
We will add a Text field with the description of the value, and Analog field to display the value for the Latitude and Longitude values.
First we will add Description and value fields for the Latitude:
- Click on the » Tools » button ( Picture 1 ) to open the » Elements » editor ( Picture 2 )
- In the » Elements » editor select the » Text Field » in the right window, and click on the «» button on the left ( Picture 2 )
- In the Object Inspector set the value of the » Initial Value » property of the element to » Lat. : » ( Picture 3 )
- Select the » Analog Field » in the right window of the » Elements » editor, and clicking on the «» button on the left ( Picture 4 )
- In the Object Inspector set the value of the » Column » property of the element to » 7 » ( Picture 5 )
- In the Object Inspector set the value of the » Width » property of the element to » 8 » ( Picture 6 )
Step 5: In Visuino: Add, and setup Text element for the Longitude
Next we will add Description for the Longitude:
- In the » Elements » editor select the » Text Field » in the right window, and click on the «» button on the left ( Picture 1 )
- In the Object Inspector set the value of the » Initial Value » property of the element to » Long.: » ( Picture 2 )
- In the Object Inspector set the value of the » Row » property of the element to » 1 » ( Picture 3 )
Step 6: In Visuino: Add, and setup Analog Value element to display the Longitude
Next we will add Analog Element to display the value for the Longitude:
- Select the » Analog Field » in the right window of the » Elements » editor, and clicking on the «» button on the left ( Picture 1 )
- In the Object Inspector set the value of the » Column » property of the element to » 7 » ( Picture 2 )
- In the Object Inspector set the value of the » Row » property of the element to » 1 » ( Picture 3 )
- In the Object Inspector set the value of the » Width » property of the element to » 8 » ( Picture 4 )
- Close the » Elements » dialog
Step 7: In Visuino: Connect the GPS component to the elements of the LCD component
- Connect the » Latitude » output pin of the » Location » box of the GPS1 component to the » In » pin of the Elements.AnalogField1 element of the LiquidCrystalDisplay1 component ( Picture 1 )
- Connect the » Longitude » output pin of the » Location » box of the GPS1 component to the » In » pin of the Elements.AnalogField2 element of the LiquidCrystalDisplay1 component ( Picture 2 )
Step 8: Generate, Compile, and Upload the Arduino code
- In Visuino , Press F9 or click on the button shown on Picture 1 to generate the Arduino code, and open the Arduino IDE
- In the Arduino IDE , click on the Upload button, to compile and upload the code ( Picture 2 )
Step 9: Connect the LCD Module to the Arduino
Once the Arduino Nano is programmed, it is time to connect the hardware:
- Connect Ground ( Black wire ), Power ( Red wire ), SDA ( Green wire ), and SCL ( Yellow wire ) to the LCD Module ( Picture 1 )
- Connect the other end of the Ground wire ( Black wire ) to Ground pin of the Arduino board ( Picture 2 )
- Connect the other end of the SDA wire ( Green wire ) to SDA/Analog pin 4 of the Arduino Nano board ( Picture 2 )
- Connect the other end of the SCL wire ( Yellow wire ) to SCL/Analog pin 5 of the Arduino Nano board ( Picture 2 )
- Connect another Female-Male Power wire ( Red wire ) to the 5V Power pin of the Arduino board ( Picture 2 ), and leave the Male end unconnected
- Picture 3 shows where are the Ground , 5V Power, SDA/Analog pin 4 , and SCL/Analog pin 5 pins of the Arduino Nano
Step 10: Connect the GPS Module to the Arduino
- Connect Female-MalePower(Red wire) to the GPS Module
- Connect Female-Female Ground ( Black wire ), and TX ( Gray wire ) to the GPS Module
- Connect the other end of the Ground wire ( Black wire ) to Ground pin of the Arduino board ( Picture 2 )
- Connect the other end of the TX ( Gray wire ) to RX pin of the Arduino board ( Picture 2 )
- Picture 3 shows in Red where are the Ground , and RX pins of the Arduino Nano (In Blue are shown the connections made in the previous step)
Step 11: Connect the Power Wires together
Connect the Male ends of the 3 Power wires ( Red wires ) — from the Display , the GPS Module, and the Arduino together as example with the help of a Breadboard ( Picture ) — In my case I used a small Breadboard
Step 12: And play.
Congratulations! You have completed the project.
Picture 1 shows the connected and powered up project. If you power up the project, after a while the blue LED of the GPS will start blinking about once a second as you can see on the Video . Usually shortly after that, the GPS will start sending location data, and it will be shown on the LCD. Depending on the location, it can take up to few minutes to show the location data. If after a few minutes the data is still not shown, power down the project wait about a minute and power it again to reset the GPS.
Работа с GPS модулем
Общие сведения:
Trema GPS модуль ATGM336H — является навигационным устройством позволяющим определить свои координаты по широте, долготе и высоте. Дополнительно модуль способен определить текущую дату, время, скорость и направление передвижения.
Модуль получает данные на основе информации поступающей со спутников навигационных систем GPS (США), Глонасс (Россия) и Beidou (Китай).
Модуль самостоятельно обрабатывает полученную информацию и передает данные по шине UART в виде текстовых сообщений в формате протокола NMEA 0183, отличается низким энергопотреблением и высокой чувствительностью.
Видео:
Спецификация:
- Напряжение питания: 3,3 В или 5 В, поддерживаются оба напряжения.
- Питание резервной батареи: 3 В.
- Ток потребляемый модулем: до 25 мА.
- Интерфейс: UART.
- Скорость шины UART: 4800, 9600 (по умолчанию), 19200, 38400, 57600, 115200 бит/с.
- Конфигурация шины UART: 8 бит данных, без проверки четности, с одним стоповым битом.
- Уровень логической 1 на линиях шины UART: 3,3 В.
- Протокол передачи данных: NMEA 0183.
- Частота обновления выводимых данных: от 1 (по умолчанию) до 10 Гц.
- Поддерживаемые навигационные системы: GPS (США), Глонасс (Россия) и Beidou (Китай).
- Время холодного старта: ≤ 35 сек.
- Время горячего старта: ≤ 1 сек.
- Точность позиционирования:
Подключение:
На плате модуля расположен разъем из 5 выводов.
- TX — выход данных шины UART от модуля. Подключается к выводу RX Arduino.
- RX — вход данных шины UART в модуль. Подключается к выводу TX Arduino.
- Vcc — вход питания 3,3 или 5 В.
- GND — общий вывод питания.
- PPS — выход меандра с частотой 1 Гц. Передний фронт импульсов совпадает с временем UTC.
При подключении модуля не к аппаратной, а к программной шине UART, вы сами назначаете выводы TX и RX Arduino к которым подключается модуль.
Модуль удобно подключать 5 способами, в зависимости от ситуации:
Способ — 1: Используя провода, Piranha UNO и программный UART
Используя провода «Папа — Мама», подключаем напрямую к контроллеру Piranha UNO.
Способ — 2: Используя провода, Piranha ULTRA и аппаратный UART
Используя провода «Папа — Мама», подключаем напрямую к контроллеру Piranha ULTRA.
С данным подключением будет использоваться второй аппаратный UART на Piranha ULTRA. Стоит заметить, что программный порт на UNO безошибочно работает на скорости до 57600 бод, в то время как аппаратный без проблем может работать на скорости 115200, вдвое большей.
Способ — 3: Используя Trema Set Shield
При таком подключении можно использовать программный UART на 8 и 9 цифровых выводах. Так же на этих выводах находиться второй аппаратный последовательный порт Piranha ULTRA, что ещё больше упрощает работу с модулем.
Способ — 4: Используя проводной шлейф и Shield
Используя 2-х и 3-х проводные шлейфы, к Trema Shield, Trema-Power Shield, Motor Shield, Trema Shield NANO и тд.
Способ — 5: Напрямую к ПК через USB-UART
Питание:
Входное напряжение питания модуля 3,3В или 5В постоянного тока (поддерживаются оба напряжения питания), подаётся на выводы Vcc и GND.
Подробнее о модуле:
Модуль построен на базе чипа AT6558 включённого в сборку AT6558, снабжён антенной GPS1003, разъемом IPX позволяющим подключать внешнюю антенну, разъемом для подключения батарейки резервного питания и снабжён собственным стабилизатором напряжения. Модуль отличается низким энергопотреблением и высокой чувствительностью. Модуль получает информацию от спутников навигационных систем GPS, Глонасс, Beidou, обрабатывает её и передает выходные данные сформированные в формате протокола NMEA 0183 по шине UART в виде текстовых сообщений.
- Получать широту, долготу и высоту над уровнем моря.
- Получать скорость и курс на истинный полюс.
- Получать дату и время UTC.
- Получать количество наблюдаемых спутников и спутников участвующих в позиционировании.
- Получать данные о спутниках: уровень приёма, положение и тип навигационной системы.
- Получать геометрические факторы ухудшения точности и точность позиционирования.
- Определять ошибку определения координат, даты, времени, скорости и курса.
- Настраивать скорость передачи данных по шине UART.
- Настраивать частоту обновления выводимых данных.
- Выбирать версию протокола NMEA 0183 для формирования отправляемых сообщений.
- Настраивать состав сообщений NMEA 0183.
- Выбирать спутниковые навигационные системы, данные которых требуется получать.
- Выбирать динамическую модель навигационной платформы.
- Перезагружать модуль с выбором типа старта (холодный / горячий).
- Перезагружать модуль со сбросом настроек в заводские.
- Сохранять настройки в энергонезависимую память модуля.
Для работы с Trema GPS модулем — ATGM336H, нами разработано две библиотеки:
- Библиотека iarduino_GPS_ATGM336 позволяет настроить работу Trema GPS модуля ATGM336H (задать скорость UART, частоту обновления данных, версию NMEA 0183, настроить состав выводимых сообщений, выбрать спутниковые навигационные системы, указать динамическую модель, перезагрузить модуль или сохранить его настройки).
- Библиотека iarduino_GPS_NMEA позволяет получать данные из текстовых сообщений NMEA 0183 отправляемых GPS-модулем по шине UART (получить широту, долготу, высоту, скорость, курс, дату, время, количество спутников и данные о них).
Подробнее про установку библиотеки читайте в нашей инструкции.
Примеры:
В данном разделе раскрыты примеры настройки работы Trema GPS модуля ATGM336H при помощи библиотеки iarduino_GPS_ATGM336 и получения данных отправляемых данным модулем при помощи библиотеки iarduino_GPS_NMEA по аппаратной шине UART-1. Обе библиотеки позволяют работать не только с аппаратной, но и с программной шиной UART.
О том как настроить скетч для работы с программной шиной UART можно узнать ниже, из раздела «Подключение библиотеки».
Примеры работы с программной и аппаратной шиной UART доступны из меню Arduino IDE:
- Файл / Примеры / iarduino GPS NMEA (парсер) — без настройки модуля.
- Файл / Примеры / iarduino GPS ATGM336 (навигационный модуль).
Примеры получения данных библиотекой iarduino_GPS_NMEA без настройки модуля, доступны по ссылке Wiki — Парсер протокола NMEA.
Получение координат:
Пример выводит координаты широты и долготы в градусах, 5 раз в секунду.
Обратите внимание на то, что в примере не указана скорость шины Serial1 , так как она автоматически настраивается на скорость модуля функцией SettingsGPS.begin(Serial1); , а далее устанавливается функцией SettingsGPS.baudrate(9600); .
Состав сообщения NMEA 0183 отправляемого модулем, урезан обращением к функции SettingsGPS.composition(); до одной строки с идентификатором NMEA_RMC , вместо данного идентификатора можно указать NMEA_GGA или NMEA_GLL , так как в их строках так же содержится информация о широте и долготе. Уменьшение строк в составе сообщения NMEA приводит к уменьшению количества данных содержащихся в нём. Например, строка с идентификатором NMEA_RMC не содержит значение высоты над уровнем моря и данные о спутниках.
Получение скорости и курса:
Пример выводит скорость и курс, 5 раз в секунду.
Обратите внимание на то, что в примере не указана скорость шины Serial1 , так как она автоматически настраивается на скорость модуля функцией SettingsGPS.begin(Serial1); , а далее устанавливается функцией SettingsGPS.baudrate(9600); .
Состав сообщения NMEA 0183 отправляемого модулем, урезан обращением к функции SettingsGPS.composition(); до одной строки с идентификатором NMEA_VTG , вместо данного идентификатора можно указать NMEA_RMC , так как в этой строке так же содержится информация о скорости и курсе. Уменьшение строк в составе сообщения NMEA приводит к уменьшению количества данных содержащихся в нём. Например, строка с идентификатором NMEA_VTG содержит информацию только о скорости и курсе, без координат, даты, времени и т.д.
Получение ссылки с координатами на карте:
Пример выводит ссылку на Yandex карту 1 раз в секунду.
Пример выводит ссылку на Google карту 1 раз в секунду.
Обратите внимание на то, что в примере не указана скорость шины Serial1 , так как она автоматически настраивается на скорость модуля функцией SettingsGPS.begin(Serial1); , а далее устанавливается функцией SettingsGPS.baudrate(9600); .
Состав сообщения NMEA 0183 отправляемого модулем, урезан обращением к функции SettingsGPS.composition(); до одной строки с идентификатором NMEA_RMC , вместо данного идентификатора можно указать NMEA_GGA или NMEA_GLL , так как в их строках так же содержится информация о широте и долготе. Уменьшение строк в составе сообщения NMEA приводит к уменьшению количества данных содержащихся в нём. Например, строка с идентификатором NMEA_RMC не содержит значение высоты над уровнем моря и данные о спутниках.
Получение текущей даты и времени:
Пример выводит время, дату, день недели и UnixTime, 5 раз в секунду.
Обратите внимание на то, что в примере не указана скорость шины Serial1 , так как она автоматически настраивается на скорость модуля функцией SettingsGPS.begin(Serial1); , а далее устанавливается функцией SettingsGPS.baudrate(9600); .
Состав сообщения NMEA 0183 отправляемого модулем, урезан обращением к функции SettingsGPS.composition(); до одной строки с идентификатором NMEA_ZDA , вместо данного идентификатора можно указать NMEA_RMC , так как в этой строке так же содержится информация о дате и времени. А в строках с идентификаторами NMEA_GGA , NMEA_GLL , NMEA_GST и NMEA_DHV присутствует только время, без даты. Уменьшение строк в составе сообщения NMEA приводит к уменьшению количества данных содержащихся в нём. Например, строка с идентификатором NMEA_ZDA содержит только дату и время.
Получение данных о спутниках:
Пример выводит данные о наблюдаемых спутниках: ID, уровень приёма, положение относительно GPS-модуля, тип навигационной системы и флаг участия спутника в позиционировании, 1 раз в 2 секунды.
Обратите внимание на то, что в примере не указана скорость шины Serial1 , так как она автоматически настраивается на скорость модуля функцией SettingsGPS.begin(Serial1); , а далее устанавливается функцией SettingsGPS.baudrate(9600); .
Состав сообщения NMEA 0183 отправляемого модулем, урезан обращением к функции SettingsGPS.composition(); до строк с идентификаторами NMEA_GSA и NMEA_GSV . Уменьшение строк в составе сообщения NMEA приводит к уменьшению количества данных содержащихся в нём. Например, строки с идентификаторами NMEA_GSA и NMEA_GSV содержат только информацию о спутниках и геометрические факторы ухудшения точности.
Перезагрузка модуля со сбросом его настроек на заводские:
Пример перезагружает модуль со сбросом его настроек (скорость передачи данных, частота обновления выводимых данных, версия протокола NMEA и его состав, используемые спутниковые навигационные системы и динамическая модель) в значения по умолчанию.
Описание функций библиотеки iarduino_GPS_ATGM336:
В данном разделе описаны функции библиотеки iarduino_GPS_ATGM336 для настройки работы Trema GPS модуля.
Библиотека iarduino_GPS_ATGM336 может использовать как аппаратную, так и программную реализацию шины UART для работы с Trema GPS-модулем.
Подключение библиотеки:
- Если GPS-модуль подключён по аппаратной шине UART (в примере используется UART-1):
Строки со звездочкой в комментарии можно исключить, если вы не собираетесь читать данные при помощи библиотеки iarduino_GPS_NMEA.
- Если GPS-модуль подключён по программной шине UART (в примере используются выводы D8 и D9 для подключения модуля к Arduino):
Строки со звездочкой в комментарии можно исключить, если вы не собираетесь читать данные при помощи библиотеки iarduino_GPS_NMEA.
- Вывод TX Arduino подключается к выводу RX модуля, а вывод RX Arduino подключается к выводу TX модуля.
Функция begin();
- Назначение: Инициализация работы с GPS модулем по шине UART.
- Синтаксис: begin( SERIAL );
- Параметры:
- SERIAL — объект или класс для работы с шиной UART по которой подключён GPS-модуль.
- Возвращаемое значение: bool — результат инициализации (true или false).
- Примечание:
- Функция должна быть вызвана до обращения к функции begin() библиотеки iarduino_GPS_NMEA, если таковая используется в скетче.
- Функция определяет наличие GPS модуля на шине UART, узнаёт скорость передачи данных на которую настроен модуль (это может занять несколько секунд) и указывает шине UART работать на обнаруженной скорости.
- Если шине UART была задана скорость до обращения к данной функции, то функция сначала проверит соответствует ли указанная скорость для работы с модулем, а если скорость не подходит, то изменит её на скорость передачи данных модуля.
- Пример:
Функция baudrate();
- Назначение: Установка скорости передачи данных модуля по шине UART.
- Синтаксис: baudrate( [СКОРОСТЬ] );
- Параметры:
- uint32_t СКОРОСТЬ — целое число может принимать следующие значения:
- 4800 бит/сек.
- 9600 бит/сек. — это значение установлено в модуле по умолчанию.
- 19200 бит/сек.
- 38400 бит/сек.
- 57600 бит/сек.
- 115200 бит/сек.
- uint32_t СКОРОСТЬ — целое число может принимать следующие значения:
- Возвращаемое значение: uint32_t — результат установки скорости модуля (true / false).
- Примечание:
- Функция устанавливает указанную скорость и модулю и шине UART.
- Если функцию вызвать без параметра, то функция обнаружит текущую скорость модуля и установит её для шины UART.
При этом функция вернет:- false (0) — если скорость модуля не определена.
- true (1) — если скорость модуля совпадает с уже установленной скоростью шины UART.
- СКОРОСТЬ — обнаруженная скорость модуля установленная для шины UART.
- Пример:
Функция updaterate();
- Назначение: Установка частоты обновления сообщений NMEA выводимых модулем.
- Синтаксис: updaterate( ЧАСТОТА );
- Параметры:
- uint8_t ЧАСТОТА — целое число от 1 до 10 Гц (от 1 до 10 раз в секунду).
- Возвращаемое значение: Нет.
- Примечание:
- Функция указывает модулю, как часто надо отправлять сообщения NMEA по шине UART.
- По умолчанию модуль отправляет сообщения NMEA с частотой 1 Гц (1 раз в секунду).
- Данные читаются функцией read() библиотеки iarduino_GPS_NMEA, в два раза медленнее, чем их отправляет модуль. Функция read() не знает какое количество строк включено в сообщение NMEA 0183 отправляемое GPS-модулем, по этому читает данные до получения идентификатора уже прочитанной строки, или до истечения времени указанного функцией timeOut() той же библиотеки.
- Пример:
Функция composition();
- Назначение: Установка состава сообщений NMEA 0183 отправляемых модулем.
- Синтаксис: composition( ИДЕНТИФИКАТОРЫ );
- Параметры:
- uint8_t ИНДЕНТИФИКАТОРЫ — от 1 до 11 идентификаторов строк сообщения NMEA. Идентификаторы указываются через запятую и могут принимать следующие значения:
- NMEA_GGA — данные о последнем зафиксированном местоположении.
- NMEA_GLL — географические координаты.
- NMEA_GSA — активные спутники и геометрические факторы ухудшения точности.
- NMEA_GSV — информация о всех наблюдаемых спутниках.
- NMEA_RMC — рекомендуемый минимум навигационных данных.
- NMEA_VTG — скорость и курс относительно земли.
- NMEA_ZDA — дата и время.
- NMEA_ANT — текстовое сообщение о состоянии антенны.
- NMEA_DHV — скорость движения GNSS приемника.
- NMEA_TXT — текстовое сообщение.
- NMEA_GST — статистика ошибок позиционирования.
- uint8_t ИНДЕНТИФИКАТОРЫ — от 1 до 11 идентификаторов строк сообщения NMEA. Идентификаторы указываются через запятую и могут принимать следующие значения:
- Возвращаемое значение: Нет.
- Примечание:
- По умолчанию модуль отправляет сообщения NMEA 0183 состоящие из строк с идентификаторами: GGA, GLL, GSA, GSV, RMC, VTG, ZDA и ANT.
- Уменьшение строк в составе сообщения NMEA приводит к уменьшению количества данных содержащихся в нём, но способствует ускорению передачи всего сообщения.
- Пример:
Функция system();
- Назначение: Выбор используемых спутниковых навигационных систем.
- Синтаксис: system( СИСТЕМЫ );
- Параметры:
- uint8_t СИСТЕМЫ — от 1 до 3 спутниковых навигационных систем, указываются через запятую и могут принимать следующие значения:
- GPS_GP — использовать данные поступающие от спутников GPS.
- GPS_BD — использовать данные поступающие от спутников Beidu.
- GPS_GL — использовать данные поступающие от спутников Glonass.
- uint8_t СИСТЕМЫ — от 1 до 3 спутниковых навигационных систем, указываются через запятую и могут принимать следующие значения:
- Возвращаемое значение: Нет.
- Примечание:
- По умолчанию модуль использует спутниковые навигационные системы GPS и Glonass.
- Пример:
Функция model();
- Назначение: Выбор динамической модели навигационной платформы.
- Синтаксис: model( МОДЕЛЬ );
- Параметр:
- uint8_t МОДЕЛЬ — может принимать одно из следующих значений:
- GPS_PORTABLE — модуль используется в портативном устройстве.
- GPS_STATIC — модуль используется статично.
- GPS_WALKING — модуль используется пешеходом.
- GPS_VEHICLE — модуль используется в автомобиле.
- GPS_VOYAGE — модуль используется на морском судне.
- GPS_AVIATION_1G — модуль используется на воздушном судне reset(GPS_FACTORY_SET) .
- Пример:
Описание функций библиотеки iarduino_GPS_NMEA:
Библиотека iarduino_GPS_NMEA позволяет получать данные из текстовых сообщений NMEA 0183 отправляемых GPS-модулем по шине UART. Библиотека может использовать как аппаратную, так и программную реализацию шины UART для получения данных от GPS-модуля.
С подробным описанием функций библиотеки и примерами её работы можно ознакомиться на странице Wiki — Парсер протокола NMEA.
Список функций библиотеки:
Библиотека содержит 4 функции:
- begin() — инициализация получения данных из строк NMEA.
- timeZone() — установка / получение часовой зоны.
- timeOut() — ограничение времени чтения данных.
- read() — чтение данных.
Чтение данных:
Обращение к функции read() приводит к чтению данных из текстового сообщения NMEA 0183 отправляемого GPS-модулем по шине UART в следующие переменные:
- float latitude — Широта (±90.0°).
- float longitude — Долгота (±180.0°).
- uint16_t altitude — Высота над уровнем моря (±32767м).
- uint8_t speed — Скорость (0-255 км/ч).
- float course — Курс (±180.0°).
- uint8_t satellites[GPS_ACTIVE] — Количество активных спутников (0-12).
- uint8_t satellites[GPS_VISIBLE] — Количество наблюдаемых спутников.
- float PDOP — Пространственный геометрический фактор ухудшения точности (0-25.5).
- float HDOP — Горизонтальный геометрический фактор ухудшения точности (0-25.5).
- float VDOP — Вертикальный геометрический фактор ухудшения точности (0-25.5).
- uint8_t seconds — Секунды (0-59).
- uint8_t minutes — Минуты (0-59).
- uint8_t hours — Часы (1-12).
- uint8_t Hours — Часы (0-23).
- uint8_t midday — Полдень (0-am, 1-pm).
- uint8_t day — День месяца (1-31).
- uint8_t weekday — День недели (0-воскресенье, 1-понедельник, . , 6-суббота).
- uint8_t month — Месяц (1-12).
- uint8_t year — Год (0-99).
- uint16_t Year — Год (0-65’535).
- uint32_t Unix — Unix время (0-4’294’967’296 сек).
- Функцию read() можно вызвать с указанием массива в качестве параметра, тогда этот массив будет заполнен данными о наблюдаемых спутниках.
Содержание данных в строках сообщения NMEA 0183:
Переменные: Идентификаторы строк сообщения NMEA 0183 отправляемого модулем: latitude
longitudeGGA GLL RMC — — — — — — altitude GGA — — — — — — — — satellites GGA — — — — — — — — speed
course— — RMC VTG — — — — — PDOP
VDOP— — — — — GSA — — — HDOP GGA — — — — GSA — — — Hours
hours
minutes
seconds
middayGGA GLL RMC — ZDA — — DHV GST day
weekday
month
year
Year— — RMC — ZDA — — — — Unix (GGA || GLL || RMC || ZDA || DHV || GST ) && ( RMC || ZDA ) Массив — — — — — GSA GSV — — Наличие в составе сообщения NMEA 0183, отправленного модулем, строки с любым из указанных в таблице идентификатором, приводит к заполнению данными соответствующей переменной.
- uint8_t МОДЕЛЬ — может принимать одно из следующих значений: