Cellular IoT platform for ESP32
Your cellular ESP32, live on every phone.
Flash open-source ESP-IDF firmware on any ESP32 board with a 4G or LTE-M modem, from a manufacturer or your own design. Add it by serial number and get live sensor data, alerts and two-way control on web, Android and iOS. No Wi-Fi on site. No backend to build.
- NB-IoT · LTE-M · Cat-1Cellular modem profiles
- Web · Android · iOSApps included
- ESP-IDF nativeOpen source · ESP Component Registry
How it works
From board on your desk to data on your phone in an afternoon.
You bring the board, a SIM card with data and a sensor. SensMonitor gives you the firmware, the cloud and the apps.
- 1
Flash the firmware
Pick your board profile, set the APN of your mobile operator, build and flash with ESP-IDF.
- 2
Add the device
The board prints its serial number on boot. Type it in the app or scan the QR code.
- 3
Name sensors and set limits
Name the station and its sensors and set min and max values in the app.
- 4
Watch, get alerts, switch outputs
Live values, history graphs, push alerts and relay control on every device you use.
$ idf.py set-target esp32s3
$ idf.py menuconfig # board, modem, sensor, APN
$ idf.py flash monitor
I (2310) modem: registered, LTE-M
I (4105) ppp: connected
I (4630) smonitor: serial SM-ESP32-A1B2C3D4E5F6
I (5211) smonitor: config received, 1 sensor
I (5240) smonitor: sample sent T=24.6 H=58 P=1012
What you get
Everything after the firmware is already built.
The parts that usually take months: a server, real-time updates, alerts and mobile apps.
Live data
Values update the moment a sample arrives, over a secure WebSocket.
History and graphs
Line, bar and donut charts for the last hour, day, week, month or year.
Push alerts
Set min and max per sensor. Get notified on the phone, with a log of every event.
Remote outputs
Switch relays and digital outputs from the app, from anywhere with coverage.
Edge · PLC-style rules
Automations that run on the device
Set simple when-then rules in the app. The board keeps them and runs them itself, so the fan still turns on when the network drops.
Then Fan relay On
Map and GPS
See where every station is, including ones that move.
Battery and power
Battery level and supply status for stations on solar or battery.
Deploying for clients
You install the station. Your clients follow it.
Every client adds the same device by serial number in their own account. Each one gets their own alerts, settings and app language. You keep the hardware, they get the answers.
Available in English, Serbian, German, Spanish, Russian and Chinese.
All sensors, outputs and rules
Alerts above 30 °C, language: Serbian
Humidity graphs, weekly view
Why cellular
Wi-Fi stops at the building. Your sensors don’t.
Low-power cellular networks were made for devices like these, and the modules got cheap enough for one-off stations.
Made for low power
Networks designed for small, battery-powered devices that send a little data often.
Nothing to install on site
A SIM card and an antenna. Works in fields, on construction sites and in vehicles.
Location included
The same modem reports position, so moving stations show up on the map.
Built on ESP-IDF
Native ESP-IDF firmware, shared with the Espressif community.
SensMonitor firmware is written on ESP-IDF, Espressif’s official framework for the ESP32. It runs on FreeRTOS, keeps the full TCP/IP stack and TLS on the chip, and talks to the modem over PPP through Espressif’s own esp_modem. That is the same base Espressif uses for production devices.
The cellular and sensor parts are published as components in the ESP Component Registry. Any ESP-IDF project can use them with one line, with or without SensMonitor.
# add to any ESP-IDF project
$ idf.py add-dependency "sensmonitor/smonitor-modem"
$ idf.py add-dependency "sensmonitor/smonitor-i2c"
# main/idf_component.yml
dependencies:
idf: ">=5.5,<5.6"
sensmonitor/smonitor-modem: "0.1.6"
sensmonitor/smonitor-i2c: "^0.1.1"
GitHub · Apache 2.0
smonitor-iot
The application firmware: board profiles, sensor sampling, device rules and the secure WebSocket link to SensMonitor.
github.com/sensmonitor/smonitor-iot →ESP Component Registry · Apache 2.0
smonitor-modem
Cellular data over PPP for SIMCom and A7670 modems, built on Espressif esp_modem. NB-IoT, LTE-M, Cat-1 and GNSS.
ESP Component Registry · Apache 2.0
smonitor-i2c
Configurable I2C sensor reading. New sensors are added as JSON profiles, so the list grows without new drivers.
sensmonitor/smonitor-i2c →Sensors
A growing list of sensors, no drivers to write.
Select the sensor profile and its I2C address in menuconfig. The app then shows each measurement with its own units, graphs and limits.
Sensor profiles in smonitor-i2c
Temperature, humidity, pressure, light, current and voltage, analog inputs, motion, magnetic field and distance.
Built with SensMonitor
Places without Wi-Fi.
Temperature and humidity alerts, fans and vents on a rule.
Hive weather and location for mobile apiaries.
Power and battery status where there is no mains supply.
Temperature, pressure and humidity history by the hour or year.
GPS position of moving stations on one map.
Got an ESP32 4G board on your desk?
