Bonjour à tous !
J’ai depuis longtemps dans la tête d’équiper mon (futur) chez moi avec un système domotique. J’ai enfin un idée claire de ce que je veux faire et je me suis lancé dans le vif du sujet. Je souhaite donc développer au maximum mon système par moi-même. Il fonctionnera à base d’Arduinos (qui effectueront les actions) et d’un serveur central (qui d’une part alimentera une base de donnée et d’autre part traitera les demmandes utilisateur / scénarios et enverra des ordres aux arduinos).
Les caractéristiques de mon installation seront les suivantes :
Les modules Arduino :
Les modules seront des cartes arduinos programmées pour communiquer avec le serveur et recevoir/exécuter ses ordres ou lui envoyer des infos (paramètrage utilisateur / relevé de capteurs / …) Pour être le plus modulaire possible, je pensais spécialiser fortement les modules (carte arduino la plus petite possible avec sa liaison Ethernet) à savoir par exemple 1 module = 1 système (exemple, j’ai 5 volets roulants, j’aurais 5 arduinos pour les piloter, 10 groupes de lumières, 10 arduinos supplémentaires, etc…) Ainsi, si un jour je rajoute une lumière, pas besoin de m’embêter, je rajoute une carte dans mon réseau, je déclare une nouvelle lumière sur mon logiciel de gestion et le tour est joué (dans l’idéal)
Le serveur :
La plus grosse partie du travail se situe ici. Le serveur doit d’une part recevoir les infos utiles de tous les modules présents, stocker les infos utiles dans une BDD locale et les traiter puis envoyer des ordres aux modules pour effectuer des actions.
La communication :
D‘après mes recherches, à l’échelle de plusieurs mètres (voir dizaines de mètres) entre 2 systèmes voulant communiquer, la liaison série et i2c ne sont plus adaptés. Je pensais donc passer sur l’Ethernet et une communication via TCP/IP pour relier tous les modules et le serveur dans un réseau.
L’utilisation :
Dans un premier temps, le pilotage se fera soit directement sur le logiciel de gestion sur le serveur, soit via l’envoi de commandes spécifiques via les modules . Par la suite (et si j’arrive jusque-là je serais déjà super content), je souhaiterais pouvoir rajouter une application sur smartphone (pour cette partie j’ai un collègue qui pourra m’aider), voir une reconnaissance vocale (là je ne la coderai pas, j’utiliserais quelque chose d’existant, par exemple SARAH).
Le déroulement du projet :
Je ne compte pas tout programmer en bloc, mais procéder par phases où j’intègre chaque module l’un après l’autre. En gros, le développement se fera selon le schéma :
-
Station météo
-
Module 1 (ex : lumières)
-
Module 2 (ex : volets)
-
Module 3 (ex : portes)
-
…
-
Module X
Les différents modules feront surement l’objet de posts dédiés (notamment partie programmation) et si j’arrive à obtenir des résultats finalisés, j’ouvrirais un post dans la section projet avec une présentation succincte du projet, les codes finaux et les liens vers les posts par lesquels le projet a évolué comme par exemple celui là (si certains sont curieux de savoir comment le projet a évolué).
Maintenant que je vous ai présenté mon projet et avant d’aller plus loin, je souhaiterais vos avis sur les points suivants :
-
Mon architecture générale est-elle valide ?
-
Mon choix d’utiliser TCP/IP pour la communication est-il valide ?
-
Le fonctionnement par module (1 système = 1 arduino + shield ethernet) est, je pense, intéressant pour la modularité du système, mais cela risque de faire beaucoup de modules, du coup un réseau chargé, beaucoup de câbles, une consommation électrique accrue (par rapport à des arduinos plus grosse qui gère plusieurs systèmes à la fois)… Est-ce une si bonne idée ?
-
Pour l’alimentation des modules, j’ai pensé au PoE (Power over Ethernet). Quelqu’un a déjà testé avec Arduino ? Sinon il faudra que je prévoie un réseau d’alimentation séparé…
-
Quel est le langage le plus judicieux pour programmer le serveur ? Je connais le C# et je peux facilement avoir de l’aide dessus (mes collègues proches programment principalement dans ce langage) mais j’ai vu que souvent les projets DIY de domotique où la partie gestion était traitée utilisaient un site internet, donc HTML / java (où je connais beaucoup moins et n’ai pas la possibilité d’avoir de l’aide autour de moi)
Merci d’avance pour votre aide
Et s’il y a un endroit pour les présentations, je serai ravi de me présenter en bonne et due forme, sinon j’éditerais ce post pour le faire !