/* by Dr.András Szép v1.3 3.7.2023 GNU General Public License (GPL). */
/* This is an AI (chatGPT) assisted development for Arduino ESP32 code to display UDP-broadcasted NMEA0183 messages (like from a NMEA0183 simulator https://github.com/panaaj/nmeasimulator ) through a webserver to be seen on any mobile device for free. Websockets used to autoupdate the data. Environmental sensors incorporated and data for the last 24hours stored respectively in the SPIFFS files /pressure, /temperature, /humidity. The historical environmental data displayed in the background as charts.
Local WiFi attributes are stored at SPIFFS in files named /ssid and /password. WPS never been tested but assume working.
Implemented OverTheAir update of the data files as well as the code itself on port 8080 (i.e. http://nmea2000.local:8080 ) see config.h . *** Arduino IDE 2.0 does not support file upload, this makes much simplier uploading updates especially in the client and stored data files.
ToDo: LED lights on M5Atom. Still need some ideas of colors and blinking signals
incorporate NMEA2000 can bus connection to receive data along with NMEA0183 on UDP.
*/
DBK Depth Below Keel $--DBK,x.x,f,x.x,M,x.x,F*hh
- Depth, feet
- f = feet
- Depth, meters
- M = meters
- Depth, Fathoms
- F = Fathoms
- Checksum
DBS Depth Below Surface $--DBS,x.x,f,x.x,M,x.x,F*hh
- Depth, feet
- f = feet
- Depth, meters
- M = meters
- Depth, Fathoms
- F = Fathoms
- Checksum
DBT Depth Below Transducer $--DBT,x.x,f,x.x,M,x.x,F*hh
- Depth, feet
- f = feet
- Depth, meters
- M = meters
- Depth, Fathoms
- F = Fathoms
- Checksum
DPT Heading – Deviation & Variation $--DPT,x.x,x.x*hh
- Depth, meters
- Offset from transducer; positive means distance from transducer to water line, negative means distance from transducer to keel
- Checksum
GGA Global Positioning System Fix Data. Time, Position and fix related data for a GPS receiver $--GGA,hhmmss.ss,llll.ll,a,yyyyy.yy,a,x,xx,x.x,x.x,M,x.x,M,x.x,xxxx*hh
- Time (UTC)
- Latitude
- N or S (North or South)
- Longitude
- E or W (East or West)
- GPS Quality Indicator, 0 - fix not available, 1 - GPS fix, 2 - Differential GPS fix
- Number of satellites in view, 00 - 12
- Horizontal Dilution of precision
- Antenna Altitude above/below mean-sea-level (geoid)
- Units of antenna altitude, meters
- Geoidal separation, the difference between the WGS-84 earth ellipsoid and mean-sea-level (geoid), "-" means mean-sea-level below ellipsoid
- Units of geoidal separation, meters
- Age of differential GPS data, time in seconds since last SC104 type 1 or 9 update, null field when DGPS is not used
- Differential reference station ID, 0000-1023
- Checksum
GLL Geographic Position – Latitude/Longitude $--GLL,llll.ll,a,yyyyy.yy,a,hhmmss.ss,A*hh
- Latitude
- N or S (North or South)
- Longitude
- E or W (East or West)
- Time (UTC)
- Status A - Data Valid, V - Data Invalid
- Checksum
HDG Heading – Deviation & Variation $--HDG,x.x,x.x,a,x.x,a*hh
- Magnetic Sensor heading in degrees
- Magnetic Deviation, degrees
- Magnetic Deviation direction, E = Easterly, W = Westerly
- Magnetic Variation degrees
- Magnetic Variation direction, E = Easterly, W = Westerly
- Checksum
HDM Heading – Magnetic $--HDM,x.x,M*hh
- Heading Degrees, magnetic
- M = magnetic
- Checksum
HDT Heading – True $--HDT,x.x,T*hh
- Heading Degrees, true
- T = True
- Checksum
MWD Wind Direction & Speed Format unknown
MTW Water Temperature $--MTW,x.x,C*hh
- Degrees
- Unit of Measurement, Celcius
- Checksum
MWV Wind Speed and Angle $--MWV,x.x,a,x.x,a*hh
- Wind Angle, 0 to 360 degrees
- Reference, R = Relative, T = True
- Wind Speed
- Wind Speed Units, K/M/N
- Status, A - Data Valid
- Checksum
RMB Recommended Minimum Navigation Information $--RMB,A,x.x,a,c--c,c--c,llll.ll,a,yyyyy.yy,a,x.x,x.x,x.x,A*hh
- Status, V = Navigation receiver warning
- Cross Track error - nautical miles
- Direction to Steer, Left or Right
- TO Waypoint ID
- FROM Waypoint ID
- Destination Waypoint Latitude
- N or S
- Destination Waypoint Longitude
- E or W
- Range to destination in nautical miles
- Bearing to destination in degrees True
- Destination closing velocity in knots
- Arrival Status, A = Arrival Circle Entered
- Checksum
RMC Recommended Minimum Navigation Information $--RMC,hhmmss.ss,A,llll.ll,a,yyyyy.yy,a,x.x,x.x,xxxx,x.x,a*hh
- Time (UTC)
- Status, V = Navigation receiver warning
- Latitude
- N or S
- Longitude
- E or W
- Speed over ground, knots
- Track made good, degrees true
- Date, ddmmyy
- Magnetic Variation, degrees
- E or W
- Checksum
RPM Revolutions $--RPM,a,x,x.x,x.x,A*hh
- Source; S = Shaft, E = Engine
- Engine or shaft number
- Speed, Revolutions per minute
- Propeller pitch, % of maximum, "-" means astern
- Status, A means data is valid
- Checksum
VWR Relative Wind Speed and Angle $--VWR,x.x,a,x.x,N,x.x,M,x.x,K*hh
- Wind direction magnitude in degrees
- Wind direction Left/Right of bow
- Speed
- N = Knots
- Speed
- M = Meters Per Second
- Speed
- K = Kilometers Per Hour
- Checksum
ZDA Time & Date – UTC, Day, Month, Year and Local Time Zone $--ZDA,hhmmss.ss,xx,xx,xxxx,xx,xx*hh
- Local zone minutes description, same sign as local hours
- Local zone description, 00 to +/- 13 hours
- Year
- Month, 01 to 12
- Day, 01 to 31
- Time (UTC)
- Checksum