Wirelessly Log and Chart Water or Snow Levels over the Internet

This tutorial describes how to configure the wireless Endpoints to measure tank, snow or water levels over the internet using the combination of an ioBridge Gamma Gateway and the Maxbotix MB7092 XL-MaxSonar-WRMA1 range sensor.


  • ioBridge Gamma PRO web gateway with XBee Adapter and XBee radio
  • One or more ioBridge Wireless Endpoints with XBee radio
  • Maxbotix MB7092 XL-MaxSonar-WRMA1 range sensor
  • Optional Solar Panel and Lithium-Poly Battery
  • Optional Outdoor Enclosure
  • Cable to connect the range sensor to the Wireless Endpoint

Step 1 – Configure your Wireless Endpoints and Gamma PRO

Follow the steps 1, 2 and 3 in the Tutorial Initial Setup of Wireless Endpoints with Temperature and Humidity Monitoring as an Example.

Set the DIP switches on the Endpoint or Endpoints to operate in Mode 6 and using different Variable Maps.  In this tutorial one Wireless Endpoint was used as “Endpoint D”.  The DIP switches in for Endpoint D in Mode 6 are set as follows:

Power up the Endpoint using your power source of choice.  In this example a 6 volt solar panel with an internal Lithium-Poly battery is being used but for initial testing AA or DC power is just fine too.

Log into your account and verify that the Endpoint is connected to the Gateway with the correct variable mapping and in the correct mode.  Click on the Modules tab and then on the Wireless Endpoints tab for your gateway.  The settings (not necessarily the values) should look as follows:

Endpoint Rangefinder

Step 2 – Connect the Ultrasonic Sensor

Refer to the Maxbotix Datasheet and connect the sensor to the Wireless Endpoint as follows.

2013-05-07 08.42.44

The Maxbotix sensor is powered by the Wireless Endpoint and the serial output from the Maxbotix sensors is connected to the serial input on the Wireless Endpoint.  A summary of the connections is as follows:

Wireless Endpoint   Maxbotix Sensor


+5V <-> +5V

Rx <-> Tx

Note that the Maxbotix sensors do not come with terminal connectors and that wires need to be soldered to the Maxbotix terminals. Cat-5 Ethernet cable is a good choice.

The Wireless Endpoint is capable of reading serial range measurements in format Rxxx (inches or cm depending on the sensor model) or Rxxxx (mm models).  The Endpoint takes ten readings and returns the median value.  The range value “xxx” or “xxxx” is sent to the variable normally mapped to DI.  In this case the value of variable 14 represents the range reading in cm and will update every 10 seconds or two minutes seconds depending on the power source.

Step 3 – Place a Range Gauge on your Dashboard

Using a combination of Dashboard widgets and scaling expressions it is possible to create gauge displays that represent the levels or volumes that you are measuring.  See this tutorial for similar examples.  In this example a gauge is being used to measure tide levels using an Expression widget as follows:

Tide Height Widget


Note that the variable value is referenced in the expression as: %%input:342222222267,VV,14,2%% – see the Expression Builder documentation for details.

Step 4 – Logging and Charting your Measurements

To create a log of the range (or in this case tide) readings the variable value need to be sent to the server on a regular basis.  This is done by setting up an onboard rule as follows: Modules|Onboard Rules|Add Rule|Push Update Rule|Variable Value|Variable 14|Push Interval and then Sync the rules.  Your rule should look similar to this (with perhaps a slower push frequency).  Note that it is always best to choose a push frequency faster that the intended logging frequency.

Push Rule


A data log may then be created: Data Logs|Add Data Log|Variable Value Logging

Tide Data Log

With a corresponding Chart Widget: Widgets|Create Widget|Chart

Tide Chart


The chart may be displayed on your Web dashboard or using ioApp on your Android or iPhone.