Critique autour d'un projet de domotique :)

Salut à tous !

Pour le contexte rapide, ça fait un moment que je m'amuse à monter un paludarium (c'est un terrarium avec de l'eau), complètement automatisé (humidificateur, VMC, chauffage, lumière, pompe, et tous les capteurs qui vont avec).

En gros, l'architecture c'est un raspi4 avec Node-RED / Grafana / InfluxDB interconnectés en MQTT, entre eux, et avec un ESP8266. L'ESP a donc très peu d'intelligence, c'est un simple esclave (avec quand même quelques systèmes pour empêcher des catastrophes en cas de perte de connexion avec le Raspberry).

J'ai essayé de faire le code (de l'ESP) propre, modulaire (malheureusement avec task scheduler vu que FreeRTOS ne tourne pas sur ESP8266, petite erreur de casting à la base, mais c'est pas grave). Le but etait qu’ajouter un actionneur / capteur soit simple et rapide, avec quelques fonctions génériques à ajouter par nouveau fichier (=nouvelle fonctionnalité) pour que ça marche tout seul. Dans l'ensemble, ça marche bien (le repo git est en privé pour le moment car pas du tout nettoyé).

Voici un shema de l'architecture de tout ca, rien de tres innovant... globalement tout ce qui se trouve dans "rpi 4" ne devrait pas trop bouger. C'est le coté "esp8266" qui, je l'espere, va bien changer!

Le truc, c'est que je commence à voir apparaître de sérieuses limites, en termes d'évolutivité, principalement à cause des capacités en entrées/sorties de la carte, de résilience, du besoin de longueur des cables à la limite de ce que supporte one wire et i2c (d'ailleurs je suis obligé de filtrer les erreurs liéees au bruit sur mes i2c de 2m50 lol).
Pourtant, depuis le début, le but est que le système soit hyper facilement replicable et adaptable à d'autres projets plus ou moins similaires (de la ventilation de ma maison au chauffage de ma cafetière). Je veux que ça soit générique, évolutif et résilient (ça fait pompeux dit comme ça je reconnais), et plus pour l'amour de la tech que par réel besoin, me rapprocher de quelque chose qui fasse pas trop DIY pour se rapprocher d'un design un peu plus industriel (en toute modestie, je n'entends pas non taper dans les standards industriels je n'en ni les moyen ni les compétences).

Du coup, j'ai réfléchi à plein de designs différents depuis quelques mois.
J'en arrive donc à l'objet de mon post, c'est-à-dire avoir vos retours, critiques ou idées sur l'architecture que j'ai en tête.

Je voudrais partir sur des petits boîtiers imprimés en 3D qui embarqueraient :
-un ESP-C3 super mini
-une interface CAN bus
-des optocoupleurs + MOSFET (genre 3 ou 4), SOIT pour de l'entrée SOIT pour de la sortie ; en effet, je préfère séparer les boîtiers "actionneurs" des boîtiers "capteurs".

Au niveau des connectiques extérieures du boîtier :
D'un côté :
-les entrées ou sorties numériques (autant qu'il y a d'opto dans le boîtier)
-l'entrée analogique sans isolation galvanique
-et une prise 4 pins pour l'I2C

De l'autre côté :
-l'alim 3.3V
-et une alimentation "de puissance" (3.3, 5, 12V), correspondant à la tension d'alimentation des actionneurs ou capteurs, au choix de ce qu'on met derrière donc.

L'idée est que tout ce petit monde soit sur le même bus, au travers d'un câble Ethernet qui transporte le H et le L du CAN bus, le 3.3V, le 5V et le 12V. De ce côté-là, d'ailleurs, je crains des phénomènes inductifs ; je ne sais pas trop si c'est pertinent ou si je devrais les séparer...

Il y aurait donc :
RPI4 (haut niveau d'abstraction) => Ethernet => ESP-quelque chose => CAN bus => tous les boîtiers décrits.
Bien sûr, il est possible d'utiliser plusieurs CAN bus si besoin ; l'idée est d'avoir un identifiant unique pour chaque "cluster" CAN bus.

Je ne sais pas encore si l'interface Ethernet - CAN bus (un ESP-quelque chose) recevra des JSON ou s’il sera plutôt abonné à un topic MQTT, mais je pense plutôt partir sur l'option MQTT.

VOILA! Merci si vous etes parvenu jusqu'ici!, je sais que c'est tres long.....
Cela vous semble il réaliste? Ai-je oublié des elements essentiels? Une betise evidente que je ne vois pas?

Petit disclaimer : je n’entends pas faire ça en claquant des doigts. Je ne pense pas terminer avant au moins un an, voire deux. Il reste encore beaucoup de travail de conception, et même d’apprentissage. Mais je voulais acheter les premiers composants pour commencer ce projet qui me tient à cœur, et éviter de jeter de l’argent par la fenêtre à cause d’une mauvaise préparation...

PS1: Pardonnez mon manque de vocabulaire, je m'exprime avec mes connaissances qui sont purement amateures... (d'où les nombreux "xxx")

PS2: Pour les opto, je pensais prendre des cartes toutes faites sur AliExpress avec opto + MOSFET + diode Schottky.

De rien :exploding_head:

Étant un vieux gamin, j'aime bien les dessins, je trouve qu'on y retrouve plus vite les infos.

Ça m'a beaucoup manqué dans ce long post.

J'ai souvent vu dans ma carriére des systémes interconnectés entre eux par un bus ASi et son câble plat jaune de 2 fils qui peut se "vampiriser" par repiquage à travers l'isolant.

C'est tellement simple â câbler sur des grandes longueurs.

Est-ce que c'est une technique "arduinisable"?

Je ne connais pas davantage.

Merci de la lecture! Bien vu pour les dessins, j'ai quelques graph sur github je vais en mettre pour etre plus claire vous avez bien raison... bus ASi je ne connais pas du tout je lis ca ce soir pour voir si c'est mieux/moins bien! Au tout début je voulais partir sur du knx mais... oah impossible de trouver des composant pour faire l'interface eth/knx ou meme serial/knx.... (enfin si mais c'est tres tres cher). Il y a aussi l'option modbus rtu mais je prefere can bus qui je crois est "multi maitre"... mais le coté vampirisation comme vous dite semble pratique, a voir si ca se trouve des pieces pour faire ca, ca peut etre marrant (peu importe bus d'ailleurs)

J'ai peur que ça coûte "un peu" cher, c'est une piste.

1 Like

Un premier shema posté! En faire d'autre sera plus long (celui la était deja fait)

Ok bon super interessant je ne connaissais pas ASI!
J'ai du mal a trouver des composants pour interfacer un bus asi avec esp32 pour le moment... a mediter, ca serait tres interessant sur l'état actuel du projet pour remplacer mes i2c pas du tout appropriés, en revanche cela ne me permet pas de faire du multi maitres.... un peu moins resilient au bruit aussi mais dans mon cas ce n'est pas grave, la ou de l'asi aurait sa place ca serait plus entre les boitiers avec les esp c3 super mini et les capteurs et actioneurs pour rentre tout ca encore plus "standard" ... mais reste les difference d'alimentation des peripheriques (sensors et actioners) que il faudrait gerer... a reflechire ca complexifie je penses mais je vais prendre le temps d'y reflechir
En tout cas merci pour l'info ca me fait une autre corde a mon arc!