Ambient information displays allow a home automation system to provide you with subtle feedback embedded within your environment. Concealing RGB LEDs behind a wall tile allows them to display status information when they are turned on, but still be totally invisible when turned off.
View directly on YouTube: https://youtu.be/cQtFoTWKa9o
Parts Required
- Addressable RGB LED modules
- WeMos D1 Mini or Freetronics EtherTen
- SuperHouseTV D1 Mini Power Shield (if using D1 Mini)
- Power-over-Ethernet injector
- Power-over-Ethernet splitter
- Plastic case
- Home automation controller such as a Raspberry Pi running OpenHAB
Assemble Hardware
Because I installed the tile so many years ago, I used original Freetronics Addressable RGB LED Modules that came out before the term “NeoPixel” was invented and used the WS2801 driver IC. Newer modules use the WS2812B, which integrates the controller chip into the LED body itself.
Connect up as many LEDs as you need, and glue them in place behind the tile. It’s best to keep the controller somewhere accessible in case you need to replace or repair it, so just have the LEDs permanently fitted behind the tile. You don’t want to have to rip out tiles and then re-tile your wall just to plug in a USB cable and update the firmware!
Software
I’ve published an example sketch that has two separate functions: firstly it subscribes to an MQTT topic and watches for messages telling it to change the colour of an LED, and secondly it reads periodically from a DHT-22 temperature and humidity sensor and publishes the readings to other MQTT topics.
You can see the example sketch at https://github.com/jonoxer/BasicOTAFastLEDHumidMQTT
[…] Read more and get the source code here […]
[…] Read more and get the source code here […]
Do you have the complete source code with the libraries as i cannot seem to fins all the correct ones to compile it?
[…] SuperHouseTV #14: Ambient tile using Arduino, ESP8266, and NeoPixel compatible LEDs […]
The code is having an error on 60th line. It says
‘MQTT’ does not name a type
exit status 1
‘MQTT’ does not name a type
That means you don’t have the PubSubClient library installed. You can install that in the Arduino IDE by going to Sketch -> Include Library -> Manage Libraries, searching for PubSubClient, and clicking Install.