Introduction: Trigger Your DSLR Wirelessly With Smartphone and ESP8266 Wi-fi Module
This is my first instructable, and English is not my native language, so be lenient (but I would be grateful to anyone pointing out misspellings, typos... ;) ).
It will only cost you a few bucks (pounds, euros or whatever) and require basic soldering skills to wirelessly trigger your DSLR camera from any smartphone, including Self-timer and Intervalometer modes.
I tested it with a Canon DSLR, but it should work with any camera with built-in shutter switch terminal (cf. http://www.doc-diy.net/photo/remote_pinout/)
During this instructable, I will mostly focus on steps where I have some added value, and just give pointers when good informations already exists on the Net.
Precisely, here are some interesting links before I get into the main topic:
- About the different ways to trigger a remote camera
https://www.instructables.com/id/Automatic-Camera-Shutter-Switch/ - All you need to know about remote control for Canon EOS cameras
http://www.doc-diy.net/photo/eos_wired_remote/ - Great tutorial with excellent explanations of optocouplers
http://www.martyncurrey.com/activating-the-shutter-release/
Actually, it was this last tutorial that made me want to get into this project...
Step 1: Shopping List
- ESP8266 Wi-fi module
- USB to serial adapter, with Dupont cables
- battery AAA x 2
- battery holder
- switch
- optocoupler 4N25 or equivalent
- resistor 220 Ohm (actual value depends on optocoupler characteristics)
- small scrap of prototyping board
- tablets tube (nice enclosure :) )
- cable and connector, depending on your camera model
Step 2: About ESP8266...
ESP8266 is a small and very cheap Wi-fi module (with embedded MCU) that comes in many flavors.
For this instructable, I used ESP-01, which is the most common reference.
I got mine directly from China for less than 3€ (Banggood) but if you are not willing to wait two weeks for delivery, google for ESP8266 and you will find many local resellers.
I will not dwell on ESP8266 because many excellent tutorials already exist, describing how to torture this cute little device any possible way.
The only important point concerns NodeMCU firmware, which must be installed in place of the default firmware (aka "AT firmware") coming with ESP8266.
Here are some pointers to useful information about ESP8266:
Technical overview
https://nurdspace.nl/ESP8266General presentations
http://benlo.com/esp8266/esp8266QuickStart.html
https://www.openhomeautomation.net/getting-started-esp8266/
http://www.labradoc.com/i/follower/p/notes-esp8266ESP community forum
http://www.esp8266.com/Open-source alternative firmware (brings Lua scripting to ESP8266)
http://nodemcu.com/index_en.htmlIntegrated Development Environment (IDE) for ESP8266 developers
http://esp8266.ru/esplorer/
Step 3: NodeMCU Installation
Download a recent release of NodeMCU from https://github.com/nodemcu/nodemcu-firmware/releases (for this project, I used nodemcu_integer_0.9.6-dev_20150406) and follow one of these tutorials, depending on your OS:
- http://www.whatimade.today/loading-the-nodemcu-firmware-on-the-esp8266-windows-guide/
- http://randomnerdtutorials.com/flashing-nodemcu-firmware-on-the-esp8266-using-windows/
- http://www.whatimade.today/flashing-the-nodemcu-firmware-on-the-esp8266-linux-guide/
- https://yoannq.wordpress.com/2015/02/22/esp8266-flashing-with-modemcu-firmware-linux-debian-testing/
- http://www.roboremo.com/flashing-nodemcu-firmware-to-esp8266.html
As an alternative, Windows users can use this ESP flasher:
- http://www.xess.com/blog/esp8266-reflash/ (just replace AT firmware by NodeMCU firmware)
Step 4: Lua Scripts Installation
Now that NodeMCU is running, you'll have to feed your ESP8266 with appropriate Lua scripts, available at https://github.com/CosmicMac/ESP8266-remote
Download these 5 files:
- index.html
- favicon.png
- filesend.lua
- init.lua
- server.lua
and upload them to ESP using ESPlorer tool (you need JAVA installed on your computer).
- Connect ESP8266 to your "USB to serial" adapter, and adapter to your computer
- Download ESPlorer
- Unzip the archive and open ESPlorer folder
- Run ESPlorer.bat (Windows users) or ESPlorer.jar
You should see a window similar to above figure - Select your adapter port, 9600 baud rate and press Open
- Wait for Cannot open init.lua message and press Upload... to upload each of the 5 files to ESP
- Stay connected but change baud rate to 115200
- Press Reset
- Wait for Server ready! message
Your ESP module is now ready to get tested (preferably before making the wiring).
You just have to follow instructions from the "Use it" step and check feedback on the terminal screen.
Step 5: Let's Do It...
Wire the parts as on the schematic above.
Because you will sometimes want to modify ESP scripts or firmware, it's preferable to use cables with Dupont connectors rather than directly solder ESP pins.
4N25 optocoupler wiring details:
- pin 1 to VCC throught resistor
- pin 2 to ESP GPIO0
- pin 4 to ground wire of the release cable
- pin 5 to shutter wire of the release cable
Step 6: ... and Use It
Turn your freshly made ESP remote module on, connect it to you camera, get your favorite smartphone ready, and follow each simple step bellow:
- Turn Wi-fi on
- Connect to access-point named ESP (password: 12345678)
- Point your browser to IP adress 10.10.10.10
You should see a web page similar to screen shot above - Press Trigger and enjoy the delicate sound of your camera shutter... :)
You can now play with Self-timer and Intevalometer settings.
The Sound option is intended as an audio feedback for Self-timer, but doesn't seem to work with Android Chrome.
If you feel like needing this nice option, just install Firefox.
Unfortunately, neither Vibration nor Sound seem to work with Safari...
Well... This is this end of my first instructable.
I hope you'll appreciate it and I'm looking forward to your feedback.
Happy remote triggering!
Stay tuned!
My next instructable will introduce my wireless camera trap, based on ESP8266 (what else?) coupled with a PIR sensor.
Oh, and if you don't feel like waiting for it, have a look at https://github.com/CosmicMac/ESP8266-trap