Skip to main content

AC Current Meter for Raspberry PI with GPIOZERO and MCP3008

Project description


**********
**ENERPI**
**********

⚡⚡ AC Current Meter for Raspberry PI ⚡⚡
=======================================

A simple current meter based on:

- **SCT-030 030** Current sensor,
- **MCP3008** Analog to Digital converter (on RASP.IO Analog Zero Hat)
- **Raspberry PI**

* Plus a little web server (**flask** based) with real-time streaming, beautiful **matplotlib** svg's,
and some **bokeh** plots.

.. Warning:: TODO Hacer descripción del módulo

-------------------------------


To get started:

.. code:: bash

pip install enerpi

enerpi -h


CLI Help:

.. code::

usage: enerpi [-h] [-e] [-r] [-d] [-f [TS]] [-p [IM]] [--store ST] [--compact]
[--backup BKP] [--clear] [--clearlog] [-i] [--last] [--temps]
[-l] [--debug] [-v] [-T ∆T] [-ts ∆T] [-w ∆T]

⚡⚡ ︎ENERPI AC CURRENT SENSOR ⚡⚡

AC Current Meter for Raspberry PI with GPIOZERO and MCP3008

optional arguments:
-h, --help show this help message and exit

☆ ENERPI Working Mode:
→ Choose working mode between RECEIVER / SENDER

-e, -s, --enerpi ⚡ SET ENERPI LOGGER & BROADCAST MODE
-r, --receive ⚡ SET Broadcast Receiver mode (by default)
-d, --demo ☮️ SET Demo Mode (broadcast random values)

ℹ️ QUERY & REPORT DATA:
-f [TS], --filter [TS]
✂️ Query the HDF Store with pandas-like slicing:
"2016-01-07 :: 2016-02-01 04:00" --> df.loc["2016-01-07":"2016-02-01 04:00"]
(Pay atention to the double "::"!!)
· By default, "-f" filters data from 24h ago (.loc[2016-08-07 17:14:48:]).

-p [IM], --plot [IM] ⎙ Plot & save image with matplotlib in any compatible format.
· If not specified, PNG file is generated with MASK:
"enerpi_potencia_consumo_ldr_{{:%Y%m%d_%H%M}}_{{:%Y%m%d_%H%M}}.png" using datetime data limits.
· If only specifying image format, default mask is used with the desired format.
· If image path is passed, the initial (and final, optionally) timestamps of filtered data
can be used with formatting masks, like:
"/path/to/image/image_{:%c}_{:%H%M}.pdf" or "report_{:%d%m%y}.svg".

⚙ HDF Store Options:
--store ST ✏️ Set the .h5 file where save the HDF store.
Default: "/Users/uge/Dropbox/PYTHON/PYPROJECTS/enerpi/enerpi/../DATA/enerpi_data.h5"
--compact ✙✙ Compact the HDF Store database (read, delete, save)
--backup BKP ☔️ Backup the HDF Store
--clear ☠ Delete the HDF Store database
--clearlog ⚠️ Delete the LOG FILE at: "/Users/uge/Dropbox/PYTHON/PYPROJECTS/enerpi/enerpi/../DATA/enerpi.log"
-i, --info ︎ℹ️ Show data info
--last ︎ℹ️ Show last saved data

☕ DEBUG Options:
--temps ♨️ Show RPI temperatures (CPU + GPU)
-l, --log ☕ Show LOG FILE
--debug ☕ DEBUG Mode (save timing to csv)
-v, --verbose ‼️ Verbose mode ON BY DEFAULT!

⚒ Current Meter Sampling Configuration:
-T ∆T, --delta ∆T ⌚ Set Ts sampling (to database & broadcast), in seconds. Default ∆T: 1 s
-ts ∆T ⏱ Set Ts raw sampling, in ms. Default ∆T_s: 12 ms
-w ∆T, --window ∆T ⚖ Set window width in seconds for instant RMS calculation. Default ∆T_w: 2 s

*** By default, ENERPI starts as receiver (-r) ***

============ =============
|left-image| |right-image|
============ =============

|plot-image|


.. code::

⚡ ︎ENERPI AC CURRENT SENSOR ⚡⚡
AC Current Meter for Raspberry PI with GPIOZERO and MCP3008
SENDER - RECEIVER vía UDP. Broadcast IP: 192.168.1.255, PORT: 57775
⚡ 17:10:51.380: 378 W; LDR=0.546 ◼◼◼◼◼◼◼◼◼◼◼◼︎⇡


.. |left-image| image:: https://github.com/azogue/enerpi/blob/master/docs/screenshot_cli_enerpi%20local%20receiver.png?raw=true
:width: 100%
:alt: CLI Receiver
:align: bottom

.. |right-image| image:: https://github.com/azogue/enerpi/blob/master/docs/screenshot_cli_enerpi%20compact%2C%20backup%2C%20clear%20store.png?raw=true
:width: 100%
:alt: CLI Compact & Backup data
:align: bottom

.. |plot-image| image:: https://github.com/azogue/enerpi/blob/master/docs/sample_plot_power_consumption_ldr.png?raw=true
:width: 120%
:alt: Matplotlib plot sample
:align: bottom


Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

enerpi-0.9.7.tar.gz (1.0 MB view details)

Uploaded Source

Built Distribution

enerpi-0.9.7-py2.py3-none-any.whl (1.1 MB view details)

Uploaded Python 2 Python 3

File details

Details for the file enerpi-0.9.7.tar.gz.

File metadata

  • Download URL: enerpi-0.9.7.tar.gz
  • Upload date:
  • Size: 1.0 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for enerpi-0.9.7.tar.gz
Algorithm Hash digest
SHA256 3af0ec8d6cd6ce929c56f60d3b0684451cb8745084da559555d494ebd106e22c
MD5 19ad102bbb45bab756fe8ebfabdc3402
BLAKE2b-256 e1fada52e03af54dfd6d1b3e0ce9213dfb65ce6b2a7e2bfe9167695f537dab1b

See more details on using hashes here.

File details

Details for the file enerpi-0.9.7-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for enerpi-0.9.7-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 cd91410e405900c9fb5689fb36308cb92d4557091f80374141023ef77bd9673f
MD5 6aed4926f81fd42ecb1615185789780a
BLAKE2b-256 5b26369401a752295fc1317074a065212b5135a33aff294221f0f6abbd9b2533

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page