Innehållsförteckning:

Billig NMEA/AIS Hub - RS232 till Wifi Bridge för användning ombord: 6 steg
Billig NMEA/AIS Hub - RS232 till Wifi Bridge för användning ombord: 6 steg

Video: Billig NMEA/AIS Hub - RS232 till Wifi Bridge för användning ombord: 6 steg

Video: Billig NMEA/AIS Hub - RS232 till Wifi Bridge för användning ombord: 6 steg
Video: The EASIEST Way to Get OpenCPN AIS & NMEA Data 2024, Maj
Anonim
Billig NMEA/AIS -hubb - RS232 till Wifi Bridge för användning ombord
Billig NMEA/AIS -hubb - RS232 till Wifi Bridge för användning ombord
Billig NMEA/AIS Hub - RS232 till Wifi Bridge för användning ombord
Billig NMEA/AIS Hub - RS232 till Wifi Bridge för användning ombord
Billig NMEA/AIS Hub - RS232 till Wifi Bridge för användning ombord
Billig NMEA/AIS Hub - RS232 till Wifi Bridge för användning ombord
Billig NMEA/AIS -hubb - RS232 till Wifi Bridge för användning ombord
Billig NMEA/AIS -hubb - RS232 till Wifi Bridge för användning ombord

Uppdatering 9 januari 2021 - Tillagd extra TCP -anslutning och återanvänd sista anslutning om fler klienter ansluter Uppdatering 13 december 2020 - Ingen konfigurationsversion av koden har lagts till för båtar med befintliga routrar

Introduktion

Denna NMEA / AIS RS232 till WiFi-bro är baserad på ESP8266-01 WiFi Shield. AIS är ett automatiskt identifieringssystem för att visa positionen för närliggande fartyg. NMEA 0183 är National Marine Electronics Association -standarden som används för GPS -meddelanden.

RS232 till WiFi-bron har ändrats från ESP8266-01 WiFi Shield för att drivas av ett 12V-batteri och acceptera en RS232-ingång (+/- 15V) och skapa ett lokalt nätverk som sänder data via TCP och UDP. Det utvecklades i samarbete med Jo som ville driva ett billigt och enkelt fristående lokalt nätverk för att komma åt sin AIS -data var som helst på sin yacht. Denna resulterande modul skapar en åtkomstpunkt (en router) och konfigurerar en TCP -server för upp till 4 anslutningar och sänder också data på en UDP -sändningsgrupp. En konfigurationswebbsida tillhandahålls för att ställa in TCP- och UDP -portnummer, WiFi Tx -ström och inkommande RS232 -överföringshastighet. Till skillnad från WiFi Shield finns det ingen konfigurationsknapp, så när modulen är konstruerad kan den vara helt tät vattentät. Skyddskretsar inkluderar för att göra den här enheten robust mot felkopplingar. Medan den är utformad med NMEA (GPS) och AIS i åtanke kommer modulen att hantera alla RS232 -data med baudhastigheter mellan 4800 och 38400 (och andra genom att redigera Arduino -skissen).

Funktioner

  • Använder den billiga och lättillgängliga ESP8266-01-modulen:- Andra ESP8266-moduler kan också användas
  • Robust:- Kretsen har ett antal skydd inbyggda för att skydda mot misstag vid uppkoppling.
  • Strömseffektiv:- En DC-DC-omvandlare strömförsörjer enheten effektivt från ett 12V batteri och WiFi Tx-effekten kan reduceras för att spara mer ström.
  • Enkel att använda:- Anslut bara en 5,5V till 12V matning och RS232 TX-linjen och anslut sedan din mottagare till nätverket och anslut till TCP- eller UDP-tjänsten för att ta emot data. Kan snabbt bytas mot en extra om enheten misslyckas
  • Enkel att konfigurera:- Det behövs ingen omprogrammering, inget speciellt konfigurationsläge. En konfigurationssida tillhandahålls som låter dig ställa in RS232 -överföringshastighet och WiFi -sändningseffekt och portnummer för TCP- och UDP -servrar
  • Valfri Ingen konfigurationsversion:- Det finns också en annan skiss där all konfiguration är förprogrammerad. Detta är för de situationer som redan har ett lokalt nätverk som körs med sin egen router (åtkomstpunkt)

Tillbehör:

Denna ESP8266-01 RS232 till WiFi Bridge behöver följande delar eller liknande. Priserna som visas här är från och med augusti 2020 och exklusive fraktkostnader och något slags plastfodral:-

WiFi-modul ESP8266-01-~ US $ 1,50 online (ta dina chanser) ELLER för pålitlig produkt SparkFun ESP8266-01-6,95 US $

MPM3610 3.3V Buck Converter Adafruit-US $ 5.95 5V till 21V ingång, ELLER DC-DC 3A Buck Step-down strömförsörjningsmodul online Aliexpress ~ US2.00

10-pins header Element14-0,40 US $ (eller 28 Pin Header Terminal Strip från Jaycar 0,95 $)

1 rabatt på 1N5711 Schottky Diode Digikey US $ 1,15 (eller Jaycar 1,60 $)

2 av 1N4001 Dioder SparkFun US $ 0,30 (eller 1N4004 Jaycar AU $ 1,00) Vilken som helst 1A 50V eller högre diod gör, t.ex. 1N4001, 1N4002, 1N4003, 1N4004

1 av 2N3904 NPN -transistor SparkFun US $ 0,50 (eller Jaycar AU $ 0,75 för NPN för allmänt bruk med Vce> 40V, Hfe> 50 vid 1mA, Ic> 50mA t.ex. BC546, BC547, BC548, BC549, BC550, 2N2222

6 x 3K3 motstånd t.ex. 3K3 -motstånd - Digikey - US $ 0,60 (eller 3K3ohm 1/2 Watt 1% metallfilmresistorer - Pk.8 från Jaycar AU $ 0,85)

3 av 330R -motstånd Element14 US $ 0,10 (eller 330ohm 1/2 Watt 1% metallfilmresistorer - Pk.8 från Jaycar 0,85 $)

1 av 10K motstånd Element14 US $ 0,05 (eller 10k Ohm 0,5 Watt metallfilmresistorer - 8 -pack från Jaycar 0,85 $)

Vero board (länkar och bussskenor) Jaycar HP9556 ELLER (bandkoppar) (bandkoppar) t.ex. Jaycar HP9540 ~ 5,50 kr

och ett plastfodral och anslutningstråd.

Total kostnad ~ 9,90 US $ + frakt och plastfodral (från augusti 2020) med Aliexpress ESP8266-01 och DC-DC-modul ELLER ~ 19,30 US $ med Sparkfun ESP8266-01-modul och Adafruit DC-DC buck-omvandlare. Billigt nog för att göra ett par reservdelar.

För att programmera RS232 till WiFi Bridge behöver du också en USB till seriell kabel. Här används en SparkFuns USB till TTL seriekabel (10,95 US $) eftersom den har snyggt märkta ändar och har drivrutinsstöd för ett brett utbud av operativsystem Inklusive programmeringskabeln kostar kostnaden för bara en RS232 till WiFi Bridge ~ 20 USD till 24 USD (plus frakt och ett fodral).

Steg 1: Kretsschema och kretsskydd

Kretsschema och kretsskydd
Kretsschema och kretsskydd

Ovan är kretsschemat för RS232 till WiFi Bridge (pdf -version). Detta har anpassats från ESP8266-01 Wifi Shield och modifierats för att acceptera RS232 och en 5V till 12V (batteri) matning. DC till DC -omvandlaren ger energieffektiv drift från ett 12V batteri för nattetid när det inte finns någon solenergi och energianvändningen är hög.

Ett antal kretsskydd har byggts in i kretsen. Anslutningarna på kretsens vänstra sida används endast under konstruktion för att programmera/felsöka enheten. 330R -motstånden R6 och R7 skyddar mot att korta en TX -utgång till en TX -utgång vid programmering/felsökning. Vid programmering ansluter du TX till RX och RX till TX. Debug TX -utgången bör anslutas till en RX UART 3v3 -ingång för att se felsökningsutmatningen (se kommentarerna i ESP8266_NMEA_BRIDGE.ino -skissen).

Anslutningarna på höger sida av kretsen används för att ansluta den färdiga enheten till strömförsörjningen och NMEA/AIS RS232 -källan. Detta är de enda anslutningarna som behöver vara tillgängliga när enheten är byggd. Behåll dessa anslutningar i par.

2N3904 ger inversion och nivåförskjutning från RS232 +/- 15V-signalen till TTL UART-ingången till ESP2866. Omvänd spänning mellan sändaren och basen på 2N3904 är specificerad för att klara minst 6V. D4 begränsar den omvända sändarens basspänning till mindre än 1V när RS232 -ingången är -15V.

Slutligen måste "RS-232-drivrutiner och mottagare kunna klara obestämd kortslutning till mark" (RS232 wikipedia) så om du av misstag ansluter RS232-ledningarna till nätaggregatets terminaler ska det inte skada NMEA/AIS-enheten.

Strömförsörjning

Dioden D1 förhindrar omvänd spänning på DC-DC-omvandlaren om du råkar byta +V- och GND-anslutningar när du kopplar upp. D1 har en liten läckström. D2 tillhandahåller en lågspänningsväg för den läckströmmen för att hålla omvänd spänning på DC -DC -omvandlaren under -0,3V. 330R -motståndet (R10) i RS232 GND -linjen ger skydd mot kortslutning av batteriet till jord om batteri +ve -ledningen är ansluten till kortets strömförsörjning GND -kabel medan RS232 GND är ansluten.

DC-DC-omvandlaren är klassad för upp till 21V driftingång så den är lämplig för ett 12V-batteri medan det byts om. Ett batteri vid full laddning kan vara upp till ~ 14,8V och laddarens spänning kan vara högre, 16V eller mer. 21V-ingången för DC-DC-omvandlaren är klassad för att hantera detta. Oavsiktlig omvänd anslutningsanslutning (mitt i natten i tufft väder) är skyddad mot. Den absoluta maximala spänningen för omvandlarens ingång är 28V och kan hantera en RS232 -signal ansluten till den. RS232-spänningen anges vara mindre än +/- 25V.

Om du av misstag ansluter ledningarna från din strömförsörjning till RS232 TX/GND -anslutningarna (antingen bytt eller inte), skyddar motstånden 10K och 330R mot att strömförsörjningen stängs av.

Sammanfattningsvis är kretsen skyddad mot byte av ström och RS232 -ledningar och anslutning av ledningarna från dessa par på båda sätten. Att blanda ihop trådar, en från varje par, är inte skyddad mot i alla kombinationer, så håll RS232 och strömkablar parade och anslut dem i par.

Den genomsnittliga strömmen som används av kortet är cirka 100mA (beroende på WiFi -sändningseffekt och datahastighet). Om en enkel linjär regulator användes för att driva kortet från ett 12V batteri skulle strömförbrukningen vara 12V x 100mA = 1,2W eller 1,2Ahr över en 12 -natt. Genom att använda DC till DC -omvandlaren, som ~ 70% effektiv, minskar denna belastning till 0,47 W eller 0,47 Ah över en 12 -timmars natt.

Steg 2: Konstruktion

Konstruktion
Konstruktion
Konstruktion
Konstruktion
Konstruktion
Konstruktion

Jag konstruerade den här enheten med en liten bit verobord med länkar och kraftbussar (pdf -version). Här är topp- och bottenvyerna av den färdiga brädan. Se till att du noggrant kontrollerar ledningarna när du är klar. Det är lätt att dra till fel stift när du vänder och trådar från botten.

Steg 3: Programmering av WiFi Shield

Programmering av WiFi Shield
Programmering av WiFi Shield

Varje RS232 till WiFi -brygga måste programmeras en gång, bara och aldrig mer. En inbyggd webbsida ger åtkomst till tillgängliga konfigurationer.

Installera stöd för ESP8266

För att programmera skölden, följ instruktionerna på https://github.com/esp8266/Arduino under Installation with Boards Manager. När du öppnar Boards Manager från Verktyg → Board -menyn och väljer Type Contributed och installera esp8266 -plattformen. Detta projekt sammanställdes med hjälp av ESP8266 version 2.6.3. Senare versioner kan vara bättre men kan ha sina egna buggar eftersom plattformen utvecklas snabbt.

Stäng och öppna Arduino IDE igen och du kan nu välja “Generic ESP8266 Module” från Verktyg → Board-meny.

Installera stödjande bibliotek

Du måste också installera, från https://www.forward.com.au/pfod/pfodParserLibraries/index.html, de senaste versionerna av biblioteket pfodESP8266BufferedClient (för pfodESP8266Utils.h och pfodESP8266BufferedClient.h) och millisDelay -bibliotek (. h).

Ladda ner dessa zip -filer till din dator, flytta dem till skrivbordet eller någon annan mapp som du enkelt kan hitta och använd sedan Arduino IDE -menyalternativet Skiss → Importera bibliotek → Lägg till bibliotek för att installera dem. Du måste också installera SafeString -biblioteket. SafeString -biblioteket är tillgängligt från Arduino -bibliotekshanteraren eller så kan du ladda ner SafeString.zip -filen direkt för manuell installation via Sketch → Importera bibliotek → Lägg till bibliotek

Stoppa och starta om Arduino IDE och under File-> Exempel ska du nu se pfodESP8266BufferedClient och SafeString.

Programmering av styrelsen

För att programmera kortet, ställ in kortet i programmeringsläge genom att kortsluta länken (längst ner till vänster). Anslut sedan USB till TTL UART seriell kabel

Observera noggrant anslut bara 3V3 TX/RX -ledningar till vänsteranslutningen med 3V3 TX/RX från Sparkfun USB till TTL seriekabel Kabelanslutningarna är RX (gul), TX (orange), VCC (5V) (röd), och GND (svart). Observera att den gula (RX) kabeln är ansluten till TX -stiftet på kortet och den orange (TX) -kabeln är ansluten till RX -stiftet på kortet. Den svarta (GND) kabeln är ansluten till GND för TX/RX -stift

Obs! Det verkar finnas två versioner av denna kabel. Äldre versioner har 5V Vcc och RX (Brown), TX (Tan-like/Peach), VCC (Red) och GND (Black), i vilket fall som helst används inte VCC-kabeln här. Det finns också kommentarer om att TX- och RX -kabeln är omvänd i vissa fall. Om Arduino IDE inte kan programmera kortet, försök byta TX/RX -kablar. 330R skyddar mot TX-TX shorts.

Driv kortet från en 6V till 12V 500mA eller större strömförsörjning eller batteri. Anslut först nätaggregatet -Ve (GND) så att strömförsörjningsströmmen inte försöker strömma tillbaka genom USB -anslutningen. Använd helst en isolerad (flytande) 6V till 12V strömförsörjning eller batteri. Observera att Aliexpress DC-DC-moduler behöver minst 6,5 V strömförsörjning.

Anslut sedan USB -kabeln till din dator. Välj dess COM -port i Verktyg → Port -menyn. Låt CPU -frekvensen, blixtstorleken och uppladdningshastigheten ligga på standardinställningarna.

Kontrollera bilden och din ledning. Se även ESP8266 -programmeringstips (espcomm misslyckades) Kompilera ESP8266_NMEA_BRIDGE.ino -skissen. Välj sedan Arkiv → Ladda upp eller använd högerpil för att kompilera och ladda upp programmet. Två filer laddas upp. Om du får ett felmeddelande när du laddar upp, kontrollera att dina kabelanslutningar är anslutna till rätt stift och försök igen.

När programmeringen är klar tar du bort programmeringsläget som kortar länken och de programmerande TX/RX -anslutningarna och slår sedan av och på strömmen för att starta om kortet i sitt normala läge.

Anslut NMEA/AIS -enheten.

Ingen konfigurationsversion

Det finns en annan version av denna skiss, ESP8266_NMEA_BRIDGE_noCfg.ino, där all konfiguration är förprogrammerad i skisskoden. I detta fall ansluter NMEA -hubben till en befintlig router (åtkomstpunkt) för att göra data tillgänglig för nätverket.

Konfigurationen är överst i filen ESP8266_NMEA_BRIDGE_noCfg.ino.

// ================= HÅRDKODAD KONFIG ====================

const char ssid = "yourRouterSSID"; // ställ in ditt nätverks SSID här const char password = "yourRouterPassword"; // ställ in ditt nätverks lösenord här IPAddress staticIP (10, 1, 1, 190); // ställ in NMEA -hubbens statiska IP här. OBS, mellan siffrorna // se till att ingen annan enhet körs med samma IP och att IP: n ligger i routerns IP -område // vanliga routerns IP -intervall är 10.1.1.2 till 10.1.1.254 // 192.168.1.2 till 192.168.254.254 och // 172.16.1.2 till 172.31.254.254 // routern är vanligtvis 10.1.1.1 eller 192.168.1.1 eller 172.16.1.1 beroende på dess intervall IPAddress udpBroadcaseIP (230, 1, 1, 1); // ställ in UDP -broadcast -IP här. OBS, mellan siffrorna. Denna IP är oberoende av routerns intervall ändrar inte const uint16_t tcpPortNo = 10110; // ställ in NMEA tcp -serverport Nej här const uint16_t udpPortNo = 10110; // ställ in NMEA UDP -sändningsport Nej här const unsigned int txPower = 10; // TX -effekt i intervallet 0 till 82; const unsigned int GPS_BAUD_RATE = 4800; // Den seriella överföringshastigheten för din GPS -modul

Steg 4: Lägga till indikatorlampor (tillval)

Lägga till indikatorlampor (tillval)
Lägga till indikatorlampor (tillval)

Min seglingskonsult på detta projekt, Jo, föreslog att montera en Red Power -led och en Green Data -ledning på fallet för att indikera att saker och ting går. Här är den modifierade kretsen med dessa två lysdioder tillagda. (pdf -version)

R9 och R11 ställer in LED -strömmen och därmed ljusstyrkan. Använd det största motståndet som gör att lysdioderna fortfarande är synliga. De kommer att vara svåra att se i direkt solljus eller i en ljus stuga, så montera enheten i ett mörkt hörn för maximal synlighet. Jaycar har lämpliga rödfärgade lysdioder (~ AU $ 2,75) och Sparkfun har några superljusa röda och gröna lysdioder (1,70 US $) men nästan alla röda och gröna lysdioder klarar sig.

Steg 5: Ställa in konfigurationen via den inbyggda webbsidan

Ställa in konfigurationen via den inbyggda webbsidan
Ställa in konfigurationen via den inbyggda webbsidan
Ställa in konfigurationen via den inbyggda webbsidan
Ställa in konfigurationen via den inbyggda webbsidan
Ställa in konfigurationen via den inbyggda webbsidan
Ställa in konfigurationen via den inbyggda webbsidan
Ställa in konfigurationen via den inbyggda webbsidan
Ställa in konfigurationen via den inbyggda webbsidan

När du startar kortet efter programmering skapar det automatiskt ett lokalt nätverk. Det vill säga det kommer att bli en lokal åtkomstpunkt (router). Nätverksnamnet börjar med NMEA_ följt av 12 hex -siffror unika för varje kort, t.ex. NMEA_18FE34A00239 Lösenordet för det lokala nätverket är alltid NMEA_WiFi_Bridge. Om du behöver byta enheter till havs, stäng av den gamla, installera reservdelen och leta efter det nya NMEA_….. nätverket och använd lösenordet NMEA_WiFi_Bridge för att ansluta det.

Om du inte kan se nätverket, gå närmare kretskortet och kontrollera att strömkablarna är korrekt anslutna. Det ska vara ett blått ljus på ESP8266-01-kortet.

När du har anslutit dig till nätverket med din dator eller mobiltelefon kan du öppna konfigurationswebbsidan på https://10.1.1.1 (Obs: skriv in https://10.1.1.1, om du bara skriver in 10.1.1.1 kan du kan få Google att försöka söka efter det och misslyckas eftersom du inte är ansluten till internet)

På konfigurationssidan kan du ställa in WiFi -sändningseffekt. Lägre siffror för mindre effekt och räckvidd och strömförbrukning. Du kan också ändra portnumren för TCP- och UDP -anslutningarna. Standard 10110 är den angivna porten för NMEA -anslutningar, men du kan välja din egen om du vill. IP -numren är fasta. Slutligen kan du ställa in överföringshastigheten för att matcha din NMEA/AIS -källa. 4800 baud är standard överföringshastighet för NMEA. Medan 34800 baud är standard överföringshastighet för AIS.

När du har gjort dina val klickar du på Skicka och en sammanfattningssida över de lagrade ändringarna visas.

Om dessa inte stämmer använder du webbläsarens bakåtknapp för att gå tillbaka och fixa dem. För att tillämpa ändringarna måste kortet startas om. Genom att klicka på knappen Använd dessa ändringar gör du det.

När kortet startar om visas det automatiskt konfigurationssidan igen med den aktuella konfigurationen.

Anslut din dator eller mobila enhet till antingen TCP- eller UDP -anslutningen och kontrollera att du får data.

Så är det klart !! Förslut allt i en vattentät plastlåda och lämna bara de två strömkablarna och de två RS232 -ledningarna fria.

Steg 6: Hjälp - Inga data

När du har anslutit till nätverket och ställt in din mobila enhet för att ansluta till TCP 10.1.1.1 och porten du har ställt in (eller gå med i UDP multicast -gruppen 230.1.1.1 med porten du har ställt in), om du fortfarande inte får alla data försök med följande steg.

1) Kontrollera att NMEA / AIS -utrustningen är påslagen

2) Kontrollera att RS232 -kablarna är rätt anslutna.

3) Kontrollera inställningen "flödeskontroll" på din NMEA / AIS -utrustning. Ställ in det på 'INGEN' om det är ett alternativ. Om inte, välj "hårdvara" ELLER RTS / CTS flödeskontroll och kortslut RTS till CTS och DSR -stiften på NMEA / AIS -kabeln. Det är för en DB-25-kontakt, anslut stiften 4 och 5 och 6 tillsammans. För en DB-9-kontakt, anslut stiften 6 och 7 och 8 tillsammans. Med "hårdvarukontroll" styr NMEA / AIS -utrustningen (DTE) RTS (ReadyToSend) när den vill skicka data. Med dessa anslutningar driver RTS -stiftet ClearToSend (CTS) och DataSetReady (DSR) stiften som matas tillbaka till NMEA / AIS -utrustningen för att meddela att den andra sidan är redo och kan ta emot data.

Felsökning

För att aktivera Debugging TX -utmatningen, utan att kommentera, dvs redigera till #define DEBUGnära toppen av ESP8266_NMEA_BRIDGE.ino -skissen.

Ta bort TX/RX USB -kablarna och anslut bara den gula RX -kabeln till Debug TX -utgången. Lämna den svarta GND -kabeln ansluten till GND för TX/RX. Arduino IDE Serial Monitor kommer nu att visa felsökningsmeddelanden.

Som standard startas UDP -multicast -gruppen, men du kan inaktivera den genom att kommentera, dvs redigera till // #define UDP_BROADCAST nära toppen av ESP8266_NMEA_BRIDGE.ino -skissen.

Slutsats

Denna NMEA/AIS RS232 till WiFi -bro är robust och enkel att använda. Den går effektivt från en 12 -batterikälla och är tillräckligt billig för att ha med dig ett extra som du kan byta mellan resor om det behövs.

Rekommenderad: