Home    ICT    Music    Adventure    Other    Me    Bullying    Learning    Economy    CV  
Intelligent Home
Project planning for intelligent home
Project planning for intelligent home
Living requires a lot of work. Living in a home requires more work. Owning a home that need maintenance even more so. The larger the home, the more needs to be monitored, and the more stuff you wish you could automate. Even something as mundane as changing the temperature on the central heating every morning and evening is a task that can easily be forgotten in the morning rush and evening drowsiness. And so I started my Arduino-based project to make my home more intelligent.

Learning new technologies, you may want to just jump in and get your hands dirty. When building a larger project, however, it is unwise to neglect the planning stage, even when you have something new and exciting to deal with. The basic understanding of technology is, after all, similar.


As I get new ideas to implement, I want to easily expand the number of sensors and other output modules without any major work. While I ideally should have a central monitoring station, all modules should work independently - even if the central monitoring station went down, each module should keep working, some even with secondary alert displays.

This means that modules should be communicating through broadcast to all other modules, rather than serially to one central house intelligence unit.

Similarly, as communication between modules must be standardized and many sensors will be the same, there must be emphasis on generic code configured only for enumeration of available sensors, unit id and its own minimal local intelligence.

This opens for generic code loop similar to game loops:
  indata(); // Collect input from all sensors
  sharedata(); // Share own data and receive from other modules
  localAI(); // Specifics for this unit
  commonAI(); // Common understanding of the data
  outputdata(); // Output to display (if any)

Part of the idea is to also be able to broadcast emergencies to neighbours. Sudden drop of temperature, smoke or gas detection, motion during vacation mode are typical alerts that you may want your neighbours to know about.

Framework of the plan

From this, we know the following must be planned and implemented:

  • Generic indata() through enumeration of sensors
  • Generic commonAI() to determine, among other, alerts to display
  • Generic outputdata() for selected display, using list of messages and alerts generated by other functions.
  • Non-generic localAI() for each unit.
  • Generic sharedata() protocol and standardization of hardware

Further work

First unit will be in main floor, where I will first need to implement a real time clock, temperature sensors, motion sensors, surveillance cameras when in "away mode", IR receiver and IR transmitter. The IR-implementation is for generic control of the unit and specific control of my heat pump. The functions above will be developed in the order they are needed, but with whole picture in mind.

Built using CMS-library for Trollsilm Tagged Template