Over the past few months i have been working on a custom built home and automation and monitoring system, using the concept of the Internet of Things (Iot).
What is the Internet of Things?
In a nutshell, the Internet of Things in the internetworking of physical devices (sensors etc) that allow these objects to send and exchange data via the internet. So, for my system, there will be a number of sensors that exists around the house and garden. These sensors will send information to the “cloud”, via a micro controller that is connected to the home wifi connection. This data will then be collected and processed by a “service” that runs in the “cloud”. This data can then be viewed via a web portal.
Why have i built a custom system?
Firstly there are not really any cool and interesting Home Automation system out there that i found interesting. Secondly, i’m a software developer, and looking at various other suitable frameworks and systems out there, nothing really did what i wanted it to do, and nothing really gave me the control and functionality that i needed. So i build my own.
How does it work?
Its all pretty complicated and technical, but generally speaking this is how it works:
- Various electronic sensors are placed around the house and garden. E.g. Soil Moisture sensors. More about sensors later.
- These sensors are connected to a little micro-controller, which are effectively tiny and cheap little programmable computers.
- The micro-controllers read the sensor data, and send the data via a WiFi connection at home, to a service on the internet, where the data is processed and stored.
- These micro-controllers can also do other things, e.g. switch on the water sprinklers when the soil moisture becomes too low. More on this later.
- The data can then be viewed via a website, which displays the data in easy to read graphs and widgets etc 🙂
- Notifications can also be setup, either via email or push notification to your phone. E.g. a notification can be sent to your phone when the water level of your rainwater tank gets below 10%.
What kind of sensors are there?
An example of some the sensors that i use:
- Temperature sensor
- Humidity sensor
- Ultrasonic sensor for measuring distance, e.g. tank levels etc
- Soil moisture sensor
- Light (photocell) sensor for measuring sunlight
- Water flow sensor
Below are examples of a Temperature and Humidity Sensor, a soil moisture sensor, and a ultrasonic sensor.
For more sensors, you can have a look here, but essentially there are literally hundreds of different sensors that can be used and incorporated, depending on your needs and requirements.
What do the microprocessors look like and how do they work?
One of the most common and probably easiest microprocessor to use is the Arduino microprocessor, which is pictured below.
There are various different Arduino boards available, each one has different use cases. The specific one that i use is a Arduino Uno Wifi which has an integrated wifi component to easily connect to the internet.
So basically, the sensors connect to the microprocessors. The microprocessor is then programmed, using little programs called sketches, which effectively tell the microprocessors to read the data from the sensors, and to send the data to the Internet.
So what can i really do with this?
So for example, you could use the light sensor to turn on lights when the light sensor picks up low light, ie when the sun goes down. You can program the garden sprinklers to come on when the soil moisture level gets below a certain value. You can program a ultrasonic sensor to measure the height of the water in your water tank. You could program an extraction fan to come on when the temperature in the house gets above a certain value. You can program the heaters to come when the temperature get below a certain value. You can program the bathroom extraction fan to come on when the bathroom humidity gets above a certain value. You could program fire extinguishers to fire when fire is detected. Etc etc. The possibilities are endless.
How do i view the data?
So as explained above all this data is posted to the Internet and stored in a database. I then have a website where the data can easily be viewed. Below is an example of a page to view some basic details of some of the sensors running at the house. This page displays the current temperature and humidity outside the house, the current level of the main water tank, as well as the current light level outside.
If you click on more details, you can view a whole bunch graphs which give statistics about the selected item.
So that is basically how it all works.
In part II will be looking at how to build a basic garden watering system that waters the garden when the soil gets too dry.