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
- 1 x Raspberry Pi 3 model B+
- 1 x Arduino Uno Rev3
- 2 x nRF27l01+
- 1 x Soil Moisture Sensor
- 1 x DHT11
- Arduino
- Arduino IDE
- NRF24L01+ Library
- Raspberry Pi
- Rasbian OS
- NRF24L01+ Library
- NodeJS & Npm
- Machine Learning
- Android Application
- Clone this repo to your local machine using
git clone https://github.com/open-aot/AgricultureOfThings
- Arduino-Sensors Pins Layout
- Load Code to the board and start Transmitting
- Open Arduino IDE
- Open
Tools->Manage Libraries
and install theRF24 by TMRh20
lirbary - Load the code from the file:
./arduino/transmitter.ino
to the Arduino
- 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 &
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
$ cd <this repo path>/machine-learning/
$ python ./__ML_analysis_on_environmental_data__.py
- Open Android Studio
- Select
Import project (Gradle, Eclipse ADT, etc.)
- Naviage to the folder
<this repo path>/android-app
and selectOpenAgriculture
- 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.
Savvas Kastanakis | Giannis Konstantakis | Dimitris Bakalios | Vangelis Karagiannakis |
---|---|---|---|
kastanakis |
konstantakis |
bakaliosdim |
evankar |