Table des matières:
- Étape 1: Schéma de circuit et protections de circuit
- Étape 2: Construction
- Étape 3: Programmation du bouclier WiFi
- Étape 4: Ajout de voyants lumineux (facultatif)
- Étape 5: Définition de la configuration via la page Web intégrée
- Étape 6: Aide - Aucune donnée
Vidéo: Hub NMEA/AIS bon marché -- Pont RS232 vers Wifi pour une utilisation à bord : 6 étapes
2024 Auteur: John Day | [email protected]. Dernière modifié: 2024-01-30 09:05
Mise à jour du 9 janvier 2021 - Ajout d'une connexion TCP supplémentaire et réutilisation de la dernière connexion si plus de clients se connectentMise à jour du 13 décembre 2020 - Ajout d'une version sans configuration du code pour les bateaux avec des routeurs existants
introduction
Ce pont NMEA/AIS RS232 vers WiFi est basé sur le bouclier WiFi ESP8266-01. L'AIS est un système d'identification automatique permettant d'afficher la position des navires à proximité. NMEA 0183 est la norme de la National Marine Electronics Association utilisée pour les messages GPS.
Le pont RS232 vers WiFi a été modifié à partir du ESP8266-01 WiFi Shield pour être alimenté par une batterie 12V et accepter une entrée RS232 (+/-15V) et créer un réseau local qui diffuse les données via TCP et UDP. Il a été développé en collaboration avec Jo qui souhaitait gérer un réseau local autonome simple et bon marché pour accéder aux données de son AIS de n'importe où sur son yacht. Ce module résultant crée un point d'accès (un routeur) et configure un serveur TCP pour un maximum de 4 connexions et diffuse également les données sur un groupe de diffusion UDP. Une page Web de configuration est fournie pour définir les numéros de port TCP et UDP, la puissance WiFi Tx et le débit en bauds RS232 entrant. Contrairement au WiFi Shield, il n'y a pas de bouton de configuration, donc une fois construit, le module peut être complètement étanche à l'eau. Des circuits de protection sont inclus pour rendre cet appareil robuste contre les erreurs de câblage. Bien qu'il soit conçu avec NMEA (GPS) et AIS à l'esprit, le module gérera toutes les données RS232 avec des débits en bauds compris entre 4800 et 38400 (et d'autres en éditant l'esquisse Arduino).
Caractéristiques
- Utilise le module ESP8266-01 peu coûteux et facilement disponible:- D'autres modules ESP8266 peuvent également être utilisés
- Robuste:- Le circuit a un certain nombre de protections intégrées pour se prémunir contre les erreurs lors du câblage.
- Économe en énergie:- Une alimentation de convertisseur DC-DC alimente efficacement l'unité à partir d'une batterie 12V et la puissance WiFi Tx peut être réduite pour économiser plus d'énergie.
- Simple à utiliser:- Connectez simplement une alimentation 5,5V à 12V et la ligne RS232 TX, puis connectez votre récepteur au réseau et connectez-vous au service TCP ou UDP pour recevoir les données. Peut être rapidement remplacé par un autre en cas de panne de l'unité
- Simple à configurer:- Il n'y a pas de reprogrammation nécessaire, pas de mode de configuration particulier. Une page de configuration est fournie qui vous permet de définir le débit en bauds RS232 et la puissance de transmission WiFi et les numéros de port pour les serveurs TCP et UDP
-
Version optionnelle sans configuration:- Il existe également un autre croquis où toute la configuration est préprogrammée. C'est pour les situations qui ont déjà un réseau local fonctionnant avec son propre routeur (point d'accès)
Fournitures:
Ce pont ESP8266-01 RS232 vers WiFi a besoin des pièces suivantes, ou similaires. Les prix indiqués ici sont en date d'août 2020 et excluent les frais d'expédition et une sorte de boîtier en plastique:-
Module WiFi ESP8266-01 - ~ 1,50 $ US en ligne (prenez votre chance) OU pour un produit fiable SparkFun ESP8266-01 - 6,95 $ US
Convertisseur Buck MPM3610 3.3V Adafruit - 5,95 $ US Entrée 5V à 21V, OU Module d'alimentation abaisseur DC-DC 3A Buck en ligne Aliexpress ~ 2,00 $
En-tête à 10 broches Element14 - 0,40 $ US (ou bornier d'en-tête à 28 broches de Jaycar 0,95 $ AU)
1 sur 1N5711 Schottky Diode Digikey 1,15 $ US (ou Jaycar 1,60 $ AU)
2 diodes 1N4001 SparkFun 0,30 $ US (ou 1N4004 Jaycar 1,00 $ AU) Toute diode 1A 50V ou supérieure fera l'affaire, par exemple 1N4001, 1N4002, 1N4003, 1N4004
1 transistor NPN 2N3904 SparkFun 0,50 $ US (ou Jaycar 0,75 $ AU n'importe quel NPN à usage général avec Vce > 40 V, Hfe > 50 à 1 mA, Ic > 50 mA, par exemple BC546, BC547, BC548, BC549, BC550, 2N2222
6 résistances 3K3 par ex. Résistances 3K3 - Digikey - 0,60 $ US (ou 3K3ohm 1/2 Watt 1% Résistances à film métallique - Pk.8 de Jaycar 0,85 $ AU)
3 résistances 330R Element14 0,10 USD (ou résistances à film métallique 330ohm 1/2 Watt 1% - Pk.8 de Jaycar 0,85 AU)
1 sur résistance 10K Element14 0,05 $ US (ou résistances à film métallique 10k Ohm 0,5 Watt - Pack de 8 de Jaycar 0,85 $ AU)
Carte Vero (liens et rails bus) Jaycar HP9556 OR (ruban cuivre) (ruban cuivre) par ex. Jaycar HP9540 ~ 5,50 $ AU
et un boîtier en plastique et un fil de raccordement.
Coût total ~ 9,90 $ US + expédition et boîtier en plastique (à partir d'août 2020) en utilisant Aliexpress ESP8266-01 et le module DC-DC OU ~ 19,30 $ US en utilisant le module Sparkfun ESP8266-01 et le convertisseur abaisseur DC-DC Adafruit. Assez bon marché pour faire quelques pièces de rechange.
Pour programmer le pont RS232 vers WiFi, vous avez également besoin d'un câble USB vers série. Ici, un câble série USB vers TTL de SparkFun (10,95 $ US) est utilisé car il a des extrémités bien étiquetées et prend en charge un large éventail de systèmes d'exploitation. (plus frais de port et un étui).
Étape 1: Schéma de circuit et protections de circuit
Ci-dessus se trouve le schéma de circuit du pont RS232 vers WiFi (version pdf). Cela a été adapté du ESP8266-01 Wifi Shield et modifié pour accepter RS232 et une alimentation 5V à 12V (batterie). Le convertisseur CC à CC offre un fonctionnement économe en énergie à partir d'une batterie 12 V pour une utilisation nocturne lorsqu'il n'y a pas d'énergie solaire et que la consommation d'énergie est primordiale.
Un certain nombre de protections de circuit ont été intégrées au circuit. Les connexions sur le côté gauche du circuit ne sont utilisées que pendant la construction pour programmer/déboguer l'unité. Les résistances 330R R6 et R7 protègent contre le court-circuit d'une sortie TX à une sortie TX lors de la programmation/débogage. Lors de la programmation, vous connectez TX à RX et RX à TX. La sortie de débogage TX doit être connectée à une entrée RX UART 3v3 pour voir la sortie de débogage (voir les commentaires dans le croquis ESP8266_NMEA_BRIDGE.ino).
Les connexions sur le côté droit du circuit sont utilisées pour connecter l'unité terminée à l'alimentation et à la source NMEA/AIS RS232. Ce sont les seules connexions qui doivent être accessibles une fois l'unité construite. Gardez ces connexions par paires.
Le 2N3904 fournit l'inversion et le décalage de niveau du signal RS232 +/-15V vers l'entrée TTL UART vers l'ESP2866. La tension inverse entre l'émetteur et la base du 2N3904 est spécifiée pour résister à au moins 6V. Le D4 limite la tension inverse de la base de l'émetteur à moins de 1 V lorsque l'entrée RS232 est de -15 V.
Enfin, « les pilotes et récepteurs RS-232 doivent pouvoir résister à un court-circuit indéfini à la terre » (RS232 wikipedia) donc si vous connectez accidentellement les lignes RS232 aux bornes d'alimentation, cela ne devrait pas endommager le périphérique NMEA/AIS.
Source de courant
La diode D1 empêche l'application d'une tension inverse au convertisseur DC-DC s'il vous arrive d'intervertir les connexions +V et GND lors du câblage. D1 a un faible courant de fuite. D2 fournit un chemin basse tension pour ce courant de fuite afin de maintenir la tension inverse sur le convertisseur DC-DC en dessous de -0,3V. La résistance 330R (R10) de la ligne RS232 GND offre une protection contre le court-circuit de la batterie à la terre si le fil + ve de la batterie est connecté au fil GND de l'alimentation de la carte alors que le RS232 GND est connecté.
Le convertisseur DC-DC est conçu pour une entrée opérationnelle jusqu'à 21V, il convient donc à une batterie 12V pendant son remplacement. Une batterie en pleine charge peut aller jusqu'à ~ 14,8 V et la tension du chargeur peut être plus élevée, 16 V ou plus. L'entrée nominale de 21 V du convertisseur DC-DC est conçue pour gérer cela. La connexion d'alimentation inversée accidentelle (au milieu de la nuit par mauvais temps) est protégée contre. La tension maximale absolue pour l'entrée du convertisseur est de 28 V et peut donc gérer un signal RS232 qui lui est connecté. La tension RS232 est spécifiée pour être inférieure à +/- 25V.
Si vous connectez accidentellement les fils de votre alimentation aux connexions RS232 TX/GND (permutées ou non), les résistances 10K et 330R protégeront contre les courts-circuits de l'alimentation.
En résumé, le circuit est protégé contre l'échange d'alimentation et les fils RS232 et la connexion des fils de ces paires dans les deux sens. Le mélange des fils, un de chaque paire, n'est pas protégé dans toutes les combinaisons, alors gardez les câbles RS232 et d'alimentation appariés et connectez-les par paires.
Le courant moyen utilisé par la carte est d'environ 100 mA (en fonction de la puissance de transmission WiFi et du débit de données). Si un simple régulateur linéaire était utilisé pour alimenter la carte à partir d'une batterie 12V, la consommation électrique serait de 12V x 100mA = 1,2W ou 1,2Ahrs sur 12 nuits. L'utilisation du convertisseur CC à CC, efficace à environ 70 %, réduit cette charge à 0,47 W ou 0,47 Ah sur une nuit de 12 heures.
Étape 2: Construction
J'ai construit cette unité en utilisant un petit morceau de carte vero avec des liens et des bus d'alimentation (version pdf). Voici les vues de dessus et de dessous du tableau terminé. Assurez-vous de vérifier soigneusement le câblage lorsque vous avez terminé. Il est facile de câbler à la mauvaise broche lorsque vous retournez et câblez par le bas.
Étape 3: Programmation du bouclier WiFi
Chaque pont RS232 vers WiFi doit être programmé une seule fois et plus jamais. Une page Web intégrée donne accès aux configurations disponibles.
Installation de la prise en charge ESP8266
Pour programmer le bouclier, suivez les instructions données sur https://github.com/esp8266/Arduino sous Installation avec le gestionnaire de cartes. Lorsque vous ouvrez le gestionnaire de cartes à partir du menu Outils → Carte, sélectionnez Type de contribution et installez la plate-forme esp8266. Ce projet a été compilé à l'aide de l'ESP8266 version 2.6.3. Les versions ultérieures peuvent être meilleures mais peuvent avoir leurs propres bugs car la plate-forme évolue rapidement.
Fermez et rouvrez l'IDE Arduino et vous pouvez maintenant sélectionner "Module ESP8266 générique" dans le menu Outils → Carte.
Installation des bibliothèques de support
Vous devez également installer, à partir de https://www.forward.com.au/pfod/pfodParserLibraries/index.html, les dernières versions de la bibliothèque pfodESP8266BufferedClient (pour pfodESP8266Utils.h et pfodESP8266BufferedClient.h) et de la bibliothèque millisDelay (pour millisDelay. h).
Téléchargez ces fichiers zip sur votre ordinateur, déplacez-les sur votre bureau ou dans un autre dossier que vous pouvez facilement trouver, puis utilisez l'option de menu Arduino IDE Sketch → Import Library → Add Library pour les installer. Vous devez également installer la bibliothèque SafeString. La bibliothèque SafeString est disponible à partir du gestionnaire de bibliothèque Arduino ou vous pouvez télécharger le fichier SafeString.zip directement pour une installation manuelle via Sketch → Import Library → Add Library
Arrêtez et redémarrez l'IDE Arduino et sous Fichier-> Exemples, vous devriez maintenant voir pfodESP8266BufferedClient et SafeString.
Programmation de la carte
Pour programmer la carte, mettez la carte en mode programmation en court-circuitant le lien (en bas à gauche). Ensuite, connectez le câble série USB vers TTL UART
Notez soigneusement que ne connectez que les câbles 3V3 TX/RX à la connexion de gauche à l'aide du 3V3 TX/RX du câble série USB vers TTL de Sparkfun. Les connexions des câbles sont RX (jaune), TX (orange), VCC (5V) (rouge), et GND (noir). Notez que le câble jaune (RX) est connecté à la broche TX de la carte et le câble orange (TX) est connecté à la broche RX de la carte. Le câble noir (GND) est connecté au GND pour la broche TX/RX
Remarque: Il semble qu'il existe deux versions de ce câble. Les anciennes versions ont 5V Vcc et RX (Marron), TX (Tan-like/Peach), VCC (Rouge) et GND (Noir), dans tous les cas le câble VCC n'est pas utilisé ici. Il y a aussi des commentaires selon lesquels les fils TX et RX sont inversés dans certains cas. Si l'IDE Arduino ne peut pas programmer la carte, essayez d'échanger les câbles TX/RX. Le 330R protège contre les shorts TX-TX.
Alimentez la carte à partir d'une alimentation ou d'une batterie de 6V à 12V 500mA ou plus. Connectez d'abord le câble d'alimentation -Ve (GND) afin que le courant d'alimentation n'essaie pas de revenir via la connexion USB. Utilisez de préférence une alimentation ou une batterie isolée (flottante) 6V à 12V. Notez que les modules Aliexpress DC-DC nécessitent au moins une alimentation de 6,5 V.
Branchez ensuite le câble USB à votre ordinateur. Sélectionnez son port COM dans le menu Outils → Port. Laissez la fréquence du processeur, la taille du flash et la vitesse de téléchargement à leurs paramètres par défaut.
Vérifiez la photo et votre câblage. Voir également ESP8266 Programming Tips (espcomm a échoué) Compilez le sketch ESP8266_NMEA_BRIDGE.ino. Ensuite, sélectionnez Fichier → Télécharger ou utilisez le bouton Flèche droite pour compiler et télécharger le programme. Deux fichiers sont téléchargés. Si vous obtenez un message d'erreur lors du téléchargement, vérifiez que les connexions de votre câble sont branchées sur les bonnes broches et réessayez.
Une fois la programmation terminée, supprimez le mode de programmation en court-circuitant le lien et les connexions TX/RX de programmation puis coupez puis rallumez l'alimentation pour redémarrer la carte dans son mode normal.
Connectez l'appareil NMEA/AIS.
Aucune version de configuration
Il existe une autre version de ce sketch, ESP8266_NMEA_BRIDGE_noCfg.ino, dans laquelle toute la configuration est préprogrammée dans le code du sketch. Dans ce cas, le hub NMEA se connecte à un routeur existant (point d'accès) pour rendre les données disponibles sur le réseau.
La configuration est tout en haut du fichier ESP8266_NMEA_BRIDGE_noCfg.ino.
// ================= CONFIG CODÉE DUR ===================
const char ssid = "yourRouterSSID"; // définissez le SSID de votre réseau ici const char password = "yourRouterPassword"; // définissez le mot de passe de votre réseau ici IPAddress staticIP(10, 1, 1, 190); // définissez ici l'adresse IP statique du hub NMEA. NOTEZ le, entre les chiffres // assurez-vous qu'aucun autre appareil n'est exécuté avec cette même IP et que l'IP est dans la plage IP de votre routeur // les plages IP de routeur communes sont 10.1.1.2 à 10.1.1.254 // 192.168.1.2 à 192.168.254.254 et // 172.16.1.2 à 172.31.254.254 // le routeur est généralement 10.1.1.1 ou 192.168.1.1 ou 172.16.1.1 selon sa plage IPAddress udpBroadcaseIP(230, 1, 1, 1); // définit l'IP de diffusion UDP ici. REMARQUE le, entre les chiffres. Cette IP est indépendante de la plage du routeur ne change pas const uint16_t tcpPortNo = 10110; // définir le port du serveur NMEA tcp ici const uint16_t udpPortNo = 10110; // définir le port de diffusion NMEA UDP Non ici const unsigned int txPower = 10; // Puissance TX dans la plage 0 à 82; const unsigned int GPS_BAUD_RATE = 4800; // le débit en bauds série de votre module GPS // ================= FIN DE LA CONFIG HARD CODED ===============
Étape 4: Ajout de voyants lumineux (facultatif)
Mon consultant en voile sur ce projet, Jo, a suggéré de monter une led Red Power et une led Green Data sur le boîtier pour indiquer que les choses fonctionnent. Voici le circuit modifié avec ces deux leds ajoutées. (version pdf)
R9 et R11 règlent le courant de la Led et donc la luminosité. Utilisez la plus grande résistance qui rend les leds encore visibles. Ils seront difficiles à voir en plein soleil ou dans une cabine lumineuse, alors montez l'unité dans un coin sombre pour une visibilité maximale. Jaycar a des leds de lunette appropriées rouges et vertes (~ 2,75 $ AU) et Sparkfun a des leds rouges et vertes super brillantes (1,70 $ US), mais presque toutes les leds rouges et vertes feront l'affaire.
Étape 5: Définition de la configuration via la page Web intégrée
Lorsque vous mettez la carte sous tension après la programmation, elle crée automatiquement un réseau local. C'est-à-dire qu'il deviendra un point d'accès local (routeur). Le nom du réseau commencera par NMEA_ suivi de 12 chiffres hexadécimaux uniques à chaque carte, par ex. NMEA_18FE34A00239 Le mot de passe du réseau local est toujours NMEA_WiFi_Bridge. Si vous devez échanger des unités en mer, éteignez l'ancienne, installez la pièce de rechange, puis recherchez le nouveau réseau NMEA_….. et utilisez le mot de passe NMEA_WiFi_Bridge pour le rejoindre.
Si vous ne voyez pas le réseau, rapprochez-vous du circuit imprimé et vérifiez que les câbles d'alimentation sont correctement connectés. Il devrait y avoir une lumière bleue sur la carte ESP8266-01.
Une fois que vous avez rejoint le réseau avec votre ordinateur ou votre téléphone portable, vous pouvez ouvrir la page Web de configuration à l'adresse https://10.1.1.1 (Remarque: saisissez https://10.1.1.1, si vous saisissez simplement 10.1.1.1, vous Google peut essayer de le rechercher et échouer car vous n'êtes pas connecté à Internet)
La page de configuration vous permet de régler la puissance de transmission WiFi. Des nombres inférieurs pour moins de puissance, de portée et de consommation de courant. Vous pouvez également modifier les numéros de port pour les connexions TCP et UDP. Le 10110 par défaut est le port désigné pour les connexions NMEA, mais vous pouvez choisir le vôtre si vous le souhaitez. Les numéros IP sont fixes. Enfin, vous pouvez régler le débit en bauds pour qu'il corresponde à votre source NMEA/AIS. 4800 bauds est le débit en bauds standard pour NMEA. Alors que 34800 bauds est le débit en bauds standard pour l'AIS.
Une fois que vous avez fait vos sélections, cliquez sur Soumettre et une page récapitulative des modifications qui ont été stockées s'affiche.
S'ils ne sont pas corrects, utilisez le bouton Précédent du navigateur pour revenir en arrière et les corriger. Pour appliquer les modifications, la carte doit être redémarrée. Cliquer sur le bouton Appliquer ces modifications le fera.
Une fois que la carte redémarre, elle affiche à nouveau automatiquement la page de configuration avec la configuration actuelle.
Connectez votre ordinateur ou votre appareil mobile à la connexion TCP ou UDP et vérifiez que vous obtenez des données.
ça y est c'est fini !! Sceller le tout dans une boîte en plastique étanche en ne laissant que les deux câbles d'alimentation et les deux câbles RS232 libres.
Étape 6: Aide - Aucune donnée
Une fois que vous vous êtes connecté au réseau et que vous avez configuré votre appareil mobile pour qu'il se connecte au TCP 10.1.1.1 et au port que vous avez défini (ou rejoignez le groupe de multidiffusion UDP 230.1.1.1 avec le port que vous avez défini), si vous n'obtenez toujours pas toutes les données essayez les étapes suivantes.
1) Vérifiez que l'équipement NMEA / AIS est allumé
2) Vérifiez que les câbles RS232 sont connectés dans le bon sens.
3) Vérifiez le paramètre « contrôle de flux » sur votre équipement NMEA / AIS. Réglez-le sur « AUCUN » si c'est une option. Sinon, choisissez « matériel » OU contrôle de flux RTS/CTS et court-circuitez les broches RTS vers CTS et DSR du câble NMEA/AIS. C'est pour un connecteur DB-25, connectez les broches 4 et 5 et 6 ensemble. Pour un connecteur DB-9, connectez les broches 6 et 7 et 8 ensemble. Avec le contrôle 'hardware', l'équipement NMEA / AIS (le DTE) active le RTS (ReadyToSend) lorsqu'il veut envoyer des données. Avec ces connexions, la broche RTS entraîne les broches ClearToSend (CTS) et DataSetReady (DSR) qui sont réintroduites dans l'équipement NMEA / AIS pour lui indiquer que l'autre côté est prêt et capable de recevoir des données.
Débogage
Pour activer la sortie Debugging TX, décommentez, c'est-à-dire modifiez pour #define DEBUGprès du haut de l'esquisse ESP8266_NMEA_BRIDGE.ino.
Retirez les câbles USB TX/RX et connectez simplement le câble RX jaune à la sortie Debug TX. Laissez le câble noir GND connecté à GND pour TX/RX. Le moniteur série Arduino IDE affichera désormais les messages de débogage.
Par défaut, le groupe de multidiffusion UDP est démarré, mais vous pouvez le désactiver en le commentant, c'est-à-dire en l'éditant vers // #define UDP_BROADCAST près du haut de l'esquisse ESP8266_NMEA_BRIDGE.ino.
Conclusion
Ce pont NMEA/AIS RS232 vers WiFi est robuste et simple à utiliser. Il fonctionne efficacement à partir d'une source de 12 batteries et est suffisamment bon marché pour emporter une pièce de rechange avec vous que vous pouvez échanger au milieu du voyage si nécessaire.