Skip to content

dgorbunov/WifiTouchLights

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Networked RGB Touch Lamps

Finished Lamp Finished Lamp

I made a set of networked rgb capactive lights this summer, which are similar to Filimin lights for my family and they loved them. I was inspired to do this project when I came across this instructable written by the Filimin founder. The assembly of the lamp loosely follows this guide, but there are some key differences in my version.

While you could just buy a Filimin, making the light yourself is half the fun and is a really meaningful present. The goals of this project were:

  • Low total cost
  • Low latency + reliable server connection
  • Easily changeable WiFi networks
  • Reliable touch sensing

Parts List

  • 3.5" square wooden plaque
  • 12" x 12" x 1/8" Acrylic Sheet (this is just enough for 1 lamp)
  • Bare Conductive Paint (I recommend just one 50ml bottle)
  • WeMos D1 Mini (as opposed to pricey Particle boards + Pi server)
  • 16 Neopixel Ring (buy a clone)
  • Black Spray Paint
  • Acrylic Cement #16 (this is extremely runny, be careful)
  • 470k Resistor
  • High Quality USB Power Supply
  • Gaff tape
  • Tacky Glue

Assembly

I found that putting the paint in a ziploc bag and cutting the corner worked much better than the pens that Bare Conductive sells. Instead of soldering the USB cable to the board as was done in the original guide, I just glued the WeMos in place with the microUSB port flush with the back of the light. A 470k resistor is used because this is the maximum due to the 3.3V logic of the WeMos Base Top Drying Paint Drying Paint

Code

I used a WeMos D1 Mini because they are Wifi capable Arduinos that are under $2 a board, compared to the $35 Particle Boards and Raspberry Pi that was originally used. One big difference is that instead of polling a server like was done in the original Filimin Prototype, I used MQTT for its reliability, low latency, and low packet count. This means that wherever the lights are in the world, they will update instantly with no human noticable latency, compared to the~5 seconds it took the original lights to update.

Additionally, the WifiManager library is used so that if the light ever disconnects from it's WiFi network, an access point will appear where a user can connect and a list will appear with networks that can be connected to.

I wrote all of this code myself, with help from the PubSubClient, WifiManager, Neopixel, and CapacitveSensing example code.

About

Low-cost iOT enabled capacitive touch lights for communicating with loved ones.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages