When we knew about the issue of drought in California we thought this is a good chance to solve one big problem for the whole world, with every progress that we made we found that is bigger and can impact much more areas all over the world. In Africa we face the same problem and we need the solution so we took this challenge to “make sure that every drop will count”
What it does
People like the trees in their garden but what can be troublesome is taking care of this tree. What if we have a solution that will take care of the tree and keep the garden as beautiful as intended but with minimum use of water. The owner will choose the tree type and based on existing database of trees, the system will handle irrigation appropriate for this tree type. Irrigation consumes water, but what if we don't irrigate when we expect rains. The ARTIK is going to collect Soil Moisture Soil Temperature Weather Temperature Weather Humidity Those parameters are exposed to the agriculture expert to define the irrigation algorithm. More sensors may be added, as the system is expandable and upgradeable.
For the prototyping phase, we just start irrigation in case of soil moisture is lower than a limit. We have two limits Soft limit Critical limit In the soft limit, the ARTIK enters the (may irrigate state) in this case, it checks weather for rains. If it's expected to rain with (X) hours [this is adjustable] it won't irrigate to save water and wait for rain.
If the critical limit is reached, it will irrigate Inevitably without checking weather to save the tree.
Our backend can store system parameters for each node, thus when a user buys our ARTIK based solution, in the registration page online, he will be asked to choose the type of his tree from our database. And the ARTIK will understand how it should treat that tree.
How we built it
After we studies the architecture of the ARTIK well, comparing it to the RPI. We found that it has higher performance and it's more versatile. We utilized our hacking skills to build our solution natively on the ARTIK to maximize the performance. Thus, we built an initial ARTIK4J library that's exposed to github.com. Can be accessed from here https://github.com/mdarweash/artik4j . This library supports GPIO programming PWM Analog Pins
We are developing a platform for real time IoT applications, we modified the platform to support the ARTIK platform. The platform includes Firmware level (ARTIK) Mobile application Smart Watch application (Android wear) Web Applications
The ARTIK software is written in pure java. The mobile application is developed using cordove Smart watch is written in native android. The web application is written in Jquery, HTML5, Css3 Backend is written using java integrated with more open source technologies Atmosphere for Websockets Shiro for security Hibernate for Database handling Jersey for web services
Challenges we ran into
The ARTIK is not yet well documented, we suffered in implementing the native level. Optimizing the secure real time communication with minimum delay and minimum bandwidth used.
Porting the web socket communication to mobile application and ARTIK with respect to security integration with Shire was a little bit complex
Designing a proof of concept product in 3D that illustrates the idea took us some time to understand the most parameters affecting water loss
Integrating with solar energy to make any product that's powered by Mirsaad(our own real time monitor and control system) able to rely on solar energy forever
Accomplishments that we're proud of
- Our system is completely built on top of an open source software stack
- Our hardware is genuine, we designed the power electronics part and fabricated it (solar energy)
- Our system has two level control, 8-bit controller with default behavior is attached to the IoT node (ARTIK) so that the system has a fall-over system to escape to when the IoT fails for any reason. Thus, keeping the system up and running for user even if it's offline till we can fix what's happening
- Our solution is built homogeneously; no many programming languages can reach our goal. We just use, Java, Html5, Css3 and their libraries to build for (web, IoT, Mobile, Backend) and only C for the 8-bit microcontroller
- Our team is working together since 2011!
What we learned
- We learned some tips and tricks about agriculture
- We learned that product design is much more important we you hope to find users!
- ARTIK architecture and how to works, how it's designed. We loved it!
What's next for Mirsaad
Mirsaad in next step is trying to make IoT product development easier, so that we can produce more products at lower cost In time and effort. We hope we can move on with our idea to Kickstarter. But it needs a lot of work to be ready as MVP as it's in the early prototype stage as a product. It's stable product of the technology perspective
read the user guide from here https://dl.dropboxusercontent.com/u/5631561/ARTIK/UserManual.pdf