Farm Data Relay System

A system that uses ESP-NOW, LoRa, and other protocols to transport sensor data in remote areas without relying on WiFi.

Internet of Things (IoT)CMIT

Abstract

Farm Data Relay System is an open-source Internet of Things (IoT) project. A system that uses ESP-NOW, LoRa, and other protocols to transport sensor data in remote areas without relying on WiFi. Farm Data Relay System is an easy way to communicate with remote IoT devices without relying on WiFi or LoRaWAN infrastructure. It establishes a series of inexpensive, low-power access points and repeaters to provide ESP-NOW and LoRa coverage for remote devices. It is built using C, Arduino, ESP32, ESP8266, Raspberry Pi. The complete source code is publicly available on GitHub under the MIT License, making it a useful reference for students building an Internet of Things (IoT) mini project or final-year project.

1. Introduction

Farm Data Relay System is an easy way to communicate with remote IoT devices without relying on WiFi or LoRaWAN infrastructure. It establishes a series of inexpensive, low-power access points and repeaters to provide ESP-NOW and LoRa coverage for remote devices. FDRS can be used to transport sensor readings and control messages in situations where it would be too cumbersome to provide full WiFi/LoRaWAN coverage. While the system was designed with farming in mind, FDRS could also be beneficial in a classroom, home, or research setting.

Devices are classified into two types: Gateways and Nodes. Gateways comprise the infrastructure of the network, moving data along pre-directed routes and providing coverage to all devices. Nodes allow the user to exchange data with a gateway. Each gateway is identified with an 8-bit physical hex address (MAC), while nodes use 16-bit integers to identify datapoints as they move through the system.

2. Objective

A system that uses ESP-NOW, LoRa, and other protocols to transport sensor data in remote areas without relying on WiFi.

This project demonstrates how C, Arduino, ESP32 can be applied to a real-world Internet of Things (IoT) problem.

4. Technology Stack

CArduinoESP32ESP8266Raspberry PiMQTT

5. System Requirements

General requirements for this technology stack — check the README for exact versions.

  • Arduino IDE / PlatformIO or a C compiler (gcc)
  • Target board where applicable
  • Git (to clone the repository)

6. Installation & Setup

git clone https://github.com/timmbogner/Farm-Data-Relay-System.git
cd Farm-Data-Relay-System
  1. ArduinoJson
  2. RadioLib for LoRa
  3. PubSubClient for MQTT
  4. ThingPulse OLED Library for ESP
  5. Download or clone this repository and copy it into your Arduino 'libraries' folder.
  6. After installing, edit the 'src/fdrs_globals.h' file with your WiFi credentials and other global parameters.
  7. To extend your range, try the 2_ESPNOW_Repeater.ino or 3_LoRa_Repeater.ino. Just change the GTWY_MAC of your sensor to the address of your new repeater.

Full setup instructions are in the project README.

7. Future Enhancements

Suggested extensions you can add to make this your own project.

  • Add a mobile dashboard using Blynk or Firebase
  • Store readings in a cloud database for history charts
  • Add alerts via SMS / Telegram when thresholds are crossed

8. Viva / Review Questions

Common questions examiners ask for projects in this domain.

  1. Which microcontroller / board and sensors are used and why?
  2. How does the device send data (Wi-Fi, MQTT, HTTP, Bluetooth)?
  3. Where is the sensor data stored and visualised?
  4. How is power consumption managed?
  5. How would you secure the device and its communication?

9. Source Code & License

This project is developed by timmbogner and published on GitHub under the MIT License. Please follow the license terms and credit the original author when you use or modify this code.

Want to build this as your internship project?

Work on an Internet of Things (IoT) project like this with mentor guidance, weekly reviews and an internship certificate from Training Trains, Erode — online or offline.

Apply for Internet of Things (IoT) Internship