DomoPi : programmation de l'Arduino
Maintenant que nous avons notre carte électronique (voir ici) et donc toute la partie harware nécessaire, nous allons pouvoir passer à la partie software. Celle-ci se décomposera en 2 partie. La première concernera la programmation de l'Arduino et la seconde la programmation côté Raspberry Pi.
Le programme de l'Arduino que nous allons voir fonctionne avec n'importe quelle carte Arduino à laquelle vous aurez relié sur la broche 3, la sortie d'un récepteur RF, et sur la broche 11, un émetteur RF.
Programmation de l'Arduino
La liaison série que nous avons établie entre notre Raspberry et notre Arduino va nous permettre de programmer celui-ci. Pour cela il vous faut tout d'abord télécharger la version modifié du programmateur avrdude qui permet de faire un reset de l'Arduino via le GPIO du Pi. Vous trouverez plus d'info ici
$ wget https://raw.github.com/wyolum/alamode/master/bundles/alamode-setup.tar.gz $ tar -xvzf alamode-setup.tar.gz $ cd alamode-setup $ sudo ./setup
$ sudo reboot
Ces commandes vont désactiver les logs qui circulent sur le port série du Pi afin de pouvoir l'utiliser pour programmer l'Arduino, installer un nouveau type de programmateur (alamode), et redémarrez pour être pris en compte.
Vous pouvez télécharger les sources ici ou directement télécharger le code compilé par la commande :
$ wget http://www.domocreation.fr/projets/DomoPi/DomoPi.cpp.hex
Puis programmer votre Arduino par la commande :
$ avrdude -v -p m328p -b 57600 -c alamode -P /dev/ttyS0 -D -U flash:w:DomoPi.cpp.hex
Bizarrement la commande avrdude ne fonctionne jamais la première fois... relancez donc une deuxième fois. Vous devez voir une séquence d'écriture puis de vérification, et enfin la led doit se mettre à clignoter.
L'arduino maintenant programmé, on va vérifier que celui-ci fonctionne. Pour cela on va se connecter dessus en utilisant le port série :
$ sudo apt-get install minicom $ minicom -b 38400 -o -D /dev/ttyS0
Et si tout fonctionne correctement vous devriez voir apparaître ce genre de lignes :
Dans cet exemple vous pouvez voir que l'interface recevait une sonde sur le canal 1 avec un indicateur de batterie faible. Puis la même sonde après remplacement des piles (notez le changement d'ID). Et enfin un signal homeeasy. Nous verrons plus tard le détail du protocole mais en attendant il se résume ainsi :
- pour une sonde Oregon Version 1 : OREGONV1 ID CHANNEL TEMPERATURE [BATTERIE]
- pour une commande Chacon : HE ID GROUP UNIT COMMAND
Voilà, vous disposez maintenant d'une petite box de domotique qu'on va pouvoir faire évoluer petit à petit :)
Passons maintenant à l'écriture d'un driver xPL pour notre projet, c'est ici.
Fabien
8 avril 2015 à 11:24Baden
8 janvier 2015 à 14:39Franck
20 mai 2014 à 16:45ankoine
19 mai 2014 à 19:20matthieu
20 février 2014 à 14:39