Inhoudsopgave:
2025 Auteur: John Day | [email protected]. Laatst gewijzigd: 2025-01-13 06:57
NMEA-0183 Is een elektrische standaard voor het aansluiten van GPS, SONAR, sensoren, stuurautomaten etc. in schepen en boten. In tegenstelling tot de nieuwere NMEA 2000-standaard (gebaseerd op CAN) is de NMEA 0183 gebaseerd op EIA RS422 (sommige oudere en/of eenvoudige systemen gebruiken RS-232 of een enkele draad).
Ik wil je laten zien hoe je een Raspberry Pi 3B aansluit op elk NMEA-0183-apparaat met differentiële uitgang. Hoewel de standaard geïsoleerde inputs en outputs vereist, is het nuttig om een RS422 / RS485 HAT met geïsoleerde interface te gebruiken.
Stap 1: Tools en software
Materialen:
Raspberry Pi
RS422/RS485 HOED
een serieel NMEA0183-apparaat
Software:
Raspbian Stretch
NMEA-simulator
Stap 2: Aansluiten op NMEA 0183
In de bovenstaande afbeelding ziet u een typisch NMEA-apparaat met differentiële uitvoer. De terminals zijn NMEA OUT+ en NMEA OUT- of TX+ of TX-. De NMEA IN+ en NMEA IN- draden zijn optioneel.
als je een enkele zenddraad van je apparaat hebt (waarschijnlijk gelabeld TX of NMEA OUT of iets dergelijks), dan gebruikt je apparaat het RS-232-protocol. In dit geval heeft u een eenvoudige RS232-converter nodig.
Stap 3: DIP-schakelaarinstellingen
Stap 4: Maak de seriële lijn vrij en schakel UART van de Raspberry Pi in
De eenvoudigste manier is om de raspi-config-tool te gebruiken om de UART naar de GPIO14/15-pins te schakelen. Neem een nieuwe Raspbian-afbeelding
sudo raspi-config
ga naar '5 interface-opties'
ga naar 'P6 Serieel'
'Wilt u dat een login-shell via serieel toegankelijk is?' NEE
'Wilt u dat de seriële poorthardware wordt ingeschakeld?' JA
Voltooi raspi-config
herstart de Raspberry Pi
Nu heb je toegang tot de UART via /dev/serial0
Stap 5: Firmware
Je kunt veel verschillende NMEA-0183 software Python-stacks voor Raspberry Pi vinden. Een heel eenvoudige oplossing is de NMEA-bibliotheek van Nick Sweeting:
github.com/nsweeting/NMEA0183
Let op: pyserial is vereist voor seriële verbindingen:
github.com/nsweeting/NMEA0183
Stap 6: Proefdraaien
Het Python-programma decodeert inkomende NMEA-protocollen. Als je thuis geen NMEA-apparaat hebt, kun je in plaats van een echt apparaat ook een Simulator op je pc en een eenvoudige USB naar RS485-adapter gebruiken.