PROJET AUTOBLOG


Idleman

source: Idleman

⇐ retour index

Raspberry PI ~ 15 : Créer sa propre prise radio (et autres périphériques) pour 6€

mercredi 13 février 2013 à 21:23

Ce post est le quinzième d’une liste de tutoriels sur le raspberry PI, cliquez ici pour accéder au sommaire ! :D

Suite à nos précédents tutos sur le Raspberry PI  et la domotique contrôlée par radio (et notamment le tuto 12), certains d’entre vous m’ont demandé si il n’était pas possible de se passer de prises Chacon, d’autres m’ont demandé si des multiprises existaient sur le même principe, quant à moi je souhaitais de débarrasser de Chacon pour diverses raisons :

C’est pourquoi nous allons aujourd’hui construire notre propre prototype de prise radio (pouvant facilement être transformée en multiprise) commandée par le Raspberry PI

2013-02-13 19.58.07

Je parle de « prototype » pour une bonne raison, bien que le montage fonctionne parfaitement, il peux être amélioré au niveau du « packaging » (boitier).

Afin de vous motiver un peu (car je vous sent mous aujourd’hui :p), wala la petite vidéo de démo du prototype (avec quelques explication sommaires pour vous mettre en jambe)

Notez bien que vous devez au moins avoir lu le tuto 12 pour comprendre celui ci :)

Vous êtes chaud patate pour commencer ? Voyons voir un peu le matos à se procurer :)

Le matériel

Pour aller plus loin, il vous faudra les curieuses bêbêtes suivantes :

Notez bien que vous n’aurez à Acheter la carte arduino qu’une fois, elle nous servira de programmateur pour construire toute nos futures prises, de même, les résonateurs sont par lots de 5 et nous n’en avons besoin que d’un par prises.

Vous en aurez donc environ pour 6€ par prises radio par la suite, notez que je ne compte pas l’alim (un vieux chargeur de portable récupéré fera l’affaire) ni le boitier (bah oui la vas falloir se dépatouiller avec un Tupperware qui traine XD), nous ne faisons pas vraiment ça pour le prix mais il faut souligner qu’on y gagne quand même par rapport au commerce (d’autant qu’il est possible de faire des multiprises avec ce montage et donc de réduire encore le cout par prises, on peux aussi remplacer/supprimer certains composants en bricolant (suppression du résonateur,remplacement de l’atmega par une Attiny etc..)  mais je vais pas tout vous faire non plus :p).

Attends attends…C’est quoi ton Arduino la ?

Dans ce tuto nous introduirons les carte de programmation « Arduino » et leurs micro contrôleur Atmega qui nous permettrons de créer tous nos périphériques à bas cout sans avoir à acheter un raspberry à chaque fois ^^.

Petite explication rapide sur l’arduino donc :p

image

L’arduino (souvent nommé ardui) est une carte électronique très similaire au raspberry PI, à savoir qu’elle peut gérer des entrées sorties GPIO et contenir un code (en C++) pour réagir en fonction de ces gpio, cela dit, il y a quelques différences importantes :

Vous l’aurez compris, l’arduino est une carte de bas niveau, très rapide, moins chère, réductible à une puce et avec plus de gpio que le rpi ce qui en fait un élément parfait pour créer tous nos périphériques radio (prise radio, sonde de température radio, capteur d’ouverture radio etc…).

Les arduino (ou plutôt a terme : les atmega 328) seront les muscles de notre domotiquemaison

En revanche l’ardui n’a pas les capacité de traitement du rpi, de plus le rpi est plus haut niveau et gère en natif l’Ethernet, la gestion d’un os etc…

le rpi sera donc le cerveau de notre domotiquequi commandera et sondera les muscles arduino.

Le fonctionnement de la prise

Nous allons refaire le tutoriel #12 : allumer/éteindre une prise à distance avec le raspberry PI,sauf que cette fois ci, la prise sera « maison ».

Concrètement vous allez appuyer sur un certain bouton de votre télécommande chacon (ou envoyer le signal depuis votre rpi)

Ce signal vas être capté par le récepteur RF relié à l’arduino, l’arduino vas vérifier que le signal parle bien de lui (à son code récepteur) qu’il provient bien de la télécommande (a le bon code émetteur) et a un état on ou off (afin de savoir ce qu’il doit faire).

L’arduino vas alors envoyer 0 ou 1 a la carte relais, celle ci vas donc « ouvrir » ou « fermer » le circuit classique de la prise et laisser passer ou non le courant.

OUI MAIS !!!

Comme les cartes arduino c’est un peu gros et que c’est un peu cher d’en mettre une dans chaque prises, on ne vas utiliser que leurs micro contrôleur : l’Atmega328, qui lui coute 3€ et fait la même chose que l’arduino.

Évidemment comme c’est une puce nue, ça vas être un peu moins rigolo a programmer qu’une carte ardunio (qu’il suffit de brancher sur le port usb du pc), on vas donc se servir de la carte arduino pour programmer les puces Atmega que l’on inclura dans chaque prises :)

Ça parait un peu fou comme ça pour les novices électroniques que nous sommes mais vous allez voir, c’est en fait très simple :)

La programmation de la puce : branchements

Avant tout, téléchargez et installez l’IDE (environnement de développement Arduino) sur le site d’arduino.

Voila le schéma permettant de programmer une puce atmega à partir d’une carte arduino

http://domotique.idleman.fr/data/priseMaison/progatmega.jpg

Notez que sur le schéma j’utilise ce qu’on appelle une « BreadBoard », c’est une plaque en plastique qui permet de tester des circuits sans avoir à souder juste en plantant des fils dans des trous, les trous sont reliés de manière horizontale entre eux, sauf pour les lignes bleu et rouges (utilisée pour l’alimentation) qui eux sont verticaux.

Je vous conseille vivement l’achat d’une breadboard, ça ne coûte rien et c’est quasi indispensable pour tester les circuits dans de bonnes conditions (je m’en veux un peu de ne pas vous en avoir parlé avant)

Une fois le circuit branché et alimenté vous pourrez lancer l’IDE arduino et programmer la puce comme si elle se trouvait sur la carte arduino.

Le code

Commencez par choper les sources du programme ici :

http://domotique.idleman.fr/data/priseMaison/priseRadio.zipPremièrement, allez dans votre repertoire arduino puis dans \libraries\ et créez un dossier nommé : EEPROMAnythingDedans vous placerez le fichier EEPROMAnything.h Nous venons d’inclure une nouvelle librairie à l’arduino IDE, celle vi vas nous permettre de gérer l’EEPROM (petite mémoire interne de l’atmega dans laquel nous allons stocker nos données) 

Ensuite, lancez l’IDE (arduino.exe) : il ne vous reste qu’a copier le programme priseRadio.txt ci dessous dans l’ide, et cliquer sur télé-verser

image

 nb: En fonction de l’atmega programmée, vous aurez peut être a changer le modèle de la carte dans l’ide, ex : j’ai une carte arduino duemilanove, mais mon atmega acheté est un uno, du coups lors du télé versement j’ai une erreur du genre “invalid sync blablabla”, donc je sélectionne uno dans le menu :

 image

Et je retente le coup :p

Une fois la puce programmée on vas pouvoir passer a notre vrai branchement de prise radio final (fiou !! ^^, vous verrez avec le temps ça parait enfantin)

Le montage finale : branchements

La je ne peux pas faire explication plus détaillée (et plus débordante) que ce schéma… :D

http://domotique.idleman.fr/data/priseMaison/radiomaison.jpg

En gros l’Atmega est toujours relié au résonateur (son horloge) et est alimenté des deux coté en 5v comme sur le montage précédent.

On à en plus branché trois composant sur l’Atmega : une led qui vas clignoter quand la prise recevra un signal, afin de ne pas griller la led, on rajoute une résistance (la résistance est a définir en fonction de la led) notez bien que led+ résistance sont optionnels et ne servent que pour avoir un visuel des signaux reçus.

On ajoute à ça une carte de réception radio 433 mhz qui vas capter les signaux radio et les envoyer à l’Atmega par le pin 9, cette carte radio est évidemment alimentée en 5v

On ajoute enfin une carte relais qui vas recevoir un ordre de l’Atmega part le pin 10 quand le signal reçu sera le bon, la carte relais vas alors fermer le circuit de droite (lampe + prise) ce qui vas allumer la lampe. Evidemment, cette carte aussi est alimenté en 5v.

Attention :Faites attention au sens de l’Atmega, vous pourrez vous repérer au petit creux rond en haut de la puce

nb: Les pattes extérieures du résonateur ne sont pas polarisées donc vous pouvez les intervertir par rapport au schéma, en revanche les pattes de la led le sont, donc si votre led ne s’allume pas, c’est peut être que vous vous êtes loupé de sens :)

L’utilisation

Le programme se comporte de la façon suivante :

Le tout premier signal au protocole home easy envoyé à la prise sera enregistré dans celle ci et deviendra le signal de référence pour ouvrir ou fermer le relais de la prise, il est donc nécessaire d’envoyer ce signal le plus rapidement possible après la mise en route du montage final, car un signal voisin pourrait vous piquer la place.

Actuellement, un seul signal peut être enregistré et vous n’avez droit qu’a un seul essai (bien que le matériel puisse en mémoriser beaucoup plus, le code doit être amélioré).

Lorsque la prise reçoit un signal correspondant a son signal de référence, la led clignote 10 fois très rapidement, et le relais change d’état

Lorsque la prise reçoit un signal non correspondant a son signal de référence mais au protocole home easy, la led clignote 1 fois lentement.

Les améliorations possibles

 Si vous avez des problèmes de portées, de gros parasites, ou de mauvaise communication, pensez a faire ces deux choses :

Avec ces deux points, vous pouvez passer de quelques centimètres à plusieurs centaines de mètres de portée, la différence est vraiment flagrante.