Cette architecture est-elle faisable et flexible?

9

J'ai du mal à m'assurer que mon projet est vraiment réalisable.

Ce que je veux archiver: contrôler ma machine à café Senseo via Internet. Cela revient à contrôler simplement 2 boutons.

Première solution simple:

  1. Configurer un serveur NodeJS sur mon Raspberry Pi.
  2. Je branche mes GPIO Raspberry à 2 transistors, pour contrôler les boutons de la machine à café
  3. Je peux contrôler le RIO de framboise directement en Javascript. Par exemple, appeler http://myraspberrypi.com/makemeacoffee active le GPIO, active les boutons et le café coule

Mais: je ne veux pas brancher ma framboise sur ma machine à café (j'ai besoin du Pi à d'autres fins), et je pense que le découplage du serveur web et du contrôleur lui-même est une bonne idée. Si demain je veux surveiller la température de ma salle de bain, ou contrôler une deuxième machine à café (en utilisant une autre ESP8266) je veux pouvoir le faire sans repenser le tout.

Ce dont j'ai besoin pour archiver, c'est un ESP8266 avec NodeMCU pour l'utiliser comme contrôleur sans fil Wi-Fi (voir ce lien ). Raspberry GPIO n'est plus utilisé (c'est le point). Il n'y a qu'un serveur Web NodeJS sur le Pi.

Voici un bref aperçu de l'architecture: cette architecture est-elle faisable?

Permettez-moi de clarifier le rôle des principaux composants:

  • Raspberry Pi: héberge le serveur Web NodeJS
  • Serveur Web NodeJS: sert les pages Web à l'utilisateur final. Fondamentalement, une page avec un bouton "Faites-moi un café". Dans les coulisses, nous devons «pousser» le bouton de chauffe jusqu'à l'eau, attendre 30 secondes, puis «pousser» le bouton du café. Le serveur Web le fait en envoyant des requêtes HTTP à l'ESP8266 (via Wi-Fi). Le serveur NodeJS effectue également la journalisation et l'analyse des données (combien de café avez-vous bu cette année?)
  • ESP8266: utilise NodeMCU. Ses GPIO sont branchés sur un transistor contrôlant les boutons de la machine à café. Je me fiche de la façon d'alimenter l'ESP8266. Il exécute un serveur Web pour écouter les demandes du Raspberry Pi et effectuer des actions sur les GPIO en conséquence.

Cette architecture est-elle réalisable? Cette architecture est-elle flexible?


EDIT, pour répondre à Sean Houlihane (spoiler pour garder le post relativement court):

Je ne suis pas sûr à 100%, mais un transistor semble suffire. L'interrupteur de la machine à café fonctionne à basse tension (3,3 V) et l'ESP8266 ne partagera pas le sol avec la machine à café.

À propos de la détection de la température et du contrôle du niveau d'eau, la machine à café Senseo dispose de cette fonction intégrée. Utilisation typique: Appuyez sur le bouton central pour lancer le processus de chauffage, choisissez votre taille de café en appuyant sur le bouton "simple" ou "double". Une fois le processus de chauffe terminé, le café commence à couler. S'il n'y a pas assez d'eau, il se termine et une LED clignote.

Les progrès que j'attends:

  • La version 1.0 sera "Il suffit de faire fonctionner la machine à café, je suis sûr qu'elle est prête". Je contrôle le bouton d'une tasse et le bouton de chauffe.
  • La version 2.0 sera "Faites fonctionner la machine et donnez-moi des commentaires". J'avais un autre ESP8266, branché sur la LED de rétroaction (pour que je puisse savoir quand il chauffe et quand il est hors de l'eau) et un autre à une échelle pour s'assurer que le tasse est là avant de faire fonctionner la machine à café. Je pourrais également ajouter une alerte lorsque la machine à café est en marche pour dire à l'utilisateur de changer la dosette.

  • La version 3.0 consistera à trouver un moyen de savoir si le pod a été changé, en suivant l'ouverture du mécanisme avec une sorte de commutateur. Mais cela sort du cadre de mon projet pour le moment.

Etsitpab Nioliv
la source
Bonjour et bienvenue sur Internet des objets! Bien que je n'essaie pas de vous convaincre de déplacer cette question (tout va bien ici), je voudrais vous inviter à raspberrypi.stackexchange.com pour toute autre question (ou réponse que vous voudrez peut-être fournir) concernant la Raspberry Pi :)
Ghanima
@Ghanima Je suis conscient de l'existence de ce site, je viens de "rejoindre la communauté" en ce moment, merci
Etsitpab Nioliv
2
HTTP? Vous devez utiliser HTCPCP .
JAB

Réponses:

5

L'architecture que vous proposez semble correcte. Vous pouvez créer plus de fonctionnalités en plus de cela, telles que l'authentification et la désinfection des demandes (par exemple, les contrôles de l'heure, la limitation du débit, etc.), c'est donc un excellent exemple à étudier.

Il y a probablement quelques détails importants dans l'implémentation que vous n'avez pas encore examinés. Par exemple, le commutateur à transistors - il peut s'agir d'un mosfet, peut-être d'un relais (ou d'un relais à semi-conducteurs) et peut avoir des problèmes de tension et d'isolement.

Plus de choses à considérer, détection de température, niveau d'eau (attention à la contamination) et autres caractéristiques. Suivi des pods RVB (cela en fait-il une machine à usage unique, ou avez-vous besoin d'une alarme de pod non remplacée?)

Sean Houlihane
la source
1
Modifié ma réponse pour donner plus d'informations sur l'objectif final et les étapes pour y arriver
Etsitpab Nioliv