Как использовать NMEA-0183 с Arduino
Компоненты и расходные материалы
| × | 1 | ||||
| × | 1 |
Об этом проекте
NMEA-0183 - это электрический стандарт для подключения GPS, SONAR, датчиков, устройств автопилота и т. Д. На судах и лодках. В отличие от более нового стандарта NMEA 2000 (основанного на CAN), NMEA 0183 основан на EIA RS422 (в некоторых старых и / или простых системах используется RS-232 или однопроводной).
Я хочу показать вам, как подключить Arduino UNO (или любой другой Arduino) к любому устройству NMEA-0183 с дифференциальным выходом. Хотя стандарт требует изолированных входов и выходов, полезно использовать наш RS422 / RS485 Arduino Shield с изолированным интерфейсом.
Подключение к NMEA 0183
На картинке ниже вы можете увидеть типичное устройство с дифференциальным выходом. Клеммы - это NMEA OUT + и NMEA OUT- или TX + или TX-. Провода NMEA IN + и NMEA IN- не являются обязательными.
Если у вас есть единственный провод передачи от вашего устройства (скорее всего, с маркировкой TX или NMEA OUT или что-то в этом роде), то ваше устройство использует протокол RS-232. В этом случае вам понадобится простой преобразователь RS232.
Установка перемычки
- UART RX в позицию 2
- UART TX в позицию 3
- Напряжение в позиции 5 В
Настройка DIP-переключателя
Прошивка
Вы можете найти множество различных программных стеков NMEA-0183 для Arduino. Очень хорошее решение - библиотека NMEA от Джастина Р. Катлера
https://github.com/jrcutler/NMEA0183
Необходимо поменять контакты программного UART на контакты 2 и 3! Возьмите забота это the бод оценка из the программное обеспечение uart равно the то же как в ваш NMEA устройство - типичный 4800 Бод.
Тестовый прогон
После компиляции и загрузки программа будет декодировать входящие протоколы NMEA. Вы можете открыть последовательный монитор, чтобы увидеть декодированные протоколы.
Если у вас дома нет устройства NMEA, вы также можете использовать симулятор на своем ПК и простой адаптер USB-RS485 вместо реального устройства.
Код
- Демонстрация NMEA 0183
Демонстрация NMEA 0183 Arduino
Анализ протоколов NMEA 0183#include// соответствует Zihatec RS422 / RS485 shieldSoftwareSerial gps (2, 3); NMEA0183 nmea; void setup () {while (! Serial); Serial.begin (115200); gps.begin (4800); Serial.println ("тест синтаксического анализатора NMEA0183");} void loop () {if (gps.available ()) {char c =gps.read (); if (nmea.update (c)) {Serial.print ("Предложение NMEA0183 принято ("); Serial.print (nmea.getFields ()); Serial.print ("поля):"); Serial.write (nmea.getSentence ()); Serial.println (); }}}
Производственный процесс
- Очередь C# с примерами:что такое очередь C# и как ее использовать?
- Как взломать ИК-пульты
- Управление роботом Roomba с помощью Arduino и устройства Android
- Как связать Arduino Mega с GPS-модулем NEO-6M
- Как читать температуру и влажность на Blynk с DHT11
- Насколько легко использовать термистор ?!
- Как создавать музыку с помощью Arduino
- Как использовать Modbus с Arduino
- Автоматический тестер устройств с Arduino
- Как использовать шлифовальный станок