Most mains energy meters have an LED which flashes 500 or 1000 pulses for every measured kWh. A photo-diode mounted in front of this LED detects the flashes. Every pulse is converted to a clean digital signal by an adjustable comparator with hysteresis followed by a 74HC14 Schmitt-trigger. The resulting pulses can be inverted by means of a jumper. A falling edge triggers an interrupt of the ATMega328. The firmware counts the interrupts and calculates the equivalent energy in Wh. Every 60 seconds the result is published to the MQTT broker on topic 'distributioncabinet/energy/solar'.
- Runs on low spec microcontroller (Uno, Nano, Mini, and other ATMega328-based boards)
- Runs on low spec microcontroller (Uno, Nano, Mini, and other ATMega328-based boards)
- Wired ethernet via ENC28J60 Ethernet module
- Wired ethernet via ENC28J60 Ethernet module
- Gets ip address via DHCP
- Gets ip address via DHCP
- Stores data in EEPROM to prevent data loss
- Stores data in EEPROM to prevent data loss
- Easy to configure by telnet port 1000
- Easy to configure via telnet port 1000
## Requirements
## Requirements
@ -22,7 +30,7 @@ Inspired by https://www.instructables.com/A-Simple-MQTT-PubSub-Node-With-Arduino
The Device gets its IP address via DHCP. Make sure you have a working DHCP server on the network.
The Device gets its IP address via DHCP. Make sure you have a working DHCP server on the network.
The ip address and port of the MQTT broker can be set by connecting to the device via telnet on port 1000.
The ip address and port of the MQTT broker can be set by connecting to the device via telnet on port 1000.
To set the ip address of the MQTT broker use the command ": <ipaddress>". For example, to set the ip address to 192.168.1.10 type ": 192.168.1.10" and hit enter.
To set the ip address of the MQTT broker use the command ": <ipaddress>". For example, to set the ip address to 192.168.1.10 type ": 192.168.1.10" and hit enter.