With a relatively small number of Lego bricks it is possible to build a vast range of objects. What each individual Lego brick does is less important than the fact that they have a standard set of 'studs' and 'holes' (often created via 'tubes' and 'bars'), to enable them all to be connected together in many different ways. These allow them to be part of something much larger and much more complex and to be configured in many different ways to create different objects and solve different problems.
We have used a similar approach to our smart home and have developed a range of smart home 'building blocks'. These allow us to rapidly construct solutions to all the smart home problems we encounter and to build a fully integrated solution using these reusable components. We have also used a common set of hardware interfaces (connectors and electrical standards (the studs and holes), to enable them to be connected together in many ways, to many smart home problems.
Whilst the focus of this article is on the physical 'blocks' (the electronics and hardware), we have a corresponding set of software 'blocks' in the form of Java classes, libraries and functions that provide the logic and intelligence to bring it all to life.
Using simple blocks (for example to interface dumb sensors) allows us to design one and to create and deploy many instances much more cheaply. It also allows us to keep control of the functionality and the data that it might generate. This means that we can deploy simpler hardware and it is much more reliable and future-proof.
The Smartisant Arduino Shield SHLD1 is one of our basic smart home building blocks and makes it really simple to connect a wide range of sensors and devices to your smart home, using an Arduino.
The applications notes show how numerous sensors can be connected and also provide sample code.
Sometimes you need to use a particular sensor or device that is battery powered but, you may have a power source close by, e.g. mains power. A battery eliminator can very efficiently and reliably convert a local 220V ac supply to a 3.3V, 5V or 12V dc supply, to avoid the need to use a battery in it. When you have hundreds of sensors in your smart home, batteries are best avoided!
We developed this 8-channel optically-isolated input board, to rapidly enable connection of digital sensors. It exposes a standard 4-pin connector which is common to other bricks. Our board also has individual fuses to ensure one sensor failure cannot have impact on the others. It may be over-kill but we have seen it happen.
We have chosen 8 channels because it aligns well with the number of input/output pins on processors like the Arduino UNO, Raspberry Pi, etc. and also supports a standard 10-way connector (8 channels + power + ground). This means that we are using standard cables (also bricks) to connect the various components together.
We have developed a standard 12V dc output module that allows us to easily control devices such as strobes, sirens, lights, etc. It also supports PWM to enable dimmable lighting and variable speed control.
The key advantages of taking a 'building block' approach are:
When we design a new block we also consider what else it might be used for and how to make it generic to other applications.