SignalK, measuring temperature II

An introduction to the SignalK(SK), Marine application, is given here.

A very easy way to measure temperatures with SK is to use one wire (1W) DS18B20 (DS)temperature sensors. 

In a former post the DS:s where connected direkt to the RPi GPIO:s, but in this post they are WiFi enabled via the Shelly 1(S1). Alarms are also sent when the temperature exceeds a set value.

If humidity is of interest You can use a  DHT22 sensor instead of a DS sensor.

Using the NodeRed(NR) plugin, a browser-based editor for the Internet of Things, will map the temperature measures to a SignalK path. This can be done despite You maybe don't have any advanced programming skills.

You can even send the temperatures to a NMEA 2000/0183 network with sufficient hardware.

Prerequisite is a SK server up and running, the mentioned Shelly 1 and up to 3 DS:s.

Start with installing the Shelly 1 and the DS:s checking this post.

NR should be installed in SK as a plugin, "@signalk/signalk-node-red", via the admin UI.

Here is a link to a quick NR intro and the link to NR website.

In NR, opened via admin UI(Webapps), import the "SignalK_shelly_temp.json" flow, found here, to NR.

Via POST the temperatures is fetched every 15 seconds, change to what is appropriate in Your case, with the. "injectnode.

In the "function" node, values are changed to Celsius, from Kelvin, and the values are stored via a global.set(xx,yy).

In the next part, every 3 seconds, the stored values are fetched, mapped to a
 SK path and sent on to the "signalk-send-pathvaluenode which forward the data to SK server. 

As You se I'm measuring the exhaust temperature and here You have a post with a "how to".

The separation between fetching and sending data is due to that in my case some values are sent on to a Garmin GMI 20 display which must have new data, at least, every 5:th second otherwise the GMI20 just will display "--". So if there is a delay with fetching the data over WiFi the last value will be displayed.

The last part will monitor the temperature levels. If the temperature levels, for exhaust, will increase over 50 °C alarms will be sent to the SK server.

In my case an Actisense NTG-1 is installed and I want to display the "engineRoom temperature" in my N2K instruments. The "signalk-to-nmea2000plugin, in Node Server, will do the job.

In the Plugin Config click "Active"  and enable "Engine Room Temperature" and then "Submit".

130312, mentioned in the config, is the N2K pgn that will be created.

Setup is complete and You will see the temperature in Your N2K instruments.

My instruments hadn't the possibility to display the exhaust temperatures so instead I used  the nice WilhelmSK app diskussed here.

Comments

Post a Comment

Feel free to leave a comment ! ... but due to a lot of spam comments I have to moderate them. Will reply ASAP !

Popular posts, last 30 days

Raspberry Pi OS Lite with GUI, RDP, VNC, Chromium

iCloud drive sync, or mount, with a Linux, Ubuntu, device

NetworkManager UI and access point, hotspot

Raspberry Pi 2, 3, 4, 5 USB SSD or USB drive boot

Installing Ubuntu 24.04 or 24.10/25.04 on an old MacBook Air(2011)

Clone the Raspberry boot disk

Signal K quick install, Raspberry Pi, Ubuntu

Home Assistant with VirtualBox or Proxmox or Ubuntu KVM ???

Waveshare CAN hat with Signal K & OpenPlotter

Signal K charts, offline & online