A few years ago, the term "Internet of Things" (IoT) arose. Back then, I was thinking a connecting my house to the Internet and later, I acquired an old factory and came the "Internet of Buildings".
For me, it is a playground to deal with various technologies: either as software or hardware.
Probably the most obvious concept when thinking about connecting a building to the Internet: monitoring the "vitals" of the building. Currently, I have two systems:
- The building is connected to the grid using a 3 phases, 400V line. The counter installed by the energy provider offers a serial link to output the data. This serial link is connected to a Raspberry SBC through a couple of optocouplers. The Raspberry reads the data as they come and put them into single files. I will write more about those later but I use a Python script to gather all the data, compact them and upload them to the cloud. PHP is used to receive the data and display them. I devised the system to be fail-safe: power outages can occur or Internet connection might not be available. That is to say that I can reboot the system at anytime, it will resume operations. Of course, the data sent by the power counter that were not recorded are lost for now and the next upgrades to the system would be:
- add a hardware watchdog in case the Raspberry crashes
- add a hardware watchdog to reset the Internet box becomes unresponsive
- add a UPS to the Raspberry so that it can keep on running during a power outage (though there is nothing to measure during power outage and loosing some data is not a problem here. Though it might be interested to look at the current measurements just before the power outage and maybe I could have the Raspberry to provide more services)
- Various temperature probes are installed at various locations in the building. Those are 1-wire probes. They are connected to an Arduino using an USB master. The Raspberry reads the temperatures and upload them to the cloud using Shell scripting.
The project I am working on is to provide access control to the building: grant or deny access to the building or part of the building thanks to an identification token... An Arduino reads and formats the data from a keyboard designed for exterior usage and feed that to a Raspberry which has control access list: or an action control list I should say. I designed the system that actually, based on a combination of keyboard identifier and identification token the system will allow/disallow an action. An action being one of opening a door, ring a bell, send a message... the sky is the limit.