Introduction: Smart Flower Recognition Using a Network of Connected Sensors and an Android Application
In this Instructable I will show you my fourth electronic and IT project that I have made during my studies at the Moroccan School of Engineering Sciences (EMSI). As an IT engineer I learned on my own how to use the electronic components and how to program ESP2866 with C language and also Raspberry Pi3 to control all those electronic components all in a model that I designed and then cut with a laser cutter.
The main idea of this project is making an intelligent device that can see a flower through the camera and immediately send some data to the android app so we can get the type of the flower recognized and also some detailed description of the flower
Step 1: Functions of the Product
the smart device is alimented by a power bank, its controlled by Raspberry Pi3B and its using camera Pi to recognize the flower after executing a complicated artificial intelligence algorithm. This device collects all the data and sends them immediately to the android application that is capable of performing the following actions:
- authentication and registration
- detect the type of the plant and display its detailed information
To better illustrate the notion of the internet of things, I used the box that I made during my third project, (the link : https://www.instructables.com/Smart-Connected-Plant-Pot-Using-Internet-of-Things/) it allows to send remotely in real time and continuously the current value of air temperature, air humidity and soil moisture.
So, with the help of the small box the android application is also capable of performing those other following actions:
- display of the temperature and humidity of the air received from the box
- display, in percentage, of the humidity of the soil in which the plant is planted
Step 2: Electronic Components
1- Raspeberry Pi3 B: it is a very small computer with an ARM processor that allows the execution of several variants of the free GNU/Linux operating system, including Debian, and compatible software. This board has several models and i have used the Raspberry Pi 3 B model in this project to control the associated electronic components on the plant pot as well as to run the artificial intelligence program.
2- Esp8266 nodemcu : it is a microcontroller with a Wifi connection through which data can be sent and received remotely to Raspberry Pi3. i used this microcontroler to control the associated electronic components (Dht22 / Soil sensor / Led RGB)
3- Wires M/M F/F : Allow to conduct electricity to the desired location.
4- Resistor : are all of a value of 220ohm connected with some electronic components to prevent them from being burned.
5- Temperature sensor DHT22 : Senses the temperature degree that will be displayed automatically on the LCD display.
6- interruptor ON/OFF: Ideal for controlling the flow of electric current to all electronic components.
7- Soil sensor : is an analogical sensor designed to measure the volume of water present in the soil.
8- Camera Pi : camera module compatible with the Raspberry Pi with which you can take photos and videos. This camera is essential to analyze the current state of the plant with the help of the artificial intelligence program
9- led RGB : capable of lighting up in three types of color: red, blue and green
10- Powerbank: Acts as the battery that powers the raspberry pi3 card to make it mobile.
Step 3: Schematic and Component Assembly
Step 4: Programming the ESP8266 and Raspberry Pi3 B
Once all the electronic components are properly connected to the ESP board, a computer program must be downloaded to ensure proper communication of the system. To create any program, we must first download the programming tool by consulting the following link: www.www.arduino.cc/en/Main/Software, then write the code in C or C++ language.
The proper functioning of this system requires a good program to run on Nodered installed on Raspberry Pi3 B
Step 5: Designing and Cutting the Model Using Solidworks and RDWorks
Step 6: Making the Android Application
to realize the Android application I used Android studio as an IDE and Java as programing language.