Ultrasonic tank sensor with SensESP

Fig .: Ultrasonic level sensor

https://www.segeln-forum.de/board194-boot-technik/board195-open-boat-projects-org/p2301715-ber%C3%BChrungsloses-messen-von-tankinhalten/#post2301715

 

Fred has another implementation of an ultrasonic tank sensor with him SensESP  and a Wemos D1 mini. The Ultrasonic sensor DS1603L detects liquid levels in a tank and provides the corresponding measured values via SensESP via WiFi SignalK. SensESP is a software framework for the Arduino IDE with which different sensors can be easily integrated into SignalK. The special thing about SensESP is that sensors can be docked in SignalK without a network configuration. A SignalK server is automatically recognized by SensESP and the network configuration for data transmission via WiFi is carried out independently. The level can be visualized in SignalK.

Due to the properties of the sensor, there is no need to drill a hole in the tank, which is why this sensor can be used as a retrofit solution for existing tanks without a level indicator. Thanks to the WLAN connection, no further data cables need to be laid; a 12V supply near the tank to which the microcontroller can be connected is sufficient. The Wemos D1 mini pro module is a microcontroller based on the ESP 8266 with built-in WLAN module. The ultrasonic sensor is connected to the microcontroller. The ultrasonic sensor is glued to the outside of the tank bottom. The liquid level in the tank can then be recorded.

Caution: The sensor must be attached to the bottom of the tank, so it must "ping" from bottom to top in order to record the liquid level. "Pinging" from top to bottom does not work.

The software for the level sensor can be found here: https://github.com/frewie/UltrasonicTankSensor

We have a similar project under DIY ultrasonic level measurement to find. However, it uses its own software that can transmit NMEA0183 data sets via WiFi.

Fig .: Waterproof housing for the level sensor

Integrate WiFi battery monitor in SignalK

Fig: WiFi battery monitor

The WiFi battery monitor can be integrated into SignalK. The measurement data can then be displayed in the instrument panel. A small detour via MQTT is necessary for integration in SignalK. Since the WiFi battery monitor can also communicate with the Tasmota software via MQTT as standard, we use this interface in conjunction with the SignalK plug-in signal-mqtt-gw by Teppo Kurki. Basically, we don't need an MQTT server on the Raspi if we want to use the SignalK plugin. If an MQTT server is running on the Raspi, the port addresses must be changed to avoid conflicts. The SignalK plug-in behaves like an MQTT server and can interpret the telegrams sent, but without error handling and special transaction protection. The following shows how the configuration must be carried out.

WiFi battery monitor configuration

Under Configure MQTT the following settings are made:

  • Host: IP of the Raspi is running on the SignalK
  • Port: 1883 (change if an MQTT server should run on the Rapi)
  • Client: PZEM-017 (name of the device that is displayed as source in MQTT)
  • Topic: service
  • Full Topic: battmonitor / service

Username and password remain unchanged and are not used.

Fig: Configure MQTT

Then is still under Configure Other to check whether MQTT is activated.

Fig: Configure Other

Under Configure logging the update rate is set with which the telegrams are to be sent. There is also the parameter Telemetry Period. The value is given in seconds. 10 can be used as the smallest value. Data transfers faster than 10s are not possible. The measurement data are then displayed in SignalK with this update rate.

Fig: Configure logging

As a last step, we have to add two special rules to the Tasmota firmware that processes the data telegrams so that they can be used by the SignalK plug-in  signal-mqtt-gw can be processed. Rules are Tasmota firmware extensions with which the behavior of Tasmota can be influenced. If you want to know more about how it works, you can do this here read in detail. The SignalK plug-in for MQTT always expects individual data pairs per telegram with an identifier and a measured value. The identifier corresponds to the data path in SignalK. The data paths should not be chosen arbitrarily and should adhere to the specifications for data paths. Details can be found in the SignalK documentation in the appendix under appendix A and B. Both rules split the original MQTT telegram into 8 individual MQTT partial telegrams as can also be seen in the logging.

18:07:37 MQT: battmonitor / service / SENSOR = {"Time": "2021-04-18T18: 07: 37", "ENERGY": {"TotalStartTime": "2021-04-09T17: 21:15" , "Total": 0.122, "Yesterday": 0.011, "Today": 0.111, "Period": 0, "Power": 6, "Voltage": 13.03, "Current": 0.470}, "DS18B20-1": {"Id": "3C01D6075272", "Temperature": 23.0}, "DS18B20-2": {"Id": "3C01D607E5E3", "Temperature": 23.3}, "TempUnit": "C"}

Rule1 takes care of the forwarding of the temperature values

Rule1
ON DS18B20#Temperature DO Var1 %value% ENDON
ON DS18B20#Temperature DO Add1 273.15 ENDON
ON DS18B20-1#Temperature DO Var2 %value% ENDON
ON DS18B20-1#Temperature DO Add2 273.15 ENDON
ON DS18B20-2#Temperature DO Var3 %value% ENDON
ON DS18B20-2#Temperature DO Add3 273.15 ENDON
ON DS18B20-3#Temperature DO Var4 %value% ENDON
ON DS18B20-3#Temperature DO Add4 273.15 ENDON
ON tele-DS18B20 DO publish vessels / self / environment / inside / DS18B20_1 / temperature %Var1% ENDON
ON tele-DS18B20-1 DO publish vessels / self / environment / inside / DS18B20_1 / temperature %Var2% ENDON
ON tele-DS18B20-2 DO publish vessels / self / environment / inside / DS18B20_2 / temperature %Var3% ENDON
ON tele-DS18B20-3 DO publish vessels / self / environment / inside / DS18B20_3 / temperature %Var4% ENDON

The temperature values are read in and converted into Kelvin, since SignalK always expects measured values in SI units.

Rule2 processes the electrical measured values.
Rule2
ON ENERGY#Power DO Var5 %value% ENDON
ON ENERGY#Voltage DO Var6 %value% ENDON
ON ENERGY#Current DO Var7 %value% ENDON
ON ENERGY#Total DO Var8 %value% ENDON
ON ENERGY#Yesterday DO Var9 %value% ENDON
ON ENERGY#Today DO Var10 %value% ENDON
ON tele-ENERGY DO publish vessels / self / electrical / batteries / service / power %Var5% ENDON
ON tele-ENERGY DO publish vessels / self / electrical / batteries / service / voltage %Var6% ENDON
ON tele-ENERGY DO publish vessels / self / electrical / batteries / service / current %Var7% ENDON
ON tele-ENERGY DO publish vessels / self / electrical / batteries / service / energytotal %Var8% ENDON
ON tele-ENERGY DO publish vessels / self / electrical / batteries / service / energyyesterday %Var9% ENDON
ON tele-ENERGY DO publish vessels / self / electrical / batteries / service / energytoday %Var10% ENDON
The two rules are entered individually as a complete text string in the console and confirmed with Enter. Then we still have to set the rules with the commands Rule1 ON  and Rule2 ON activate. The breakdown and the individual telegrams should then be visible in the console.
Fig: Console with individual telegrams for the measured values
Here are some more important commands for rules:
  • RuleX 0 - deactivates a rule
  • RuleX " - deletes a rule
  • RuleX ON - activates a rule

Configuration in SignalK

On the Raspberry Pi you should first check whether an MQTT server like mosquitto running. The easiest way to do this is in a console with the command Top do. It shows a list of all running processes on the Raspi. If the MQTT server is running without being used, then you should use the command sudo apt-get remove mosquitto deinstall. If it is required, a port other than 1883 must be used in the configuration.

In SignalK the plugin signal-mqtt-gw under Appstore -> Available installed. Under Server -> Plugin Config the following settings are then made.

Fig: Plugin Config in SignalK

If everything is configured correctly, SignalK must be restarted. Then the data is in the Data browser to see.

Fig: SignalK Data Browser

Depending on the number of connected 1Wire temperature sensors (DS18B20), temperature values are then displayed. If the InfluxDB database and the Grafana database front end are also installed, extensive graphic data evaluations can be carried out.

Fig: Measurement data in the SignalK instrument panel

Fig: Measurement data visualized with Grafana

 

WiFi battery monitor

While searching the Internet for a battery monitor for DC voltages, I came across the PZME-017. The Peacefair company is known for various inexpensive battery monitors with LCD displays such as the PZEM-015.

Fig: PZEM-017 (100A version, with shunt and USB-RS485 adapter)

Fig: PZEM-015 (300A version as a pure display variant)

The PZEM-017 has the following features:

  • Voltage measurement 0… 300V DC
  • Current measurement: 10A, 50A, 100A, 200A, 300A (from 50A via external shunt)
  • Display of the current power in watts
  • Energy display in kWh for the current day, previous day and total consumption display
  • Modbus RTU-Interface (RS485, 9600Bd, 8N2, binary data transmission)
  • Supported Modbus commands:
    • 0x03 Read memory register
    • 0x04 Read input register
    • 0x06 Write single register
    • 0x41 calibration
    • 0x42 Reset energy measurement
  • 7 devices can be used on the Modbus via adjustable ID 1… 7, ID 0 broadcast
  • USB-RS485 adapter (CH341)

In contrast to the PZEM-015, the PZEM-017 has no display and transmits the measurement data via the Modbus. The Modbus protocol is open and there are some implementations with an arduino. The website is an example here Solarduino called. There, however, a TTL-RS485 adapter is used to connect to the Arduino. In the area of home automation there are implementations with a Wemos D1 mini (ESP8266) with Tasmota firmware and a data connection via WiFi. However, it cannot be used well as a battery monitor on a boat, as you still need an external power supply of 5V for the Wemos D1 mini.

The Tasmota firmware already has all the important interfaces that you need to be able to build a boat battery monitor:

  • Supports all PZEM modules with Modbus interface via TTL signals with unsoldered RS485 chip (U5)
  • Supports temperature 1-wire modules such as the DS18B20
  • Web configuration
  • Display of the measurement data on the website

After some reengineering of the electronics I was able to modify the circuit so that it does not need an additional 5V supply and only needs a few components such as:

  • Wemos D1 mini with Tasmota firmware
  • 1k resistor
  • 4K7 resistor
  • 7 connection cables
  • DS18B20 temperature sensor

and a stand-alone boat battery monitor has been created that can:

  • Input voltage 10… 38V
  • Voltage measurement accuracy: 0.01V
  • Current measurement: 10A, 50A, 100A, 200A, 300A (from 50A via external shunt)
  • Current measurement accuracy: 50mA
  • Display of the current power in watts
  • Energy display in kWh for the current day, previous day and total consumption display (not power off resistant when completely switched off, details look here)
  • Resettable energy meters
  • Configuration and display of the measurement data via the website
  • Temperature measurement: 1… 3 DS18B20 for battery, charger and inverter (operated in parallel on the 1-Wire bus)
  • Own consumption: 16mA (without WiFi activity), 60mA (with WiFi data traffic, if connected)
  • Reduced power consumption of only 1.0mA when the Wemos D1 mini is switched off (look here)

Circuit modification

 Unsolder IC U5 (MAX485)

The IC U5 is not required because we do not use the Modbus and connect the serial TTL data signals (3.3V) directly to the Wemos D1 mini. The easiest way to unsolder it is with a hot air desoldering station. If you don't have this, you can heat up each pin of the IC individually with the soldering iron and carefully bend it up with a needle. But you have to make sure that the pin is not heated for too long, otherwise the conductor track underneath will become detached from the circuit board. This must be avoided at all costs, as we still need the pads to solder the cables. It is also important to note how U5 was soldered in, as the cables are soldered according to the pin numbers according to Table 1.

Fig: Pin numbers

Fig: Position of U5 (unmodified board)

Solder in 1k resistor

The 1k resistor has to be soldered parallel to R15. R15 is the series resistor for controlling the optocoupler U2 (CT817C Receiving side). With the resistor soldered in parallel, R15 is reduced to 320 Ohm, so that the LED of the optocoupler can be controlled from the Wemos D1 mini with a 3.3V TTL signal.

Fig: 1k resistor

Solder the 4K7 resistor and bridge

The 4k7 resistor serves as the Pull-up resistor for the 1Wire bus. It is soldered to the pads of the missing resistor R19. In addition, a small bridge from R19 to R17 is soldered as can be seen in the picture. This connects the resistor to 3.3V.

Fig: 4k7 resistor with bridge

Solder the 3.3V supply voltage to the Modbus output circuit

Since the Modbus output circuit is operated electrically isolated from the measuring circuit via the optocoupler, an external supply voltage of 5V is required in the original circuit. This is fed in via the Modbus connections. In our case, however, we do not need electrical insulation, as we transmit the data via WiFi and operate the rest of the circuit with the same 3.3V supply voltage as the measuring circuit. For the feed we need a black cable from Z2 to U1 pin 3 and a red cable from plus E1 to C7.

The optocouplers actually no longer make sense. We still need them because the signals from the microcontroller U3 are inverted and we cannot use them directly.

Fig: Supply lines

Solder in the Wemos D1 mini

The connections of the Wemos D1 mini are soldered to the free pads of U5 as follows:

Cable color From Wemos D1 mini To meaning
red 3V3 U5 pin 8 3.3V supply
black G U5 pin 5 Dimensions
green TX (GPIO 1) U5 pin 1 Receive Modbus
green RX (GPIO 3) U5 pin 4 Send Mosbus
yellow D1 (GPIO 5) R19 lower pad 1-Wire data signal

Tab. 1: Cable assignments

Fig: Pin assignment Wemos D1 mini

Fig: Cable on the Wemos D1 mini

Fig: Assignment of the cables to U5

Flash Tasmota firmware

Before the Tsmota firmware is flashed, the following must be observed:

Note! In our modified circuit, the Wemos D1 mini is not operated with the 5V supply, but with 3.3V directly from the measuring circuit. If the Wemos D1 mini is supplied with 5V via the USB connection, the battery monitor must be disconnected from the 12V supply and from the shunt. Otherwise there will be a double feed and the Wemos D1 mini or the PC could be damaged. So all 4 cables must always be disconnected from the measurement connections when working with the USB cable.

The current version of the Tasmota firmware can be downloaded here: http://ota.tasmota.com/tasmota/release/ The firmware is available in different language versions. The tasmota.bin file would be a good choice for English-language firmware. If you want to know more about Tasmota, you can visit this website: https://www.tasmota.info There you will find detailed information about supported hardware and flashing.

The easiest way to flash the firmware is with the software Tasmotizer which are available for different operating systems. It works best with the Windows variant.

When flashing via the USB cable, we must not forget to check the box next to “Self-resetting device”. The Wemos D1 mini is automatically switched to programming mode and automatically reset after flashing.

Fig: Tasmotizer settings

Tasmota configuration

The Tasmota firmware is universal and supports a variety of devices. With the configuration, the firmware is adapted to the specific hardware. After flashing, the Wemos D1 mini starts with its own access point that can be reached under the SSID tasmota_xxxxxx. A password for logging into the WiFi network is not required. The start page can be opened with a web browser at the IP address 192.168.4.1. The respective settings are made under Configuration as shown in the following images.

Fig: Configure WiFi: Enter SSID, password and host name

Fig: Configure tamplate: Select Based on Generic (18), assign the name PZEM-017 and assign GPIOs

Fig: Configure Module: Select module type PZEM-017 (0)

Fig: Configure Other: Assign Device Name Battery Monitor

This completes the configuration and we can see the measured values on the start page of the battery monitor.

Fig: Battery monitor home page

Safe installation in the housing

The Wemos D1 mini can be accommodated in the same housing as the battery monitor. I packed the Wemos D1 mini in a small zip bag. This means that no short circuits can occur with the rest of the circuit and everything is securely packaged. You could of course do the isolation with tape. With the zip bag, however, it is more convenient because you can remove the Wemos Di mini for later software changes.

Fig: Isolation of the Wemos D1 mini in a zip bag

Fig: Closed housing

Connection of the temperature sensor

The DS18B20 temperature sensor can be connected to the connections of the RS485 bus as follows:

Connection RS485 port New function DS18B20
5V 3.3V not used
B. 3.3V red
A. 1-Wire yellow
GND GND black

Tab: Terminal assignment temperature sensor DS18B20

Fig: Test circuit with shunt, load resistor and temperature sensor equivalent to the circuit diagram on the back of the battery monitor

Fig: circuit

Further information

Separate micro USB port

The separate micro USB port on the side of the battery monitor is used for power supply if the battery voltage should drop below 7V. A separate USB cable can then be used to supply an external power supply. As noted in the documentation, this is very dangerous if the battery voltage is greater than 7V. Then the feeding devices can be destroyed via the feed from a PC or a power bank, because the higher voltage is then applied to the feeding devices with the maximum current of the battery. It is therefore not advisable to use this micro USB port. It's just too dangerous.

1-wire port

Up to 3 temperature sensors can be connected in parallel to the 1-Wire port. The sensors can be used, for example, to measure the temperature of the battery, the charger, the solar regulator or the inverter. Any other application would also be conceivable. The Tasmota firmware will automatically detect the additional temperature sensors and display the temperature values below the values from the battery monitor. The assignment of the sensors to the IDs must be found out by testing the sensors.

Power supply

If the battery voltage is less than 10V, the WemosD1 mini will no longer function properly. The Wemos D1 mini gets stuck, especially when switching on with voltages below 10V. Overvoltages above 40V are possible, but should not be present for too long as the power supply heats up significantly.

Current measurement

The current measurement with the PZEM-017 shows an offset of 0.05A for a 100A shunt and thus falsifies the counting of the amount of energy. Only positive measuring currents can be processed. Negative currents through chargers are permitted, but are not taken into account in the energy measurement.

Energy measurement

The energy measurement is a measurement of voltage and current over time. The product of voltage, current and time interval is formed and the following values are added up. A Peukert factor is not taken into account in the measurement. It is a pure energy measurement.

calibration

Measurements on the PZEM-017 with a 100A shunt showed that the battery monitor has precise measurement functions. Only a voltage offset of + 0.01V and a current offset of + 0.05A could be identified as errors. This is completely sufficient for typical applications. In the case of versions with a 200A and 300A shunt, larger errors must be expected as the measurement resolution decreases. A calibration on the device cannot be carried out and must be carried out externally.

Storage of measured values

All measured values are lost after the supply voltage is completely switched off and the values of the energy measurement are set to zero. If you want to avoid this, you have to continue to supply the measuring circuit with battery voltage. The pure power consumption of the measuring circuit is only 1mA at 12V. So if you want to continue to receive the energy values, you can only switch off the Wemos Di mini and keep the measuring circuit supplied. This reduces the power consumption from 70mA to just 1mA. For further details see also in the chapter Reduce power consumption.

Reset the counter values

The counter values cannot be reset via a button on the main page of the battery monitor. A little detour via the console is necessary for this. The command EnergyReset 0 entered in the console and confirmed with Enter.

Display decimal places for voltage values

By default, the Tasmota firmware only shows the voltage without decimal places. Up to two decimal places can be displayed if you enter the following command in the console:

VoltRes 2

Set the correct system time

The Wemos D1 mini gets the current time from the Internet via an NTP server. The correct time for Germany can be found on the console with Timezone 99 can be set. Any other time zone can be with Time zone -13 ... + 13 can be set hourly as an offset. In the event that the battery monitor is not connected to the Internet but would like to obtain a current time from an NTP server in its own network, it is possible to redefine several NTP servers. The following commands are required one after the other:

NtpServer 0 (deletes the NTP settings, pay attention to spaces after NtpServer!)

NtpServer1 ptbtime1.ptb.de (sets NTP server 1)

NtpServer2 ptbtime3.ptb.de (sets NTP server 2)

NtpServer2 ptbtime3.ptb.de (sets NTP server 3)

More information about all Tasmota commands can be found here: https://tasmota.github.io/docs/Commands/

Embed measured values in external websites

The measured values of the battery monitor can also be output as formatted data. To do this, you connect to the battery monitor via HTTP

http://192.168.4.1?m=1

and then receives the following answer

{t} {s} Voltage {m} 0.00 V {e} {s} Current {m} 0,000 A {e} {s} Power {m} 0 W {e} {s} Energy Today {m} 0,000 kWh { e} {s} Energy Yesterday {m} 0,000 kWh {e} {s} Energy Total {m} 0,000 kWh {e

If you want to access this data on third-party websites, you have to CORS (Cross Origin Resource Sharing) in the Tasmota firmware. This is done with the following command via the console:

CORS *

Any website can then call up the data externally. If you want to use the access to a limited extent, you can also use the following command:

CORS http://my.webside.com

A small example can be found here: Demo_PZEM-017.zip

Fig: Integration in your own HTML pages

Integrate measured values in SignalK

The measured values can also be integrated into SignalK and can then be displayed via the instrument panel. How the configuration works in detail is described here:

https://open-boat-projects.org/de/wifi-batteriemonitor-in-signalk-integrieren/

Fig: Measurement data in the instrument panel

Reduce power consumption

The power consumption of the battery monitor can be reduced quite significantly to 1.0 mA at 12 V if the Wemos D1 mini can be switched off using a small switch (red cable 3.3V). The original measuring circuit then continues to run in the switched-off state and counts the power consumption. Only data transmission and display of the measurement data is then no longer possible. After switching on the supply voltage, all data are transmitted again and displayed correctly. This is very useful when you are not on the boat, so as not to discharge the battery.

[back]

Fig: Installation position for the on / off switch

Measurement of the consumption data of the AC shore connection

If you also want to measure the consumption data of the AC shore connection, you can do this with the Sonoff Pow Power Monitoring Switch with the Tasmopta firmware do. The shore connection can also be switched on and off via the module. The newer variant is the Sonoff Pow R2. It has a larger range of functions and can display more measured values and react to limit values. An ESP8266 is already built into these two devices and is only operated with the Tasmota firmware. A modification of the electronic circuit is not necessary as with the battery monitor. The Sonoff Pow R2 is therefore a good addition to the battery monitor.

Fig: Sonoff Pow (R2)

Low budged energy monitor

Stefan Kaufmann has on his website https://obenschlaefer.com/ presented an inexpensive energy monitor that is also interesting for boat enthusiasts. He originally built the energy monitor for his camper in order to be able to monitor the energy supply. The system is based on components from Victron on. The centerpiece is a Raspi with the free Venus OS firmware from Victron, which is also included in commercial hardware runs, but in this case on an inexpensive Raspi3B. The Raspi is then the control and visualization center for the energy monitor. Operation is web-based using a mobile phone, tablet or PC. In his building instructions he uses a 7 ″ Raspi display on the back of which the Raspi is docked. The Victron components are connected to the Raspi via Bluetoth and use it to exchange data.

Basically, the following things can be done with it:

  • Display of the energy flows between generators (generator, solar cell, charger), storage (lead-acid battery, LiFePo4, etc.) and consumers
  • Remote diagnosis via the Internet
  • Reporting system in the event of device malfunctions
  • Supported devices from Victron:
    • Victron battery computer BMV712
    • Victron MPPT solar charge controller of the Smart-Solar series
    • Victron inverters of the Phoenix series
    • Victron 230V charger of the Phoenix series

Stefan has described his project in great detail on his homepage. In multi-part videos, he describes exactly how the system is set up and what needs to be taken into account. There should hardly be any questions left unanswered.

Venus OS by Victron

Built-in components

 

Integrate Ruuvi Sensor Tag in SignalK

 

 

The Ruuvi sensor day is a small, smart sensor device. This allows the following data to be recorded:

  • temperature
  • Humidity
  • Air pressure
  • 3-axis acceleration sensor
  • waterproof case
  • Data storage in mobile phone app
  • Android and iPhone app available

The data is sent to a data terminal at defined time intervals to save energy via Bluetooth Low Energy. This can be a cell phone, for example, where you can view the data. But there is also a gateway with which the data can also be transferred to other systems such as:

  • SignalK
  • Grafana
  • Io tool
  • Steamr
  • TTN network
  • Node Red
  • and many more services

The Ruuvi Sensor Tag has a large 1000mAh rechargeable battery in the form of a CR2477 battery. This means that data can be recorded for up to 3 years depending on the recording rate, with the data being saved with the current firmware 2.5.9 delivered externally and not in the Ruuvi Sensor Tag. Either the cell phone or a gateway is used to transfer the data to other systems. From the Beta firmware 3.29.3 then the internal storage of the data also works. The case has 2 buttons and two LEDs and measures 52mm in diameter, is 12.5mm thick and weighs 25g. A exact specification is here to find. The Ruuvi Sensor Tag was created as part of a coupon funding campaign and pursues an open strategy of open hardware and open source. Much of the Construction documents are freely available. Various Firmware versions can be downloaded for different applications.

The integration of the sensor tag in SignalK takes place via the signal-ruuvitag-plugin. The corresponding sensor tag can be selected via the plug-in based on its ID and easily assigned to a sensor scheme in SignalK. The received data can then be displayed live in the instrument panel. Long-term evaluations can be carried out with Grafana via the InfluxDB in SignalK.

The Finnish company of the same name Ruuvi is offering the Sensor Tag for 35 euros in over 100 countries.

Long-term evaluation with Grafana

Front Ruuvi Sensor Tag

Extension connections of the Ruuvi Sensor Tag on the back

Visualization with Grafana

 

 

Data display in mobile phone app

Related Links

https://github.com/ruuvi

GaladrielMap navigation software

GaladrielMap is a web-based navigation software from Vladimir Kalachikhin. The name of the software is named after his boat. The software is based on a large number of PHP scripts that generate websites and are published via a web server. The websites can be displayed on any end device such as mobile phone, tablet and laptop. Only a web browser is required on the end device. The output of the navigation software can be displayed under all common operating systems. GaladrielMap has the following features:

  • Display of nautical charts online and offline via cache (OpenSeaMap, OpenTopoMap)
  • Display of your own position via GPS data provided by gpsd
  • Creation of your own routes
  • Creation of driven routes or POIs as gpx, kml and csv
  • Display of AIS information
  • Share your AIS position with others
  • Display of the weather forecast via Thomas Krüger Weather Service
  • Dashboard for displaying navigation data as numerical values

There is one for GaladrielMap virtual machine for Virtual Box to test the software functionality. There is also a executable image for a RaspberryPi with which a finished server with all necessary components can be set up. The image only needs to be saved on a 32GB SD card and then plugged into the RaspberryPi. In addition to the RaspberryPi, there is also the option of Navigation software on a modified WLAN router to run with OpenWRT.

A description and precise installation instructions can be found on Github: https://vladimirkalachikhin.github.io/Galadriel-map/

Route creation

Generate offline nautical charts

Display of AIS information

Share your own location with others

Display of weather information

Saving tracks

Car WiFi router MT7620A 300Mbps and 3G / 4G / LTE Internet gateway with OpenWRT firmware and integrated GaladrielMap

Car WiFi router front view

Car WLAN router in lockable installation frame

 

Weather forecast with AZ-Touch

The AZ touch Mod is a small 2.4 ″ touch color display with 320 x 240 pixels. On the base board can be used as a control unit ESP32C or a Wemos D1 mini be attached. A small breadboard allows you to set up your own circuits to expand the display.

The AZ-Touch has the following features:

  • Wall housing 120mm x 80mm x 35mm (W x H x D)
  • Resistive touchscreen 2.4 inch (6.14 cm) color TFT with 320 x 240 pixels (ILI9341)
  • For D1mini or ESP32 Dev-Kit C V2 / 4
  • built-in piezo buzzer
  • Integrated 5V voltage regulator (input voltage 9 - 35V DC)
  • Power consumption approx. 0.7W

On the website of Zihatec.de you can find the full description and the Circuit diagram about the AZ-Touch as well as some software examples.

The weather forecast is available in two versions. Once for the ESP32C and once for the Wemos D1 mini. The weather data is downloaded from the Internet by logging the display into an Internet-enabled WLAN.

Here is a little video about it: https://youtu.be/BkN-VGN96Cg

I2C modules by Horter & Kalb

 

https://www.segeln-forum.de/board194-boot-technik/board35-elektrik-und-elektronik/board195-open-boat-projects-org/78183-i2c-io-module-f%C3%BCr-signalk-und-zur-bootsautomation/

The I2CModules of the Horter company (LxW 65x45mm) can be used for boat automation because they can be connected to any microcontroller and the Rasperry Pi. The I2C bus is actually intended for communication between ICs on a circuit board. But there are also numerous Extensions with which the bus signals can be amplified and electrically isolated so that further distances can be bridged with shielded cables of up to 50m. The I2C modules from Horter are designed so that they can be used in Support frame can be installed for fastening. Alternatively, they can also be mounted on top hat rails. At Horter, up to 28 different DIN rail modules and other modules can be purchased. Most of the modules are offered as kits with prices between 10 and 30 euros. Due to the large number of modules, different complex applications can be implemented.

The following modules would be of interest for boat automation:

  • I2C digital input module 8x 0… 24V with optocoupler
  • I2C digital output module 8x 0… 24V 1A with optocoupler
  • I2C analog input module 4x 0… 2V, 0… 10V, +/- 10V, 20mA (each input can be configured individually), 18 bit resolution
  • I2C analog output module 4x 0… 10V, 40 mA, short-circuit proof, 10 bit resolution
  • I2C 433MHz radio transmitter (to control wireless switch boxes)
  • 5V / 3A power supply for I2C modules
  • 2C repeater with level adjustment for Raspi 2/3/4
  • I2C module for Arduino Pro Micro
  • I2C module for Wemos D1 mini (ESP8266)
  • Supply voltage input 7V… 40V, output voltage 5V / 3A

This can do some nice things like:

  • Boat automation with Arduino Pro Micro module
  • Boat automation with ESP8266 and ESP32 via WLAN
  • Boat automation with Raspi and NodeRed
  • Extensions for the Marine Control Server (MCS)
  • Signal acquisition and output for SignalK (a corresponding plug-in would still have to be programmed)
  • Extension modules for the Multifunction display
  • Control of analog pointer instruments via analog outputs for historical boats
  • and and and….

DIY keel sensor

 

https://www.segeln-forum.de/board194-boot-technik/board35-elektrik-und-elektronik/board195-open-boat-projects-org/p2190274-hubkielsensor-diy/#post2190274

 

Gerry from the german sailing forum has built a keel sensor to show the depth of a recoverable keel. In addition to the keel depth, the heeling is also displayed. The measurement data can be displayed via WLAN, for example in a mobile phone browser. The following components were used for the keel sensor:

  • ESP32 NodeMCU (WLAN-enabled microcontroller)
  • MB1043 HRLV-MaxSonar-EZ4 (ultrasonic sensor with narrow beam)
  • MMA8452 (3-axis gyro sensor for inclination display )
  • D24V10F5 (voltage regulator)

The whole thing can be set up quite easily on a breadboard. Circuit diagram tells you more about the wiring.

MAIANA ™: The Open Source AIS Transponder

Peter Antypas self-built an AIS class B receiver / transmitter and presented it on Github:

https://github.com/peterantypas/ais_transponder

The device combines the following functions:

  • AIS class B receiver / transmitter
  • 161.975 MHz (channel 87B), 162.025 MHz (channel 88B)
  • 2W transmission power
  • Silicon Labs 4463 transceiver ICs
  • STM32L412 microcontroller 80MHz
  • GPS Quectel L70R module, ceramic SMD antenna
  • 3.3V UART output at 38.4Kbps
  • NMEA0183 data telegrams
  • Update rate 1 Hz
  • 12V / 30 mA
  • fully open-source on Github

The reception of AIS signals is not a problem, whereas transmission requires a permit.

Discussion: https://www.segeln-forum.de/board194-boot-technik/board35-elektrik-und-elektronik/board195-open-boat-projects-org/78130-maiana%E2%84%A2-the-open-source-ais-transponder/