Оглавление:
2025 Автор: John Day | [email protected]. Последнее изменение: 2025-01-13 06:58
NMEA-0183 - это электрический стандарт для подключения GPS, SONAR, датчиков, автопилотов и т. Д. На судах и лодках. В отличие от более нового стандарта NMEA 2000 (основанного на CAN), NMEA 0183 основан на EIA RS422 (в некоторых старых и / или простых системах используется RS-232 или однопроводный).
Я хочу показать вам, как подключить Raspberry Pi 3B к любому устройству NMEA-0183 с дифференциальным выходом. Хотя стандарт требует изолированных входов и выходов, полезно использовать RS422 / RS485 HAT с изолированным интерфейсом.
Шаг 1. Инструменты и программное обеспечение
Материалы:
Raspberry Pi
RS422 / RS485 шляпа
последовательное устройство NMEA0183
Программное обеспечение:
Распбиан стрейч
Симулятор NMEA
Шаг 2: Подключение к NMEA 0183
На картинке выше вы можете увидеть типичное устройство NMEA с дифференциальным выходом. Клеммы - это NMEA OUT + и NMEA OUT- или TX + или TX-. Провода NMEA IN + и NMEA IN- не являются обязательными.
если у вас есть единственный провод передачи от вашего устройства (скорее всего, с маркировкой TX или NMEA OUT или что-то в этом роде), то ваше устройство использует протокол RS-232. В этом случае вам понадобится простой преобразователь RS232.
Шаг 3: Настройки DIP-переключателя
Шаг 4: Освободите последовательную линию и включите UART Raspberry Pi
Самый простой способ - использовать инструмент raspi-config для переключения UART на контакты GPIO14 / 15. Взять свежий образ Raspbian
sudo raspi-config
goto '5 вариантов интерфейса'
goto 'P6 Serial'
«Хотите, чтобы оболочка входа была доступна через последовательный порт?» НЕТ
«Вы хотите, чтобы оборудование последовательного порта было включено?» ДА
Закончить raspi-config
перезагрузите Raspberry Pi
Теперь вы можете получить доступ к UART через / dev / serial0
Шаг 5: Прошивка
Вы можете найти множество различных программных стеков Python для NMEA-0183 для Raspberry Pi. Очень простым решением является библиотека NMEA от Ника Свитинга:
github.com/nsweeting/NMEA0183
Обратите внимание: для последовательных подключений требуется pyserial:
github.com/nsweeting/NMEA0183
Шаг 6: пробный запуск
Программа Python будет декодировать входящие протоколы NMEA. Если у вас дома нет устройства NMEA, вы также можете использовать симулятор на своем ПК и простой адаптер USB-RS485 вместо реального устройства.