Yordanos Negusu
Good day, I am Yordanos Negusu, a fourth-year Software Engineering student at Addis Ababa Science and Technology University. It is my pleasure to introduce myself as a member of Group 29 for the 2023 Integrated Engineering Team Project (IETP). Within this portfolio site, I will provide ongoing documentation of my contributions to our team's project on a weekly basis. Each status update will outline the tasks I completed during the prior seven days in support of our objectives. Through these regular posts, visitors will gain visibility into my progress and role within the group over time.
Week One - Meeting
In November 2023, on a Friday, my group and I had our initial meeting with our advisor. He provided us with some important information regarding the project, including attendance requirements. He instructed us to create a portfolio and individually search for project ideas. Our advisor suggested that we have a team meeting without him to discuss and choose our top three ideas. We were then scheduled to meet with him again on Wednesday to present our chosen ideas.
Week Two - Idea sharing
On November 7, 2023, our group gathered for a meeting on Wednesday to share and discuss our ideas. I presented: a smart waste management system . Additionally, each group member contributed their own ideas. Following careful consideration and extensive discussion, we reached a collective decision to shortlist the top three ideas for further evaluation and exploration. The chosen top three ideas were a automated irrigation system, smart lock and a micro turbine.
Today, on Wednesday, we had our scheduled meeting with our advisor. During the meeting, we discussed the ideas that each student brought to the table. We explained the top three ideas and provided our reasoning for selecting them as the top choices. After a thorough discussion, we narrowed down our options to two interesting ideas: the automated irrigation system and the IoT-based security system and waste management system.
Our advisor gave us the freedom to choose between these two ideas. Following the meeting, our team members engaged in further discussions to assess the potential of each idea. And we reached a decision to pursue the development of an automated irrigation system as our primary project focus.
I have attached my project idea submission form below:
Week Three - Researches
This week, since we all agreed on the automated irrigation system as our integrated engineering project topic, I:
Began researching the automated irrigation system project topic to better understand responsibilities and role as a software engineer
Sought information online and social media platforms to expand learning
Starting to explore the software requirements and functionality needed for the prototype prototype
Becoming familiar with relevant hardware components like sensors
Also focusing on the software needs which align most with software engineering duties
Scheduled a team meeting for this upcoming Monday
Purpose is to clarify individual roles and divide project work
Meeting will officially kick off the design and development process
Resources:
Week Four- some technical tasks
Initial Meeting
Held first team meeting on Monday
Divided tasks according to expertise and project familiarity
Roles and Responsibilities
As software engineers, will be responsible for software aspects like codes, databases and system development
Primary focus but also willing to assist with other tasks
Technical Work
Downloaded Arduino IDE for writing/compiling code
Researched projects on similar smart irrigation systems
Left example project links
Requirements Identification
Started identifying functional and non-functional requirements
This allows understanding problems and providing solutions
Listed some potential functional and non-functional requirements
Some example requirements I'm considering include:
Functional Requirements:
Schedule irrigation times/durations for different zones
Monitor soil moisture levels and other sensor readings in real-time
Receive alerts/notifications on device for abnormal sensor values
View historical sensor data and reports over time
Remotely control irrigation valves and pumps
Configure system settings like WiFi, thresholds etc.
Non-Functional Requirements:
Performance, usability, reliability, security, scalability, maintainability, compatibility, documentation and testing.
Here are also some YouTube videos I have been looking at over the past 2 days to get a clearer and more insightful understanding of the project. The software demonstrated may not be exactly the same as what our project entails, as there might be some differences, but to get introduced to the concepts they are good resources.
References
YouTube videos: https://youtu.be/768YFl08OJk
The link I downloaded the Arduino IDE from is: https://www.arduino.cc/en/software
https://docs.arduino.cc/tutorials/edge-control/smart-irrigation-system?queryID=undefined
Github : https://github.com/1999AZZAR/Smart-Irrigation-System/tree/master#hardware-requirements
Week Five - Poster Design
This week I focused my efforts on assisting with the project proposal writing phase. Specifically:
Project Proposal Revisions: I reviewed the initial proposal document and provided suggestions for additions, removals and restructuring of content. Several key points were enhanced or removed based on my feedback.
Gantt Chart Creation: As my first time creating a Gantt chart, I spent time learning how to develop one successfully. I then mapped out our entire project timeline and milestones in a Gantt chart format. This was added to the revised proposal.
Gantt Chart Development:
As my initial experience making a Gantt chart, it took some trial and error to understand the proper formatting.
However, with research I was able to clearly lay out our project plan and timeline visually.
Proposal Feedback:
Providing a critical eye helped strengthen the proposal by trimming unnecessary content and adding important details.
The proposal is now tighter and more focused as a result of the revisions.
Week Six - Poster Design
Exploring Tinkercad, Project Poster Design, and Simulation:
Recently, I signed up on Tinkercad.com, an online platform that enables users to transform their ideas into designs quickly. By immersing myself in its features, I aimed to familiarize myself with the platform's capabilities and explore its potential for our project.
During this period, I also decided to try my hand at creating a project poster. Recognizing the importance of visually representing our project's key aspects, I took the initiative and started working on the project poster two days ago.
I understand that while the project poster is a crucial component, it may not necessarily be a priority at this early stage. There may be other tasks that need to be addressed first. However, considering the uncertainty of future time availability and the fact that we don't need to wait for materials to begin working on the poster, I believe it is beneficial to allocate time to tasks that can be accomplished regardless of material availability.Since these are just first trials, I understand that there is room for improvement. As we progress and gather feedback, we can refine and enhance the project poster to better communicate our project's essence. I am open to suggestions and excited to collaborate with the team to create a more polished and impactful representation of our project.
This journey of exploring Tinkercad, project poster design, and simulation has been a valuable learning experience. It has allowed me to develop my skills in presenting information and reinforced my commitment to delivering a comprehensive project.
Looking ahead, my plan for the upcoming week is to finish the simulation. This will involve exploring various simulation techniques to visualize the functionality of our project. Additionally, I aim to start working on the user interface of the system, recognizing its significance in creating an intuitive and user-friendly experience for our end-users.
Here are some important websites that i used for this week:
online platform to create simulation: www.tinkercad.com
online platform to create project posters: www.postermywall.com
![](https://www.google.com/images/icons/product/drive-32.png)
The code below to further explanation:
// C++ code
#include <Adafruit_LiquidCrystal.h>
int M = 0;
float MP = 0;
Adafruit_LiquidCrystal lcd_2(0);
void setup()
{
lcd_2.begin(16, 2);
pinMode(A0, INPUT);
Serial.begin(9600);
}
void loop()
{
lcd_2.display();
M = analogRead(A0);
MP = ((M / 539.00) * 100);
Serial.println(MP);
if (MP < 20) {
lcd_2.print("TIME TO WATER ");
lcd_2.setCursor(0, 1);
lcd_2.print("THE PLANT :7 ");
lcd_2.clear();
} else if(MP < 40 && MP > 20){
lcd_2.print("Keep the ");
lcd_2.setCursor(0, 1);
lcd_2.print("water ready ! :) ");
lcd_2.clear();
} else if(MP < 70 && MP > 40){
lcd_2.print("Everything's ");
lcd_2.setCursor(0, 1);
lcd_2.print("going good. :] ");
lcd_2.clear();
} else if(MP <= 100 && MP > 70){
lcd_2.print("What a nice ");
lcd_2.setCursor(0, 1);
lcd_2.print("day, it is! :-> ");
lcd_2.clear();
}
delay(100); // Delay a little bit to improve simulation performance
}
Week Seven - Updated poster design & some trials on the simulation
This week I continued working on my project poster and simulation. On Monday, after making 1-2 additional posters to refine the design, I began exploring the simulation software to better understand how it works. By the way I have changed the website I used to make posters - I am now using Canva, which I personally think is much better. The link to the Canvas website is below.
At first, the simulation was quite confusing as the tools and materials weren't clearly labeled or organized in an intuitive way. As a first-time user, it took some time to figure out where different components were located. I also found it challenging to find the right materials to build parts of the simulation since the naming wasn't always obvious.
To help learn the software better, I spent time on Tuesday and Wednesday reviewing example projects and simulations that others have created within the tools. Browsing the "Projects" section gave me a better sense of what is possible and how components connect together. I found this really helpful for seeing how simulations are constructed.
By Thursday, things started to make more sense as I played around building simple test simulations. However, there is still a learning curve to fully utilizing all the capabilities. I plan to continue practicing with the tools and may ask my teammates for tips if I get stuck on anything complex.
Here by the end of this week I tried to build this simple simulation with an Arduino, soil moisture sensor and LCD display and also connecting wires. It doesn't fully represent our full project design though, as it is just meant to demonstrate the basic idea of how an Arduino, LCD display and moisture sensor can work together to sense and display soil moisture readings. The tools used were:
Name Quantity Component
U1 1 Arduino Uno R3
SEN1 1 Soil Moisture Sensor
U2 1 MCP23008-based, 32 LCD 16 x 2 (I2C)
By this device, when texts are displayed like "time to water the plant", "keep the water ready", "everything is going good..." based on the moisture level it senses using soil moisture level.
Code Explanation
***
Includes the LCD library to interface with a 16x2 LCD display
Defines pin A0 as the analog input for the moisture sensor
Sets up LCD and serial monitor in the setup() function
In loop(), it reads the analog value from the sensor, scales it to a percentage and prints to serial
Based on the moisture percentage value, different status messages are displayed on the LCD:
If MP < 20%, it shows "TIME TO WATER THE PLANT"
If MP is between 20-40%, it shows "Keep the water ready"
If MP is between 40-70%, it shows "Everything's going good"
If MP is above 70%, it shows "What a nice day, it is"
After displaying, lcd.clear() clears the screen
It uses setCursor() to position the text on the second line
A small delay is added between readings ***
I have included a screen recorded video demonstration of the simulation in this weekly update. Please view the video embedded on the left side of this page to see the simulation in action.
Week Eight - Implementation of remote control (not practical yet)
This week, I dedicated my time to learning about the implementation of remote control for a smart irrigation system with a user interface using Arduino IoT Cloud. Although I didn't have the opportunity to apply the knowledge practically, I gained valuable insights into the capabilities of Arduino IoT Cloud for irrigation systems.
Key Learnings:
Arduino IoT Cloud: I familiarized myself with Arduino IoT Cloud, a platform that allows for remote monitoring and control of Arduino devices. It provides a user-friendly interface and facilitates seamless integration with IoT projects.
Smart Irrigation Systems: I deepened my understanding of smart irrigation systems and their benefits, such as optimizing water usage, improving plant health, and enabling remote control for convenience.
Potential of Arduino IoT Cloud: Through my research, I discovered the potential of Arduino IoT Cloud for smart irrigation systems. It offers a robust framework for connecting and controlling irrigation devices, providing real-time data and enabling remote management.
Application and Reflection:
Although I didn't have hands-on experience implementing remote control for a smart irrigation system using Arduino IoT Cloud, the knowledge I gained has sparked my interest in exploring practical applications in the future. By reading documentation and tutorials, I developed a solid theoretical foundation to build upon.
I realized that while reading about IoT concepts and platforms is valuable, applying the knowledge in practical projects is crucial to fully grasp the intricacies and challenges involved. I plan to allocate time in the coming weeks to work on a practical project using Arduino IoT Cloud for a smart irrigation system.
This week was focused on exploring the potential of Arduino IoT Cloud for implementing remote control in smart irrigation systems. Although I didn't have the opportunity to apply the knowledge practically, I gained a deeper understanding of Arduino IoT Cloud's capabilities and its relevance in the context of smart irrigation. By leaving the link to Arduino IoT Cloud in my portfolio, I can easily access it in the future when I'm ready to implement a practical project.
I also watched a YouTube video that was shared in our IETP group chat. This video provided valuable insights and visual demonstrations related to Arduino IoT Cloud and smart irrigation systems. Additionally, I read a document that was shared in the group chat, which further expanded my knowledge on the topic. In addition to the shared resources, I took the initiative to watch some videos on my own, exploring different perspectives and examples related to Arduino IoT Cloud and smart irrigation systems. These self-discovered videos provided me with additional insights.
Arduino Cloud | Arduino Documentation
https://docs.arduino.cc/tutorials/edge-control/smart-irrigation-system
Week Nine - Arduino Iot Cloud
This week, Nebiyou and I worked collaboratively on development of the automated irrigation system interface and prototype. As a software engineering student on our project team, my contributions included:
Researching the Arduino IoT Cloud platform. This will enable remote monitoring and control capabilities.
Setting up a test Arduino account and learning the basics of how sensors can stream data to the cloud.
Drafting initial designs for the interface framework using HTML/CSS sketches. The interface will display variables like soil moisture levels dynamically.
To enable remote monitoring capabilities, I focused my research on understanding how the Arduino IoT Cloud supports:
Publishing real-time sensor readings from Arduino devices to the database
Visualizing live data streams on customizable dashboard widgets
I made some updates to our group's portfolio website, such as changing pictures, writing reports for unfinished weekly progress sections, and so on, to maintain documentation of our work.
Discussing interface requirements with Nebiyou to align on features like control buttons based on the prototype status indicators needed.
Here are some screenshots we took:
Week Ten
The team finalized materials needed for our control prototype build. I participated fully in discussions and approved cost estimates before transferring funds.
Upon receiving parts, we began connecting hardware while testing initial code. We wrote Arduino sketches to interface with and read soil moisture sensors. I also set up our proof of concept IoT system on the cloud platform.
Challenges
The network connection was slow, posing difficulties. Connecting diverse devices presented compatibility challenges requiring repeated redesign. Specifically, connecting the soil sensor involved pin fitting issues.
The board was not displaying the soil moisture level - it was only showing temperature and humidity values. Even after repeated trials and staying up the whole night troubleshooting, there were still some things remaining to solve like getting the board to read the soil sensor properly.
Moving forward, we plan to revisit the challenges with the soil sensor readings and board functionality. The soil reading code will need refinement, and the prototypes must be tested fully to validate lessons learned during integration.
Week Eleven
This week our team made significant progress in completing our automated irrigation system prototype. As the software engineering department, my colleague Neba and I focused on developing the key software components.
We finished building the mobile app that will allow users to remotely control and monitor the irrigation system. The app is connected to the Arduino IoT cloud database where it retrieves sensor data uploaded from the NodeMCU board. We tested the app functionality extensively and it is working as intended.
On the hardware side, I integrated our NodeMCU code with the soil moisture and temperature sensors. The NodeMCU is successfully receiving sensor readings and uploading this real-time data to the cloud. This demonstrates the end-to-end IoT connectivity of our system.
Another task I completed this week was designing the project poster. I aimed to clearly explain the key features and functionality of our automated irrigation system in a visually engaging layout. I posted the poster in our group Telegram channel and received positive feedback from my teammates. However, if they have any suggestions for improvement, I am open to receiving feedback and modifying the design. At the bottom of this week's task description, I have included a link to the PDF file of the poster so others can view the design as well. I believe effective visual communication is important, so I want to ensure the poster clearly conveys the goals and workings of our system to various audiences.
Overall, I'm pleased with the software development progress we made as a team this week. By Friday evening, all of our prototypes and code were finished except for some minor mechanical tasks. We are prepared to demonstrate our fully functioning system to our advisor on Monday for feedback before the official presentation on Wednesday. I believe if we continue working collaboratively, we will impress the evaluators with the quality of our work. It was a productive week and I'm looking forward to seeing the finished product.
![](https://www.google.com/images/icons/product/drive-32.png)