Mesh Agricultural Sensor Network

Beginning in the Fall of 2020, Our Team set out with the task of building a network capable of cheaply transmitting sensor data in a mesh protocol. We had additional constraints that the Independent Nodes needed to be sustainable without maintenance for longer than 1 calendar year. The system needed to notify the user of broken nodes as well as channel data through redundancy paths. Budgetary constraints enforced that this system was less than $1000 to develop.

View the Published Site

Get a top level understanding of my project by seeing what it looks like.

Website

See the Code

Here you can see the Git repository. You can always contact me by email or Github with any questions.

Documentation

What is the project?

The smart agriculture sensor network is comprised of sensor nodes and one gateway node. The project requires a node.js server to communicate with the ThingSpeak IoT channels. While the project was developed in a Windows operating system environment, most of the files can be run in different operating system except for the batch files. Correct installation of node.js is also required to allow the project to work properly. The outer microprocessors (nodes) are flashed with a program that allows them to collect sensor data when not sleeping to conserve energy. The node.js server receives information from the mother microprocessor via serial communication to be sent to a remote website.

What problem does it solve?

This project acts as an infrastructure system for monitoring large swaths of the area and collecting local data within a given zone. This data is routed to a single access point to be consolidated and visualized from a web client.

What dependancies does it have?

The main two libraries used in the nodes are RH_RF95 and RHMesh. Both libraries are part of a larger library named RadioHead that allows the use of long range (LoRa) radio communication installed in the Arduino.

What is notable about the project?

Throughout this project, we developed a mesh sensor network system capable of self-healing and communicating data from node to node. The data is routed through the network of nodes to find an access point to push data to the online database. The online database is a relational database organized through the thingspeak API to track independent channel ids, field ids, field values, and time data. We can pull the most recent data point to create google gauges with the most recent data point with this data. Notifications are handled through server-side react scripts and test the database to ensure data coming in is within given thresholds and that each node that should be in the network is successfully communicating data. Broken nodes are identified by a lack of data received by a gateway node over a 30 min period.


Card image cap
Functional Overview

Our design has a hierarchy approach to nodes with closer communication paths than those more remote in the network.

Card image cap
Self sustaining in nature for a calendar year

The independant Nodes can to be sustanable without maintenence for at least 1 calendar year.

 

Card image cap
Self Healing Mesh Communication

This network is self-healing, and with our self-reporting design, users get notifications about possible broken nodes in the network. The network will also continue to function if there is an available path back to the gateway node.

Card image cap
Voltage Step System

This design choice enables the solar recapture system to charge the battery in low light conditions constantly. This design allows each node to safely switch power sources depending on the level of sunlight reflecting off the panels.

 

Intro Video

Here is a summary video that explains a little more about the product and it's impact.