Introduction: Esp8266-12 Blynk Wireless Electric Power Meter

this project is to measure the electricity consumption in my Home and show on my smartphone or tablet.

It is very cheap and simple to make.

This second project perfectly complements with:

ESP8266-12 standalone blynk control outlets wireless 433 mhz

the next step will be to combine the two projects and create an automated home

Step 1: Materials




10 k resistor

power regulator 3,3v

Step 2: Connections


VCC +3,3v

CH_PD +3,3v

GND ground

gpio5 ground

gpio2 ---- pin 5 (Attiny85)



pin 1 nc

pin 3 ---- sensor LDR

pin 4 ground

pin 5 ------ gpio2 (ESP8266-12)

pin 8 +3,3v

Step 3: LDR Sensor

  • connect the sensor LDR as in the diagram
  • attach the sensor with hot glue or adhesive tape in front of the LEDs of the electricity meter
  • if the electricity meter is lit from the sun or lights, you can shield using a black cardboard
  • adjust the sensitivity of the sensor in the sketch, so as to detect only the impulse of the LED of the electricity meter. ( step 5)

Step 4: Configure Blynk

store app

Blynk Apple Store

Blynk Google Play store

configure blynk

create new project ( use hardware model esp8266 )

generate AUTH TOKEN

send E-mail TOKEN ( copy TOKEN in the esp8266 sketch)

in the app Blynk use Value Display widget or Gauge widget

Step 5: Sketch

Blynk library

SimpleTimer library


to programming the ESP8266-12, I use ide arduino 1.6.5 and CP2102 3.3V USB To UART Serial Interface Module Adaptor ( do not connect the power of the CP2102 to esp8266-12).

to programming Attiny85 I use ide 1.6.5 and Arduino uno (Arduino as ISP).


the electric meter emits 1 led pulse for every watt that measure

ATtiny85 detects the Led pulse using a sensor LDR

send to interrupt input of gpio2 ESP8266-12

sketch calculates the elapsed time between two pulses and calculates the power consumption, and displays it on the app Blynk.


attiny85 sketch

adjust the sensitivity of LDR sensor ( I use low sensibility and protect from light with the black cardboard)

if (FotoR <=200) // LDR sensor, change sensibility


ESP8266 sketch

change the sketch in the following lines with your data

char auth[] = "xxxxxxxxxx"; //insert here your token generated by Blynk

Blynk.begin(auth, "ssid", "password!"); //insert here your SSID and password

esp8266-12 gpio pin

the interrupt pin is the same as the gpio pin

if you want to change the pin, not use gpio16 or pin ADC, because it is not an interrupt

all gpio pin are interrupt (excluded gpio16 and ADC)

Step 6: Thanks

Thanks by catoplepa