Projet de domotique arduino

architecture physique générale

a marqué ce sujet comme résolu.

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 !

Le choix de TCP/IP me semble bon hein. Ça reste extrèmement pratique pour du bidouillage et plus simple que du SigFox ou LoRa.

Au niveau de 1 sous-système = 1 arduino. Pourquoi pas si c’est suffisant, une arduino ça consomme pas beaucoup non plus. Après le serveur me semble très important. Il tournerait sur quoi ? Un ordinateur dédié allumé 24h/24 ? Le réseau ressemblerait à quoi ?

En vrai, le langage n’a pas vraiment d’importance. Prend celui que tu maîtrises le mieux.

Je n’ai pas compris totalement la partie internet. Tu veux un site internet avec une BDD qui stocke les informations obtenues de tes arduinos ? Tu veux un site web local ou un site disponible sur Internet ?

PS: PoE, ce n’est pas supporter nativement pas les Arduinos. Et du coup, je recommande pas vraiment. M’enfin, on trouve des choses intéressantes sur internet. Module POE 12V.

+0 -0

Bonsoir ache et merci pour ta réponse.

Pour le serveur c’est bien ça que j’avais en tête, je sais que beaucoup font ça avec un rasberry pi mais je n’ai jammais touché à cette bête là et comme j’ai mon vieux PC qui traine, je me suis dit que je pourrais le réutiliser pour le serveur. Le réseau ressemblerait à un ordinateur branché sur un gros switch et toutes les arduinos aussi. Il n’y aurait dans un premier temps qu’un réseau local, sans connexion aucune vers le monde extérieur (aka internet).

Pour la partie internet je me suis peut être mal exprimé. Sur le PC qui gère le système, il y a :

  • Une BDD locale qui sert à stocker des infos (par exemple les données de la station météo)

  • "Quelque chose" qui communique avec les arduinos, remplis la BDD, et fait l’interface avec l’utilisateur

Ce quelque chose peut prendre 2 formes :

  • une application en C# / .NET (par exemple un WinForm)

  • un site internet local codé en HTML et consorts et qui tourne sur un navigateur

Sachant que si j’arrive à faire fonctionner le tout en local, l’étape suivante serait une appli android qui remplacerait l’interface visuelle procurée par le "quelque chose" pour rendre l’interaction avec le système un peu plus user-friendly (ergonomique pour les francophones :) ) et disponible du bout des doigts.

Et l’étape ultime, d’intégrer une reconnaissance vocale toute-faite pour déclencher des actions pré programmées. (j’avoue que je n’ai pas encore trop creuser de ce coté là…)

L’idée est juste de ne pas se retrouver bloqué au moment d’apporter ces ajouts à cause d’un langage non adapté.

Pour le PoE je ne saivait pas que ce n’était pas intégré, ça me paraissait pourtant être LE truc à ajouter sur les Ethernet shield mais bon… on ne peut pas tout avoir :)

+0 -0

Salut tleb

Merci pour ce lien, j’ai regardé en diagonale de quoi il retourne et ça à l’air vraiment intéressant comme concept. Bien que fonctionnant par ondes radios (je préfère un réseau câblé) il y a surement des idées à reprendre et à adapter. En tout cas c’est vraiment bien pensé, chapeau !

Pour info, j’ai commencé à programmer le coté arduino pour la station météo, je créerais un post dans la section programmation dès qu’il aura suffisamment avancé et que j’aurais pris le temps de faire un joli post :)

Petite question au passage, il me semble me souvenir que dans un câble ethernet il y a 4 paires torsadées et qu’en en utilise que 2 pour la communication. Pourrais-on songer à utiliser une paire inutilisée pour faire un "PoE maison" ? ou la section des fils est trop petite pour s’y risquer ?

Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte