close-circle
Close
0%
0%

ESP8266 Dash Button

A simple inexpensive Wifi Button!

Similar projects worth following
close
This is inspired by Amazon Dash Button. So I made this open sourced project to make Wifi buttons. All circuits, board, 3D printed case files are available. You can press a button to request an URL. Also you can config wifi network and URL wirelessly by your android device.

This is a small box with only one button. Every time you push the button. It will connect to WiFi and access an URL.

WiFi SSID and Password can be configured through ESP-TOUCH protocol and the URL can be changed by UDP packet. Two LEDs on it's case shows status of module and circuit.

When button is pressed, the circuit powers ESP8266 module and the module will connect to WiFi with SSID and password in flash memory. Once Wifi connection is established, this button will request a certain URL in flash memory and turn itself off to save power.

For ESP-TOUCH, there is no official code to do it, however I did some decompile from a obfuscated APK file. The android code is not easy to read but it do works well with esp-touch functions on ESP8266. So softAP is not needed here to config WiFi network.

  • 1 × ESP-12 module
  • 1 × 1k*2 10k*3 100K*6 0805 resistors
  • 1 × IRLML6402 and IRLML2502
  • 1 × SOD123 Diode MBR0520
  • 1 × push button

View all 7 components

  • 1
    Step 1

  • 2
    Step 2

    When all parts are soldered. You can connect VBat and GND to a 3~3.3V power source, Connect GPIO0 to GND (only for programming). And connect a 3.3V serial adapter to TX, RX and GND (Board TX to adapter RX, Board RX to adapter TX). When you get ready you can press the button and ESP module should be in download mode.

    Trouble shoot: reconnect power and connect serial with 74880 rate and watch output. Press button and you should see something like "boot mode(x,y)". If you x is 1, means it is ready to receive firmware data. If it is 3, check if GPIO0 is connected to GND.

    And you can refer to makenburn.bat to burn firmware to module. Or you can use other tool to do it.

    Trouble shoot: reconnect power and connect serial with 74880 rate and watch output. Press button and you should see debug data of the board.

View all instructions

Enjoy this project?

Share

Discussions

klvk wrote 01/25/2017 at 22:57 point

If I want to write my own code on esp, which pins need to be high/low on startup?

  Are you sure? yes | no

Tyler Spadgenske wrote 11/28/2016 at 23:41 point

Have you considered using Amazon DRS?(https://developer.amazon.com/dash-replenishment-service) Its a complete API and I haven't seen any mortal hobbyist use it yet.

  Are you sure? yes | no

arnaud.durand wrote 03/15/2016 at 23:12 point

Awesome project! According to the schematics (https://github.com/DeqingSun/ESP8266-Dash-Button/blob/master/circuit/esp8266_dash_button_pcb.pdf), there are 100k resistors in parallel with the LEDs. What is their purpose?

  Are you sure? yes | no

deqing wrote 03/15/2016 at 23:36 point

It is a pull up resistor. Just in case the LED can not pull up compeletly.  

  Are you sure? yes | no

arnaud.durand wrote 03/15/2016 at 23:50 point

Thanks for your answer. May I ask why GPIO0 and GPIO2 need to be pulled up? Flashing?

  Are you sure? yes | no

deqing wrote 03/16/2016 at 00:12 point

Make sure LED will be off when pin is internally pulled down.

  Are you sure? yes | no

Roman Ayala wrote 08/13/2015 at 18:11 point

Hi, I like too much your project. However, in my country I did not find that MOSFET and DIODE. Do you know if are some similar components that I could use? Thanks

  Are you sure? yes | no

arnaud.durand wrote 03/15/2016 at 23:09 point

If you are OK to wait a few weeks then you can find it on Chinese suppliers like aliexpress. Many of them have free shipping to most countries.

  Are you sure? yes | no

tewing wrote 07/24/2015 at 05:03 point

I have a hand tremor that prevents me from soldering surface mount components. Is there someplace I can order a kit with the components soldered in place?

Thanks. 

Terry

  Are you sure? yes | no

Catalin Anesia wrote 07/09/2015 at 18:24 point

Thanks for sharing!; a very valuable project for me.

  Are you sure? yes | no

Pradeep Valluripalli wrote 05/19/2015 at 19:35 point

Hey HI,

How can i get this circuit & do my simple hobby project ?

could you please help me on this ?

Thanks in advance.

  Are you sure? yes | no

deqing wrote 05/19/2015 at 19:39 point

  Are you sure? yes | no

Pradeep Valluripalli wrote 05/20/2015 at 10:24 point

SInce I'm out side of US.. can i use this design for fabrication in my country ?

  Are you sure? yes | no

deqing wrote 05/20/2015 at 14:49 point

Then you can use gerber files in my github repo.

  Are you sure? yes | no

stripeytype wrote 05/13/2015 at 23:10 point

Ohhhh MAN this is cool.
run it off a CR2032, and instead of a button, *any* kind of normally-open electrical contact.

  Are you sure? yes | no

deqing wrote 05/14/2015 at 14:47 point

ESP8266 do need a huge current on startup. Even can reset an Arduino. That's why I use 2 AA batteries. 

  Are you sure? yes | no

Doug LaRue wrote 05/12/2015 at 03:46 point

I have to stick one of these in the mail box! Great idea and implementation.

  Are you sure? yes | no

Moritz Walter wrote 05/11/2015 at 21:00 point

Love this! Also great how you solved the wifi setup!

  Are you sure? yes | no

Adam Fabio wrote 05/11/2015 at 04:26 point

I can already see a use-case for this - I'm a forgetful guy, I like to say my stack always overflowing. I could use one of these in my life! Similar to amazon's use - if the bathroom is out of TP, just hit the button, which will kick out an email, reminding me to replace the roll (which I WILL forget by the time I leave the room) . This will make my wife happy, and restore peace accross the universe :) 

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates