Avant
propos :
Nous nous sommes intéressés
à la domotique proposée
par
une grande enseigne de bricolage. Sous l'appellation
ces derniers proposent une Box
iDomotique
dédiées à la gestion
et à la sécurité
de
votre habitation sans passage de câble,
le tout fonctionnant par radio fréquence
en 433MHz
et 868MHz.
A ce jour, plus
de 100 accessoires
pilotables par liaison radio fréquence
sont disponibles à la vente sur
le site internet de l'enseigne et dans
ses magasins. De l'interrupteur mural,
au détecteur de mouvement, en
passant par la prise
commandée, les possibilités
offertes sont nombreuses.
Ces accessoires peuvent
selon les modèles utilisés,
employer deux fréquences pour
communiquer à distance.
Dans la gamme , les accessoires de sécurité
nécessitant une communication
bidirectionnelle fonctionnent sur la
fréquence 868MHz. En revanche, les accessoires pilotant les équipements électriques
utilisent eux une fréquence de
433MHz.
C'est
ce type d'accessoires et cette
fréquence de 433MHz qui nous intéressent
plus particulièrement... Pour
ce faire, des passionnés d'informatiques et
d'électroniques
sont
parvenus à
décoder le protocole de communication
permettant de piloter uniquement les accessoires électriques fonctionnant
avec une fréquence de 433MHz. Ainsi, disposant de toutes
les données relatives à
ce protocole,
la création d'un émetteur piloté par liaison
série est
possible.

Précisons
qu'à ce jour, aucun
dispositif similaire
à l'émetteur que nous
présentons n'est proposé
par
l'enseigne de
distribution
et c'est l'une des raisons d'être
de ce projet.
Le but n'est
donc pas de copier un accessoire existant,
mais de proposer une
autre solution pour
piloter ses dispositifs en
433MHz
depuis un ordinateur.

Dans
un second temps, nous avons
également doté cet émetteur
d'un
second protocole
de communication de notre cru, permettant
de piloter à distance un
récepteur HF de
notre propre conception. Pour de plus
amples détails sur ce récepteur,
cliquez sur le lien suivant [
Récepteur
HF - RS232 ].
Principales caractéristiques de
l'émetteur HF RS232 :
Alimentation de
l'émetteur :
entre +8V et +20V DC. +12V DC sera un bon compromis. Deux entrées
séries. Première entrée via
une embase DB-9 pour une gestion depuis
un PC et seconde entrée via une embase RCA pour une gestion depuis
un autre microcontrôleur, Arduino, etc... Courant maximum
absorbé par l'émetteur
en veille : 15mA. Contrôle de
l'émetteur
par liaison série à 2400, 4800, 9600 ou 19200 bauds via un ensemble de chaines de caractères ASCII.
Présentation
de l'émetteur HF RS232 :
L'émetteur
est articulé autour d'un microcontrôleur
U1
prenant en charge la réception
des chaines de caractères ASCII
envoyées par l'utilisateur. L'encodage de la trame HF est
également effectuée U1 à transmettre
via un émetteur miniature oscillant
à 433,92MHz du commerce.

Encadré
en bleu
:
|
émetteur
miniature à 433,92MHz.
|
Encadré
en rouge
:
|
section
alimentation, filtrage et
régulation en tension.
|
Encadré
en orange:
|
DIP
de sélection 2400,
4800, 9600 ou 19200 Bauds.
|
Encadré
en vert
:
|
inverseur
permettant de choisir l'entrée
DB-9 ou bien l'entrée
RCA.
|
Encadré
en violet
:
|
embases
DB-9 et RCA ou transitent
les chaînes de caractères
ASCII.
|
Encadré
en bleu-clair:
|
microcontrôleur
et son quartz.
|
Encadré
en
gris:
|
connecteur
à ne pas monter.
Utilisé pour mettre
au point le programme.
|
Sélection
de la vitesse de la liaison série :
Un
double switch DIP
référencé SW2 vous
permet de sélectionner la vitesse
de réception des données
ASCII
provenant soit d'un
PC ou
bien de n'importe quel microcontrôleur
(PIC™, AVR™, MSP430, 68HCS12, ARM™,
etc...) ou autres modules PICBASIC,
CUBLOC, ROVIN ou Arduino dotés
d'une liaison série.

Positionnez
les switchs en fonction du tableau ci-dessous selon
la
vitesse de transmission
choisie.
2400
bauds
|
4800
bauds
|
9600
bauds
|
19200
bauds
|
0
|
0
|
0
|
1
|
1
|
0
|
1
|
1
|
Protocole
de communication utilisé par
le fabricant :
Le
protocole :
A
partir du lien internet suivant,
vous trouverez
toute la démarche
épisodique décrite par
des développeurs passionnés
d'électronique et d'informatique
sur le protocole à
qui l'on peut tirer un grand coup de
chapeau pour leur remarquable travail.
[
Arduino
Forum ]
Exemple
de protocole avec un module émetteur
du même fabricant :
Nous
n'allons pas reprendre en détail
sur cette page toutes les explications
données sur le forum, mais seulement
les points essentiels qui nous intéressent.
Afin
de comprendre dans les grandes lignes
ce protocole, nous avons dans un premier
temps utilisé un module
émetteur du
même fabriquant (voir ci-après).
Grâce aux explications décrites
sur le forum, nous n'avons eu aucun
mal à identifier les différents
groupes de bits
de cette trame
pour
arriver à créer une chaîne
ASCII reprenant
les principales informations de cette
fameuse trame.

Cliquez
sur l'image précédente
pour l'agrandir 
$FE : l'empreinte
est toujours identique. Le rolling code
est déterminé suivant
une séquence tournante. Le timeStamp est
déterminé par une incrémentation
suivant une progression de 10.
Dans
notre émetteur HF RS232, le microcontrôleur U1
se charge de
gérer ces 3
paramètres
précédents : le rolling
code, le timestamp et l'empreinte. L'utilisateur
n'a pas à s'en occuper.
Ainsi
pour la trame précédente,
nous avons obtenons une chaîne
ASCII formatée de
la manière suivante:
BLY041210951200$
BLY
|
Entête
obligatoire nécessaire pour la prise en compte de la chaine ASCII.
|
04
|
Nombre de trames à émettre. La valeur est
comprise entre 01 et 99.
|
121 ou $79 avec $7x
|
Correspondant au canal
global sur quatre bits
|
121 ou $79 avec $x9
|
Correspondant au MSB de
l’adresse.
|
095 ou $5F
|
Correspond à la partie centrale de
l’adresse.
|
120 ou $78 avec $7x
|
Correspondant au LSB de
l’adresse.
|
120 ou $78 avec $x8
|
Correspondant au sous canal
sur quatre bits.
|
0
|
Correspondant à l’état lumière (0=éteint et
1=allumé) sur quatre bits.
|
$
|
Caractère obligatoire de fin de chaine ASCII.
|
Application
à notre télécommande
du même fabricant vendue avec
la prise commandée
:
Dans
le cadre de la
prise commandée munie
de sa télécommande à
5
canaux,
le protocole repose sur le même
principe avec les valeurs suivantes regroupées
dans le tableau ci-après
:


Cliquez sur l'image précédente
pour l'agrandir 
Ainsi, afin de
piloter une
ou plusieurs prises
commandées,
l'utilisateur doit envoyer par liaison
série à l'émetteur HF
RS232 les différentes chaines
de
caractères ASCII suivantes
:
Etat
lumière = Eteindre :
-
correspondance
avec la touche « 1 » de
la télécommande. Chaine
ASCII : BLY040740352160$ -
correspondance
avec la touche « 2 »
de la télécommande. Chaine
ASCII : BLY040740352120$ -
correspondance
avec la touche « 3 »
de la télécommande. Chaine
ASCII : BLY040740352100$ -
correspondance
avec la touche « 4 »
de la télécommande. Chaine
ASCII : BLY040740352190$ -
correspondance
avec la touche « 5 »
de la télécommande. Chaine
ASCII : BLY040740352110$
- correspondance
avec la touche « All »
de la télécommande. Chaine
ASCII : BLY040740352080$
Etat
lumière = Allumer :
-
correspondance
avec la touche «
1 »
de la télécommande.
Chaine
ASCII : BLY040740352161$ -
correspondance
avec la touche
« 2 »
de la télécommande.
Chaine
ASCII : BLY040740352121$ -
correspondance
avec la touche
« 3 »
de la télécommande.
Chaine
ASCII : BLY040740352101$ -
correspondance
avec la touche
« 4 »
de la télécommande. Chaine
ASCII : BLY040740352191$ -
correspondance
avec la touche
« 5 »
de la télécommande.
Chaine
ASCII : BLY040740352111$
- correspondance
avec la touche
« All »
de la télécommande.
Chaine
ASCII : BLY040740352081$
Note
: Les
touches permettant d'allumer la lumière
permettent également d'associer
une prise commandée à
l'émetteur HF RS232. Nous y reviendrons...
Protocole
de communication permettant de dialoguer
avec le récepteur HF
:
Le
récepteur HF
est une platine entièrement développée
par nos soins permettant d'être
pilotée également depuis l'émetteur
HF RS232. Ce récepteur est présenté
à la page [
Récepteur
HF ].
Notre
récepteur HF répond à
un protocole bien spécifique
très différent et beaucoup
plus simple que le protocole décrit
précédemment. En effet,
nous avons utilisé un protocole
de communication composé de 16
bits
organisé de la manière
suivante :

Cliquez sur l'image précédente
pour l'agrandir 
Les
16 bits sont dissociés en deux
groupes de 8 bits.
Le premier
groupe correspond
à ce que nous avons nommé
l'adresse
du
récepteur.
Le second
groupe correspond
à la commande ou au canal du
récepteur que
l'on souhaite activer (ON) ou désactiver
(OFF).
Ainsi,
avec une adresse sur
8 bits,
nous pouvons piloter un maximum
de 255 récepteurs HF indépendamment
les uns des autres.
Les
différents bits 0
et
1 sont
codés selon la largeur de l'impulsion
valant 630µs
ou
1,2ms
pour une durée totale constante
de
1,830ms
quelque soit le bit considéré.
Chaque trame de 16 bits est espacée
par un silence de
30ms.

Cliquez sur l'image précédente
pour l'agrandir 
Cette
trame
sera émise par notre émetteur
HF RS232 lorsque
nous envoyons une chaîne
ASCII
formatée telle que :
KUD05000001$
KUD
|
Entête
obligatoire nécessaire pour la prise en compte de la chaine ASCII.
|
05
|
Nombre de trames à émettre. La valeur est
comprise entre 01 et 99.
|
000
|
Correspond
à l'adresse comprise
entre 000 et 255
|
001
|
Correspond à
la commande comprise entre
000 et 255
|
$
|
Caractère obligatoire de fin de chaine ASCII.
|
Référez-vous
au descriptif du montage
[
Récepteur
HF ]
pour
de plus amples détails sur ce
protocole et l'utilisation du récepteur HF
de notre cru.
|