Skip to content

1. CitizenWatt

Nicolas Loubet edited this page Feb 19, 2017 · 1 revision

CitizenWatt est un capteur open source et open hardware dont les sources sont intégralement disponibles sur Github. Il est associé à un Raspberry Pi sur lequel sont stockées les données et est exécutée l'application CitizenWatt (écrite en Python). Les sources ont été légérement adaptées pour une utilisation sur la carte PINE64+, en remplacement du Raspberry Pi.

PINE64

Sources

Dépôts GitHub :

receive.cpp a été remplacé par un programme Python suite à l'ajout de l'Arduino.

Capteur CitizenWatt

Montage Pine64/Arduino

Les versions actuelles des différentes distributions Linux disponibles pour le PINE64+ ne supportent pas l'interface SPI, nécessaire à la communication avec le nRF24L01+. En attendant la sortie de drivers kernel compatibles, la solution de contournement est d'utiliser un Arduino Uno comme intermédiaire.

CitizenWatt Sensor ((( ))) nRF24---Arduino---PINE64+

Connexion entre l'Arduino et le Transceiver nRF24

nFR24L01+ Arduino Uno
GND GND
VCC 3.3V
CE 7
CSN 8
SCK 13
MOSI 11
MISO 12
IRQ -

Sketch Arduino

Modification des sources de CitizenWatt

  • receive.py : Ce programme permet de faire le lien entre les données envoyées par l'arduino et leur copie en base de données.
  • process.py : utilisation d'un fichier au lieu d'un pipe

Installation

L'installation des packages et des librairies indiqués dans les scripts sh est effectuée de façon manuelle (dans l'attente d'une éventuelle automatisation).

Copie des sources : déplacer les sources dans /opt/citizenwatt

Installation de Python 3.4

$ sudo aptitude install python3 gcc python3-pip python3-dev  

Installation des packages nécessaires

$ sudo aptitude install postgresql supervisor avahi-daemon redis-server iptables-persistent
$ sudo aptitude install postgresql-server-dev-all

Installation des modules Python

$ sudo pip3 install requests sqlalchemy pycrypto numpy cherrypy psycopg2 redis

Création du user citizenwatt sous Debian

$ sudo adduser citizenwatt

Mot de passe : citizenwatt

Création de la base de données

$ sudo -u postgres psql
[sudo] password for debian: 
psql (9.4.9)
Type "help" for help.

postgres=# CREATE DATABASE citizenwatt;
postgres-# CREATE USER citizenwatt PASSWORD 'citizenwatt';
postgres-# GRANT ALL ON DATABASE citizenwatt TO citizenwatt;
postgres-# exit
postgres-# 

Paramétrage du pare-feu

iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination :8080
/etc/init.d/iptables-persistent save

Modification des hostname et hosts

Remplacement de "pine64" par "citizenwatt" dans les fichiers /etc/hostname et /etc/hosts

Copie du fichier de configuration pour le superviseur

debian@citizenwatt:/opt/citizenwatt$ mv supervisor_citizenwatt.conf /etc/supervisor/conf.d/supervisor_citizenwatt.conf

Dans la version actuelle, suite à de pb de lancement au démarrage, cf. issue #3 sur Github, les programmes receive.py et process.py sont lancement manuellement. Ils sont donc commentés dans la config.

En lançant receive.py et process.py, les données mesurées sont affichées en temps réel :

appli CitizenWatt

Clone this wiki locally