Skip to main content

Water Quality and Flood Monitoring Networks

Environmental monitoring is one of the most compelling applications for LoRa mesh networks: sensors can be deployed in remote, power-limited locations that are difficult or expensive to reach with traditional wired or cellular connectivity.

Water Quality Monitoring

Mesh-connected water quality sensors provide real-time data for rivers, lakes, reservoirs, and municipal water systems. Note that water-quality sensors (pH, turbidity, dissolved oxygen, conductivity) require regular calibration to stay accurate:

Parameters to Monitor

  • pH - Atlas Scientific EZO pH circuit (~$46) plus probe (~$85), roughly $130 total (probe sold separately; prices as of 2026-06-08). pH outside roughly 6.5-8.5 (the EPA secondary drinking-water range) may warrant investigation rather than proving contamination on its own.
  • Turbidity - Measures water clarity; spikes indicate sediment runoff or contamination events
  • Dissolved Oxygen - Critical for aquatic life; low DO indicates algal bloom or organic pollution
  • Conductivity/TDS - Total dissolved solids; elevated levels indicate industrial runoff or saltwater intrusion
  • Water temperature - DS18B20 waterproof probe (~$5); temperature affects biological and chemical processes
  • Water level - Ultrasonic or pressure transducer sensor; critical for flood warning systems

Hardware Architecture

A complete water quality node:

  • RAK4631 base (ultra-low power nRF52840)
  • Atlas Scientific EZO carrier board (I2C) for multi-parameter sensing - e.g. the Whitebox Tentacle carrier
  • DS18B20 waterproof temperature probe
  • IP68 fiberglass enclosure with cable glands for sensor probes
  • 10W solar panel + 10Ah LiFePO4 battery. This supports autonomous operation across most of the year in favorable sun, but do not assume unconditional year-round operation: LiFePO4 cells must never be charged below 0°C (32°F) - charging a frozen LiFePO4 cell causes lithium plating and permanent damage - so a charge controller / BMS with a low-temperature charge cutoff is required for winter water-side deployments.
  • Transmit interval: 15-30 minutes (low duty cycle saves power and channel bandwidth)

Flood Early Warning Systems

The National Weather Service (NWS), working with USGS streamgages, is the authoritative source for flood warnings. A community LoRa mesh is a supplementary, non-authoritative monitoring aid - it does not replace NWS/USGS warnings or official alerts. Mesh delivery is best-effort and unacknowledged; packets can drop. Use a local mesh to monitor your own property as an early local indicator, but make life-safety and evacuation decisions based on official NWS/USGS warnings and local emergency alerts.

As a supplement, a creek or river monitoring network may give downstream residents some local advance notice. Any lead time (sometimes cited as 30-120 minutes) is watershed-dependent and not a guaranteed property - flash-flood watersheds can give far less. Treat it as a best-effort early indicator, not a guaranteed warning window:

  1. Deploy water level sensors at upstream monitoring points (2-3 sensors per watershed)
  2. Set alert thresholds. The percentages below are illustrative only, not a safe universal recipe: trigger on rate-of-rise (e.g., cm per minute) as well as absolute level, set conservative early thresholds, and align cut points with the official NWS flood-stage definitions for that specific gauge (per-site calibration with the local NWS/USGS gage). A 90%-of-flood-stage "Emergency" trigger can fire too late to evacuate, especially in flash-flood-prone watersheds. Example illustrative levels: "Advisory" ~50% of flood stage, "Warning" ~75%, "Emergency" ~90% - but do not hard-code these as universal.
  3. Gateway node at the monitoring station forwards alerts to community mesh
  4. Room server stores alerts and delivers to all connected community members
  5. Integration with community alerting: Telegram bot, email, or siren activation

Case study framework: A network of 5 sensors along a 20-mile creek watershed, each transmitting hourly with a gateway node at the nearest road bridge, can give the downstream community a supplementary local indicator of rising water. This is an early local signal only - it does not replace NWS/USGS flood warnings, and residents should always treat official warnings and alerts as primary.

Data Management and Visualization

# Simple data pipeline for water monitoring:
# 1. Sensor node transmits JSON over LoRa mesh
# 2. Gateway node receives and publishes to MQTT
# 3. InfluxDB stores time-series data
# 4. Grafana displays dashboard with:
# - Current readings per sensor
# - Historical trend charts
# - Alert status indicators
# - Map overlay with sensor locations

# Sample query for a flood alert (threshold is illustrative only).
# Note: InfluxQL syntax shown below applies to InfluxDB 1.x;
# InfluxDB 2.x/3.x use Flux or SQL instead.
# SELECT last("level_cm") FROM water_sensors
# WHERE "location" = 'upstream_north'
# AND "level_cm" > 180 # illustrative alert threshold - calibrate per site