Skip to content
OnlyProjects
B.Tech / B.E. · Electronics & CommunicationFor educational purposes only
Code included

LoRa Soil-Moisture Monitoring Mesh with Gateway and Dashboard for Small Farms (Embedded C, Python)

Battery-sipped sensor nodes carry soil-moisture readings over 433 MHz LoRa to a gateway that graphs irrigation alerts on a Python dashboard

Mapped to your syllabusJNTUH R22 · EC801PC Project Stage-II including Seminar · IV-2

Overview

1 min read

LoRa Soil-Moisture Monitoring Mesh is a full LPWAN system — sensor nodes, a relay, a gateway and a dashboard — designed for a small Indian farm, where irrigation is decided by habit and groundwater is falling. Capacitive soil-moisture sensors and waterproof DS18B20 temperature probes are buried in the root zones of different plots. Each node — an Arduino Pro Mini 3.3 V paired with an RA-02 (Semtech SX1278) LoRa module on 433 MHz — sleeps in power-down mode, wakes on the watchdog timer, samples the sensors, and transmits a 12-byte packet with sequence number, battery voltage, moisture and temperature.

A node on the far plot cannot reach the pump shed directly, so a relay node stores and forwards its packets one hop — a deliberately simple two-hop mesh with duplicate suppression, no network server required. The gateway (ESP32 + RA-02, mains-powered at the pump shed) acknowledges packets, deduplicates them, and pushes batches over Wi-Fi to a Python (Flask + SQLite) dashboard on an old laptop. The dashboard plots per-zone moisture trends, raises irrigation alerts against crop-stage thresholds from FAO-56 guidance, and exports CSV.

Everything is programmed in Embedded C on the Arduino framework — squarely the territory of the JNTUH R22 Microcontrollers and IoT labs — and every design choice, from spreading factor to sleep current, is justified with measured numbers from our own field trials. Flask and SQLite are industry-standard extras labelled as such; the LoRa link, power budget and mesh logic are the project's real engineering.

Relevant for
Telangana
Level
Advanced · 15 weeks · team of 4
Common at
Jawaharlal Nehru Technological University Hyderabad, Visvesvaraya Technological University, Dr. A.P.J. Abdul Kalam Technical University
Updated
Nov 2026

Syllabus alignment

JNTUH · R22

EC801PC · Project Stage-II including Seminar · IV-2 · 11 credits · CIE 40 + SEE 60

Subjects this project applies
  • Embedded C (node, relay and gateway firmware)
  • Microcontrollers Lab (EC505PC) — low-power MCU interfacing
  • IoT Architectures & Protocols Lab (EC506PC) — LPWAN link design
  • C programming (Arduino framework)
  • Python (gateway API, Flask + SQLite dashboard)
How it is evaluated

See your department's project guidelines.

Also fits: VTU 2022 Scheme (OBE/CBCS), AKTU AICTE model (2020-21 onwards).

What's in the box

11 parts · 5 free · 2 previewed · 4 unlock for ₹2,000

Problem & synopsis

5 min read

Problem statement

On small Indian farms, irrigation decisions have no data behind them: the valve runs on a fixed schedule or on the farmer's judgement, so plots are alternately water-logged and stressed, borewell water and pump energy are wasted, and there is no record that could show what better scheduling would save. Commercial telemetry fixes exist but cost ₹8,000–15,000 per point plus a recurring SIM fee, which a two-acre holding cannot justify, and Wi-Fi-based student solutions do not cover an open field.

There is a need for a low-cost, no-recurring-fee monitoring mesh that measures soil moisture in several zones, carries the readings over hundreds of metres to a single mains-powered point using long-range low-power radio, survives field conditions on solar-charged batteries, and presents per-zone trends and simple irrigation alerts on a dashboard a farmer or a student team can actually read — turning published crop-water guidance into a daily, plot-specific decision.

Synopsis

Abstract

Small-holder farmers irrigate on habit and eyesight, over-watering some plots while others stress silently. This project builds a three-node LoRa mesh that reports soil moisture and temperature from different plots to a pump-shed gateway, with a Python dashboard turning readings into simple irrigation advice. A three-week soak test on a two-acre vegetable plot with solar-charged nodes produced measured link margins, packet-loss rates, sleep currents and discharge curves.

Introduction

A two-acre vegetable plot near the Hyderabad outskirts is typical of the target farms: drip laterals exist, but the valve runs a fixed time regardless of soil condition. Water is pumped from a borewell at real energy cost, and checking every zone twice daily costs the farmer time. Agronomy references such as FAO Irrigation and Drainage Paper 56 publish crop water requirements — knowledge that never reaches the valve. Schemes such as Per Drop More Crop push micro-irrigation hardware; what is missing is the data that says when to open the valve.

Existing System

  • Fixed-schedule drip: the valve runs a set time whether the soil needs it or not; over-irrigation leaches fertiliser and drains the borewell.
  • Touch-and-feel checks: crumbling soil between fingers twice a day; subjective and unrecorded.
  • Commercial GSM telemetry loggers: ₹8,000–15,000 per node plus recurring SIM cost — unrealistic for a two-acre holding.
  • Wi-Fi-based student projects: single node, single sensor — and Wi-Fi does not cross an open field.
  • Limitations: no per-zone data, no history, no alerting, and recurring costs a small farmer cannot justify.

Proposed System

  • Sensing: corrosion-free capacitive soil-moisture sensors at 15 cm depth in each zone, plus DS18B20 soil temperature, calibrated per sensor with dry-air and water references.
  • Nodes: Pro Mini 3.3 V in power-down sleep, watchdog wakeups, a 12-byte packet (node id, sequence number, battery voltage, moisture, temperature) transmitted at SF9 on 433 MHz.
  • Mesh: a store-and-forward relay extends coverage to the shaded far plot; a hop byte and sequence numbers give duplicate suppression without a routing protocol.
  • Gateway: ESP32 + RA-02 at the pump shed ACKs, deduplicates, buffers to local flash during laptop downtime, and batch-uploads over Wi-Fi.
  • Dashboard: Flask + SQLite shows per-zone moisture trends, battery health and irrigation alerts against crop-stage thresholds; CSV export feeds the report.

Feasibility Study

  • Technical: the SX1278 link budget at SF9 covers the ~600 m line-of-sight span on this class of farm, the relay closing the shaded path — verified by an on-site RSSI survey before hardware commit. All firmware sits on a documented open-source Arduino library for the SX1278.
  • Economic: about ₹5,800 one-time for three nodes, relay and gateway; zero recurring cost — solar-charged 18650 cells, no SIM. That is the decisive edge over GSM loggers.
  • Operational: the probe sits in the ground, the electronics in IP-65 boxes; the farmer reads one dashboard screen or a weekly printout. Risks — monsoon ingress, antenna damage, calibration drift — are designed out and re-checked in the soak test.

Objectives

  1. 01Sense volumetric soil moisture (capacitive probes at 15 cm depth) and soil temperature (DS18B20) in three zones of a small farm, each sensor individually calibrated with dry and wet reference points.
  2. 02Achieve a node sleep current under 50 µA with watchdog-timed wakeups, giving a measured node battery life of weeks on one 18650 cell under solar charging.
  3. 03Establish a reliable 433 MHz LoRa link at SF9 covering at least 600 m line-of-sight, and close a shaded non-line-of-sight path with a store-and-forward relay node carrying hop-byte and duplicate suppression.
  4. 04Implement packet framing with CRC, sequence numbers, gateway acknowledgement and bounded retransmission, and report measured packet-loss rates with and without the relay.
  5. 05Build an ESP32 gateway that deduplicates by node id and sequence number, buffers readings locally during Wi-Fi outages, and batch-uploads to the dashboard.
  6. 06Serve a Flask + SQLite dashboard plotting per-zone moisture trends, battery health and irrigation alerts against crop-stage thresholds, with CSV export.
  7. 07Run a three-week field soak test on a real plot, publishing link margins, loss rates, battery discharge curves and calibration drift in the report.

Scope

In scope

  • Three sensor nodes plus one relay and one gateway, one farm, 433 MHz short-range band with low transmit power and duty-cycled transmission.
  • Monitoring and alerting only — the system advises; it does not actuate valves.
  • One-hop store-and-forward meshing with duplicate suppression; no dynamic routing protocol.
  • Calibration and soak-test methodology with published measurements.

Out of scope (v1)

  • A LoRaWAN stack and network server (raw LoRa point-to-multipoint is used deliberately; LoRaWAN is future scope).
  • Valve or pump actuation, fertiliser dosing, and weather-station integration.
  • Security hardening beyond CRC and sequence checks — payload encryption (AES-128, as LoRaWAN would mandate) is listed as future work.
  • Multi-farm or cloud-hosted deployments; the dashboard is intentionally self-hosted on one laptop.

Methodology

The team followed the Spiral model, chosen because the dominant risks — radio range in the field, battery endurance and sensor calibration drift — can only be retired by real field iterations, and each spiral loop ends with an explicit risk review before the next loop's commitment.

Loop / PhaseWeeksActivitiesRisk retired / Deliverable
Loop 1 — bench & campus link1–4Node breadboard, sensor calibration rig, SX1278 driver bring-up, RSSI/SNR survey across campus at SF7–SF10, antenna choiceLink-budget risk: SF9 with 3 dBi whip closes 600 m with ≥10 dB margin
Loop 2 — field prototype5–10Two nodes + relay on the farm, solar sizing from measured load budget, gateway bring-up, ACK/retry and dedupe logic, dashboard v1Coverage and energy risk: relay closes the shaded path; sleep current 38 µA measured
Loop 3 — hardening & soak11–14Three-week soak: packet-loss statistics, battery discharge curves, calibration drift check, dashboard alerts tuned to crop stageReliability risk: loss <2% with relay; drift documented
Documentation & viva15Stage-II report, seminar, PPT, demo rehearsalSubmission

Test plan: unit tests per stage (sensor raw-value histograms, radio register read-back, RSSI survey sheets); integration tests (relay forwarding, duplicate rejection, ACK timeout retransmission, gateway buffer replay after Wi-Fi outage); system-level soak testing with daily field visits logging battery voltage, packet counters and a manual soil-check reference; and dashboard failover tests (laptop off overnight, gateway buffers, no data loss on reunion). Every case is recorded as ID, input, expected, actual, result.

Architecture & tech stack

1 diagram · 6 technologies · 2 min read

  • Embedded C (node and gateway firmware)
  • C (Arduino framework, ATmega328 / ESP32)
  • Python (Flask + SQLite dashboard)
  • LoRa 433 MHz (SX1278, RA-02 modules)
  • Arduino Pro Mini 3.3 V
  • ESP32 DevKit (gateway)

The system has three tiers: field nodes, a backhaul edge (relay + gateway), and a self-hosted dashboard. Nodes spend almost their whole life in power-down sleep; on watchdog wakeup they read the capacitive sensor through the ADC and the DS18B20 over 1-Wire, build a 12-byte frame — node id (1 B), sequence number (2 B), battery mV (2 B), moisture % (2 B), temperature ×10 (2 B), hop byte (1 B), CRC-8 (1 B) — and transmit at SF9. After transmitting, the node listens 2 s for an ACK; three silent retries are logged with the packet counter so the report can quantify link quality. The relay node runs a store-and-forward queue: packets whose hop byte is 0 are retransmitted with hop set to 1, and sequence numbers let the gateway reject duplicates.

The gateway (ESP32 + RA-02) ACKs directly-heard nodes, feeds the relay's queue when it forwards, writes every accepted reading to local flash, and batch-POSTs to the dashboard over Wi-Fi every five minutes, replaying buffered batches after outages. The dashboard keeps readings, nodes and alerts tables in SQLite, renders per-zone moisture and battery trends with an open-source charting library, computes alerts against crop-stage thresholds, and exports the CSV used in the report.

flowchart TD
  ZA["Zone A node: Pro Mini 3.3V + RA-02 + capacitive probe + DS18B20"] -->|433 MHz LoRa SF9| GW["Gateway: ESP32 + RA-02 at pump shed"]
  ZB["Zone B node (far, shaded plot)"] -->|LoRa hop 0| REL["Relay node: store & forward, hop set to 1"]
  REL -->|LoRa hop 1| GW
  GW -->|ACKs + dedupe by node id + seq| GWBUF["Local flash buffer (survives Wi-Fi outage)"]
  GWBUF -->|Wi-Fi, HTTP POST batch every 5 min| SRV["Flask + SQLite on farm laptop"]
  SRV --> UI["Dashboard: moisture trends, battery health, irrigation alerts, CSV export"]
  SOL1["6V solar + TP4056 + 18650"] -.->|charges| ZA
  SOL2["6V solar + TP4056 + 18650"] -.->|charges| ZB
  MAINS["Pump-shed mains + 5V adapter"] -.->|powers| GW

All firmware is Embedded C on the Arduino framework; the only Python lives on the dashboard side. The 12-byte frame and its field order are documented so any node, relay or gateway can be reimplemented independently — the test that keeps the team honest about the protocol.

Modules

5 modules

  1. Module 01

    Sensor Node Hardware & Power (Member 1)

    Owns the Pro Mini 3.3 V node design: capacitive probe calibration (air/wet reference points per sensor), DS18B20 burial at 15 cm, removing the power LED and regulator quiescent drain, the 6 V solar + TP4056 + 18650 charge chain sized from a measured load budget, and the sleep-current measurement (target <50 µA, achieved 38 µA).

  2. Module 02

    LoRa Link & Mesh Protocol (Member 2)

    Owns the SX1278 configuration (SF9, bandwidth, coding rate, 433 MHz channel), the 12-byte frame with CRC-8 and sequence numbers, ACK wait and bounded retransmission, and the relay node's store-and-forward queue with hop-byte handling and duplicate suppression — plus the RSSI survey and packet-loss statistics that justify every setting.

  3. Module 03

    Gateway (Member 3)

    Owns the ESP32 + RA-02 receiver: deduplication by node id and sequence number, direct ACKs to directly-heard nodes, local flash buffering with a write-pointer scheme for Wi-Fi outages, NTP time-stamping on ingest, batch POST every five minutes with replay, and a watchdog so the gateway self-recovers.

  4. Module 04

    Dashboard & Irrigation Advice (Member 4)

    Owns the Flask routes, SQLite schema (nodes, readings, alerts), the per-zone moisture and battery trend charts, threshold alerts per crop stage with a deadband to avoid alarm flapping, CSV export, and the soak-test analysis plots (loss rate, RSSI, discharge curves) used in the report.

  5. Module 05

    Field Deployment & Soak Testing (shared)

    The whole team runs the site survey, mounts antennas above canopy, buries probes at root-zone depth in three zones, executes the three-week soak with daily logs, and co-writes the findings chapter with the farmer's feedback on usefulness of the alerts.

Slides

13 slides · titles free · bullets, notes and the .pptx unlock

  1. Slide 1

    LoRa Soil-Moisture Monitoring Mesh with Gateway and Dashboard

  2. Slide 2

    Motivation

  3. Slide 3

    Problem Statement

  4. Slide 4

    Existing vs Proposed System

  5. Slide 5

    Why LoRa?

  6. Slide 6

    System Architecture

  7. Slide 7

    Mesh & Reliability Design

  8. Slide 8

    Power Design

  9. Slide 9

    Sensing & Calibration

  10. Slide 10

    Testing

  11. Slide 11

    Field Results

  12. Slide 12

    Individual Contributions

  13. Slide 13

    Conclusion & Future Scope

Bullets, speaker notes and the .pptx · ₹2,000

The titles above are the real outline. The rest is what you present from.

Unlock for ₹2,000

Viva questions & answers

3 of 17 answered free · 14 unlock

Read each answer, close it, and say it in your own words. Your viva will ask. Now you'll know.

  1. 01Concept

    What is LoRa and how does chirp spread spectrum give it range?

    LoRa is a proprietary physical layer using chirp spread spectrum: the data symbol is spread across a chirp sweeping a wide bandwidth, so the receiver can decode signals well below the noise floor. The spreading factor sets how many chirps encode a symbol — SF9 gains roughly 10 dB of link budget over SF7 at the cost of airtime — which is exactly the trade we chose for 600 m with margin.

  2. 02Concept

    Why is your design a store-and-forward mesh rather than a full routing protocol?

    Our topology is one fixed far node that cannot reach the gateway, so a full routing protocol like AODV would be over-engineering for a single hop. Store-and-forward with a hop byte and sequence numbers solves the actual problem — reachability plus duplicate suppression — while keeping the relay simple enough to run on the same Pro Mini hardware and be fully testable with scripted packet sequences.

  3. 03Concept

    Why capacitive soil-moisture sensors instead of resistive ones?

    Resistive fork sensors drive current through the soil and their exposed electrodes electrolyse and corrode within weeks, so their readings drift until they are useless. Capacitive probes measure the dielectric-permittivity change of the surrounding soil from behind a sealed PCB, do not corrode, and gave us stable calibration over the three-week soak — which the report's drift table shows.

+14 more questions, with answers

Try the free ones out loud first. Your examiner will not accept “it's in the PPT”.

Source code & how to run

6 steps · complete source code · unlocks with the project

Unlocks with the project · ₹2,000

6 steps · source code zip

Prerequisites, install, seed data and tests, written for demo day. Plus the complete source.

Unlock for ₹2,000

READMEFIRST

205 words · unlocks with the project

What to change before it goes anywhere near a submission. Skipping it is how the demo fails live.

Unlocks with the project · ₹2,000

205 words · ~1 min read

The checklist of things to rename, re-seed and re-think so the project reads as yours.

Unlock for ₹2,000

Instructions

352 words · unlocks with the project

How to study it, adapt it and walk your examiner through it, step by step.

Unlocks with the project · ₹2,000

352 words · ~2 min read

Report structure, formatting rules and the submission checklist your department will grade.

Unlock for ₹2,000

References

9 sources

  1. Semtech — SX1278 LoRa Transceiver (product page and datasheet)
  2. LoRa Alliance — LoRaWAN specifications and developer resources
  3. Analog Devices (Maxim Integrated) — DS18B20 Programmable-Resolution 1-Wire Digital Thermometer, datasheet
  4. sandeepmistry/arduino-LoRa — Arduino library for SX1276/77/78 LoRa radios (API used by the firmware)
  5. FAO Irrigation and Drainage Paper 56 — Crop evapotranspiration: guidelines for computing crop water requirements
  6. PMKSY — Per Drop More Crop (micro-irrigation), Ministry of Agriculture & Farmers Welfare, Government of India
  7. Flask Documentation (Pallets) — dashboard application framework
  8. SQLite Documentation — embedded database used by the dashboard
  9. Michael J. Pont, Embedded C, Addison-Wesley (Embedded Systems series)

Cite this bundle

OnlyProjects. (2026). LoRa Soil-Moisture Monitoring Mesh with Gateway and Dashboard for Small Farms (Embedded C, Python): B.Tech / B.E. Electronics & Communication project bundle [Educational resource]. https://onlyprojects.online/projects/btech-ece-lora-soil-moisture-mesh-gateway-dashboard

Future scope

1 min read

  • LoRaWAN migration to the Indian 865–867 MHz band with a proper network server, device profiles and AES-128 security, ideally via a community gateway deployment.
  • Valve automation: a latching solenoid driver on each node so the dashboard's advice closes the loop into scheduled micro-irrigation.
  • More agronomy inputs: soil EC/pH probes and a rain-gauge node, extending the frame format without breaking old gateways (version byte is reserved).
  • Crop-model scheduling: replace fixed thresholds with FAO-56-based water-balance scheduling using local weather data, in consultation with the local KVK.
  • Fleet features: OTA firmware updates over LoRa for the nodes and a multi-gateway setup for larger farms.

Keep browsing

Same degree, same syllabus slot, different idea. Pick the one your guide will actually approve.

B.Tech / B.E.Code included

Electronics & Communication

Smart Energy-Meter Reading & Power-Theft Anomaly Logger (ESP32, Python)

A single-phase meter node that logs kWh at 1-minute intervals, flags tamper and overload anomalies, and plots them on a Python dashboard

  • C (ESP32, Arduino framework)
  • Python (Flask + SQLite dashboard)
  • MATLAB / Scilab (calibration & load-profile analysis)
  • +3

intermediate14 wk4 students

B.Tech / B.E.Code included

Aerospace / Aeronautical

Low-Speed Open-Circuit Wind Tunnel with Force Balance for Aerofoil Lift-Drag Measurement

Build a subsonic test tunnel on a student budget, then trace lift and drag on a 3D-printed NACA 0012 against theory

  • C / Arduino Uno (industry-standard extra) — HX711 load-cell and serial logging firmware
  • Python (NumPy, Matplotlib) — calibration, force coefficients and plots
  • MATLAB / Scilab — thin-airfoil theory overlay and regression
  • +4

intermediate14 wk4 students