Hi Guys,
I have not followed this forum for a while, since I should get messages by email and I have not got any until now. So I have thought this has been dead. Here are some late answers.
Please check arduino library on GitHub - ttlappalainen/NMEA2000: NMEA2000 library for Arduino . It has been developed more and used by several projects. Under documents there are drawings to make own devices and how to start with library. Under examples there are ready code e.g. for sending some temperatures.
Adrculda:
So for sending engine RPM you just use:
SetN2kEngineParamRapid(N2kMsg, EngineInstance, RPM);
NMEA2000.SendMsg(N2kMsg);
For engine water temp you need to use
SetN2kEngineDynamicParam(N2kMsg, 1,N2kDoubleNA,N2kDoubleNA,EngineWaterTemp,N2kDoubleNA,N2kDoubleNA,N2kDoubleNA);
NMEA2000.SendMsg(N2kMsg);
And for temperatures as in example TemperatureMonitor.ino
SetN2kTemperature(N2kMsg, 1, 1, N2kts_ExhaustGasTemperature, ExhaustTempPort);
NMEA2000.SendMsg(N2kMsg);
SetN2kTemperature(N2kMsg, 1, 2, N2kts_ExhaustGasTemperature, ExhaustTempStarboard);
NMEA2000.SendMsg(N2kMsg);
Hobbe1979:
PGN 60928 is only for address claiming and it will be done only when requested. So that should ne be sent frequently. Unfortunately some units expects it. E.g. my Garmin GMI 20 does not.
Dick3:
In NMEA2000 library there is ready function SetN2kRudder. If you need to know how data is build, read code on N2kMessages.cpp.
Enzycal:
Yes you can. It is almost the same as my sample schematic: https://github.com/ttlappalainen/NMEA2000/blob/master/Documents/ArduinoMega_CAN_with_MCP2515_MCP2551.pdf