Parts you'll need:
-ESP8266 Wifi Module
-40x15mm 1v mini solar cell (x3)
-LIR2032 rechargeable coin cell (x2)
-LM1117 SOT-223 5v and 3.3v regulators
-APA106 F8 8mm Led
-5v .3 A mini SPDT slide switch
-DC step up converter or "Jewel Thief" (i used a 6W 2v-6v to 12v step up but any with an output higher than 7.2v will work fine)
-1N4148 Diode or any generic diode
-small screws ( i used standard computer/hard drive size screws)
-little bits of scrap wire
-3.3v USB Serial Console Cable or logic level converter
-jumper wires (and breadboard helps)
-super glue or hot glue
-heatshrink and/or electrical tape
Each part can be found on ebay for less than a couple dollars, or even cents each.
All parts print without support material! Settings arent too critical, just make sure to have your extrusion rate properly calibrated to make all of the curves. A bit slower and more precise speed setting is definitely recommended.
There are 4 parts, the main body, top cap/bonnet, bottom plate, and battery strap/clip. Original designed cadd files included for your convenience.
The wiring Diagram is attached and it is definitely will take a bit of wiggling to get things settled inside, but I recommend soldering nice long leads to each component first, the gluing and/or just placing the components in place, and then finally trimming to length and soldering together the final connections. Be sure to use enough heatshrink and E-tape to cover up all exposed metal to prevent any accidental shorts.
!!!ATTN: CHANGE ON WIRING DIAGRAM!!!
MUST ADD 100 ohm or 220 ohm RESISTOR BETWEEN ESP AND Din of LED
The ESP8266 is a really cool chip, because not only is it dirt cheap, but it also has a pretty powerful built in processor and can be wired into the LED directly using a one wire protocol, the same as a WS8212 led, eliminating the need for an additional in between microcontroller.
The only snafu is that the ESP runs on 3.3v logic but the APA106 led runs on 5v logic. Therefore we will need 2 voltage regulators for each voltage. I originally thought I was going to need a logic level shifter to convert the 3.3v signal from the ESP to the 5v signal the LED needs, but it turns out the APA106 works perfectly fine without it so we don't need one after all.
To program the ESP8266 module we can actually use the super popular free Arduino IDE to upload our code.
Here is a really awesome tutorial I found on how to setup programming an ESP8266 Module and more:
(you can also get an inexpensive DHT-11 sensor and make a cool wifi weather stat with the same parts!)
I highly recommend searching around Adafruit's Learning System if you are relatively new to the world of DIY electronics as they have alot of really great stuff.
For the application to control the light I used Web2Py which is a fully web-based python full-stack framework and development environment. In layman's terms it is basically a swiss army knife of web developing bundles.
You can get started programming your own websites in about half an hour following Mike Herman's Web2Py Crash Course Lessons:
I folllowed the lessons from knowing absolutely nothing about web programming and made a pretty decent app from it in no time! He also shows you how to host your app on your very own cloud for free using www.pythonanywhere.com
Here is my app for your viewing pleasure:
My app is still in its infancy but it gets the job done. It cycles through 5 colors you can set, and allows you to control the fade speed. More features to come in the future.
For it to work both your light and mobile device have to on the same wifi network. You will get error messages while messing around with my app because it will fail to find a connection. The app passes arguments to the ESP module as a web client using URLs, just like typing your favorite website address into your internet search bar.
PACKED WEB2PY APP AND ARDUINO CODE NOW UPLOADED IN DOWNLOADS SECTION!!!
Super quick web2py start:
- Go To http://www.web2py.com/init/default/download
- Download and unzip appropriate install package for your system.
- In unzipped folder open "Web2py.exe"
- When GUI window pops up enter any password then "Start Server"
- A window should now open in your browser, this is web2py's programming and operating environment, it is all run in-browser. Click "admin" and enter the password you made up before. This is where you edit your programs.
- On the right side go to Upload Application select the .w2p file you downloaded from this thingiverse thing and give it whatever name you want. Hit okay and wait until it saves.
- From the admin "editing" page if you click on the app you just named it will open the app. To edit the app click on manage > edit. Go to controllers > default > edit and enter the serverURL ip address that the arduino program gave you in the serial window. (more arduino installation instructions in arduino .ino file)
- Now open the app as explained in step 7. and viola! It should work. If it gives you error messages whenever you click on things that means it doesnt have a connection to the ESP8266. Make sure you have the right server ip address in the web2py program, and also make sure your ESP8266 is connecting to the internet by checking the Arduino Serial Monitor. Turning the ESP board On and Off usually will get it to reconnect. Remember, you also must be on the same wifi!
Most Importantly please check out the tutorials on the links above, as they can explain so much more that I simply do not have the space to go over here!
The arduino code is pretty well commented and has install instructions in it. Also looking at the ESP8266 Adafruit Tutorial linked above is a MUST!
Worst case you are having trouble with web2py the arduino code defaults to a pretty rainbow mode!
The potential for this light is limitless! It truly has infinite number of uses and can create the most exciting light shows you can dream of! As long as you can figure how how to program it of course :)
The WiFireflyte has tons of potential for expansion too! Design new bases, hooks and hangars, put additional charging and programming ports, develop killer Android and iOS apps, even networking between multiple units for crazy light shows! Most importantly...
JUST HAVE FUN WITH IT!!!!
Thanks and I hope you enjoy!
Questions, Comments, Concerns? Post up in the Comments!