home castoo
chapitre navigation
navigation

Testeur trame NMEA Wifi et RS422
Outils autonome d'analyse à base d'ESP8266

janvier 2020

Fabrication d'un outil de test NMEA autonome pour liaison wifi ou RS422

Depuis quelques temps j'avais envie de réaliser un petit outil qui m'aide à identifier les éventuelles problèmes sur la config nmea du voilier, vérifier la portée du wifi... Je me suis donc fixé un petit cahier des charges :


Ce type de projet est inenvisageable si l'on ne dispose pas d'un moyen de saisie pour paramétrer l'outil, j'ai cherché sur internet et je n'ai pas trouvé de librairie qui permette ceci avec un écran affichant suffisamment de ligne et qui consomme très peu. J'ai donc été obligé de concevoir deux objets logiciel pour créer une interface utilisateur simple sur écran Oled à l'aide d'un encodeur rotatif. Le code développé sera donc disponible dans le domaine public et j'espère que cela permettra à des amateurs comme moi la réalisation de nouveaux projets.

Sur cette petite vidéo, j'essaie de montrer ou j'en suis du projet. On peut voir :
L'intégration des trois cellules solaires.
L'appareil se commande à l'aide d'un bouton (commutateur rotatif sans fin) on le tourne pour faire défiler les choix et on le presse pour valider un choix.
Un petit écran permet de visualiser les menus et les résultats des commandes. Il aurait été facile d'utiliser un écran plus grand mais la consommation aurait explosée et l'autonomie du testeur aurait été compromise !
On peut voir l'interface RS422 avec son connecteur à vis (4 fils qui correspondent Out + et -, In + et -) nmea0183.
L'antenne wifi externe (optionnelle mais elle permet un signal plus puissant.) se replie pour diminuer l'encombrement.
Les menus permettent le paramétrage du wifi :
Détection des réseaux wifi alentours, sélection de votre choix et saisie du mot de passe.
Saisie de l'adresse IP et du numéro de port.
Connexion au réseau wifi sélectionné.
Tous les paramètres sont sauvegardés dans une mémoire eeprom qui conserve les données quand l'alimentation est coupée ce qui permet une connexion directe au réseau utilisé à la dernière connexion au démarrage suivant.
Choix de la vitesse de l'interface RS422 nmea0183.
Choix de la liaison utilisée (wifi ou RS422) pour les tâches suivantes (c'est évolutif...) :
- Affichage des trames NMEA et AIS reçues.
- Comptage des 12 types de trames les plus couramment reçues.
- Affichage des principales données des trames $GPRMC reçues (heure, latitude et longitude).
Emission de trames sur la liaison RS422
A suivre...

Testeur nmea wifi et RS422

Nous trouvons donc dans les entrailles du testeur :
La batterie, qui est rechargée soit par un câble USB soit par les cellules solaires qui sont sur le dessous du testeur.
L'esp8266 qui est le cœur du montage, j'ai utilisé un Wemos D1 mini Pro qui possède entre autre une prise permettant de raccorder une antenne wifi externe même si une antenne céramique est installée sur le CI du composant. Ce circuit se programme directement depuis l'IDE ARDUINO qui est disponible gratuitement et sur tous les systèmes.
Je n'ai utilisé que des circuits "LEGO", inutile d'être informaticien ou électronicien, il suffit de savoir tenir un fer à souder pour raccorder des fils entres eux ! Ce montage est super simple et facile à réaliser.
On retrouve dans les circuits "LEGO" : Un circuit pour gerer l'alim TP4056 (chargeur solaire, pile, usb et alim.).
Un circuit OLED qui est un petit écran LCD, celui que j'utilise est le 1306 (attention il y en a des bicolores (1ere ligne jaune et le reste bleu) ils ne correspondent pas vraiment au besoin, perso j'ai choisi un blanc (j'ai désoudé celui de la photo pour le remplacer par un blanc comme sur la vidéo ci-dessus.).
Un bouton rotatif sans fin ( le mien doit être un 30 pas mais cela n'a pas d'importance ), dans le programme je ne compte pas les tours mais seulement les pas en avant ou en arrière).
Un circuit qui gère l'interface nmea RS422 qui est protégé contre toutes les erreurs de manipulation par photo coupleurs. Un bouton, une led et le boitier que j'ai conçu sur Freecad et qui est imprimable sur une imprimante 3D. Le cout total du montage ne dépasse pas les 25 euros.

Emission de trame sur la liaison nmea0183 (RS422). Le testeur envoi sur la liaison deux types de trame :
$GPRMC avec modification des latitudes et longitudes de façon à visualiser sur une carte de GPS une mini promenade dans le Perthuis Breton au nord de l'ile de Ré (l'heure et les autres infos de la trame n'évoluent pas, par contre la checksum est recalculée pour éviter les erreurs sur le lecteur GPS). Cette simulation de promenade est plus que basique, il sera toujours possible de la faire évoluer ultérieurement...
$SDDBT est une trame généralement envoyée par les sondeurs, le testeur fait donc évoluer la profondeur en mètres par pas de 10 cm ce qui permet de suivre l'évolution sur un lecteur GPS. (Comme pour la trame RMC les autres infos de la trame ne sont pas modifiées mais la checksum est là aussi recalculée.) Sur la vidéo ci-contre j'ai relié la sortie du testeur vers une clé usb (adaptateur nma RS422 vers usb) sur une entrée d'un micro équipé d'OpenCpn sous ubuntu (/dev/ttyUSB0), on peut voir l'interprétation des trames reçues par le logiciel OpenCpn, le bateau se déplace par saccades et la profondeur visualisée dans le Dashboard évolue. Ce n’est pas super, mais on voit que cela fonctionne !



Testeur nmea solaire

Les trois petites cellules solaires sont là pour recharger la batterie et rendre l'appareil le plus autonome possible !
Il est cependant possible de recharger la batterie par usb sur une petite prise située sous l'antenne wifi (c'est moins fun, mais plus rapide). Il ne faut pas s'attendre à un rechargement éclair avec le solaire mais ca marche j'ai testé ce type de montage sur mon anémomètre.


Testeur nmea avec antenne wifi

Sur le dessus du boitier on peut voir la sortie pour le racordement de fils en nmea0183 (émission/reception) la vitesse est configurable à 4800 où 38400 (si AIS) (il est également possible de choisir des vitesses autres de façon à pouvoir imaginer d'autres utilisations...).
L'antenne wifi peut être repliée pour la protéger.
Le petit trou que l'on aperçoit sur le dessus permet de voir si le rechargement est terminé led du TP4056 qui passe du rouge au vert.


Testeur nmea menu choix par rotateur

On voit ici l'encodeur rotatif qui permet de sélectionner les choix des menus et la validation. Un seul bouton, pourquoi faire compliquer quand c'est possible de faire simple ! Un petit bouton est imprimable. J'ai également scié la tige du bouton qui était trop longue.


Testeur affichage trame nmea Wifi

Il est donc possible d'afficher les trames nmea et ais qui transitent sur la liaison wifi ou RS422. Dès que le choix est validé, le défilement commence. Pour l'interrompre, il faut presser une fois le bouton, cela fige la dernière trame. Il faut ensuite un deuxième appui sur le bouton pour revenir au menu.


Testeur compteur de trame nmea Wifi

Le choix "compteur de trame" va compter les douze types de séquences nmea ou ais qui vont apparaitre sur la liaison sélectionnée (wifi ou RS422). (Les autres types de trame sont ignorées, l'écran étant limité en taille !). La présentation se fait sur deux colonnes, dans l'exemple de la photo, les trames AIS "AIVDM" apparaissent au début de la deuxième colonne. 1er appui bouton on fige l'écran, 2eme on revient au menu.


Testeur suivi de trame nmea RMC sur Wifi

Il est également possible de visualiser les principales infos des trames RMC reçues (heure UTA, latitude et longitude) (wifi ou RS422).



Pour la saisie, l'écran est divisé en deux (même si il est déjà petit !).
Dans la partie droite vous choisissez le type de caractère souhaité (Majuscules ou Minuscules ou Spéciaux (les numériques sont avec les spéciaux). Dans cette partie droite il y a également un choix "Val" qui permet de lancer des actions.
Dans la partie gauche la liste des caractères s'affiche en fonction du choix effectué dans la partie droite.
On passe de la liste de gauche à celle de droite (ou inversement) en allant au bout de la liste.
Le menu "Val" permet "Correction", "Effacer tout", "Validation", "Annulation".
La saisie est un peu rébarbative s'il n'y en a beaucoup mais comme les données sont systématiquement sauvegardées dans une mémoire qui ne se perd pas lors de l'extinction de l'appareil on prend son mal en patience...
Cette explication est un peu rébarbative alors que c'est trés simple, alors voyons cela en vidéo...

GROSSE HOULE SUR LES VIDEOS QUI SUIVENT ! SUR "CHROME" C'EST OK, SUR "SAFARI" ELLES SONT INVERSSEES ! ET SUR "IE" ELLES SONT COUCHEES !!! J'espère trouver solution rapide pour éviter ce gros temps...


Menu
=> Modif parametres
=> Parametres wifi
=> Selection du réseau wifi

Le logiciel va lancer une découverte réseau Wifi et va vous présenter dans un menu les cinq premiers pour vous permettre de selectionner votre SSID. Vous allez ensuite devoir saisir le mot de passe de celui-ci.
Dans le cas de la vidéo la connexion est réalisée vers un boitier QK-A026 avec le mot de passe par défaut 8 8.

Menu
=> Modif parametres
=> Parametres wifi
=> Adresse IP réseau wifi

Menu
=> Modif parametres
=> Parametres wifi
=> Selection du port wifi


Menu
=> Modif parametres
=> Parametres série
=> Choix de la vitesse...

Enfin, tous les paramètres sont ok, alors lançons une connexion sur le wifi mais avant cela si cela n'a pas été fait auparavant il est nécessaire de choisir le type de réseau que l'on va utiliser :
Menu
=> Modif parametres
=> Parametres wifi
=> Connexion wifi



Tous les paramétres ne se rentrent qu'une fois sauf si l'on change de bateau.

Une petite démo sur l'exploitation de la liaison nmea0183 RS422 en réception.
Pour la démo en émission dans la vidéo en haut de cette page avec la visualisation des trames de gps et de profondeur sur OpenCpn, j'avais donc utilisé le petit boitier bleu que l'on voit sur cette vidéo et que l'on ne voyait pas dans la première vidéo.
Raccordement pour l'émission :
testeur Z vers RX- du boitier bleu
testeur Y vers RX+ du boitier bleu

Donc pour la réception, les fils d'entrée du testeur sont raccordés sur l'émission du boitier QK-A026.
Testeur A vers NMEA Out+
Testeur B vers NMEA Out-
Lorsque l'on utilise cette interface, il faut veiller à être sur la bonne vitesse dans les parametres de la liaison série.
La vidéo montre dans les paramètres le menu qui permet de basculer du mode wifi à RS422 ou l'inverse, ce paramètre est comme les autres sauvegardé dans la mémoire eeprom de l'appareil, donc au démarrage on est d'office sur le dernier mode utilisé.
Lorsque l'on a sélectionné le mode les trois choix (trame nmea, type de trame et RMC) sont liés au mode en cours.
Dans cette première version l'émission ne peut se faire qu'en RS422 sur la liaison filaire...



Test d'une sortie nmea0183 sur le transpondeur ICOM MA500TR, ce qui est pratique c'est que dès que l'on positionne les fils sur une sortie nmea on voit le signal arriver, ce qui permet de confirmer en quelques secondes qu'on est bien sur les bons fils !


J’ai réalisé ce montage pour mes propres besoins, mais si quelqu’un est intéressé par ce projet, je vais mettre à dispo sur ce site les informations nécessaires à sa réalisation par domaine :
- Les infos pour l'electronique, le montage et le logiciel dans le chapitre "Electronique"
- Les infos pour l'impression du boitier, du couvercle et du bouton dans "Imp 3D"

La premiere évolution V2 :
- Lecture de fichier kml et émission des trames sur la liaison RS422"

Le projet étant évolutif, je vais numéroter les versions (impressions 3D, logiciel).

accueil navigation

Bricolage Robotique Informatique Peinture Voyage
Téléc. portail Le robot "mécano" Astuces informatique Henri Bertrou Auvergne
Bat. Iphone 6S Le robot "solaire" Réseau couche app. Jean-Michel Castille Floride
Robot piscine Servo et IR" Réseau Les couches New York
Xiaomi M365 Le robot "thymio" Réseaux Outils L'Ouest américain
Mac Mini Le robot "Rovio" Unités grandeur inf. L'Ile Maurice
Putty SSH Windows L'Italie / Venise
Bases Raspberry Tunisie
Termius IPhone/IPad Grece
Le vieux ZX 81
...
Navigation La Rochelle CNC / Imp3D Electronique Programmation
Rencontre dauphins Les Minimes Construction CNC Alim. TPL 5110 Doc. programme
Analyse NMEA 0183 Le Vieux port CNC du commerce Carte ESP8266 Indent programme
graph. NMEA 0183 L'Ile de Ré Martyr CNC ESP8266 1 relai Prog. objet
Analyse trames AIS A visiter Réa. imp. 3D ESP8266 Alarme Prog. procédurale
Analyse AIS TCP-IP Cura impression 3D ESP8266 MQTT
Sortie en ketch Plateau CR10 ESP8266 Temp.
Echange GPS C80 Anémomètre.
HP Sun-Odyssey CNC / 3D en vrac MCP9808 Librairie
LCD yanmar Saisie Oled
Testeur nmea esp1 i2c