Messages : 1,463
Sujets : 137
Inscription : May 2011
Réputation :
0
J'ai créé un nouveau fil pour discuter de ce point, car il me semble effectivement qu'il y a plein de choses à faire...
(03/03/2014, 15:44:08)RemyB a écrit : Salut fma38,
En fait je pense qu'il y a une piste à creuser du coté du Raspberry et les diverses cartes d'extensions que l'on peut lui greffer.
http://www.abelectronics.co.uk/products/...ter-boards
Exemple cette carte I/O 32 ports. On peut imaginer un peu de code en python pour convertir l'état des entrées(ou sorties, configurable) en KNX et vice-versa. Transformer le Raspberry en device "cheap" pour certaines applications non-critiques.
Ce qui ferait un module 32 ports pour un peu moins de 70€.
Le RPi a quelques I/O, qui permettent déjà de faire des choses ; il y a au moins une ligne série, un port SPI, I²C... Après, on peut effectivement ajouter une carte comme celle citée, mais c'est du luxe
Je vais creuser l'idée du RPi ; je vais ajouter un package 'board', dans lequel il sera possible de mettre des modules pour le support plus fin de la carte sur laquelle pKNyX tourne. Genre pour accéder au GPIO du RPi...
Tu aurais le temps de tester pKNyX sur un RPi ?
Messages : 51
Sujets : 5
Inscription : Sep 2013
Salut fma38,
Je vais avoir un peu de temps cette semaine au soir pour tester pKNyX sur RPi, avec carte 9 bus 1-wire Pridopia et une vingtaine de capteurs DS18S20.
J'ai choisi cette carte en remplacement de mon interface 1wire maison car elle se trouve facilement sur la baie, elle sera donc facile à utiliser par d'autres utilisateurs, le dévellopement ne se limitera pas à mon usage perso.
http://www.pridopia.co.uk/pi-2482-800.html
La liaison entre la carte et pKNyX se fera via OWFS.
J'ai commandé également ceci, dans le but d'en faire un device 32i/o pKNyX :-)
http://www.pridopia.co.uk/pi-23s17-2-lp.html Existe en I²C ou SPI.
Liste de toutes les extensions chez Pridopia: http://www.pridopia.co.uk/ixx-rspi.html
Messages : 1,463
Sujets : 137
Inscription : May 2011
Réputation :
0
Super, tiens-moi au courant. Une chose : utilise la version git, qui a quelques ajout/corrections de bugs par rapport à la dernière archive...
Pinaise, génial tous les shields dispos chez Pridopia ! Je suis à ta disposition pour arriver à interfacer tout ça avec pKNyX
Messages : 51
Sujets : 5
Inscription : Sep 2013
Salut,
Voilà j'ai un raspberry fonctionnel avec la carte Pridopia 9 bus en I2C.
Code : pi@raspberrypi /mnt/1wire $ sudo i2cdetect -y 1
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- 18 -- -- -- 1c -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --
Code : sudo /opt/owfs/bin/owfs --i2c=ALL:ALL --allow_other /mnt/1wire/
pi@raspberrypi /usr/src/owfs-2.9p2 $ cd /mnt
pi@raspberrypi /mnt $ ls
1wire
pi@raspberrypi /mnt $ cd 1wire
pi@raspberrypi /mnt/1wire $ ls
28.2A42EC040000 bus.0 bus.2 bus.4 bus.6 bus.8 simultaneous structure uncached
alarm bus.1 bus.3 bus.5 bus.7 settings statistics system
pi@raspberrypi /mnt/1wire $ cat 28.2A42EC040000/temperature
29.6875pi@raspberrypi /mnt/1wire $
Les 9 bus sont visibles ainsi que le capteur t° sur la carte.
J'installe pKNyX. :-)
Messages : 1,463
Sujets : 137
Inscription : May 2011
Réputation :
0
11/03/2014, 12:49:49
(Modification du message : 11/03/2014, 13:13:59 par fma38.)
Cool !
Existe-t-il des outils pour piloter les I/O, lire la température, etc... ? Ou est-ce que tout se fait via des cat ?
Physiquement, comment sont reliés tes capteurs 1-wire ? À quoi correspondent les bus.x ?
Je commence à réfléchir comment intégrer des plugins dans pKNyX pour accéder aux autres technos ; ça va être un bon exercice. Le truc c'est d'arriver à écrire des choses ré-utilisables. Là, il va peut-être falloir faire un truc spécifique pour la board, tout en isolant le 1-wire, qui est plus générique...
Messages : 51
Sujets : 5
Inscription : Sep 2013
11/03/2014, 15:47:23
(Modification du message : 11/03/2014, 15:52:49 par RemyB.)
Re,
owfs permet de tester rapidement la config, mais j'ai démarré un serveur owfs(owserver) maintenant et il est possible d'utiliser ownet.py.
Code : 2595 ? Ss 0:00 ./owserver -p 3001 --i2c=ALL:ALL
Les requetes se font via le process owserver.
Il y a des exemples fournis avec OWFS, comme temperature.py.
Code : sudo python temperatures.py 127.0.0.1 3001
r: 127.0.0.1:3001/ -
r.entryList(): []
r.sensorList(): [Sensor("/10.67D20C010800", server="127.0.0.1", port=3001), Sensor("/28.2A42EC040000", server="127.0.0.1", port=3001), Sensor("/bus.8", server="127.0.0.1", port=3001), Sens.......
....
127.0.0.1:3001/10.67D20C010800 - DS18S20 19.0625
127.0.0.1:3001/28.2A42EC040000 - DS18B20 28.5625
127.0.0.1:3001/simultaneous - 0
Ici owserver fonctionne sur la meme machine que le script python mais cela fonctionner aussi sur une machine distante(ip ou nom de la machine)
Voila le contenu de temperature.py
Code : #! /usr/bin/env python
# $Id: temperatures.py,v 1.1 2006/12/24 04:08:32 alfille Exp $
import sys
import ownet
if len(sys.argv) != 3:
print 'temperatures.py server port'
sys.exit(1)
r = ownet.Sensor('/', server=sys.argv[1], port=int(sys.argv[2]))
e = r.entryList()
s = r.sensorList()
print 'r:', r
print 'r.entryList():', e
print 'r.sensorList():', s
for x in r.sensors():
if hasattr(x, 'temperature'):
print x, x.temperature
Donc facilement intégrable dans ton framework :-)
10.67D20C010800 = nouveau DS18S20 externe, sur le bus.6(port 7)
28.2A42EC040000 = DS18B20 soudé sur l'interface Pridopia
Messages : 1,463
Sujets : 137
Inscription : May 2011
Réputation :
0
Ok, vu !
Par contre, où et comment configures-tu l'i2c et le 1-wire ? Comment se fait la liaison entre les bus et les pins GPIO de la carte fille du RPi ?
Messages : 51
Sujets : 5
Inscription : Sep 2013
Avec wheezy raspian, il faut éditer /etc/modprobe.d/raspi-blacklist.conf et mettre en commentaire la ligne blacklist i2c-bcm2708.
Ensuite compiler/installer OWFS(pleins de tutos sur le web..)
OWFS peut fonctionner avec diverses interfaces bus master. Il est possible d'utiliser le port GPIO directement en 1wire(bitbanging), mais ici j'ai préféré une interface dédiée avec un DS2482-100 et DS2482-800, la pridopia donc.. La détection et l'utilisation des interfaces en I2C est automatique avec OWFS(avec les bons paramètres au démarrage de owserver, --i2c=ALL:ALL), pas besoin de spécifier manuellement l'adresse des bus master.
Les broches utilisées sur le GPIO pour l'I2C sont celles par défaut. 3(SDA) et 5(SCL).
Messages : 1,463
Sujets : 137
Inscription : May 2011
Réputation :
0
Ah, OK, le driver détecte le port I²C de la RPi... Pigé.
Messages : 51
Sujets : 5
Inscription : Sep 2013
Voilà j'ai installé pKNyX, il faut que je récupère mon rail de test et l'interface ip/knx pour aller plus loin. Je le récupère dans la semaine.
As-tu déjà un source code pour un Device qui execute cycliquement une tache ? Et qui pourrait etre créé via pknyx-admin.py ?
Ensuite reste à éditer le device, implémenter les requetes ownet/owserver et envoyer les données vers les gad correspondantes. :-)
Messages : 1,463
Sujets : 137
Inscription : May 2011
Réputation :
0
Regarde le premier exemple, le timer :
http://www.pknyx.org/browser/pknyx/examp...timerFB.py
L'astuce est de faire exécuter une méthode cycliquement avec @schedule.every(seconds=1)...
Là, tu pourrais faire un on/off - off/on toutes les 5 secondes...
Messages : 51
Sujets : 5
Inscription : Sep 2013
03/04/2014, 23:33:29
(Modification du message : 03/04/2014, 23:33:56 par RemyB.)
Ok je vais essayer ca. J'ai récupéré mon rail de test et après avoir terminé ma visu provisoire je pourrai m'y remettre.
Sinon OWFS et PKNyX sont stables et compatible, c'est déjà une étape. Lire un capteur ne devrait pas poser de problème.
Je reprendrai les tests avec la carte i/o. Cela semble facile à implémenter également.
http://www.pridopia.co.uk/pi-pgm/23s17-2port-v3.py
Rémy
|