amc:ss2024:irrigantion_cart_nozzle:start
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
amc:ss2024:irrigantion_cart_nozzle:start [2024/07/31 01:29] – [Structural adjustment by adding a lever] amr.abdelkhalek | amc:ss2024:irrigantion_cart_nozzle:start [2024/10/20 23:40] (current) – [Enhancing the If-Condition for Better Plant Recognition] amr.abdelkhalek | ||
---|---|---|---|
Line 36: | Line 36: | ||
The following diagram Figure 1 shows the overall layout of our project: | The following diagram Figure 1 shows the overall layout of our project: | ||
+ | the system uses LIDAR sensors for distance measurements, | ||
+ | * **VLX53L0X (LIDAR Sensors):** | ||
+ | Horizontal Distance Input: One VLX53L0X sensor measures horizontal distance. | ||
+ | Vertical Distance Input: Another VLX53L0X sensor measures vertical distance. | ||
+ | * **ESP32-S3-WROOM-1 (Arduino): | ||
+ | Receives distance readings from both VLX53L0X sensors (horizontal and vertical distance). | ||
+ | Processes these readings and performs various tasks based on the data. | ||
+ | * **LED Light/ | ||
+ | Connected to the Arduino. | ||
+ | Can be turned on or off based on commands from the Arduino. | ||
+ | * **Battery/ | ||
+ | Powers the ESP32-S3-WROOM-1. | ||
+ | * **MQTT Server:** | ||
+ | Receives processed readings (distance data and actuator state) from the Arduino. | ||
+ | Sends actuator control commands (like " | ||
+ | * **Personal Computer with Jupyter Notebooks: | ||
+ | Communicates with the MQTT server to receive the distance readings and actuator state. | ||
+ | control commands to the MQTT server, which then relays them to the Arduino. | ||
- | {{amc: | + | < |
- | **Figure 1: Project Layout** | + | |
The following Figure 2 is the implementation of the previous layout in real-life application: | The following Figure 2 is the implementation of the previous layout in real-life application: | ||
+ | < | ||
- | |||
- | {{amc: | ||
- | **Figure 2: Real-life Implementation** | ||
- **Vertical VL53L0X Sensor** | - **Vertical VL53L0X Sensor** | ||
Line 283: | Line 298: | ||
</ | </ | ||
===== Python Code ===== | ===== Python Code ===== | ||
+ | |||
+ | ==== Required Libraries ==== | ||
+ | |||
+ | To install the required libraries for the project, open and download the following text file " | ||
+ | |||
+ | <file txt requirements.txt> | ||
+ | bqplot | ||
+ | traits | ||
+ | numpy | ||
+ | paho-mqtt | ||
+ | ipywidgets | ||
+ | pandas | ||
+ | </ | ||
+ | |||
+ | Then run the following terminal command in the environment where you will run the project: | ||
+ | |||
+ | <code python> | ||
+ | pip install -r requirements.txt | ||
+ | </ | ||
Line 508: | Line 542: | ||
==== Defining and Initializing System States with Enum ==== | ==== Defining and Initializing System States with Enum ==== | ||
- | <code python> | + | |
class State(Enum): | class State(Enum): | ||
IDLE = 1 # State when the system is idle | IDLE = 1 # State when the system is idle | ||
Line 1083: | Line 1117: | ||
10001.0 | 10001.0 | ||
10002.0 | 10002.0 | ||
- | ==== Enhancing the If-Condition for Better Plant Recognition ==== | ||
- | To enhance the condition for recognizing plants more accurately, we need to implement peak detection logic and replace the older one; to ensure only true plants are detected. This approach reduces the likelihood of false positives caused by objects with heights above 120 mm even as mentioned earlier and help creating an automated system that keeps track of the plants. | ||
- | |||
==== Enhancing the If-Condition for Better Plant Recognition ==== | ==== Enhancing the If-Condition for Better Plant Recognition ==== | ||
Line 1337: | Line 1368: | ||
Multiplexers most probably will be used for connecting with the multiple number of nozzles for our system e.g. irrigating 30 rows at the same time. Each of which will have at least a single sensor, and a water nozzle. 30 controlling MOSFETS hence may be connected to our microcontroller plus the 30 sensors. | Multiplexers most probably will be used for connecting with the multiple number of nozzles for our system e.g. irrigating 30 rows at the same time. Each of which will have at least a single sensor, and a water nozzle. 30 controlling MOSFETS hence may be connected to our microcontroller plus the 30 sensors. | ||
- | Further studies are going to be done on the rush in current in case large nozzles will be used .. and 30 of those will mean multiple of that rush in current, | + | Further studies are going to be done on the rush in current in case large nozzles will be used .. and 30 of those will mean multiple of that rush in current. Additionally, this further research will be conducted on managing current surges when using large nozzles might introduce the possibility of implementing PWM to ensure |
https:// | https:// | ||
Line 1343: | Line 1374: | ||
====== VII. References ====== | ====== VII. References ====== | ||
+ | * Pololu, “VL53L0X-arduino/ | ||
+ | * “Find_peaks#, | ||
amc/ss2024/irrigantion_cart_nozzle/start.1722382158.txt.gz · Last modified: 2024/07/31 01:29 by amr.abdelkhalek