There are three user input interfaces that can be used. They are the mechanical buttons, web site, and Alexa command.
The Arduino Home Automation Control Board integrates an Arduino Mega and an Arduino Ethernet Shield (Rev. 3) with
a Cat5e hardwired smart home network. Each board has the ability to connect to 14 lights, 3 temperature sensors,
and 2 garage doors or automatic gates. The garage door inputs/outputs can also be used for lighting control if
the user does not have the need for multiple garage door controls. The boards can be stacked up to 4 times in
order to provide the user with a total of up to 64 lighting or garage door connections and 12 temperature
Each lighting and garage door connection provides Multi-Input Multi-Output (MIMO) Control for up to two
relays. This can be utilized to monitor the garage door status (open or closed) or control two light relays
through one network cable.
This system is intended to be permanently integrated into the home while maintaining the ability to
upgrade and modify the control board interface. The ability to stack the boards is derived through
multiple serial shift registers which allows the Arduino to control all 4 boards.
This system is controlled through the Ethernet shield which receives inputs from and sends outputs
to the users account on www.MyArduinoHome.com. The skill created for this project makes use of
Alexa's voice control to interface with the users My Arduino Home account in order to manipulate
all controls just as the user would through the website.
Once the system has been fully integrated with the user's home and Alexa, the user will be able to
control all features through conventional methods, the website, and Alexa.
The Arduino is programed to get data from web server and put data in web server. The Arduino checks
the website to see if lights should be on or off. When the user pushes a button the Arduino updates
the server to change the status of that light. Then the Arduino will detect the change and turn the
light on or off accordingly based on the web server data.
Since the Arduino reads and sends data to a web server it has a slight delay. The amount of delay is dependent on how fast the connection with the web server is. The slower the connection, the greater the delay.