This electronic project is intended as a romantic gimmik for two long distance lovers. The candle is connected to the io.adafruit.com cloud over WiFi.
Whenever one person turns on their own candle, the candle of their lover - on the other side of the world - will light up as well.
The project is built around the Adafruit Feather boards and uses the 15x7 LED matrix and the WiFi enabled Feather HUZZAH board based on the ESP8266 microcontroller. The IoT handling is built around the MQTT service of io.adafruit.com.
"Guet Nacht" is wishing a good night in Swiss German. When I was working on this project I said good night to my loved person by telling them "Guet Nacht - I love you". Ultimately I decided that this is the codename for this project.
There are three different variants for the hardware configuration which ultimately determines the functionality and software capabilities. Yes you can build just the candle without WiFi.
The candle can also be hung from the ceiling.
This is the most simple and straight forward variant. The essential parts are the Adafruit 15x7 CharliePlex LED Matrix FeatherWing and the Adafruit Trinket M0. This variant is just the candle powered over micro USB. The micro USB connector is at the top (where the flame is) so the candle could be hanged from the ceiling. Alternatively you can add a USB Micro-B Breakout Board at the bottom of the board to power the candle at the socket.
This variant is driven by any Feather board capable of compiling the candle animation sketch. The Feather boards provide an on-board battery charger. At the back of the candle's PCB there is space for a Keystone 1042P battery holder for a 18650 3.7V battery (this feature is not tested).
This is the original Idea. The Trinket holds the code for the flame animation while the Feather HUZZAH is connected to the Adafruit IO cloud. This variant can also be powered by a battery like variant 2.
This feature remains untested. Also note that the ESP8266 uses a significant ammount of power, up to 170mA when transmitting data over Wifi (source). This may result in very short battery service life).
This is the partlist for the WiFi enabled candle.
Description | Value | Manufacturer | Pcs. | Part. Nr. (mouser) | price (estimation) |
---|---|---|---|---|---|
Candle PCB | - | - | 1 | $ 10.00 | |
15x7 CharliePlex LED Matrix FeatherWing (warm white) | - | Adafruit (3163) | 1 | 485-3163 | $ 13.30 |
Feather HUZZAH with ESP8266 WiFi | - | Adafruit (2821) | 1 | 485-2821 | $ 18.00 |
Trinket M0 | - | Adafruit (3500) | 1 | 485-3500 | $ 9.20 |
18650 battery clip SMT | - | Keystone Electronics | (1) | 534-1042P | $ 3.10 |
18650 Li-Ion battery 3.7V | - | - | (1) | ||
Resistor SMD 1206 | 10k | - | 2 | ||
$ 0.10 | |||||
Resistor SMD 1206 | 330R | - | 1 | $ 0.10 | |
LED 0805 | - | - | 1 | ||
Pushbutton SMD 12mm | - | - | 1 | eg. 611-PTS125SK43SMTR2 | $ 0.50 |
Pushbutton SMD 6.2mm | - | - | 1 | eg. 611-KSC701GLFS | $ 0.50 |
Capacitor SMD 1206 | 100uF | - | (2) | ||
Capacitor SMD 0805 | 0.1uF | - | (2) | ||
USB Micro-B Breakout Board | - | Adafruit (1833) | (1) | 485-1833 | $ 1.50 |
Total * | ~$ 50.00 |
(* The prices are just an estimation. Especially the PCB can only be ordered in larger quantities (>5 pcs).)
Important: The above parts are just for one board. In order to build the two connected candles each component is required twice the ammount listed.
Notes
- You can either place a 12mm or a 6.2mm push button on the front. (You also need a 6.2mm button on the back).
- The USB Micro-B Breakout Board is optional for the variants 1 & 2 (not required on variant 3)
- optional: the capacitors are not required
- optional: the battery holder and the 18650 battery are optional (only work on a feather variant (2 & 3))
You can download the manufacturing files (Gerbers) and use them to order the PCBs from a PCB manufacturer of choice. I recommend using black solder mask and ENIG surfacing.
Places where you can order custom circuit boards (selection):
Setting up the Arduino IDE:
- Download the Arduitno IDE
- How to up the Adafruit Trinket M0
- How to up the Adafruit Feather HUZZAH
The following libraries are required to compile the software in the Arduino IDE.
This is the Arduino code for the Trinkete M0 which you will need for Variants 1 and 3.
Note for Variant 1 (just the candle):
You might need to comment the pinMode(PIN_ONOFF_WEB, INPUT);
on line 68
so that the input isn't floating and randomly switching the flame on and off.
This is the Arduino code soley for Variant 2 where the matrix is powered by any Feather microcontroller board.
This is the Arduino code you need for the WiFi enabled Variant 3. This goes to the Feather HUZZAH board to connect to the Adafruit IO cloud and control the Trinket M0.
The first time you turn on the candle you will have to configure the WiFi and the MQTT parameters. Luckily the software has a configuration portal built in, so you won't have to hardcode these parameters into the Arduino file.
This way you can give away a candle to someone who does not know how to program.
You need to:
- create an Adafruit account
- log in to io.adafruit.com
- create a new feed called
candle
You need the following values to continue:
username
(find it on accounts.adafruit.com)key
(find it on io.adafruit.com)feed
(the feed your just created:candle
)
You can find more detailed instructions on how to get started with Adafruit IO on Adafruit's learning platform: learn.adafruit.com
If you give away one candle to your lover:
Important Both candles require the same values for
username
/key
/feed
in order to be synchronized.
Your partner does not require an Adafruit account. Just give them your own username
/ key
/ feed
so that they can set up their candle as follows:
Hold the button on the back of the candle and turn on the feather candle. You can do this two ways:
- hold the button on the back then plug in the USB connector to power the device on
- hold the button on the back then press the reset button on the Feather HUZZAH itself while power is already on
finally release the button on the back.
Take your phone or computer and search for WiFi networks. You should see a network called Feather Candle
- the password is iloveyou
.
If you have successfully connected to the access point it should direct you to a "sign-in" page. If this does not happen just open your browser and open the webpage 10.0.1.1. On this page you have 4 buttons available.
This page shows you the MAC address and other information about the ESP8266 that is on the Feather HUZZAH.
In the most cases this is the only page that you will need.
Choose a WiFi network on the list of available networks and enter the password.
The ESP8266 only works with 2.4GHz networks.
On this page you have a bunch of other values that you can configure.
Name | Description | Default | need to change? |
---|---|---|---|
mqtt_server |
address to the MQTT server | io.adafrtuit.com |
no |
mqtt_port |
MQTT server port | 1883 |
no |
aio_key |
Adafruit IO key | yes | |
aio_username |
Adafruit IO username | yes | |
aio_feed |
Adafruit IO feed | candle |
optional (*) |
aio_poll_interval |
interval to check for changes in [s] | 3 |
optional (**) |
aio_last_will |
last value to send on disconnect | 0 |
optional |
(*) the name of your Adafruit IO feed
(**) not implemented yet, see issues - default value is 3 seconds
mori.london sets out to define a completely new category of LED lighting: playful, emotional, atmospheric and elegant, always innovative and always low power and low impact on the environment.
Developer: Jaco Burge
by Moritz Waldemeyer & Ingo Maurer
Turn on your heartlight. Let it shine wherever you go. Let it make a happy glow. For all the world to see.
[wontfix]
one of the through hole clips on the battery holder must be cut off in order to mount it on the backside of the PCB
☐ test battery lifetime
☐ add secure api interface (https requests / port 8883 for SSL)
- wbphelps - FeatherCandle Software for 15x7 Feather Wing LED matrix
- Adafruit - Tutorial and software for the Flame Pendant
- tzapu - WiFiManager library and example code
- bblanchon - Arduino Json library
Adafruit invests time and resources providing this open source design, please support Adafruit and open-source hardware by purchasing products from Adafruit!
Creative Commons Attribution-ShareAlike 4.0 CC BY-SA 4.0