Release Date: December 11, 2025
Version: 1.0.0
Platform: Arduino Opta + Blues Wireless Notecard
A production-ready industrial monitoring system for remote tank level monitoring, alarm management, and fleet coordination using cellular IoT connectivity.
TankAlarm is a complete industrial monitoring solution designed for reliable, remote tank level monitoring with SMS/email alerts. Built on the Arduino Opta industrial controller platform with Blues Wireless cellular connectivity, it provides enterprise-grade reliability without requiring WiFi or wired network infrastructure at remote sites.
The system consists of three components:
- Client - Remote monitoring device (deployed at tank sites)
- Server - Central data aggregation and alerting hub (office/headquarters)
- Viewer - Read-only monitoring device (optional, for remote viewing)
โโโโโโโโโโโโโโโ Cellular (Blues) โโโโโโโโโโโโโโโ
โ CLIENT โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโถโ SERVER โ
โ (Remote) โ โโโโ Configuration/Commands โ (HQ/Office) โ
โ โ โ โ
โ โข Monitors โ โ โข Dashboard โ
โ โข Sensors โ โ โข Alerts โ
โ โข Alarms โ โ โข Config โ
โโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโ
โ
Ethernet LAN
โ
โโโโโโโโโโโโโโโ
โ VIEWER โ
โ (Read-Only) โ
โโโโโโโโโโโโโโโ
- Multi-Sensor Support - Monitor up to 8 objects per device
- Analog voltage (0-10V)
- 4-20mA current loop (pressure sensors, level transmitters)
- Digital on/off (float switches)
- Pulse counting (flow meters, RPM sensors)
- Flexible Object Types - Tanks, engines, pumps, gas systems, flow meters
- Intelligent Alarming - Configurable high/low thresholds with hysteresis and debouncing
- Rate Limiting - Prevents alert flooding during transient conditions
- Relay Control - Automated shutoff with multiple modes (momentary, until_clear, manual_reset)
- Remote Configuration - Update all settings via server web interface
- Persistent Storage - LittleFS internal flash (no SD card required)
- Watchdog Protection - Automatic recovery from system hangs
- Low Power Design - Optimized for battery/solar operation
- Web Dashboard - Real-time monitoring of all clients
- SMS & Email Alerts - Immediate notifications for alarm conditions
- Daily Reports - Scheduled email summaries
- Remote Client Management - Configure any client from web interface
- RESTful API - Programmatic access for automation
- Fleet Management - Centralized control via Blues Notehub
- FTP Backup/Restore - Configuration archiving
- Client Console - Real-time serial log viewing for troubleshooting
- PIN Authentication - Secure access to configuration endpoints
- Dashboard-Only - No configuration access
- Stale Data Warnings - Visual indicators for outdated readings
- Minimal Attack Surface - Secure deployment for public areas
- Notecard Sync - Automatic data updates from server
- Arduino Opta Lite - Industrial controller (STM32H747XI dual-core)
- Blues Wireless for Opta - Cellular Notecard carrier board
- Arduino Opta Ext A0602 (optional) - 4-20mA analog expansion for sensors
- Sensors - Compatible with 0-10V, 4-20mA, digital, or pulse outputs
- Power Supply - 12-24V DC (solar + battery recommended for remote sites)
- Arduino Opta Lite - Industrial controller
- Blues Wireless for Opta - Cellular Notecard carrier board
- Ethernet Connection - RJ45 to local network
- Power Supply - 12-24V DC
- Arduino Opta Lite - Industrial controller
- Blues Wireless for Opta - Cellular Notecard carrier board
- Ethernet Connection - RJ45 to local network
- Power Supply - 12-24V DC
| Type | Model | Interface | Application |
|---|---|---|---|
| Pressure Transmitter | Dwyer 626-06-CB-P1-E5-S1 | 4-20mA | Tank level (0-5 PSI) |
| Float Switch | Dayton 3BY75 | Digital | High/low level detection |
| Hall Effect Sensor | Generic | Pulse | Engine RPM monitoring |
| Flow Meter | Generic | Pulse | Liquid flow rate |
- Digital (Float Switches) - Binary on/off, 3.3V/5V compatible
- Analog Voltage - 0-10V (via Opta Ext A0602)
- 4-20mA Current Loop - Pressure transmitters, level sensors
- Pulse Counting - Flow meters, RPM sensors (up to 10 kHz)
Client (Remote Site):
- Install Blues Wireless for Opta carrier on Arduino Opta
- Activate Notecard at blues.io
- Connect sensors to appropriate inputs
- Connect 12-24V DC power (solar recommended)
Server (Office/HQ):
- Install Blues Wireless for Opta carrier on Arduino Opta
- Activate Notecard at blues.io
- Connect Ethernet cable to local network
- Connect 12-24V DC power supply
Prerequisites:
- Arduino IDE 2.x or later
- Arduino Mbed OS Opta Boards core (via Boards Manager)
Required Libraries:
- ArduinoJson v7.x or later
- Blues Wireless Notecard (latest)
- LittleFS (built into Mbed core)
- Ethernet (built-in)
Installation:
- Clone this repository
- Install TankAlarm-112025-Common library:
# Windows PowerShell (as Admin) New-Item -ItemType Junction -Path "$env:USERPROFILE\Documents\Arduino\libraries\TankAlarm-112025-Common" -Target "C:\path\to\ArduinoSMSTankAlarm\TankAlarm-112025-Common"
- Open the appropriate sketch in Arduino IDE:
- Client:
TankAlarm-112025-Client-BluesOpta/TankAlarm-112025-Client-BluesOpta.ino - Server:
TankAlarm-112025-Server-BluesOpta/TankAlarm-112025-Server-BluesOpta.ino - Viewer:
TankAlarm-112025-Viewer-BluesOpta/TankAlarm-112025-Viewer-BluesOpta.ino
- Client:
- Update
PRODUCT_UIDto match your Blues Notehub project - Compile and upload
- Create account at notehub.io
- Create a new product for your TankAlarm system
- Create two fleets:
tankalarm-server- For server device(s)tankalarm-clients- For all client devices
- Claim all Notecards into the product
- Assign each Notecard to the appropriate fleet
Detailed Instructions:
- Client Setup: TankAlarm-112025-Client-BluesOpta/README.md
- Server Setup: TankAlarm-112025-Server-BluesOpta/README.md
- Fleet Configuration: TankAlarm-112025-Server-BluesOpta/FLEET_SETUP.md
- Power on the server and wait for network connection
- Check serial monitor (115200 baud) for IP address
- Navigate to:
http://<server-ip>/ - Configure server settings and SMS/email recipients
- Configure clients remotely via the dashboard
- Lines of Code: 3,551
- Memory Footprint: ~150KB flash, ~30KB RAM
- Monitors per Device: Up to 8
- Sample Interval: Configurable (default: 30 minutes)
- Alarm Hysteresis: Configurable per monitor
- Watchdog Timeout: 30 seconds
- Cellular Connectivity: Blues Wireless Notecard (LTE-M/NB-IoT)
- Data Persistence: LittleFS internal flash
- Power Requirements: 12-24V DC, ~2W typical
- Lines of Code: 9,225
- Memory Footprint: ~300KB flash, ~100KB RAM
- Max Clients: 32 (expandable)
- Max Tanks: 64 total across all clients
- Web Server: HTTP (port 80)
- API Endpoints: 15+ RESTful endpoints
- Network: Ethernet (10/100 Mbps)
- Data Persistence: LittleFS internal flash
- Power Requirements: 12-24V DC, ~3W typical
- Lines of Code: 876
- Memory Footprint: ~100KB flash, ~20KB RAM
- Web Server: HTTP (port 80) - read-only
- Network: Ethernet (10/100 Mbps)
- Power Requirements: 12-24V DC, ~2W typical
The system uses Blues Notehub fleet-based routing for device-to-device communication:
- Client โ Server: Telemetry and alarms routed to
tankalarm-serverfleet - Server โ Client: Configuration updates routed to specific client device IDs
- Server โ Viewer: Status updates sent for dashboard display
Advantages:
- No hardcoded device IDs in firmware
- Simplified fleet management
- Automatic routing via Notehub
- Scalable to hundreds of devices
CLIENT BLUES NOTEHUB SERVER
โ โ โ
โโโโ telemetry.qo โโโโโโโโโโโโโโโค โ
โ (level data) โ โ
โ โโโโ fleet routing โโโโโถโ
โ โ โ
โโโโ alarm.qo โโโโโโโโโโโโโโโโโโโค โ
โ (alarm event) โ โ
โ โโโโ fleet routing โโโโโถโ
โ โ โ
โ โ โโ SMS/Email
โ โ โ Alerts
โ โ โ
โ โโโโโ config_push.qi โโโโค
โ โ (new config) โ
โโโโโโ route: device_id โโโโโโโโโค โ
โ (config received) โ โ
- PIN-based Access Control - Protect configuration endpoints
- Optional PIN - Can be disabled for trusted networks
- Session-based - PIN verified per-session
- All POST endpoints validate JSON structure
- Buffer overflow protection on string inputs
- Range checking on numeric values
- HTTP 400/401/500 status codes for error conditions
- HTTP Only - Deploy on trusted local networks
- No Internet Exposure - Server should not be internet-facing
- Ethernet Isolation - Physical network segmentation recommended
Note: HTTPS/TLS not currently supported. For internet-facing deployments, use VPN or reverse proxy with TLS termination.
- Client: TankAlarm-112025-Client-BluesOpta/README.md
- Server: TankAlarm-112025-Server-BluesOpta/README.md
- Fleet Setup: TankAlarm-112025-Server-BluesOpta/FLEET_SETUP.md
- Relay Control: TankAlarm-112025-Client-BluesOpta/RELAY_CONTROL.md
- Unload Tracking: TankAlarm-112025-Client-BluesOpta/UNLOAD_TRACKING.md
- Device-to-Device API: TankAlarm-112025-Client-BluesOpta/DEVICE_TO_DEVICE_API.md
- Migration Guide: TankAlarm-112025-Client-BluesOpta/MIGRATION_GUIDE.md
- v1.0 Release Summary: CODE REVIEW/V1.0_RELEASE_SUMMARY.md
- Historical Data Architecture: TankAlarm-112025-Server-BluesOpta/HISTORICAL_DATA_ARCHITECTURE.md
- Console Restrictions: TankAlarm-112025-Server-BluesOpta/CONSOLE_RESTRICTIONS.md
-
Hardware Validation
- All sensors reading correctly
- Relay control functioning
- Cellular connectivity stable
- Ethernet connectivity stable
-
Software Validation
- Firmware version 1.0.0 confirmed
- All clients reporting to server
- Alarms triggering correctly
- SMS/email alerts delivering
- Web dashboard accessible
-
Network Testing
- Blues Notehub routing configured
- Fleet assignments verified
- Server IP address documented
- Firewall rules configured (if applicable)
-
Burn-In Testing
- 48-hour continuous operation test
- Watchdog recovery test
- Power cycle recovery test
- Network failover test
- Flash all devices with v1.0.0 firmware
- Configure Blues Notehub fleet assignments
- Set server IP address and network configuration
- Configure SMS/email recipients
- Test alarm notifications
- Test relay control
- Verify web dashboard access
- Document device serial numbers and locations
- Establish backup schedule (FTP recommended)
- HTTPS/TLS support
- Enhanced email formatting (HTML, attachments)
- Historical data logging (30-day retention)
- Graphical trend charts
- MQTT integration
- User accounts and role-based access control
- Mobile app (iOS/Android)
- Advanced analytics and reporting
- Predictive maintenance alerts
- Multi-tenancy support
See LICENSE file for details.
For technical support, bug reports, or feature requests, please open an issue on GitHub.
- Blues Wireless Documentation: dev.blues.io
- Arduino Opta Documentation: docs.arduino.cc
- Bill of Materials: BillOfMaterials.md
ArduinoSMSTankAlarm/
โโโ TankAlarm-112025-Client-BluesOpta/ # Remote monitoring client
โโโ TankAlarm-112025-Server-BluesOpta/ # Central server & dashboard
โโโ TankAlarm-112025-Viewer-BluesOpta/ # Read-only viewer
โโโ TankAlarm-112025-Common/ # Shared library
โโโ CODE REVIEW/ # Code reviews & documentation
โโโ RecycleBin/ # Archived versions
โโโ Tutorials/ # Getting started guides
โโโ BillOfMaterials.md # Hardware BOM
โโโ README.md # This file
Built with โค๏ธ for industrial IoT applications
Last Updated: January 7, 2026