Comment utiliser NMEA-0183 avec Arduino
Composants et fournitures
| × | 1 | ||||
| × | 1 |
À propos de ce projet
NMEA-0183 est une norme électrique pour connecter le GPS, le SONAR, les capteurs, les unités de pilotage automatique, etc. dans les navires et les bateaux. Contrairement à la nouvelle norme NMEA 2000 (basée sur CAN), la NMEA 0183 est basée sur EIA RS422 (certains systèmes plus anciens et/ou simples utilisent RS-232, ou un seul fil).
Je veux vous montrer comment connecter un Arduino UNO (ou tout autre Arduino) à n'importe quel appareil NMEA-0183 avec sortie différentielle. Bien que la norme appelle des entrées et sorties isolées, il est utile d'utiliser notre RS422/RS485 Arduino Shield avec interface isolée.
Connexion à NMEA 0183
Dans l'image ci-dessous, vous pouvez voir un appareil typique avec une sortie différentielle. Les terminaux sont NMEA OUT+ et NMEA OUT- ou TX+ ou TX-. Les fils NMEA IN+ et NMEA IN- sont en option.
Si vous avez un seul fil de transmission de votre appareil (probablement étiqueté TX ou NMEA OUT ou quelque chose comme ça), alors votre appareil utilise le protocole RS-232. Dans ce cas, vous aurez besoin d'un simple convertisseur RS232.
Réglage du cavalier
- UART RX à la position 2
- UART TX à la position 3
- Tension à la position 5V
Réglage du commutateur DIP
Micrologiciel
Vous pouvez trouver de nombreuses piles logicielles NMEA-0183 différentes pour Arduino. Une très bonne solution est la bibliothèque NMEA de Justin R Cutler
https://github.com/jrcutler/NMEA0183
Il est nécessaire de changer les broches du logiciel UART en broches 2 et 3 ! Prenez soins que le baud noter de le logiciel uart est le même comme dans votre NMEA appareil - typique 4800 Bauds.
Test de fonctionnement
Après la compilation et le téléchargement, le programme décodera les protocoles NMEA entrants. Vous pouvez ouvrir le moniteur série pour voir les protocoles décodés.
Si vous n'avez pas d'appareil NMEA chez vous, vous pouvez également utiliser un simulateur sur votre PC et un simple adaptateur USB vers RS485 au lieu d'un vrai appareil.
Code
- Démo NMEA 0183
Démo NMEA 0183Arduino
L'analyse des protocoles NMEA 0183#include// correspond à Zihatec RS422/RS485 shieldSoftwareSerial 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("phrase NMEA0183 acceptée ("); Serial.print(nmea.getFields()); Serial.print ("champs):"); Serial.write(nmea.getSentence()); Serial.println(); } }}
Processus de fabrication
- File d'attente C# avec exemples :qu'est-ce que la file d'attente C# et comment l'utiliser ?
- Comment pirater des télécommandes infrarouges
- Contrôler un robot Roomba avec Arduino et un appareil Android
- Comment interfacer Arduino Mega avec le module GPS NEO-6M
- Comment lire la température et l'humidité sur Blynk avec DHT11
- Est-il facile d'utiliser une thermistance ? !
- Comment faire de la musique avec un Arduino
- Comment utiliser Modbus avec Arduino
- Comment utiliser une meuleuse de coupe