The Ferraris Energy Meter is an energy meter with a rotating disc. The rotation speed depends on the energy consumption. Counting the rotation will give a value for the current consumption.
The rotating disc has a little black mark on the side. The black mark is detected by a little optocoupler and a comparator which was described here.
The impulses are counted by the Arduino UNO. Every 15 minutes the counter is stored on a SD-Card together with the current timestamp. The counter is reset to zero after this. Therefore the log file will contain 15 minute counts of energy consumption together with date and time of logging.
A RTC is used to store the current date and time even on power loss. The RTC shield also contains a SD-Card interface and some space for your own components. To set the RTC to the correct date and time a Bluetooth module is connected. To save energy this BT module is only powered for 5 minutes after reset or if a button on the RTC shield was pressed. The power line of the BT module is controlled by a transistor which is controlled by one of the Arduino IO ports.