A field data logger powered by solar with SIM7600 cellular connectivity enables 24×7 crop monitoring even on remote farms kilometres from the nearest power outlet or WiFi. This system combines solar energy harvesting with 4G LTE data transmission to continuously upload temperature, humidity, soil moisture, and rainfall readings to a cloud dashboard accessible from any mobile phone in India. This guide covers power system design, SIM7600 AT command programming, and ESP32 deep sleep optimization for maximum battery life.
Table of Contents
- System Architecture
- Hardware Bill of Materials
- Solar Power System Design
- SIM7600 LTE Configuration
- ESP32 Logger Code
- Cloud Dashboard Options
- Frequently Asked Questions
System Architecture
The field data logger solar SIM7600 system operates across three layers:
- Sensing layer: Soil moisture, soil temperature, air temperature/humidity, rainfall, and optionally wind speed connected to an ESP32 microcontroller
- Power layer: 10-20W solar panel, PWM charge controller, 12V 7Ah sealed lead-acid battery, regulated 5V/3.3V rails
- Communication layer: SIM7600E-H 4G LTE module transmitting JSON payloads via HTTP POST to cloud platforms over Jio or Airtel networks
Data is logged to microSD every 5 minutes and uploaded every 30 minutes. This dual approach guarantees zero data loss during network outages – common in rural India – while providing near real-time remote visibility.
Hardware Bill of Materials
| Component | Function | Approx. Price (INR) |
|---|---|---|
| ESP32 DevKit V1 | Main microcontroller with deep sleep | Rs 350-500 |
| SIM7600E-H module | 4G LTE data upload | Rs 2,000-3,500 |
| DHT22 sensor | Air temperature and humidity | Rs 150-200 |
| Capacitive moisture sensor | Soil water content | Rs 60-120 |
| DS18B20 waterproof probe | Soil temperature | Rs 80-150 |
| DS3231 RTC module | Accurate timestamps | Rs 100-150 |
| MicroSD card + module | Local data backup | Rs 100-200 |
| 10W 12V solar panel | Power generation | Rs 700-1,200 |
| 10A PWM solar charge controller | Battery charging management | Rs 300-500 |
| 12V 7Ah SLA battery | Energy storage | Rs 600-900 |
| IP67 ABS enclosure | Weatherproof housing | Rs 150-300 |
| External 4G antenna (SMA) | Better signal in weak-coverage areas | Rs 200-400 |
Total system cost: Rs 5,500-8,500. Jio IoT SIM: Rs 149/month for 1GB data – recommended for best rural 4G coverage.
Solar Power System Design
Daily power budget for this system:
- ESP32 in light sleep: ~15 mA average
- SIM7600 (averaged including transmit peaks): ~80 mA
- Sensors and RTC: ~20 mA
- Total average load: ~115 mA x 24h = 2.76 Ah per day
A 10W panel in Indian sunlight (5 peak sun hours/day average) produces approximately 4,167 mAh/day – well above daily consumption. The 7Ah battery provides 2.5 days full autonomy during total cloud cover. During monsoon (assume 2 peak sun hours), the battery provides 7-10 days autonomy while receiving partial daily top-up from the panel. Mount panel facing south at your latitude angle (15-25 degrees for most of India).
SIM7600 LTE Configuration
The SIM7600 communicates via AT commands over UART at 115200 baud. Key India-specific settings:
// Initial AT command sequence for Indian networks
AT // Module check: responds OK
AT+CPIN? // SIM check: +CPIN: READY
AT+CSQ // Signal quality: 0-31 (20+ = good)
AT+CREG? // Network: 0,1 (registered, home)
AT+COPS? // Operator: "Reliance Jio" or "Bharti Airtel"
// APN configuration (select your carrier)
AT+CGDCONT=1,"IP","jionet" // Jio 4G (default APN)
// AT+CGDCONT=1,"IP","airtelgprs.com" // Airtel 4G
// AT+CGDCONT=1,"IP","BSNLNET" // BSNL
// Activate PDP context
AT+CGACT=1,1
AT+CGPADDR=1 // Verify IP assigned: +CGPADDR: 1,10.x.x.x
// HTTP POST data to ThingsBoard
AT+HTTPPARA="CID",1
AT+HTTPPARA="URL","http://demo.thingsboard.io/api/v1/YOUR_TOKEN/telemetry"
AT+HTTPPARA="CONTENT","application/json"
AT+HTTPDATA=55,5000 // 55 = JSON byte length, 5 sec to enter
// Enter JSON payload:
{"temperature":28.5,"humidity":72,"soil_moisture":65}
AT+HTTPACTION=1 // POST request
AT+HTTPREAD // Read server response
ESP32 Logger Code
#include <HardwareSerial.h>
#include <SD.h>
#include <RTClib.h>
#include <DHT.h>
#include <esp_sleep.h>
HardwareSerial sim7600(2); // UART2: GPIO16=RX, GPIO17=TX
RTC_DS3231 rtc;
DHT dht(4, DHT22);
#define MOISTURE_PIN 34
#define SD_CS 5
#define SLEEP_SECONDS 300 // 5-minute sampling interval
void sendATCmd(String cmd, int delayMs = 300) {
sim7600.println(cmd);
delay(delayMs);
}
void uploadToCloud(float t, float h, int m) {
String json = "{"temp":" + String(t,1) +
","hum":" + String(h,1) +
","moist":" + String(m) + "}";
sendATCmd("AT+HTTPPARA="URL","http://your-server/api/telemetry"");
sendATCmd("AT+HTTPDATA=" + String(json.length()) + ",3000", 2000);
sim7600.print(json);
delay(1000);
sendATCmd("AT+HTTPACTION=1", 5000);
}
void setup() {
Serial.begin(115200);
sim7600.begin(115200, SERIAL_8N1, 16, 17);
dht.begin();
rtc.begin();
SD.begin(SD_CS);
float temp = dht.readTemperature();
float hum = dht.readHumidity();
int moist = constrain(map(analogRead(MOISTURE_PIN), 3200, 1200, 0, 100), 0, 100);
DateTime now = rtc.now();
// Log to SD
File f = SD.open("/datalog.csv", FILE_APPEND);
if(f) {
f.print(now.unixtime()); f.print(",");
f.print(temp,1); f.print(",");
f.print(hum,1); f.print(",");
f.println(moist);
f.close();
}
// Upload every 30 min (when minute is 0 or 30)
if(now.minute() == 0 || now.minute() == 30) {
uploadToCloud(temp, hum, moist);
}
esp_sleep_enable_timer_wakeup((uint64_t)SLEEP_SECONDS * 1000000ULL);
esp_deep_sleep_start();
}
void loop() {} // Never runs - deep sleep restarts setup()
Cloud Dashboard Options
| Platform | Free Tier | Best For |
|---|---|---|
| ThingsBoard Community Edition | Unlimited (self-hosted) | Multi-farm, enterprise use |
| Ubidots STEM | 3 devices free | Quick setup, good mobile app |
| Blynk IoT | 2 devices free | Farmer-friendly mobile interface |
| Google Sheets via IFTTT | Unlimited entries | Simplest option – no backend coding |
Frequently Asked Questions
Which Indian SIM gives best rural IoT coverage?
Jio 4G has the widest rural penetration across India. Their IoT SIM (available via JioThings platform) starts at Rs 149/month for 1GB. The SIM7600E-H supports Jio Band 40 (2300 MHz) and Band 5 (850 MHz). In areas with no 4G, SIM7600 automatically falls back to 3G/2G. For areas with no cellular at all, consider LoRa (SX1278 module) + community LoRaWAN gateway as an alternative.
How much solar panel is needed for year-round operation?
A 10W panel is minimum for fair-weather use. For year-round reliability including monsoon and winter overcast periods in north India, use a 20W panel and 12Ah battery. This combination provides a full week of autonomy without any solar charging – comfortably spanning any extended cloudy period encountered in Indian weather.
Can I log data offline if there is no cellular signal?
Yes – microSD logging runs completely independently of the SIM7600. Data is always written to SD first. The SIM7600 powers on only for upload windows to conserve battery. If cellular is unavailable, data accumulates on the SD card and batch-uploads when connectivity returns. A 32GB card stores over 10 years of 5-minute-interval readings as CSV.
What is the difference between SIM7600E-H and SIM7600G for India?
SIM7600E-H covers European/Asian LTE bands including all Indian bands (1, 3, 5, 8, 40, 41). SIM7600G is the global variant supporting additional North/South American bands. For India, SIM7600E-H is the correct choice – it is Rs 200-500 cheaper and fully covers all Indian carrier bands including Jio, Airtel, Vi, and BSNL.
How do I protect the system from lightning in open fields?
Install a TVS diode on the SIM7600 antenna coaxial line. Use a metal enclosure bonded to a copper earth spike. Mount a galvanised steel lightning rod 2-3 metres above the system with 16 sq mm copper earth wire. Add 12V surge arrestors on solar panel input terminals. Most electronics failures in open fields result from induced EMI from nearby lightning, not direct strikes – these basic measures protect against both.
Add comment