Compléments
Introduction
À présent que les capteurs, les actionneurs et la centrale domotique ont été détaillés, tous les éléments sont entre vos mains pour réaliser un système domotique personnalisable.
Toutefois, certains aspects complémentaires vont être explorés dans ce chapitre afin d’améliorer tant la mise en place du système domotique que son implémentation, tout en abordant des notions d’électronique plus élaborées permettant de mieux appréhender les spécificités des dispositifs et de les fiabiliser.
Notions de programmation pour l’IDE Arduino
À ceux qui ne seraient pas familiers avec la programmation et plus particulièrement avec le langage de programmation dérivé de C et de C++ disponible sous l’IDE Arduino, cette section a pour but de fournir les bases nécessaires. Elle ne prétend pas aborder toutes les notions en détail et se concentre sur les notions principales utilisées dans cet ouvrage. Si des informations complémentaires sont nécessaires, il est évidemment recommandé de consulter l’aide du logiciel ou de se tourner vers les forums de discussion officiels ou non.
Si ces notions vous sont familières, rendez-vous directement à la section Notions d’électronique de ce chapitre.
1. Écriture du code
Chaque ligne constituant un programme (ou code) informatique est, a priori, une ligne dite de code. C’est-à-dire qu’elle contient une instruction interprétable par le compilateur et se termine par un point-virgule (;).
Comme vu dans le chapitre Configuration du matériel - section Introduction, un programme se compose de quatre parties principales : le préambule, la fonction de configuration setup() (obligatoire même si elle est vide), la fonction loop() et l’ensemble des éventuelles fonctions définies par l’utilisateur.
Dans le préambule, il est nécessaire d’inclure les bibliothèques et de définir les variables globales (voir la section Variables).
Parmi les instructions possibles, la déclaration des variables est essentielle afin que le programme puisse les utiliser. Par exemple, l’instruction suivante déclare une variable de type entier (int pour integer) dont le nom est Variable :
int Variable;
Le nom des variables est sensible à la casse, c’est-à-dire à...
Notions d’électronique
1. Valeurs de résistance
Comme la plupart des composants électroniques, seules certaines valeurs de résistance sont disponibles dans le commerce. En effet, il n’est pas possible d’avoir une résistance de 50 kΩ, les valeurs courantes les plus proches étant 47 kΩ et 51 kΩ. La liste suivante reprend les valeurs normalisées de résistances les plus courantes (en ohms) (chaque nombre peut être multiplié par une puissance de 10) :
100, 110, 120, 130, 150, 160, 180, 200, 220, 240, 270, 300, 330, 360, 390, 430, 470, 510, 560, 620, 680, 750, 820, 910.
Toutefois, il est possible de considérer les lois d’association de résistances afin d’approcher au mieux la résistance souhaitée. Ces lois sont au nombre de deux.
Passon à la loi d’association de n résistances placées en parallèle. Ici aussi, l’ordre des résistances n’a pas d’importance pour déterminer la résistance équivalente. Cette fois, les résistances sont placées en joignant leurs extrémités.
Dans ce cas, la résistance équivalente...
ESP8266
1. Mise en veille
La puce ESP8266 possède plusieurs modes de veille permettant de mettre en veille certains de ses composants. Le principal avantage de ces modes permet à la puce ESP8266 de diminuer drastiquement sa consommation. Alors qu’elle est d’environ quelques dizaines de mA par défaut (70 à 100), la veille totale de la puce permet de descendre cette consommation à moins de 20 nA (soit une consommation réduite d’un facteur minimal de 1 000).
Cela est particulièrement utile lorsque l’on souhaite réaliser des projets sur accumulateurs permettant de s’affranchir d’une connexion au réseau électrique.
D’un point de vue programmation, il suffit d’utiliser la fonction :
ESP.deepSleep(duree);
à l’endroit du code où l’on souhaite mettre le dispositif en veille. Le paramètre duree est le temps en microsecondes (µs). Il peut valoir au maximum 4 294 967 295 µs, car il s’agit d’un nombre entier codé en 32 bits (voir tableau de la section Variables de ce chapitre). Cela correspond à une durée d’environ 71 minutes, soit un peu plus d’une heure).
D’un point de vue connectique, l’activation du mode de veille peut s’effectuer si la broche numérique D0 (GPIO16) est reliée à la broche RST (Reset).
Le principe général est le suivant : lorsque l’ESP8266 fonctionne, la broche RST est maintenue à l’état haut. Si elle reçoit un signal bas, alors l’ESP8266 redémarre. Lorsque la fonction précédente est appelée, l’ESP8266 met en veille ses composants et initialise uniquement un compteur. Lorsque le compteur dépasse la valeur de la durée communiquée en paramètre...
Raspberry Pi
1. SSH
a. Introduction et configuration
Le protocole SSH est un protocole sécurisé qui permet notamment de prendre le contrôle à distance du Raspberry Pi. Cette technique permet, une fois le Raspberry Pi configuré, de se passer de l’écran, du clavier et de la souris pour autant que le Raspberry Pi soit préalablement connecté à un réseau câblé ou sans fil.
Pour des raisons de sécurité, ce protocole de communication est désactivé par défaut sur les distributions Raspbian depuis quelques années sauf si vous avez réalisé les étapes du chapitre Configuration du matériel et l’avez préconfiguré. Pour l’activer (s’il n’a pas été préconfiguré), voici les étapes à réaliser :
Ouvrez un terminal sur le Raspberry Pi.
Lancez la commande
sudo raspi-config
Rendez-vous ensuite à l’aide des flèches directionnelles (haut/bas) sur l’option Interface options (option 2) et sélectionnez-la via la touche [Entrée].
Rendez-vous de la même manière sur l’option SSH (option 2) et sélectionnez-la.
Pour terminer l’activation du protocole SSH, sélectionnez Enable, puis Ok.
Pour sortir de cette invite de commande, utilisez les flèches directionnelles (droite/gauche) et sélectionnez Finish.
Pour modifier les options du serveur par défaut (port...), il suffit de modifier, dans un terminal ouvert, le fichier de configuration du serveur SSH (/etc/ssh/sshd_config).
Pour ce faire, saisissez la commande suivante :
sudo nano /etc/ssh/sshd_config
Une fois les modifications effectuées, enregistrez-les et relancez le serveur SSH par la commande :
sudo service ssh restart
Une alternative...
Domoticz
1. Applications pour smartphone
Bien que l’utilisateur puisse utiliser un navigateur web (présent sur son smartphone ou sa tablette) pour atteindre la page web du contrôleur domotique, certaines applications sont dédiées à l’utilisation de Domoticz et peuvent rendre son interface plus légère et plus rapide à utiliser. Voici une liste non exhaustive des noms des applications gratuites disponibles sur les principaux systèmes d’exploitation des périphériques mobiles :
-
Android 4.1 et supérieur : Domoticz Home Automation Lite
-
iOS 8.0 et supérieur : Domoticz - Home Automation
-
Windows Phone 10 (compatible Windows 10) : Ticz
2. Scripts complémentaires pour le contrôleur
Le logiciel Domoticz permet l’utilisation et l’implémentation de scripts dans le langage Lua. Une kyrielle de scripts est proposée par les communautés anglophone (https://www.domoticz.com/forum/viewforum.php?f=61) et francophone (https://easydomoticz.com/forum/),
Ces scripts permettent notamment d’interagir avec des services web existants afin d’utiliser leurs bases de données. Parmi les possibilités envisageables, citons l’intégration dans Domoticz de la qualité de l’air extérieur, la présence de pollen, le niveau de vigilance météo…
Ces scripts se présentent sous la forme de fichiers dont l’extension est .lua et ne nécessitent pas d’installation complémentaire de logiciel sur le Raspberry Pi. Ces fichiers doivent être placés dans le sous-répertoire :
/scripts/lua/
du logiciel Domoticz. Par défaut, le chemin complet de ce répertoire est
/home/pi/domoticz/scripts/lua/
Deux types de scripts existent. Tout d’abord, les scripts exécutés chaque minute et dont...
Divers
1. Conversion d’un nombre binaire en décimal
Considérons le nombre binaire suivant : 001011. Il est constitué de six chiffres. Afin de convertir cette valeur en nombre décimal (qui est plus lisible pour un utilisateur), il est nécessaire de réaliser les étapes suivantes :
Listez les puissances de 2 de droite à gauche. Dans notre cas, 32 16 8 4 2 et 1 correspondant aux puissances 25, 24, 23, 22, 21 et 20. Il y a autant de puissances que de chiffres dans le nombre binaire initial en tenant compte de la puissance 0.
Pour chaque puissance de 2, il faut lui multiplier le chiffre correspondant :
Puissance |
32 |
16 |
8 |
4 |
2 |
1 |
Nombre binaire |
0 |
0 |
1 |
0 |
1 |
1 |
Résultat |
0 |
0 |
8 |
0 |
2 |
1 |
Additionnez l’ensemble des résultats (8+2+1) = 11 qui correspond au calcul 0*25 + 0*24 + 1*23+ 0*22 + 1*21+1*20 .
Il existe de nombreux convertisseurs en ligne, tant pour les nombres (binaire, hexadécimal, décimal) que pour les unités (kilogramme, livre...). Saisissez les mots-clés "Convertir X en Y" dans un moteur de recherche internet. De nombreux convertisseurs, dont celui nécessaire à cette section, vous seront proposés.
2. Conversion d’une tension en une valeur physique
Pour compléter le chapitre Premiers projets, deux exemples de conversion de la valeur d’une tension sont analysés dans cette section. Pour ces exemples, deux capteurs sont considérés :
-
Un capteur de pression dont la gamme est de 0 à 20 bars absolu et fournissant une sortie en courant de 0 mA à 20 mA ;
-
Ce même capteur de pression dont la gamme est de 0 à 20 bars absolu et fournissant cette fois une sortie en courant de 4 mA à 20 mA.
Le premier capteur de pression considéré développe un signal de sortie de 0 mA à...
Conclusion
1. Résumé
Une installation domotique permet de couvrir des domaines aussi variés que l’amélioration des consommations d’énergie ou l’amélioration de la sécurité et du confort.
Nous avons utilisé un Raspberry Pi comme contrôleur, car il possède de nombreux avantages : peu coûteux, dimensions réduites, polyvalence et faible consommation d’énergie. Des microcontrôleurs ESP8266 nous ont permis de mettre en place des capteurs (actionneurs) communicants, nous évitant de tirer des câbles de longueur importante entre les capteurs et le contrôleur domotique. Le logiciel de domotique Domoticz a facilité la mise en place des communications entre les éléments et permis l’affichage, le contrôle et l’archivage des données. Comme toutes les possibilités de ce logiciel n’ont pas été traitées dans cet ouvrage (puisque ce n’est pas son objectif premier), il est conseillé de se renseigner à ce sujet. En effet, de nombreux scripts et modules sont disponibles gratuitement pour étendre les possibilités offertes par le contrôleur domotique. Ils permettent notamment d’intégrer la gestion/communication avec d’autre dispositifs commerciaux (nécessitant parfois l’achat de matériel complémentaire) ainsi que l’utilisation de services internet pour récupérer des données et s’en servir afin d’améliorer son installation domotique.
De nombreux programmes ont été proposés afin de pouvoir mesurer, communiquer et exploiter les différentes interfaces de l’ESP8266. Par la suite, la communication (envoi/réception) des données a été traitée et des règles de régulation...
Bibliographie
[1] |
OMROM, "C-342 - Solid State Relays Common Precautions". |
[2] |
BIDPEMesures, "Évaluation des données de mesure - Guide pour l’expression de l’incertitude de mesure", 2008. |