
Medindo nosso consumo de eletricidade com um Raspberry Pi
Continuando com documentos de coisas curiosas que podemos fazer com um Raspberry Pi, Algo muito simples de conseguir é, por exemplo, medir o consumo de eletricidade do que quisermos, Neste documento, veremos como conectar sensores de corrente não invasivos a um Raspberry Pi e medir o custo de nossa casa, pois vamos conectá-lo ao painel elétrico de nossa casa! Exportaremos as métricas para um banco de dados MySQL e, em seguida, com o Grafana, criaremos um painel onde podemos ver de forma muito intuitiva o que gastamos e quanto gastamos!
Nada mau, O que precisamos para continuar monitorando ou dando um toque de automação residencial à nossa casa? Pessoalmente, a coisa mais barata que encontrei e isso é interessante, é colocar um pouco de chapéu na framboesa, Eu recomendo você do fabricante Chacal uma vez que possui diferentes HATs que atenderão a quaisquer que sejam nossas necessidades, uma vez que podemos conectá-los a partir de 1 Sensor não intrusivo até 8, depende do HAT que queremos, Claro, quanto mais sensores você aceitar, mais caro, mas acho que o preço é mais do que acessível, ir… E se quisermos colocar mais sensores não intrusivos, montamos quantos HATs precisarmos, um em cima do outro! Então:
Recomendo que você revise esta lista de sensores para que cada um possa pegar o que mais lhe interessa: http://lechacal.com/wiki/index.php/Main_Page
O mais barato, durante 3 Sensores, alguns 12 Libras: http://lechacal.com/wiki/index.php/RPICT7V1_v2.0. Lembre-se ao comprá-lo que o saída estar no formato CSV, Você verá quando comprá-lo, mas tenha isso em mente!
Então seria necessário adquirir quantos sensores não intrusivos precisarmos: SCT-013-000. Nós os temos no mesmo site ou na Amazon ou eBay por cerca de € 4 cada.
Em seguida, conectaremos o HAT ao Raspberry Pi e os sensores que temos; Nas pinças dos sensores, levaremos em consideração a passagem de apenas um cabo, ei! E nada, com isso poderemos saber o consumo em Watts (W) O que cada coisa faz?’ que nós temos beliscado. Podemos medir a partir de qualquer aparelho elétrico, bem como o que foi dito, Coloque isso no painel elétrico da casa e meça o consumo a partir daí, se o tivermos bem rotulado, não será difícil para nós medir o Consumo geral ou o da Iluminação, Consumo dos plugues, da geladeira, forno, máquina de lavar, Aquário… O que eu sei!
Com este comando poderemos conecte-se por série ao HAT E ver o que ele cospe. Você verá que, dependendo do HAT que você comprou, você poderá ver o, tensão ou temperatura, que é o que este comando vai cuspir para você separado em vírgulas.
[Código-fonte]stty -F /dev/ttyAMA0 velocidade bruta 38400
cat /dev/ttyAMA0[/Código-fonte]
Agora, O que faremos é Trate essas saídas (em formato CSV), No meu exemplo, se você olhar para ele, retorna os watts de 7 Sensores não intrusivos, Cada um deles eu conectei a um cabo no meu painel elétrico, Quando você vir o código, verá quais correntes eu meço (Geral, Plugues de fogão, Máquina de lavar louça e máquina de lavar roupa, Iluminação, o Forno e a Placa Vitrocerâmica, e plugues. Em seguida, exporto essas informações para uma tabela que criei anteriormente no MySQL, Então precisaremos ter o MySQL instalado em alguma máquina (ou instale-o no próprio Pi) e criaremos o banco de dados e a tabela que queremos lá, Eu te dou meu exemplo que tem uma coluna para cada sensor:
[Código-fonte]CREATE TABLE 'Comum' (
'geral' FLOAT NULL DEFAULT NULL,
'fogões' FLOAT NULL DEFAULT NULL,
'lavavajillas_lavadora' FLOAT NULL PADRÃO NULL,
'iluminação' FLOAT NULL DEFAULT NULL,
'horno_vitro' FLOAT NULL PADRÃO NULL,
'plugs' FLOAT NULL DEFAULT NULL,
'date' TIMESTAMP NOT NULL PADRÃO CURRENT_TIMESTAMP NA ATUALIZAÇÃO CURRENT_TIMESTAMP
)
COLLATE='latin1_swedish_ci’
ENGINE=InnoDB
;[/Código-fonte]
E nada, Agora só temos que ter este maravilhoso script em python que preencherá a tabela 'Córrego’ do nosso banco de dados! Criamos esse script:
corriente.py
[Código-fonte]#!/usr/bin/python
Importar serial
Importar urllib
Importar JSON
importar MySQLdb
ser = serial. Serial('/dev/ttyAMA0', 38400)
resposta = ser.readline()
z = resposta.split(",")
Se Len(z)>=7:
print "Geral: %s Watts" % z[0]
print "Fogões: %s Watts" % z[1]
print "Máquina de lavar louça e lavar roupa: %s Watts" % z[2]
print "Iluminação: %s Watts" % z[3]
print "Forno & Vitro: %s Watts" % z[4]
print "Plugues: %s Watts" % z[5]
general_valor=z[0]
estufas_valor=z[1]
lavavajillas_lavadora_valor=z[2]
alumbrado_valor=z[3]
horno_vitro_valor=z[4]
enchufes_valor=z[5]
db = MySQLdb.connect("localhost","raiz","xxxxxx","NOMBRE_BASE_DATOS")
cursor = db.cursor()
cursor.execute("""INSERIR NO fluxo (Geral,Fogões,lavavajillas_lavadora,iluminação,horno_vitro,Plugues) VALORES (%s,%s,%s,%s,%s,%s) """, (general_valor,estufas_valor,lavavajillas_lavadora_valor,alumbrado_valor,horno_vitro_valor,enchufes_valor))
db.commit()[/Código-fonte]
E é isso! O que resta é programar esse script para ser executado com o intervalo em que estamos interessados, Correr ‘crontab -e‘ e adicionamos o seguinte para que ele seja executado, por exemplo, a cada minuto:
[Código-fonte]* * * * * python /home/pi/corriente.py[/Código-fonte]
O que seria o Ginda para terminar? Bem, o habitual, graças a Grafana, Poderemos trabalhar em qualquer dado de uma forma super simples e rápida, como neste exemplo, uma tabela MySQL. Se você não tiver o Grafana montado, revise Este documento, e depois disso, você pode criar um painel onde adicionará o que quiser. Aqui estão alguns exemplos:
Gráfico onde adicionamos a métrica e eu pintei para nós, neste caso, o Consumo dos plugues:
[Código-fonte]SELECT enchufes como valor, "Plugues" como métrica, UNIX_TIMESTAMP(data) como time_sec DE corriente ONDE $ __timeFilter(data) Encomendar por time_sec ASC[/Código-fonte]
Gráfico onde adicionamos a métrica do Consumo de iluminação:
[Código-fonte]SELECT alumbrado como valor, "Iluminação" como métrica, UNIX_TIMESTAMP(data) como time_sec DE corriente ONDE $ __timeFilter(data) Encomendar por time_sec ASC[/Código-fonte]
Com o plugin Singlestat podemos mostrar, por exemplo, o despesas correntes do Fundo Geral de Desenvolvimentol:
[Código-fonte]SELECT geral FROM ordem atual por data desc limit 1[/Código-fonte]
Espero que você tenha achado útil, Seja livre para modificá-lo e personalizá-lo conforme necessário! Como estou dizendo em outros posts, Estou usando essas bobagens em um daqueles espelhos mágicos ou MagicMirror, onde eu fico bonito de manhã e eu tenho algumas informações, Um dia eu vou te contar tudo sobre isso, Mas por enquanto, Aos poucos! Se você chegou até aqui, obrigado por me ler! e todos que você compartilha nas redes sociais!