I have used the FireBeetle ESP32 board along with a LiPo cell to power the device. Modify the code to fit your needs.
- Added battery monitoring
- Added WiFi singal strength indicator
- Added battery charging indicator
- Added auto sleep feature
- Case
- Custom PCB design
- Wireless charging
I have added subtitutions for all the entities so that it is much easier to get everything up and running. The remote currently consists of 3 pages: Lights, Home page and Media. Edit the entitiy ids to suit your setup.
Currently you can add 4 lights.
#Lights
#Entity ids for lights
light_1: light.bedroom_lamp
light_2: light.bathroom_bulb
light_3: light.kitchen_bulb
light_4: light.living_room_bulb
#Titles for lights
light_1_title: Bedroom
light_2_title: Bathroom
light_3_title: Kitchen
light_4_title: Livingroom
}
Add a temprature sensor and weather enitiy. The scenes are handled by an input select that contains all the scenes.
#Home page
temprature_sensor: sensor.bathroom_temperature
weather: weather.home
scenes: input_select.scenes
Almost any media player in home assistant should work.
#Media
media: media_player.adityas_bedroom
Place all the fonts in "fonts" folder inside the esphome folder.
I have used the internal pull-up feature of the ESP32 to minimise the number of components and the complexity of the circuit. Connect one end of the button to ground and the other end to the corresponding pin.
GPIO PIN | Button |
---|---|
23 | Up |
27 | Down |
25 | Right |
19 | Left |
26 | Ok |
03 | Home |
18 | Lights |
13 | Media |
36 | Battery voltage |
14 | Battery charging |
Pressing the 'Ok' button wakes up the device and long pressing the 'Home' button puts the device to sleep.
I have used a 1000 mAh LiPo battery directly connected to the FireBeetle board. The board comes with built in battery protection circuit. Connect a potential divider of value 100K and 220K to the battery to read battery voltage. The charger pin can be connected to pin 14 to read the charging state.
Your support will help me make more cool projects just like this one :-)