Edit: Any text seen in italics is an addition from the second iteration.
Requirements
In this workflow, one lists the requirements, or the things one wants to do, as a noun/verb pair. This style includes an object, such as 'radio', and one or multiple actions, such as 'turn on' or 'increase volume'. The list for my hydrogarden is as follows:- Light - Turn on, Turn off
- Water - Monitor level, Monitor pH, Monitor nutrients, Aerate
- Webcam - Take picture
- Thermometer - Measure temperature
The next part is to determine the feasibility of each of the previously listed requirements. The only component I believe to not be feasible is the thermometer. With all of the others, I roughly understand how I can set them up, but, with the thermometer, I have no clue. Granted, I have not really looked into it, but I see little benefit by including one anyway as my hydrogarden should be in a suitable environment at all times.
Analysis
The first point of conversation in this workflow is scheduling. In my previous blog post, I said that I wanted to complete DotSlashGarden by the end of August, which gives me about 9 weeks. I have planned it like this:- Inception Phase: 1 week
- Elaboration Phase: 1 week
- Construction Phase: 5 weeks
- Design Workflow: 1 week
- Implementation Workflow: 3 weeks
- Testing Workflow: 1 week
- Transition Phase: 2 weeks
Now, I want to talk about budgeting. I have compiled a rough list of things that I think I will need in order to create the hydrogarden. However, I am not going to discuss it in depth because that is not the purpose of this phase. What is important is that the upper bound cost of this project will be about $400. It is worth repeating that what I calculated is the upper bound cost. I listed everything that I may need, even if it seemed redundant (for example, a Raspberry Pi and an Arduino board, even though I probably won't use both). If one looked at the commercially available hydrogardens, one would see I could pick one up for about $100. In my opinion, complete control and general awesomeness is worth at least a couple hundred dollars.
As for the structure of the hydrogarden, I have identified three main components: the Front End, the Independent Device, and the Hydrogarden Objects. If you don't want to do more reading, you can simply look at Fig.1 in the next section. It probably does a better job at explaining it.
- The Front End provides a means of manual control or monitoring. This component could be my laptop or, in the instance of the Raspberry Pi, a TV and keyboard.
- The Independent Device would carry out manual or automated commands. This device could be a Raspberry Pi or an Arduino board.
- The last component, the Hydrogarden Objects, would be responsible for completing the requirements in the last section. It consists of three systems: the Light System, the Water System, and the External Monitoring System. What is included in these systems is fairly self-explanatory.
Design
The design workflow is used to outline how the project will look and function when it is built. Diagrams are used to express this work. I will be using the Unified Modelling Language (UML) to create these diagrams. A diagram showing the components of the hydrogarden and how they are related is shown in Fig.1 (I promised pictures, did I not?).![]() | ||
| Fig.1 - The component configuration for the hydrogarden, which was modified during the second iteration. |
This setup would create the type of communication seen in Fig.2.
![]() |
| Fig.2 - Input/Output movement in the hydrogarden. |
The reason I enjoy the design workflow is that I get to make cool diagrams and they explain themselves.
Conclusion
I want to express a concern here. It is about the Raspberry Pi. I have talked about it a few times and I think it will be the best device to do what I want. Unfortunately, these small computers are hard to come by and it may be months before I get one. Nevertheless, I am on the waiting list.You may also notice that I did not do any planning for the programming portion of this project. Or did I? Because I will be using object-oriented programming, any design I make for the physical hydrogarden can be used for the program that will run it.
Even though this is the end of the inception phase, I can always do it again, or start another iteration as it is called, if I would like. This would occur if I found that parts were missing from this phase. I have already completed the second iteration.
Although not the most interesting phase, it is certainly required to have a solid foundation. The next phase will be the elaboration phase, where I create use cases and go deeper into UML.


No comments:
Post a Comment