The problem
Soil pH decides which nutrients a crop can actually absorb: below about 5.5, phosphorus and molybdenum lock up; above 7.5, iron and zinc become unavailable. Yet most small farms manage fertility with a single blanket fertilizer dose, because lab soil testing is slow, costs money per sample, and gives one number for a field that may vary widely across it. Precision agriculture fixes this with spatial soil maps, but commercial mapping rigs are far beyond a student or smallholder budget. A low-cost rover that drives to sampling points, dips a pH probe, and stamps each reading with GPS coordinates brings that idea within reach of a classroom: the hardware is an Arduino, a GPS module and a pH probe, and the output is a genuine geo-tagged dataset the student maps, analyzes and defends in the viva.
How it works
- The pH probe is calibrated with pH 4.0 and 7.0 buffer solutions and conditioned per the included procedure before the survey.
- The operator drives the rover to a sampling point using the Bluetooth remote and presses the sample button.
- The Arduino holds the rover still, reads the analog pH probe after the configured settling delay, and averages several ADC samples.
- The NEO-6M GPS NMEA sentences are parsed for latitude, longitude and fix quality.
- Timestamp, coordinates and pH are written to the microSD CSV and shown on the LCD with the running point count.
- After the survey, the CSV is copied to a PC and the Python script renders the color-coded pH map and KML overlay.
Tech stack:
- Arduino Uno (ATmega328P), firmware in Arduino IDE (C++)
- NEO-6M GPS module (UART, NMEA parsing)
- Analog soil pH probe with signal-conditioning board
- HC-05 Bluetooth module (serial SPP remote control)
- L298N dual H-bridge, 4WD robot chassis
- 16x2 I2C LCD, microSD card module (CSV logging)
- Python mapping script (matplotlib heatmap + KML export)
| Parameter | Value |
|---|---|
| Controller | Arduino Uno (ATmega328P, 16 MHz) |
| GPS | u-blox NEO-6M; horizontal accuracy ~2.5 m CEP (datasheet), open sky required |
| pH sensor | Analog glass-electrode soil pH probe; 0–14 pH range; accuracy ±0.1 pH at 25 °C after two-point buffer calibration (probe datasheet) |
| Control link | HC-05 Bluetooth Class 2, ~10 m typical open-air range |
| Drive | 4WD chassis, L298N dual H-bridge motor driver |
| Display | 16x2 character LCD with I2C backpack |
| Logging | microSD card; CSV rows: timestamp, latitude, longitude, fix quality, pH |
| Mapping output | Python script: color-coded pH scatter map (PNG) + KML overlay |
| Power | 2S Li-ion pack (~7.4 V nominal) with 5 V regulation; field runtime approximate and load-dependent |
| Survey method | Manual remote drive with dwell-and-measure cycle at each point |
Project features
- [Geo-tagged pH logging] A NEO-6M GPS module records latitude and longitude with every reading; the Arduino appends timestamp, coordinates and pH as CSV rows on a microSD card.
- [Bluetooth remote drive] An HC-05 module gives serial remote control from any Bluetooth terminal app, with a typical open-air range of about 10 m (Class 2).
- [Buffer-calibrated pH sensing] An analog glass-electrode soil pH probe with a two-point buffer calibration (pH 4.0 and 7.0) procedure, probe conditioning and rinsing protocol included.
- [Onboard LCD readout] A 16x2 I2C LCD shows live pH, GPS fix status and the number of points logged, so surveys run without a laptop in the field.
- [Dwell-and-measure cycle] At each sampling point the rover halts, waits a configurable settling time (default ~45 s) for the probe to stabilize, logs the reading, then resumes — started by a button press or remote command.
- [pH heatmap mapping] A Python script converts the survey CSV into a color-coded scatter map (PNG) and a KML overlay for Google Earth, ready for the report.
- [Rechargeable field power] A 2S Li-ion pack with 5 V regulation powers the rover; expected field runtime is approximate and load-dependent.
What is included
- Assembled rover prototype (chassis, electronics, probe mount)
- Arduino firmware source code with comments
- Wiring diagram and full component list
- Buffer-calibration and field-survey procedure document
- Python mapping script (heatmap PNG + KML export)
- Project abstract PDF
- Project report (background, methodology, calibration procedure, sample survey results)
- PPT presentation and viva Q&A document
Limitations & prerequisites
- GPS needs a clear view of the sky; the ~2.5 m CEP accuracy means closely spaced grid points blur together, and indoor demonstrations are not possible.
- The glass pH electrode is fragile, drifts, and needs two-point buffer calibration before each survey; it must be stored in KCl storage solution and rinsed between points.
- The probe needs 30–60 s of settling time per point, and dry or compacted soil must be wetted per the procedure — moisture differences shift readings.
- The rover is remote-controlled, not autonomous: mapping density and area are limited by the ~10 m Bluetooth range and the operator.
- The 4WD toy chassis can slip on loose tilled soil and cannot climb obstacles; the operator picks the sampling path.
- This is a small-scale demonstrator, not a replacement for laboratory soil analysis.
Frequently Asked Questions
Is this project suitable for a final-year project?
Yes — it suits Electronics, Instrumentation and IoT programs, demonstrating embedded sensing, GPS parsing, SD-card logging, calibration practice and geospatial visualization in one build.
Which controller and GPS module are used?
An Arduino Uno (ATmega328P) with a u-blox NEO-6M GPS module over UART, parsing NMEA sentences for position and fix quality.
Does the rover drive itself?
No — it is driven by remote control over Bluetooth. Autonomous waypoint following can be developed as an optional customization.
How is the pH probe calibrated?
With pH 4.0 and 7.0 buffer solutions before each survey, following the included conditioning and rinsing procedure; the glass electrode must stay hydrated in storage solution between uses.
Does it need internet?
No. GPS is satellite-based, logging is on the SD card, and the mapping script runs offline on the student's PC.
What are the main limitations?
Open-sky GPS with ~2.5 m accuracy, a fragile probe that needs buffer calibration and settling time per point, Bluetooth-limited range, and small-scale demo scope — the full list is under Limitations. Suitable for B.E./B.Tech final-year projects in Electronics, Instrumentation and IoT.
Components & software requirements
- Arduino Uno (ATmega328P), firmware in Arduino IDE (C++)
- NEO-6M GPS module (UART, NMEA parsing)
- Analog soil pH probe with signal-conditioning board
- HC-05 Bluetooth module (serial SPP remote control)
- L298N dual H-bridge, 4WD robot chassis
- 16x2 I2C LCD, microSD card module (CSV logging)
- Python mapping script (matplotlib heatmap + KML export)
Delivery information
Built-to-order project. Delivery timeline is shared after order confirmation based on current queue.
Support terms
Complete documentation, setup guide, and viva preparation included. Support for setup and explanation provided.