Actualització al Openenergymonitor amb RaspberryPi

Utilitzar una RaspberryPi amb l’Openenergymonitor m’ha portat molts mal de caps. Ho munto, ho deixo funcionant i després d’una setmana em trobo que no funciona. Oh!! sorpresa!! la memòria flash s’ha mort. Ho he provat 3 vegades, 3 memòries flash llençades a les escombraries.

Miro pels forums i quasi bé ningú en parla excepte aquest article:
http://openenergymonitor.org/emon/node/2143

Ho he provat i ara ho tinc en marxa, si així aguanta haurem de concloure que les memòries flash no són massa indicades per fer-hi córrer un MySQL que rebi dades cada 6 segons…

més d’encendre leds amb la Raspberry Pi

Dissabte 9 de març de 2013

GEEKS DE LA NIT

Jugant amb leds hem fet diversos exercicis. Amb un botó encenem un led, però és la Raspberry que detecta l’estat del botó i actua en conseqüència.

Això ens permet fer després que quan apretem el led s’encengui un botó i quan el deixem s’encengui un de diferent.

I com a exercici final fem que quan apretem el botó i el deixem anar el led s’encén, després hi tornem i s’apaga. O sigui, no cal tenir el botó apretat per tenir el led encés… El codi d’aquest últim exercici ha quedat:

import RPi.GPIO as GPIO
import time

GPIO.setmode(GPIO.BCM)
GPIO.setup(17, GPIO.OUT)
GPIO.setup(21, GPIO.IN)

var=1
boto=0
espera=0
while var==1 :
if ( espera==0 ):
if ( GPIO.input(21)== True ):
espera=20
if (boto==1):
boto=0
else:
boto=1

if ( boto==1 ):
GPIO.output(17, True)
time.sleep(0.1)
else:
GPIO.output(17, False)
time.sleep(0.1)
if (espera!=0):
espera=espera-1

Canvi de teclat a la Raspberry Pi

Un cop hem instal·lat la distribució podem canviar el teclat editant el fitxer /etc/default/keyboard i canviant el següent paràmetre:

XKBLAYOUT="gb"

 

Control del corrent que gastes a casa

Ja tinc funcionant el control d’energia elèctrica que gasto a casa. De què es tracta ?? Doncs d’unir les següents peces:

– Un sensor de corrent elèctic en forma de pinça amperimètrica.
– Un OpenEnergyMonitor EmonTX. Es tracta d’una electrònica que mesura aquest consum i l’envia per ràdio a un receptor. Prendrem una mesura cada 6 segons.
– Un OpenEnergyMonitor RFM12Pi. És una altra electrònica que recull les dades que li envia l’EmonTX. Aquesta informació la passa a una Raspberry Pi a través del port sèrie del GPIO i la Raspberry Pi s’encarrega de registrar les dades en una base de dades.
– A través de l’aplicació web EmonCMS podem graficar, veure en temps real o fer el que vulguem amb les dades obtingudes.

Aquí tenim una imatge de l’EmonTX i la RFM12Pi muntada sobre la Raspberry Pi:

Si voleu fer el mateix aquí teniu el procés que he seguit jo:

1.- Primer comprem una pinça amperimètrica. Jo l’he comprada a cooking-hacks.com, la trobareu en aquets link. Per si no sabeu de què parlo aquí en teniu una foto:

Sembla trivial aquesta part, però potser és la més complicada. Hem de fer passar el cable de corrent principal per dins la pinça amperimètrica. I Alerta !! no hi podem fer passar els 2 fils (fase i neutre) que no funcionarà. Hem de buscar un punt on poguem posar la pinça al voltant de la fase o al voltant del neutre, però mai de tots 2 alhora. A més necessitem que a prop hi hagi corrent per alimentar el EmonTX, si no haurem d’alimentar-lo amb bateries i és un pal…

En el meu cas he posat la pinça al cable que entra al diferencial general de casa, dins del quadre elèctric. Ha costat una mica fer-li entrar, però ja hi és. Només em falta posar un endoll al costat i ja ho tinc a punt per deixar-ho definitiu.

2.- La pinça va connectada a un EmonTX, que podem comprar a openenergymonitor.com. És un element OpenHardware i per tant ens el podem fer nosaltres, però és més senzill comprar-lo i ja està. Cal ser una mica destre amb el soldador, ja que ve la placa i tots els components dins una bosseta i ens hem de dedicar a soldar-ho seguint les intruccions. Ho podem comprar en aquest link. Un cop soldat obtindrem aquest circuit:

Per soldar-lo cal seguir aquestes instruccions. Però aquí no acaba tot, cal programar-lo amb el Firmware adequat. El EmonTX és un hardware que es base en Arduino i es programa amb les mateixes eines. Necessitem un cable FTDI que potser ja tindreu d’altres invents. Si no en teniu el podeu comprar a la mateixa botiga de openenergymonitor.com seguint aquest link.

Un cop teniu tot el hardware us poseu amb el software. Baixeu i instal·leu l’entorn de programació d’Arduino d’aquest link. També necessiteu el driver del FTDI que el trobareu en aquest link. Ara ja només us cal baixar el firmware del EmonTX i les llibreries que necessita. Tot això ho trobeu explicat en aquest link.

Si només voleu utilitzar les pinces amperimètriques el firmware que necessiteu és el emonTx_CT123 que heu de retocar convenientment per activar les pinces que voleu utilitzar (màxim 3). En el Firmware també haureu de donar un identificador al EmonTX amb la variable nodeID. Jo l’he deixat a 10, no té massa importància si només utilitzes un EmonTX. Si en vols posar més d’un has d’utilitzar aquesta variable per identificar cadascun dels EmonTX. La variable networkGroup serveix per separar grups de sensors entre ells, jo l’he deixat a 210 per defecte, però ho hem de tenir en compte per programar la Raspberry amb el mateix valor.

Un cop alimentem el EmonTX pel connector miniUSB i li connectem la pinça veurem que el led fa pampallugues cada 6 segons, indicant que va prenen mesures i les va enviant.

3.- Anem per la part receptora de les mesures amperimètriques. A la mateixa botiga de openenergymonitor.com podem adquirir el mòdul RFM12Pi que ens permetrà rebre les mesures i passar-les a la Raspberry Pi. Seguiu aquest link. Aquest mòdul també bé a punt per soldar, però és molt més senzill que el EmonTX. Seguiu el passos que trobareu en aquest link per soldar-lo (En arribar a l’apartat ATtiny84 pareu). Obtindreu un circuit com aquest:

Abans de connectar-lo a la Raspberry Pi hem de preparar-la. Deixem a part aquest mòdul i quan la Raspberry Pi estigui preparada ja li connectarem.

4.- Suposem que a aquestes alçades tothom ja sap què és una Raspberry Pi. Si no sabeu què és mireu l’entrada de la Wikipèdia que parla de la Raspberry Pi, aconseguiu-ne una i aneu tard a dormir… Si voleu nosaltres en venem online en aquest link. A part de la Raspberry Pi necessiteu una targeda SD de mínim 4GB, cable microUSB i un alimentador USB. Més o menys tindreu això:

Primer cal gravar un Sistema Operatiu a la targeta SD per tal de tenir un entorn operatiu. Openenergymonitor un diu que munteu una Raspbian, però jo ho he fet amb Occidentalis i ha anat perfecte. Occidentalis és una versió de Raspbian que s’ha currat els de Adafruit.com i que està molt bé. Trobareu les intruccions per tenir una Raspberry Pi amb Occidentalis en aquest link.

Ara torneu a les instruccions de muntatge del RFM12Pi i seguiu les instruccions a partir de l’apartat Raspberry Pi Setup. És la part més embolicada, però amb una mica de paciència arribareu a bon port. SORT !!!

 

Encendre led amb la Raspberry Pi

Primers passos amb la Raspberry Pi. El circuit de la foto activa una entrada a la Raspberry Pi quan es polsa el botó, en resposta a aquesta entrada activem el led. Pràctica interessant perquè permet introduir el comportament de les entrades i sortides digitals.

I aquí tenim el codi utilitzat:

import RPi.GPIO as GPIO
import time
import os

GPIO.setmode(GPIO.BCM)
GPIO.setup(17, GPIO.OUT)
GPIO.setup(24, GPIO.IN)

var=1
while var==1 :
  if ( GPIO.input(24)== False ):
    GPIO.output(17, True)
    time.sleep(0.1)
  else:
    GPIO.output(17, False)
    time.sleep(0.1)

La Raspberry Pi utilitza la distribució d’Adafruit amb l’IDE de programació basat en Python.