├── Config ├── ESPClicker_Initial_Firmware │ ├── ESPClicker_Initial_Config.txt │ └── ESPClicker_Initial_Firmware.bin └── espclicker.yaml ├── LICENSE ├── PCB ├── ESPClicker_Bom.csv ├── ESPClicker_Gerber.zip └── ibom.html ├── README.md └── img ├── 3D_Render.jpg ├── ESPClicker.jpg ├── Interactiv_HTML_Boom.jpg ├── Schematic.jpg ├── adopt.jpg └── dot.jpg /Config/ESPClicker_Initial_Firmware/ESPClicker_Initial_Config.txt: -------------------------------------------------------------------------------- 1 | substitutions: 2 | name: "espclicker" 3 | friendly_name: "ESPClicker" 4 | 5 | 6 | esphome: 7 | name: "${name}" 8 | name_add_mac_suffix: true 9 | project: 10 | name: pricelesstoolkit.espclicker 11 | version: "1.0" 12 | 13 | esp8266: 14 | board: d1_mini 15 | early_pin_init: false 16 | 17 | wifi: 18 | ssid: !secret wifi_ssid 19 | password: !secret wifi_password 20 | fast_connect: true 21 | ap: 22 | ssid: "${name} Fallback Hotspot" 23 | password: "password" 24 | ap_timeout: 10s 25 | 26 | captive_portal: 27 | 28 | logger: 29 | 30 | api: 31 | 32 | ota: 33 | 34 | # This should point to the public location of this yaml file. 35 | dashboard_import: 36 | package_import_url: github://PricelessToolkit/ESPClicker/Config/espclicker.yaml@main 37 | import_full_config: true # or true 38 | 39 | sensor: 40 | 41 | - platform: adc 42 | pin: A0 43 | name: "${friendly_name} ADC" 44 | update_interval: 5s 45 | 46 | - platform: uptime 47 | name: "${friendly_name} Uptime" 48 | id: uptime_seconds 49 | 50 | - platform: wifi_signal 51 | name: "${friendly_name} WiFi Signal" 52 | 53 | binary_sensor: 54 | 55 | - platform: status 56 | name: "${friendly_name} Status" 57 | 58 | - platform: gpio 59 | pin: 60 | number: 13 61 | inverted: true 62 | mode: 63 | input: true 64 | filters: 65 | - delayed_off: 400ms 66 | name: "${friendly_name} AC_Sens" 67 | 68 | switch: 69 | - platform: restart 70 | name: "${friendly_name} restart" 71 | 72 | 73 | ########################################## 74 | - platform: gpio 75 | pin: 4 76 | id: Relay1 77 | name: "${friendly_name} Relay1" 78 | icon: "mdi:switch" 79 | restore_mode: ALWAYS_OFF 80 | ########################################## 81 | - platform: gpio 82 | pin: 5 83 | id: Relay2 84 | name: "${friendly_name} Relay2" 85 | icon: "mdi:switch" 86 | restore_mode: ALWAYS_OFF 87 | ######################################## 88 | - platform: gpio 89 | pin: 12 90 | id: Relay3 91 | name: "${friendly_name} Relay3" 92 | icon: "mdi:switch" 93 | restore_mode: ALWAYS_OFF 94 | ######################################## 95 | - platform: gpio 96 | id: LS1 97 | name: "${friendly_name} LS1" 98 | icon: "mdi:switch" 99 | restore_mode: ALWAYS_OFF 100 | pin: 15 101 | ######################################## 102 | - platform: gpio 103 | id: LS2 104 | name: "${friendly_name} LS2" 105 | icon: "mdi:switch" 106 | restore_mode: ALWAYS_OFF 107 | pin: 14 -------------------------------------------------------------------------------- /Config/ESPClicker_Initial_Firmware/ESPClicker_Initial_Firmware.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PricelessToolkit/ESPClicker/1d6e0cd224170c43efb963174e90dd12b5625bd4/Config/ESPClicker_Initial_Firmware/ESPClicker_Initial_Firmware.bin -------------------------------------------------------------------------------- /Config/espclicker.yaml: -------------------------------------------------------------------------------- 1 | ################################################################################################################################################# 2 | #!!!!!!!!!!!!!!!!! AFTER CLICKING "ADOPT" CLICK ON "TREE DOTS" AND CLICK "RENAME HOSTNAME" AND PUT "espclicker-XXXXXX" SUFFIX !!!!!!!!!!!!!!!!!# 3 | #!!!!!!!!!!!! WITHOUT THIS IT WILL BE IMPOSSIBLE TO DO OTA UPDATE,BECAUSE ESPhome WILL TRY TO RESOLVE ADDRESS ON "espclicker.local" !!!!!!!!!!!# 4 | #!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! OR YOU CAN UPLOAD THE FIRMWARE VIA USB OR VIA CAPTIV PORTAL !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!# 5 | # 6 | ### UPLOAD VIA WIFI Captive Portal ## 7 | # The captive portal component in ESPHome is a fallback mechanism for when connecting to the configured WiFi fails. 8 | # After 1 minute of unsuccessful WiFi connection attempts, the ESP will start a WiFi hotspot with the credentials 9 | # 10 | # SSID "ESPClicker-XXXXXX Fallback Hotspot" 11 | # Password "password" 12 | # 13 | # When you connect to the fallback network, the web interface should open automatically (see also login to network notifications). 14 | # If that does not work, you can also navigate to http://192.168.4.1/ manually in your browser. In this web interface, 15 | # you can manually override the WiFi settings of the device. Additionally, you can upload a new firmware file to your node without having to use a USB cable for uploads. 16 | # 17 | ### UPLOAD VIA USB ### 18 | # 1. Open your ESPHome dashboard. 19 | # 2. Create new ESPhome device and paste your config then save it 20 | # 3. Find your device card click on menu (TREE DOTS) 21 | # 4. Click on Install 22 | # 5. Click on Manual Download 23 | # 6. Click on Modern Format 24 | # 7. After Completion, the firmware will be automatically downloaded 25 | # 8. Open https://web.esphome.io/, Push and hold "ESPClicker" BOOT button then plug in usb cable and click CONNECT. 26 | # 9. Click on button "Choose File" select downloaded firmware and Click INSTALL 27 | ################################################################################################################################################# 28 | 29 | 30 | substitutions: 31 | name: "espclicker" 32 | friendly_name: "ESPClicker" 33 | 34 | 35 | esphome: 36 | name: "${name}" 37 | name_add_mac_suffix: true 38 | project: 39 | name: pricelesstoolkit.espclicker 40 | version: "1.0" 41 | 42 | esp8266: 43 | board: d1_mini 44 | early_pin_init: false 45 | 46 | wifi: 47 | ssid: !secret wifi_ssid 48 | password: !secret wifi_password 49 | fast_connect: true 50 | ap: 51 | ssid: "${friendly_name} Fallback Hotspot" 52 | password: "password" 53 | ap_timeout: 10s 54 | 55 | captive_portal: 56 | 57 | logger: 58 | 59 | api: 60 | 61 | ota: 62 | 63 | sensor: 64 | 65 | - platform: adc 66 | pin: A0 67 | name: "${friendly_name} ADC" 68 | update_interval: 5s 69 | 70 | - platform: uptime 71 | name: "${friendly_name} Uptime" 72 | id: uptime_seconds 73 | 74 | - platform: wifi_signal 75 | name: "${friendly_name} WiFi Signal" 76 | 77 | binary_sensor: 78 | 79 | - platform: status 80 | name: "${friendly_name} Status" 81 | 82 | - platform: gpio 83 | pin: 84 | number: 13 85 | inverted: true 86 | mode: 87 | input: true 88 | filters: 89 | - delayed_off: 400ms 90 | name: "${friendly_name} AC_Sens" 91 | 92 | switch: 93 | - platform: restart 94 | name: "${friendly_name} restart" 95 | 96 | 97 | ########################################## 98 | - platform: gpio 99 | pin: 4 100 | id: Relay1 101 | name: "${friendly_name} Relay1" 102 | icon: "mdi:switch" 103 | restore_mode: ALWAYS_OFF 104 | ########################################## 105 | - platform: gpio 106 | pin: 5 107 | id: Relay2 108 | name: "${friendly_name} Relay2" 109 | icon: "mdi:switch" 110 | restore_mode: ALWAYS_OFF 111 | ######################################## 112 | - platform: gpio 113 | pin: 12 114 | id: Relay3 115 | name: "${friendly_name} Relay3" 116 | icon: "mdi:switch" 117 | restore_mode: ALWAYS_OFF 118 | ######################################## 119 | - platform: gpio 120 | id: LS1 121 | name: "${friendly_name} LS1" 122 | icon: "mdi:switch" 123 | restore_mode: ALWAYS_OFF 124 | pin: 15 125 | ######################################## 126 | - platform: gpio 127 | id: LS2 128 | name: "${friendly_name} LS2" 129 | icon: "mdi:switch" 130 | restore_mode: ALWAYS_OFF 131 | pin: 14 -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | BSD 3-Clause License 2 | 3 | Copyright (c) 2023, PricelessToolkit 4 | 5 | Redistribution and use in source and binary forms, with or without 6 | modification, are permitted provided that the following conditions are met: 7 | 8 | 1. Redistributions of source code must retain the above copyright notice, this 9 | list of conditions and the following disclaimer. 10 | 11 | 2. Redistributions in binary form must reproduce the above copyright notice, 12 | this list of conditions and the following disclaimer in the documentation 13 | and/or other materials provided with the distribution. 14 | 15 | 3. Neither the name of the copyright holder nor the names of its 16 | contributors may be used to endorse or promote products derived from 17 | this software without specific prior written permission. 18 | 19 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 20 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 21 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 22 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE 23 | FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 24 | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 25 | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 26 | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 27 | OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 28 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 29 | -------------------------------------------------------------------------------- /PCB/ESPClicker_Bom.csv: -------------------------------------------------------------------------------- 1 | Id;Designator;Footprint;Quantity;Designation;Supplier and ref 2 | 1;K2,K3,K1;Relay_DPDT_Omron_G6K-2P-Y;3;G6K-2P-Y_DC3;LCSC C119084 3 | 2;R7,R4,R2,R3,R5,R10,R8,R6,R1;R_0603_1608Metric;9;10K;LCSC C99198 4 | 3;Q2,Q3;SOT-23-3;2;MMBT3904-TP;LCSC C77991 5 | 4;C5,C1,C3;C_1206_3216Metric;3;22uf;LCSC C12891 6 | 5;U1;ESP-12E;1;ESP-12F;LCSC C82891 7 | 6;U2;SOT-23-5;1;SPX3819M5-L-3-3;LCSC C5370980 8 | 7;C4,C2,C6;C_0603_1608Metric;3;0.1uf;LCSC C14663 9 | 8;J1;JST_GH_SM12B-GHS-TB_1x12-1MP_P1.25mm_Horizontal;1;Conn_01x14_Male;LCSC C265421 10 | 9;BOOT;TS342A2P-WZ;1;SW_Push;LCSC C557591 11 | 10;R9;R_0603_1608Metric;1;1M;LCSC C304688 12 | 11;Q1;SOIC-16_W3.90mm;1;ULN2003ADR;LCSC C7512 13 | 12;D1;D_SOD-323;1;1N4148WS;LCSC C917117 14 | 13;R11;R_0603_1608Metric;1;5,1K;LCSC C2907044 15 | -------------------------------------------------------------------------------- /PCB/ESPClicker_Gerber.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PricelessToolkit/ESPClicker/1d6e0cd224170c43efb963174e90dd12b5625bd4/PCB/ESPClicker_Gerber.zip -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # ESPClicker 2 | 3 | 4 | 🤗 Please consider subscribing to my [YouTube channel](https://www.youtube.com/@PricelessToolkit/videos) 5 | Your subscription goes a long way in backing my work. 6 | 7 | 8 | [![ko-fi](https://ko-fi.com/img/githubbutton_sm.svg)](https://ko-fi.com/U6U2QLAF8) 9 | 10 | 11 | # ESPClicker 12 | 13 | ESPClicker is a very simple, ESP8266 based IoT project that will allow you to integrate your normal devices such as a coffee machine, fan, etc, into your Smart home "make them all IoT enabled". Works with Home Assistant And ESPhome. 14 | 15 | YouTube Video: https://youtu.be/Gc4yCd9yvuE 16 | Online Shop: https://www.pricelesstoolkit.com/en/projects/32-espclicker.html 17 | 18 | 19 | 20 | 21 | 22 | ## Technical Specifications 23 | * 4 Layer PCB 24 | * WiFi Module ESP8266 ESP-12F 25 | * 3x Built-in signal relays ( Controll PINS: R1-GPIO4, R2-GPIO5, R3-GPIO12 ) "R1 can be configured as normally open or normally closed" MAX LOAD 500mA 24V 26 | * 2x Low-Side Switch "ULM2003" ( Controll PINS: LS1-GPIO14, LS2-GPIO15 ) MAX LOAD 150mA "1-2 Sec" 27 | * 1x ADC Pin "1V Max" 28 | * 1x ACS Pin "AC Power Detector" (Input Pin GPIO13) 29 | * Requires 5V 500mA power supply 30 | 31 | ## ! WARNING ! 32 | THE COLOR CODE OF THE CABLE DIDN'T MATCH, REAL PIN LABELS ARE ON THE PCB 33 | 34 | 35 | # Programming 36 | 37 | ### ESPHome Dashboard Import "NEW" 38 | CONNECT TO THE ESPClicker FALLBACK NETWORK "ESPClicker-XXXXXX Fallback Hotspot" VIA WIFI AND CHANGE WIFI USERNAME AND PASSWORD, GO TO THE ESPhome AND CLICK "ADOPT" THEN CLICK ON "TREE DOTS" AND CLICK "RENAME HOSTNAME" 39 | 40 | 41 | 42 | AND PUT "espclicker-XXXXXX" SUFFIX 43 | 44 | 45 | 46 | WITHOUT THIS IT WILL BE IMPOSSIBLE TO DO OTA UPDATE, BECAUSE ESPhome WILL TRY TO RESOLVE ADDRESS ON "espclicker.local". 47 | 48 | 49 | ### UPLOAD VIA WIFI Captive Portal 50 | The captive portal component in ESPHome is a fallback mechanism for when connecting to the configured WiFi fails. 51 | After 1 minute of unsuccessful WiFi connection attempts, the ESP will start a WiFi hotspot with the credentials 52 | 53 | ``` 54 | SSID "ESPClicker-XXXXXX Fallback Hotspot" 55 | Password "password" 56 | ``` 57 | When you connect to the fallback network, the web interface should open automatically (see also login to network notifications). 58 | If that does not work, you can also navigate to http://192.168.4.1/ manually in your browser. In this web interface, 59 | you can manually override the WiFi settings of the device. Additionally, you can upload a new firmware file to your node without having to use a USB cable for uploads. 60 | 61 | 62 | ### UPLOAD VIA USB ### 63 | 64 | 1. Open your ESPHome dashboard. 65 | 2. Create new ESPhome device and paste your config then save it 66 | 3. Find your device card click on menu (TREE DOTS) 67 | 4. Click on Install 68 | 5. Click on Manual Download 69 | 6. Click on Modern Format 70 | 7. After Completion, the firmware will be automatically downloaded 71 | 8. Open https://web.esphome.io/, Push and hold "ESPClicker" BOOT button then plug in usb cable and click CONNECT. 72 | 9. Click on button "Choose File" select your firmware and Click INSTALL 73 | 74 | # Schematic 75 | 76 | 77 | # Assembly 78 | ### Easy assembly with interactive iBom file 79 | 80 | 81 | 82 | 83 | ## Additional parts list 84 | * Cable for ESPClicker 12P https://s.click.aliexpress.com/e/_DEXNTZF 85 | * Power Supply 5V 500mA https://s.click.aliexpress.com/e/_DFcN9hb 86 | 87 | Programmer and Test Clip Fixture 88 | * ESP8266 Programmer https://s.click.aliexpress.com/e/_DF4HDaH 89 | * PCB Test Clip Fixture "6P Pogo Pin Minimum" https://s.click.aliexpress.com/e/_Dm3ox9R 90 | * Pogo Pins only https://s.click.aliexpress.com/e/_De0po3L 91 | 92 | 93 | ## Useful links 94 | Home Assistant https://www.home-assistant.io/ 95 | ESPhome https://esphome.io/ 96 | 97 | -------------------------------------------------------------------------------- /img/3D_Render.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PricelessToolkit/ESPClicker/1d6e0cd224170c43efb963174e90dd12b5625bd4/img/3D_Render.jpg -------------------------------------------------------------------------------- /img/ESPClicker.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PricelessToolkit/ESPClicker/1d6e0cd224170c43efb963174e90dd12b5625bd4/img/ESPClicker.jpg -------------------------------------------------------------------------------- /img/Interactiv_HTML_Boom.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PricelessToolkit/ESPClicker/1d6e0cd224170c43efb963174e90dd12b5625bd4/img/Interactiv_HTML_Boom.jpg -------------------------------------------------------------------------------- /img/Schematic.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PricelessToolkit/ESPClicker/1d6e0cd224170c43efb963174e90dd12b5625bd4/img/Schematic.jpg -------------------------------------------------------------------------------- /img/adopt.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PricelessToolkit/ESPClicker/1d6e0cd224170c43efb963174e90dd12b5625bd4/img/adopt.jpg -------------------------------------------------------------------------------- /img/dot.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PricelessToolkit/ESPClicker/1d6e0cd224170c43efb963174e90dd12b5625bd4/img/dot.jpg --------------------------------------------------------------------------------