Indholdsfortegnelse:

Billig NMEA/AIS Hub - RS232 til Wifi Bridge til brug ombord: 6 trin
Billig NMEA/AIS Hub - RS232 til Wifi Bridge til brug ombord: 6 trin

Video: Billig NMEA/AIS Hub - RS232 til Wifi Bridge til brug ombord: 6 trin

Video: Billig NMEA/AIS Hub - RS232 til Wifi Bridge til brug ombord: 6 trin
Video: The EASIEST Way to Get OpenCPN AIS & NMEA Data 2024, Juli
Anonim
Billig NMEA/AIS Hub - RS232 til Wifi Bridge til brug ombord
Billig NMEA/AIS Hub - RS232 til Wifi Bridge til brug ombord
Billig NMEA/AIS Hub - RS232 til Wifi Bridge til brug ombord
Billig NMEA/AIS Hub - RS232 til Wifi Bridge til brug ombord
Billig NMEA/AIS Hub - RS232 til Wifi Bridge til brug ombord
Billig NMEA/AIS Hub - RS232 til Wifi Bridge til brug ombord
Billig NMEA/AIS Hub - RS232 til Wifi Bridge til brug ombord
Billig NMEA/AIS Hub - RS232 til Wifi Bridge til brug ombord

Opdatering 9. januar 2021 - Tilføjet ekstra TCP -forbindelse og genbrug sidste forbindelse, hvis flere klienter opretter Opdatering 13. december 2020 - Tilføjede ingen konfigurationsversion af koden til både med eksisterende routere

Introduktion

Denne NMEA / AIS RS232 til WiFi-bro er baseret på ESP8266-01 WiFi Shield. AIS er automatisk identifikationssystem til at vise positionen for nærliggende skibe. NMEA 0183 er National Marine Electronics Association -standarden, der bruges til GPS -beskeder.

RS232 til WiFi-broen er blevet ændret fra ESP8266-01 WiFi Shield for at blive drevet af et 12V batteri og acceptere en RS232-indgang (+/- 15V) og oprette et lokalt netværk, der sender data via TCP og UDP. Det blev udviklet i samarbejde med Jo, der ønskede at køre et billigt og enkelt selvstændigt lokalt netværk for at få adgang til sine AIS -data overalt på sin yacht. Dette resulterende modul opretter et adgangspunkt (en router) og opretter en TCP -server til op til 4 forbindelser og sender også dataene på en UDP -udsendelsesgruppe. Der leveres en konfigurationswebside til indstilling af TCP- og UDP -portnumre, WiFi Tx -strøm og den indgående RS232 -baudhastighed. I modsætning til WiFi Shield er der ingen konfigurationsknap, så når modulet er konstrueret, kan det være helt forseglet vandtæt. Beskyttelseskredsløb er inkluderet for at gøre denne enhed robust mod fejlledninger. Mens modulet er designet med NMEA (GPS) og AIS i tankerne, håndterer modulet alle RS232 -data med baudhastigheder mellem 4800 og 38400 (og andre ved at redigere Arduino -skitsen).

Funktioner

  • Bruger det billige og let tilgængelige ESP8266-01-modul:- Andre ESP8266-moduler kan også bruges
  • Robust:- Kredsløbet har en række indbyggede beskyttelser for at beskytte mod fejl ved tilslutning.
  • Strømeffektiv:- En DC-DC-konverter strømforsyning driver enheden effektivt fra et 12V batteri, og WiFi Tx-strømmen kan reduceres for at spare mere strøm.
  • Enkel at bruge:- Tilslut bare en 5,5 V til 12 V forsyning og RS232 TX-linjen, og slut derefter din modtager til netværket, og opret forbindelse til TCP- eller UDP-tjenesten for at modtage dataene. Kan hurtigt byttes til en ekstra, hvis enheden fejler
  • Enkel at konfigurere:- Der er ingen omprogrammering nødvendig, ingen særlig konfigurationstilstand. Der findes en konfigurationsside, som giver dig mulighed for at indstille RS232 -baudhastighed og WiFi -sendeeffekt og portnumre til TCP- og UDP -servere
  • Valgfri Ingen konfigurationsversion:- Der er også en anden skitse, hvor al konfigurationen er forudprogrammeret. Dette er for de situationer, der allerede har et lokalt netværk, der kører med sin egen router (Access Point)

Tilbehør:

Denne ESP8266-01 RS232 til WiFi Bridge har brug for følgende dele eller lignende. Priserne her er fra august 2020 og eksklusiv forsendelsesomkostninger og en slags plastkasse:-

WiFi-modul ESP8266-01-~ US $ 1,50 online (tag dine chancer) ELLER for pålideligt produkt SparkFun ESP8266-01-US $ 6,95

MPM3610 3.3V Buck Converter Adafruit-US $ 5.95 5V til 21V input, ELLER DC-DC 3A Buck Step-down strømforsyningsmodul online Aliexpress ~ US2.00

10-benet header Element14-0,40 $ (eller 28 Pin Header Terminal Strip fra Jaycar 0,95 $)

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

2 off 1N4001 Diodes SparkFun US $ 0,30 (eller 1N4004 Jaycar AU $ 1,00) Enhver 1A 50V eller højere diode vil gøre, f.eks. 1N4001, 1N4002, 1N4003, 1N4004

1 off 2N3904 NPN transistor SparkFun US $ 0,50 (eller Jaycar AU $ 0,75 enhver generel NPN med Vce> 40V, Hfe> 50 ved 1mA, Ic> 50mA f.eks. BC546, BC547, BC548, BC549, BC550, 2N2222

6 x 3K3 modstande f.eks. 3K3 modstande - Digikey - US $ 0,60 (eller 3K3ohm 1/2 Watt 1% metalfilmmodstande - Pk.8 fra Jaycar AU $ 0,85)

3 off 330R modstand Element14 US $ 0,10 (eller 330ohm 1/2 Watt 1% metalfilmmodstande - Pk.8 fra Jaycar AU $ 0,85)

1 off 10K modstand Element14 US $ 0,05 (eller 10k Ohm 0,5 Watt metalfilmmodstande - pakke med 8 fra Jaycar AU $ 0,85)

Vero board (links og busskinner) Jaycar HP9556 OR (strip kobber) (strip kobber) f.eks. Jaycar HP9540 ~ $ 5,50

og en plastkasse og tilslutningstråd.

Samlede omkostninger ~ US $ 9,90 + forsendelse og plastkasse (fra august 2020) ved hjælp af Aliexpress ESP8266-01 og DC-DC-modul ELLER ~ US $ 19,30 ved hjælp af Sparkfun ESP8266-01-modul og Adafruit DC-DC buck-omformer. Billigt nok til at lave et par reservedele.

For at programmere RS232 til WiFi Bridge skal du også bruge et USB til serielt kabel. Her bruges et SparkFuns USB til TTL seriekabel (US $ 10,95), fordi det har pæne mærkede ender og har driverunderstøttelse for en lang række OS'er Inklusive programmeringskabel, koster kun en RS232 til WiFi Bridge ~ US $ 20 til US $ 24 (plus forsendelse og etui).

Trin 1: Kredsløbsdiagram og kredsløbsbeskyttelse

Kredsløbsdiagram og kredsløbsbeskyttelse
Kredsløbsdiagram og kredsløbsbeskyttelse

Ovenfor er kredsløbsdiagrammet for RS232 til WiFi Bridge (pdf -version). Dette er blevet tilpasset fra ESP8266-01 Wifi Shield og modificeret til at acceptere RS232 og en 5V til 12V (batteri) forsyning. DC til DC -omformeren giver strømeffektiv drift fra et 12V batteri til brug om natten, når der ikke er solenergi, og strømforbruget er en præmie.

En række kredsløbsbeskyttelser er blevet indbygget i kredsløbet. Forbindelserne på venstre side af kredsløbet bruges kun under konstruktion til at programmere/debugge enheden. 330R -modstandene R6 og R7 beskytter mod at kortslutte en TX -udgang til en TX -udgang ved programmering/fejlfinding. Ved programmering tilsluttes TX til RX og RX til TX. Debug TX -output skal tilsluttes et RX UART 3v3 -input for at se debugoutput (se kommentarerne i ESP8266_NMEA_BRIDGE.ino -skitsen).

Forbindelserne på højre side af kredsløbet bruges til at slutte den færdige enhed til strømforsyningen og NMEA/AIS RS232 -kilden. Dette er de eneste forbindelser, der skal være tilgængelige, når enheden er bygget. Hold disse forbindelser i par.

2N3904 giver inversion og niveauforskydning fra RS232 +/- 15V signalet til TTL UART-indgangen til ESP2866. Den omvendte spænding mellem emitteren og basen på 2N3904 er specificeret til at modstå mindst 6V. D4 begrænser den omvendte emitterbase spænding til at være mindre end 1V, når RS232 -indgangen er -15V.

Endelig skal "RS-232 drivere og modtagere kunne modstå ubestemt kortslutning til jord" (RS232 wikipedia), så hvis du ved et uheld tilslutter RS232-linjer til strømforsyningsterminalerne, bør det ikke beskadige NMEA/AIS-enheden.

Strømforsyning

Dioden D1 forhindrer, at omvendt spænding påføres DC-DC-omformeren, hvis du tilfældigvis bytter +V- og GND-forbindelserne, når du tilslutter. D1 har en lille lækstrøm. D2 tilvejebringer en lavspændingsbane for denne lækstrøm for at holde den omvendte spænding på DC -DC -omformeren under -0,3V. 330R -modstanden (R10) i RS232 GND -linjen giver beskyttelse mod at kortslutte batteriet til jord, hvis batteriet +ve -ledningen er forbundet til kortets strømforsyning GND -ledning, mens RS232 GND er tilsluttet.

DC-DC-omformeren er klassificeret til op til 21V driftsindgang, så den er velegnet til et 12V batteri, mens den genoprettes. Et batteri ved fuld opladning kan være op til ~ 14,8V, og opladeren kan være højere, 16V eller mere. 21-V input-mærket for DC-DC-omformeren er klassificeret til at håndtere dette. Utilsigtet omvendt forsyningsforbindelse (midt om natten i hårdt vejr) er beskyttet mod. Den absolutte maksimale spænding for konverterindgangen er 28V og kan derfor håndtere et RS232 -signal forbundet til det. RS232-spændingen er angivet til at være mindre end +/- 25V.

Hvis du ved et uheld slutter ledningerne fra din strømforsyning til RS232 TX/GND -forbindelserne (enten byttet eller ej), beskytter 10K- og 330R -modstandene mod at afbryde strømforsyningen.

Sammenfattende er kredsløbet beskyttet mod bytte af strøm og RS232 -ledninger og tilslutning af ledningerne fra disse par på begge måder. Blanding af ledninger, en fra hvert par, er ikke beskyttet mod i alle kombinationer, så hold RS232 og strømledninger parret, og tilslut dem parvis.

Den gennemsnitlige strøm, der bruges af kortet, er omkring 100mA (afhængigt af WiFi -sendeeffekten og datahastigheden). Hvis en simpel lineær regulator blev brugt til at drive kortet fra et 12V batteri, ville strømforbruget være 12V x 100mA = 1,2W eller 1,2Ahrs over en 12 nat. Brug af DC til DC -omformeren, som ~ 70% effektiv, reducerer denne belastning til 0,47 W eller 0,47 Ah i løbet af en 12 -timers nat.

Trin 2: Konstruktion

Konstruktion
Konstruktion
Konstruktion
Konstruktion
Konstruktion
Konstruktion

Jeg konstruerede denne enhed ved hjælp af et lille stykke verobord med links og motorbusser (pdf -version). Her er toppen og bunden af det færdige bord. Sørg for omhyggeligt at kontrollere ledningerne, når du er færdig. Det er let at koble til den forkerte stift, når du vender om og kabler fra bunden.

Trin 3: Programmering af WiFi Shield

Programmering af WiFi Shield
Programmering af WiFi Shield

Hver RS232 til WiFi -bro skal kun programmeres én gang, og aldrig igen. En indbygget webside giver adgang til de tilgængelige konfigurationer.

Installation af ESP8266 support

Følg instruktionerne på https://github.com/esp8266/Arduino under Installation med Boards Manager for at programmere skjoldet. Når du åbner Boards Manager fra menuen Værktøjer → Board, og vælg Type Contributed, og installer esp8266 -platformen. Dette projekt blev udarbejdet ved hjælp af ESP8266 version 2.6.3. Senere versioner kan være bedre, men kan have deres egne fejl, da platformen udvikler sig hurtigt.

Luk og åbn Arduino IDE igen, og du kan nu vælge "Generisk ESP8266-modul" fra Værktøjer → Board-menu.

Installation af understøttende biblioteker

Du skal også installere, fra https://www.forward.com.au/pfod/pfodParserLibraries/index.html, de nyeste versioner af pfodESP8266BufferedClient -biblioteket (til pfodESP8266Utils.h og pfodESP8266BufferedClient.h) og millisDelay -bibliotek (. h).

Download disse zip -filer til din computer, flyt dem til dit skrivebord eller en anden mappe, du nemt kan finde, og brug derefter Arduino IDE -menuen Sketch → Importer bibliotek → Tilføj bibliotek for at installere dem. Du skal også installere SafeString -biblioteket. SafeString -biblioteket er tilgængeligt fra Arduino -bibliotekshåndteringen, eller du kan downloade SafeString.zip -filen direkte til manuel installation via Sketch → Importer bibliotek → Tilføj bibliotek

Stop og genstart Arduino IDE og under Fil-> Eksempler skal du nu se pfodESP8266BufferedClient og SafeString.

Programmering af bestyrelsen

For at programmere tavlen skal du sætte tavlen i programmeringstilstand ved at kortslutte linket (nederst til venstre). Tilslut derefter USB til TTL UART serielt kabel

Bemærk omhyggeligt kun tilslutning af 3V3 TX/RX -ledninger til venstre sideforbindelse ved hjælp af 3V3 TX/RX fra Sparkfun's USB til TTL -seriekabel Kabelforbindelserne er RX (gul), TX (orange), VCC (5V) (rød), og GND (sort). Bemærk, at det gule (RX) kabel er forbundet til TX -stiften på kortet, og det orange (TX) kabel er forbundet til RX -stiften på kortet. Det sorte (GND) kabel er forbundet til GND for TX/RX pin

Bemærk: Der ser ud til at være to versioner af dette kabel. Ældre versioner har 5V Vcc og RX (brun), TX (Tan-lignende/fersken), VCC (rød) og GND (sort), under alle omstændigheder bruges VCC-afledningen ikke her. Der er også kommentarer om, at TX- og RX -ledningen i nogle tilfælde er vendt. Hvis Arduino IDE ikke kan programmere kortet, kan du prøve at skifte TX/RX -kablerne. 330R beskytter mod TX-TX shorts.

Forsyn kortet med en 6V til 12V 500mA eller større forsyning eller batteri. Tilslut først strømforsyning -Ve (GND) -ledningen, så strømforsyningsstrømmen ikke forsøger at strømme tilbage gennem USB -forbindelsen. Brug helst en isoleret (flydende) 6V til 12V forsyning eller batteri. Bemærk Aliexpress DC-DC modulerne har brug for mindst en 6,5V forsyning.

Tilslut derefter USB -kablet til din computer. Vælg dens COM -port i menuen Værktøjer → Port. Lad CPU -frekvensen, flashstørrelsen og uploadhastigheden være på deres standardindstillinger.

Tjek billedet og dine ledninger. Se også ESP8266 -programmeringstip (espcomm mislykkedes) Kompilér ESP8266_NMEA_BRIDGE.ino -skitsen. Vælg derefter Fil → Upload eller brug højre pil til at kompilere og uploade programmet. To filer uploades. Hvis du får en fejlmeddelelse ved upload, skal du kontrollere, at dine kabelforbindelser er tilsluttet de korrekte ben, og prøv igen.

Når programmeringen er afsluttet, fjernes programmeringstilstanden, der afbryder forbindelsen og de programmerende TX/RX -forbindelser, og derefter slukker og tænder for strømforsyningen for at genstarte kortet i sin normale tilstand.

Tilslut NMEA/AIS -enheden.

Ingen konfigurationsversion

Der er en anden version af denne skitse, ESP8266_NMEA_BRIDGE_noCfg.ino, hvor al konfiguration er forudprogrammeret i skitsekoden. I dette tilfælde opretter NMEA -hub forbindelse til en eksisterende router (adgangspunkt) for at gøre dataene tilgængelige for netværket.

Konfigurationen er alle øverst i filen ESP8266_NMEA_BRIDGE_noCfg.ino.

// ================= HARDKODET KONFIG =====================

const char ssid = "yourRouterSSID"; // indstil dit netværks SSID her const char password = "yourRouterPassword"; // indstil dit netværks adgangskode her IPAddress staticIP (10, 1, 1, 190); // indstil NMEA hub statisk IP her. BEMÆRK, mellem tallene // sørg for, at ingen anden enhed kører med den samme IP, og at IP'en er i dit routerens IP -område // Almindelige router -IP -områder er 10.1.1.2 til 10.1.1.254 // 192.168.1.2 til 192.168.254.254 og // 172.16.1.2 til 172.31.254.254 // routeren er normalt 10.1.1.1 eller 192.168.1.1 eller 172.16.1.1 afhængigt af sit område IPAddress udpBroadcaseIP (230, 1, 1, 1); // indstil UDP broadcast IP her. BEMÆRK mellem mellem tallene. Denne IP er uafhængig af routerens rækkevidde ikke ændre const uint16_t tcpPortNo = 10110; // sæt NMEA tcp -serverport Nej her const uint16_t udpPortNo = 10110; // sæt NMEA UDP broadcast port Ingen her const unsigned int txPower = 10; // TX -effekt i området 0 til 82; const unsigned int GPS_BAUD_RATE = 4800; // Den serielle baudhastighed for dit GPS -modul

Trin 4: Tilføjelse af indikatorlys (valgfrit)

Tilføjelse af indikatorlys (valgfrit)
Tilføjelse af indikatorlys (valgfrit)

Min sejlkonsulent på dette projekt, Jo, foreslog at montere en Red Power -LED og en Green Data -led på sagen for at indikere, at tingene kører. Her er det modificerede kredsløb med disse to lysdioder tilføjet. (pdf -version)

R9 og R11 indstiller LED -strømmen og dermed lysstyrken. Brug den største modstand, der gør lysdioderne stadig synlige. De vil være svære at se i direkte sollys eller i en lys kabine, så monter enheden i et mørkt hjørne for maksimal synlighed. Jaycar har passende lysdioder med rødt og rødt (~ AU $ 2,75), og Sparkfun har nogle super lyse røde og grønne lysdioder (1,70 $), men næsten enhver rød og grøn LED vil klare.

Trin 5: Indstilling af konfigurationen via den indbyggede webside

Indstilling af konfigurationen via den indbyggede webside
Indstilling af konfigurationen via den indbyggede webside
Indstilling af konfigurationen via den indbyggede webside
Indstilling af konfigurationen via den indbyggede webside
Indstilling af konfigurationen via den indbyggede webside
Indstilling af konfigurationen via den indbyggede webside
Indstilling af konfigurationen via den indbyggede webside
Indstilling af konfigurationen via den indbyggede webside

Når du tænder for kortet efter programmering, opretter det automatisk et lokalt netværk. Det vil sige, at det bliver et lokalt adgangspunkt (router). Netværksnavnet starter med NMEA_ efterfulgt af 12 hexadecifre unikke for hvert kort, f.eks. NMEA_18FE34A00239 Adgangskoden til det lokale netværk er altid NMEA_WiFi_Bridge. Hvis du har brug for at skifte enheder til søs, skal du slukke for den gamle, installere ekstra og derefter kigge efter det nye NMEA_….. netværk og bruge adgangskoden NMEA_WiFi_Bridge til at slutte sig til det.

Hvis du ikke kan se netværket, skal du gå tættere på printkortet og kontrollere, at strømkablerne er tilsluttet korrekt. Der skal være et blåt lys på ESP8266-01-kortet.

Når du har tilsluttet dig netværket med din computer eller mobiltelefon, kan du åbne konfigurationssiden på https://10.1.1.1 (Bemærk: indtast https://10.1.1.1, hvis du bare indtaster 10.1.1.1, skal du kan få Google til at forsøge at søge efter det og mislykkes, da du ikke har forbindelse til internettet)

Konfigurationssiden lader dig indstille WiFi -sendeeffekten. Lavere tal for mindre strøm og rækkevidde og strømforbrug. Du kan også ændre portnumre for TCP- og UDP -forbindelserne. Standard 10110 er den udpegede port til NMEA -forbindelser, men du kan vælge din egen, hvis du ønsker det. IP -numrene er faste. Endelig kan du indstille baudhastigheden til at matche din NMEA/AIS -kilde. 4800 baud er standard baudrate for NMEA. Mens 34800 baud er standard baud rate for AIS.

Når du har foretaget dine valg, skal du klikke på Send og en oversigt over de ændringer, der er blevet gemt, vises.

Hvis disse ikke er korrekte, skal du bruge browserens tilbage -knap til at gå tilbage og rette dem. For at anvende ændringerne skal tavlen genstartes. Hvis du klikker på knappen Anvend disse ændringer, gør du det.

Når kortet genstarter, viser det automatisk konfigurationssiden igen med den aktuelle konfiguration.

Tilslut din computer eller mobilenhed til enten TCP- eller UDP -forbindelsen, og kontroller, at du får data.

Så er det færdigt !! Forsegl alt i en vandtæt plastkasse, så kun de to strømledninger og de to RS232 -ledninger efterlades.

Trin 6: Hjælp - Ingen data

Når du har oprettet forbindelse til netværket og indstillet din mobilenhed til at oprette forbindelse til TCP 10.1.1.1 og den port, du har indstillet (eller slutte dig til UDP multicast -gruppen 230.1.1.1 med den port, du har indstillet), hvis du stadig ikke får enhver data, prøv følgende trin.

1) Kontroller, at NMEA / AIS -udstyret er tændt

2) Kontroller, at RS232 -kablerne er tilsluttet den rigtige vej.

3) Kontroller indstillingen 'flowkontrol' på dit NMEA / AIS -udstyr. Indstil det til 'INGEN', hvis det er en mulighed. Hvis ikke vælg 'hardware' ELLER RTS / CTS flowkontrol og kortslut RTS til CTS og DSR benene på NMEA / AIS kablet. Det er et DB-25-stik, tilslut stifterne 4 og 5 og 6 sammen. For et DB-9-stik skal du tilslutte stifterne 6 og 7 og 8 sammen. Med 'hardware' -kontrol gør NMEA / AIS -udstyret (DTE) gældende for RTS (ReadyToSend), når det vil sende data. Med disse forbindelser driver RTS -stiften ClearToSend (CTS) og DataSetReady (DSR) benene, der indsættes tilbage i NMEA / AIS -udstyret for at fortælle, at den anden side er klar og i stand til at modtage data.

Debugging

Hvis du vil aktivere Debugging TX -output, skal du kommentere, dvs. redigere til #define DEBUGnær toppen af ESP8266_NMEA_BRIDGE.ino -skitsen.

Fjern TX/RX USB -kablerne, og tilslut bare det gule RX -kabel til Debug TX -udgangen. Lad det sorte GND -kabel være tilsluttet GND til TX/RX. Arduino IDE Serial Monitor viser nu fejlfindingsmeddelelser.

Som standard startes UDP multicast -gruppen, men du kan deaktivere den ved at kommentere, dvs. redigere til // #define UDP_BROADCAST nær toppen af ESP8266_NMEA_BRIDGE.ino -skitsen.

Konklusion

Denne NMEA/AIS RS232 til WiFi -bro er robust og enkel at bruge. Den kører effektivt fra en 12 -batterikilde og er billig nok til at have et ekstra med dig, som du kan skifte i mellem rejsen, hvis det er nødvendigt.

Anbefalede: