By Andrew Hoover on Thursday, 07 February 2019
Category: Home Automation

Project S1.4 - Control panels

As I mentioned in UPDATED: My Home Automation Roadmap, I found that controlling lamps with remote switches is an easy and efficient method of bringing dumb lamps into the smart home fold. However, it introduces a new issue, I don't want to have to pull out my phone every time I want to turn one on or off. Imagine needing to get up in the middle of the night and having to find the phone in the dark, blinding yourself when you turn the screen on, finding the app and the lamp in the app and flipping it on ... all while trying to stay somewhat asleep. Enter, control panels.

Overview

It seems strange to remove local control of a lamp and then having to make something to bring it back. Seems counter productive - and if all you were going to do with it was turn the lamp on and off when you wanted it, that's entirely true. Don't bother adding the wireless control. A lamp works just fine as a lamp.

However, if you want to do more, then one necessary evil in adding the wireless switch is putting back the basic functionality that we all want in a lamp and maybe expanding it in the process. This project is actually several projects in one centered on a central platform that can then be modified based on need to do slightly different things.

The Core

State: Beta - Version 2.0b1
Code: Alpha - Version 2.0a1

Hardware

* UPDATE - This description of the core is now out of date. I have expanded the core with more IO via a port extenders, variability of binary IO devices assigned and more feedback options such as a passive amplified piezo, a RGB neopixel and a rotary encoder. The code has subsequently been upgraded to support more types devices (binary, analog, and I2C) and now uses a web interface to setup devices and systems settings. A seperate article is in the works to describe the core in more detail.

At the core of this project is a ESP8266 chip that handles all of the processing and wireless communication all in one nice small package. Not to mention, it is very inexpensive. Depending on how you decide to incorporate it, the base parts can be had for as little as $2 USD. For my beta versions, I am using the ESP8266 on a NodeMCU development board which makes prototyping very easy and fast.

The core has the following requirements that may or may not all be used for each sub-project as needed:

  1. Take inputs from 6-8 buttons / inputs
  2. Display data on a small OLED screen
  3. Control an AC relay for controlling a low current (15amp max) house voltage device like a light, fan, etc
  4. Take in on variable analog input (for data collection, variable resistor input)
  5. Must be able to be powered by AC house voltage and if powered by AC, contain safety circuitry for overload protection

These sets of parameters is the framework I use to write the code for the processor and while limited, can be reconfigured in a wide range of use cases and incorporated into appliances.

The wiring is pretty simple and shown below but to summarize, the ESP8266 has 13 usable digital I/O pins and 1 analog pin. Of those 13, there are some limitations and considerations for 8 of them so, the use case of the core can impact which pins are used so, my code allows for choosing which pins are used. I designed the core to use:

That leaves four digitial I/O for expanded use cases. There are some really good resources for pin configurations for the ESP8266 and some are here:

Code

The code is very early in development but basically this device communicates via MQTT over WiFi. State changes are transmitted in real time and the device can subscribe to MQTT topics for display on the screen or to toggle the AC relay. When the code reaches beta level, I'll release it on GitHub but for now, it is really basic and simple. The overall goals are as follows:

Project S1.4-A - Bedside Control Panel with Wireless Phone Charger

State: Alpha - Version 0.4

This project was the third to be devised but the first to be implemented and tested. The scenario above is exactly why I decided to move this one to the top of the list. This device adds a self contained wireless charger kit from China to the Core and the Charging LED was converted into an input for the Core. Additionally, I use this control panel to raise and lower the head of the bed through a relay board I built separately. (more to come on that project)

I designed and printed a box for one side of the bed for initial testing. Once it was pretty clear that I didn't make any critical design errors, I mirrored the design and printed it for the other side. The designs are on my TinkerCad profile as listed below. Please note that this is a early proof of concept design and is not the final finished design. It works as is and we've been using them for a couple of months without issue but you're mileage may vary as they say. I've also posted the super basic POC code on my GitHub profile as well. Please don't send me messages detailing how terrible the code is as I know - it's not finished.

But here is a quick rundown:

 

 

 

 

 

 

 

 

Resources:

Project S1.4-B - Countertop Control Panel

State: Pre-Alpha - In development

Similar to the bedside control panel listed above, the countertop version is intended for central locations in the house. As this unit is still in the initial design stage, there are some aspects that I haven't decided on yet but I am considering the following:

In the end, I may design each of these three as separate projects. More to come on this one.

Project S1.4-C - In-Wall Control Panel

State: Pre-Alpha - In development

This project is wrapping up initial design. Ordinarily, I'll create a very simple proof of concept device and test attributes along the way but due to the riskier nature of this device, I have been proofing individual components and ideas in blocks during the design. My full proof of concept device will start out as a fully designed device that has had individual components stress tested before construction. My goal is to prep this device for UL listing. I'm not sure how I'll pay for it considering the price tag but I'd like to market this product in the future.

Without giving too much away, the goals of this project is to have a MQTT based in wall switch with multiple buttons for controlling more than one device - including the AC circuit it is connected to. There are two versions of this device in development - one with a screen for displaying data per the user's specification and another without.

Project S1.4-D - In-Wall Control Panel with Dimmer

State: Pre-Alpha - In development

This project is in its early design stage. The goals of this project is similar to the project above but also incorporates a dimming circuit instead of just on/off control of the circuit.

Project S1.4-E - In-Wall Three-way Switch Control Panel with Circuit State

State: Pre-Alpha - In development

This project is wrapping up initial design. The goals of this project is similar to the project S1.4C above but is designed to be one node in a three-way switch configuration. The three-way part is simple enough. The challenge is in creating circuit that can detect the state of the load without injecting voltage in the line as some devices in this category do.

Related Posts