Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Manufacturing Technology >> Производственный процесс

Подключение Arduino к NMEA-0183: пошаговое руководство

Компоненты и материалы

Arduino UNO 1 шт.
RS422 / RS485 Shield 1 шт.

О проекте

NMEA-0183 — электрический стандарт для подключения GPS, сонаров, датчиков, автопилотов на судах. В отличие от NMEA 2000 (на базе CAN), NMEA 0183 основан на EIA RS422 (старые системы используют RS-232 или один провод).

Показано, как подключить Arduino UNO (или любую другую Arduino) к любому устройству NMEA-0183 с дифференциальным выходом. Хотя стандарт требует гальванически развязанные входы/выходы, удобно использовать RS422/RS485 Shield с изолированным интерфейсом.

Подключение к NMEA 0183

На типичном устройстве с дифференциальным выходом клеммы обозначены как NMEA OUT+ и NMEA OUT- (или TX+/TX-). Провода NMEA IN+ и NMEA IN- опциональны.

Подключение Arduino к NMEA-0183: пошаговое руководство

Если у устройства только один провод передачи (TX или NMEA OUT), используется протокол RS-232. Нужен простой RS232-преобразователь.

Настройка перемычек

Подключение Arduino к NMEA-0183: пошаговое руководство

Настройка DIP-переключателей

Подключение Arduino к NMEA-0183: пошаговое руководство

Прошивка

Существует множество библиотек NMEA-0183 для Arduino. Отличное решение — библиотека NMEA от Justin R Cutler: GitHub.

Обязательно измените пины программного UART на 2 и 3! Убедитесь, что бодрейт программного UART совпадает с бодрейтом вашего NMEA-устройства — обычно 4800 Бод.

Тестовый запуск

После компиляции и загрузки программа будет декодировать входящие NMEA-протоколы. Откройте Serial Monitor для просмотра декодированных предложений.

Если нет реального устройства, можно использовать симулятор на ПК и USB-RS485 адаптер.

Подключение Arduino к NMEA-0183: пошаговое руководство

Код

NMEA 0183 demo (Arduino)

Парсинг NMEA 0183 протоколов

#include <NMEA0183.h> // соответствует Zihatec RS422/RS485 shield
SoftwareSerial gps(2, 3);
NMEA0183 nmea;

void setup() {
  while (!Serial);
  Serial.begin(115200);
  gps.begin(4800);
  Serial.println("NMEA0183 parser test");
}

void loop() {
  if (gps.available()) {
    char c = gps.read();
    if (nmea.update(c)) {
      Serial.print("NMEA0183 sentence accepted (");
      Serial.print(nmea.getFields());
      Serial.print(" fields): ");
      Serial.write(nmea.getSentence());
      Serial.println();
    }
  }
}

Производственный процесс

  1. Очереди в C#: Enqueue, Dequeue и операции First-In-First-Out
  2. Создание универсального ИК-пульта на Arduino: пошаговое руководство
  3. Управление Roomba Create 2 через Arduino и Android: пошаговое руководство
  4. Подключение Arduino Mega к GPS-модулю NEO‑6M: пошаговое руководство
  5. Чтение температуры и влажности DHT11 через Blynk — пошаговый урок для Arduino
  6. Использование термистора: пошаговое руководство для Arduino
  7. Генерация музыкальных тонов на Arduino: полный спектр 88 клавиш пианино
  8. Мастерство Modbus на Arduino: пошаговое руководство
  9. Надежный тестер устройств на базе Arduino для продуктов Power Blough-R
  10. Освоение техник шлифовального станка для режущих инструментов: практическое руководство