CTO and co founder of THEORIS, Thierry Joubert is working on embedded systems design and real time software since the early 80's. In parallel with his missions of expertise for industrial companies, he and his team at THEORIS organise courses and technical seminars in engineering schools and universities. In year 2011, Thierry co-authored a book on Windows Embedded Compact 7.
My Azure watering system has been running for almost seven month now, after a long period of analysis I got all elements stable early january 2018.
The Azure data recorded since then shows the following behavior:
The top graph indicates watering time in value of 100ms, big bars correspond to manual watering.
Bottom graph shows daily measurement for three pots (Red, Green, Blue), plus local temperature (Orange).
We can draw some conclusions from this graph:
1 - Plants don't need much water in winter...
2 - Humidity measurement is definitely correlated to Temperature (red pot got frozen in march)
3 - Each pot has a specific behavior, and therefore needs a special algorithm
It is now worth pushing this data to Azure Machine Learning to draw the watering laws - before summer !!
I ordered a bunch of ESP8266 modules in November and I have been developing applications since then with the available environments:
1 - Arduino IDE
2 - MicroPython
3 - Native SDK
Arduino IDE is great because it allowed me to re-use the code I wrote to access Azure through REST for my Azure Watering System.
Having both WiFi and a low power MCU I decided to build a Wireless station to monitor Humidity and Temperature and report to Azure.
Several SSIDs may be included in the program, therefore this monitoring device may be used inside and in the surroundings of my home - connected through home WiFi, or anywhere if I connect through my 3G+ phone.
The actual challenge for a Wireless station is to be REALLY wireless, this means running on battery. I used a 400MAh 1S LiPo I had in stock to see how long it would run between recharge.
The actual setup is as follows:
This includes more than the ESP8266 and DHT11 shield (in the back) and Battery (in front),
1 - The display and resistors are used to measu ...
WiFi modules have become way more accessible since a few years, and prices are going down fast.
Starting from the work done on a student's project, I used the tiny RedBear Duo to build an Azure connected weighs.
Well... from the top it is an "off the shelf" weighs, the interesting part comes when you turn it upside down:
The main job was to connect the existing four sensors to a dedicated HX711 amplifier circuit (bottom left, small PCB).
Then an LCD display was added to interact with the user (bottom left, large PCB)
The weighs has four capacitive buttons which were also connected (botton left, blue wires)
The original power supply was replaced with a stronger 5V with a switch. (top left and center)
The ReaBear board is the brain of the weigths, it has all I/O interfaces plus WiFi connection to report to Azure.
In addition to indicating weight, the system provides a clock from the Azure connection. Measures are pushed to a dedicated Azure table, and provides a good following for indi ...
After three weeks of humidity measurement, Azure data shows the following behavior:
I expected to see straight lines for sensors blue and green as they are in test tubes.
The measurement is not random though because:
1 - The fully immerged sensor (blue) gives higher values than the half immerged (green).
2 - Green and blue follow exactly the same pattern
3 - Red sensor which is in a pot, shows similarities in its evolution.
I copied local temperatures history from the same period from the Web and compared the two graphs on a day per day basis:
It is obvious that my "sensor in a test tube" is a pretty good thermometer!!
In order to know the humidity of my pots, I need to correlate sensors information with local temperature and add some filtering mechanisms.
I added a DHT11 Temperature and Humidity sensor to the Azure Watering system (another option would be to get it from the cloud...)
Now my Azure watering system has been running for a few weeks and I can use collected data to undestand how it behaves.
The data on Azure lead to the following graphs:
The big watering bars correspond to manual watering, from this graph I understand several key points:
1 - Humidity level should be maintained between 50 and 300
2 - Cooler temperatures in November have minimized evaporation ...or plants consumption
3 - The humidity variation during a day may be important compared to the interval given before
4 - All humidity sensors seem to follow an identical pattern, but my pots are not identical!!
To know more about humidity Sensors, i will modify the configuration, two sensors will be installed in test tubes, one completely immerged and the other one half immerged .
With this 100% stable configuration and Azure data recording, I expect a clarification on humidity measurement.
My Azure watering system did work by itself during my vacation, and thanks to Azure recorded data I know a bit more about humidity and watering.
The data history shows an unexpected behavior:
Water has been pumped everyday in the pots without raising the level of humidity, the big bars on september 10th (300) correspond to manual watering. I also noticed that water was spilled under the pots, meaning that it was going through the soil - totally inefficient!! Also the correaltion of Azure data with real world showed that a humidity level of 200 was perfectly suitable for my trees.
Now I'm ready to modify the program and watering plan:
1 - I must be able to control the levels and timings remotely, I added a "parameter" table in Azure
2 - I must make four measures per day because humidity values shown are unstable
My watering system monitored withAzure is now fully operational for three plants.
The connected computer is an Educake from ICOP, it measures three sensors and is able to pump water individually in each pot.
The system is connected to a timer socket progammed to wake up once a day. The information reported to Azure by the Educake contains humidity and watering time for each pot.
This configuration has been running for a week and Azure data allows me to calibrate the watering parameters. Unplanted sensor (dry) gives a 1024 value, and fully dipped sensor gives a 400 value.
As I'm checking humidity, I decide to reverse the scale : 600 = watered - 0 = dry, one week of recording shows the following graph:
Now Let's go to vacation!...
Before my summer vacations, I decided to build a watering system for my decorative trees. The soil moisture is measured with a cheap IoT sensor and the water supply uses 12V airpumps pushing air in water bottles (this makes a safe separation between electric and water circuits), the electronic schema is as follows:
The 86Duino Educake computer monitors the humidity level once a day and will pump water if the level is too low, it sends data to Azure therefore I'll be able to see how things are going on...
At THEORIS our server room temperature is controlled by an A/C unit, but we are facing two issues:
1- In summer the room temperature may go above 30°C, requiring extra cooling capacity.
2- In case of a power cut the A/C does not restart automatically, a user action is required.
We solved these two issues with a connected IoT solution based on an ICOP Educake and Azure Mobile Service.
Following a cat's activity is not an easy task, Azure Mobile Services makes it possible with the help of a dedicated intelligent IoT system and REST appications.
Re: Windows Phone 7 first impressions
Yes, I was referring to local Outlook synchronization. Exchange Server synching is definitely provided...
-- James Y. Wilson
The lack of Outlook synchronization is indeed surprising. I am assuming you were expecting synchronization...