Skip to content

bakaliosdim/AgricultureOfThings

 
 

Repository files navigation

Argriculture Of Things

Agriculture of Things is a project that uses hardware which is accessible to anyone (Raspberry, Arduino, Sensors) to create a monitoring system that can used in flower pots, gardens or fields and provides information regard the temperature, humidity and soil moisture. Also the data collection can be used to train a machine learning model to determine the optimal time irrigate the plantation


Hardware

  • 1 x Raspberry Pi 3 model B+
  • 1 x Arduino Uno Rev3
  • 2 x nRF27l01+
  • 1 x Soil Moisture Sensor
  • 1 x DHT11

What software you need for this project


Clone

  • Clone this repo to your local machine using git clone https://github.com/open-aot/AgricultureOfThings

Installation

Arduino

  • Arduino-Sensors Pins Layout

  • Load Code to the board and start Transmitting
    • Open Arduino IDE
    • Open Tools->Manage Libraries and install the RF24 by TMRh20 lirbary
    • Load the code from the file: ./arduino/transmitter.ino to the Arduino

Raspberry Pi

Receiver

  • Raspberry-nRF27l01+ Pins Layout

  • Install the Library

Download and install the RF24 library

$ git clone https://github.com/nRF24/RF24
$ cd ~/Downloads/RF24/
$ ./configure
$ make
  • Start Receiving

Compile and run the receiver.cpp

$ cd <this repo path>/raspberry-pi/rf24-receiver/
$ g++ receiver.cpp -o receiver -L/home/pi/Downloads/RF24 -lrf24
$ ./receiver & 
Server

Use your raspberry pi as server in your local network for the android application.

Serve the data that received from the Arduino.

$ cd <this repo path>/raspberry-pi/android-app-server/
$ npm start 

Machine Learning

$ cd <this repo path>/machine-learning/
$ python ./__ML_analysis_on_environmental_data__.py

Android Application

  • Open Android Studio
  • Select Import project (Gradle, Eclipse ADT, etc.)
  • Naviage to the folder <this repo path>/android-app and select OpenAgriculture
  • Change SERVER_LOCAL_IP in the files bellow to your server's IP

./app/src/main/java/com/example/openagriculture/OApiService.kt

private const val BASE_URL = "<SERVER_LOCAL_IP>";

./app/src/main/res/xml/network_security_config.xml

<domain-config cleartextTrafficPermitted="true">
    <domain includeSubdomains="true">SERVER_LOCAL_IP</domain>
</domain-config>
  • Follow this tutorial to run the Application on a real device.

Our Team

Savvas Kastanakis Giannis Konstantakis Dimitris Bakalios Vangelis Karagiannakis
open-aot open-aot open-aot open-aot
kastanakis konstantakis bakaliosdim evankar

License

License

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Java 44.8%
  • Kotlin 24.4%
  • Python 15.3%
  • C++ 9.4%
  • JavaScript 6.1%