Cellular IoT prototype that brings a SIM800 modem online, validates GPRS, runs HTTP tests, and attempts MQTT over GPRS.
Overview
This project is a communication test bench for low-cost cellular IoT using a SIM800 modem. The system displays startup and network logs on a TFT screen, checks modem response, waits for network registration, establishes a GPRS session, performs HTTP GET testing, and experiments with MQTT over GPRS. It is useful as a foundation for remote sensor nodes where Wi-Fi is not available.
MCU communicates with the SIM800 modem through UART AT commands. A display-based console makes the modem state visible during boot, network attach, GPRS setup, HTTP testing, and MQTT connection attempts.
Project photos
Internet test screen showing modem, network, GPRS, IP, HTTP, RX bytes, and completion status.
MQTT-over-GPRS log with modem initialization and GPRS connection state.
Implementation details
Firmware
Firmware initializes the modem, handles restart/retry states, checks network registration, attaches to GPRS, tests HTTP GET requests, and logs MQTT connection progress to the display for debugging.
Power
Prototype uses bench power with attention to modem current peaks. Stable supply and short wiring are important for reliable network attach.
Components / BOM
SIM800/SIMCom cellular module, ESP32-class development board, TFT display, SIM card, Breadboard and jumper wiring
Engineering challenges
GPRS modules are sensitive to supply dips, UART timing, network delays, and long retry cycles. MQTT over GPRS also needs careful keepalive and reconnect behavior.
Solutions
Implemented visible state logging, retry messages, network checks, HTTP validation, and MQTT connection tracing so failures can be diagnosed without a serial monitor.
Results & metrics
Display logs show modem startup, network OK, GPRS OK, IP address assignment, HTTP GET test, received bytes, and MQTT-over-GPRS connection attempts.
Future improvements
Add persistent reconnect logic, cloud telemetry payloads, watchdog recovery, and a reusable modem driver library.