We are looking a short-cutting getting started with Xamarin Forms for cross platform app development, if you are already a UWP app developer. This article discusses the rudiments of an Xamarin Forms app project from the perspective of a UWP app developer.
Read the rest of entry »
So we have seen the need to use Xamarin. So lets get started. This article covers installation in Visual Studio on a Windows device
OK so you have been creating Windows apps for ages including UWP. You have developed apps that run on the Windows desktop and the phone. You understand the rudiments of developing a modern UI app MVM etc. You understand PEM, properties events and methods for classes and GUI elements. You understand database CRUD can attach a database to an app using formal database invocation methods. You might even have mastered the Entity Framework and/or have a deep understanding of ORM. Overall, in coding terms, when confronted with a new programming context you know what you want to do and how you do with UWP or Windows Forms; you just need to do it in the new context. Xamarin Forms, bring it on!
In this article I discuss two ways to the refer a UWP app to an Entity Framework Model Class Library, which appears to not be possible through the normal method of adding references between projects in Visual Studio.
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 ...
Occasional PC video failures may be due to system overheating and may be rectified by added robust exhaust fans. An assumption that it was the power supply, which had previously resolved the matter, wasn’t the cause for my most recent errant PC condition. Note that if swapping over power supplies, only use the power cables supplied with the new supply. Otherwise you can fry hard drives! Also covered is how to simply get system uptime and a recommendation for PC Health (CPU temperatures, fans etc) is given.
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!...