Diy Re-Configurable ESP01 Wifi-Button With Charging Base

by The Young Maker in Circuits > Wireless

1024 Views, 3 Favorites, 0 Comments

Diy Re-Configurable ESP01 Wifi-Button With Charging Base

20230302_162414.jpg
F3DLXCGLER4AYXY.jpg

This project is an ameliored version of Luigi Pizzolito's Wifi-Button. You can go check his original project here

Supplies

20230302_154735.jpg
20230302_101829.jpg
20230302_101714.jpg
20230302_121542.jpg
20230228_140308.jpg
20230228_140600.jpg
20230228_140617.jpg
20230228_150223.jpg
20230228_150256.jpg
20230302_144457.jpg
20230302_144356.jpg

Material used for the wifi button :

  • An ESP-01 or ESP-01S (In my case , I have an ESP-01S)
  • A 40mAh or similar Li-Po Battery (I took mine from here)
  • A custom PCB (The Gerber files can be found on my Github)
  • A 3D printed case (The 3D files can be found on my Github)
  • A small pushbutton (I took mine from here)
  • Some small wires (I took mine from a small broken speaker)

Material used for the charging base :

  • A small charging module (I took mine from here)
  • A small cable for the charging module (I took mine from here)
  • A custom PCB (The Gerber files can be found on my Github)
  • A 3D printed case and its base (The 3D files can be found on my Github)
  • 2 small connector (I used these but you can take the ones that you prefer)
  • Some copper wire

FLAR3QMLEO9F7ZQ.jpg
F5WZ53PLEO9F7ZP.jpg

First , we need to sand the PCBs to be sure that they fit perfectly in their respective place

Programming

20230228_152214.jpg

This project is fully open source, if you want to modify the code it's on Luigi Pizzolito's GitHub. But there is no need to. This button can be reconfigured without reprogramming.

You can download the pre-compiled code here.

Just plug in your ESP programmer and your ESP8266(Remember to connect GPIO_02 to GND to enter programming mode) and upload the .bin file and the SPIFFS data.

It's very important to upload the SPIFFS data folder, without it the code will not boot. And after removing the pin headers having to go back to reprogram will be very tedious.

Schematic

Schematic_esp button schematics_2023-03-02.png

You can rely on this schematic to assemble the circuit.

Desolder the Pin Header

20230302_124351.jpg
20230302_124404.jpg

First, be 100% sure that you programmed the ESP8266 correctly and 100% sure you uploaded the SPIFFS data.

Then the first step is to desolder the 2x4 pin header, this will let us make our button smaller. But it also means you can't reprogram without resoldering it. Make sure the program and SPIFFS are flashed.

To remove the header , I first remove the plastic piece so it is easier to desolder the pins.

Solder the Pushbutton

20230302_101855.jpg

You will need to solder the pushbutton between GND and RST

Connect CH_PD to VCC

th.jpg

If you have an esp01, you need to connect CH_PD to VCC. If you have an esp01s like in my case , you dont need to connect them so you can skip and go to the step. You can refer to the image to know wheter you have an esp01 or an esp01s.

Remove the Power LED

Again, if you have an esp01s you can skip this step. The button needs to consume as little power as possible. And since it is always on, the power led would always be consuming ~4mA. This would reduce the battery life to twelve hours. So desolder it or snap it off.

Solder the Red Wire to 3.3v

20230302_102405.jpg

We now need to solder the red wire to 3.3v

Solder the Black Wire to GND

20230302_102513.jpg

We now need to solder the black wire to GND

Solder a Wire to RX

20230302_102718.jpg

We now need to solder a wire to RX

Solder Battery

20230302_102953.jpg
20230302_103037.jpg

We need to solder the battery positive (+) to 3.3v and the battery negative (-) to GND

Solder Wires to the Small PCB

20230302_103540.jpg
20230302_103537.jpg
20230302_103327.jpg
FZPTF7VLER4A03L.png

For this step you can refer to the schematics of step 2 .We need to connect the 3.3v wire to the side of the PCB which has a + .We also need to connect the GND wire to the side of the PCB which has a - and connect the RX wire to the hole in the middle of the PCB

Put the Circuit in the Case

20230302_120909.jpg
20230302_120904.jpg
20230302_120530.jpg
20230302_101604.jpg
20230302_120919.jpg
20230302_120900.jpg
20230302_120853.jpg
20230302_120913.jpg

For this step I suggest you to slide the esp first in its destinated hole and put the lipo battery after. After you can test to see if your button works and if yes , you can glue the pcb in the 3d printed case like in the images.


The Charging Base

We will now make the base that will charge our button.

Solder the Small Connectors on the PCB

20230302_152153.jpg
20230302_152155.jpg

We need to solder the small connector . I suggest you to use tweezers since it is very tricky to place the connectors correctly without them

Solder the Copper Wires to the PCB

20230302_152306.jpg
20230302_154700.jpg

We need to connect the negative wire so it correspond to the negative side on your button and the same thing for the positive wire. We also need to put the Pcb in its respective hole like in the picture

Solder the Cables for the Charging Module

20230302_154652.jpg

We now need to solder the positive copper wire with the positive for the charging module and the same thing for the negative wire

Put the Charging Module in the Charging Base

20230302_162248.jpg

You need to put your connected charging module in its hole and you can glue the bottom piece to hide all the circuitry

Configure

FYZFIQ7JDUKGJE9.png

You are almost ready to use your button for the first time.

To enter configuration mode you need to connect the contact in the middle of the button's PCB with the GND contact. Then by pressing the button to reset the ESP, it should enter configuration mode.

Then you can simply:

  1. Connect to 'ESP_Button' WiFi Access Point, with the password 'wifibutton'
  2. Visit http://192.168.4.1 to open the configuration page.
  3. After setting your values, click on the 'Save' button then the 'Restart'
  4. Your button will restart, perform the request and enter deep sleep.

Make sure to only type the hostname in the host field, no http:// or https:// and separate the rest of the URL in the URI fields.

Enjoy

FHTJ4QILER4AYXX.jpg
20230302_162431.jpg

You can now use your button for whatever you want!

If you have any issues or need help troubleshooting please leave a comment down below.

Anyone is welcome to give ideas on how to improve this.

Leave a comment if you want me to do more project like that.