Questa architettura è fattibile e flessibile?


9

Sto avendo un problema ma assicurandomi che il mio progetto sia davvero fattibile.

Cosa voglio archiviare: controlla la mia macchina da caffè Senseo via Internet. Si riduce a controllare semplicemente 2 pulsanti.

Prima soluzione semplice:

  1. Installa un server NodeJS sul mio Raspberry Pi.
  2. Collego i miei GPIO Raspberry a 2 transistor, per controllare i pulsanti della macchina da caffè
  3. Posso controllare Raspberry GPIO direttamente in Javascript. Ad esempio, chiamando http://myraspberrypi.com/makemeacoffee si attiva il GPIO, si attivano i pulsanti e il caffè scorre

Ma: non voglio collegare il mio lampone alla mia macchina per il caffè (ho bisogno del Pi per altri scopi) e penso che disaccoppiare il web server e il controller stesso sia una buona idea. Se domani voglio monitorare la temperatura del mio bagno o controllare una seconda macchina da caffè (usando un altro ESP8266), voglio poterlo fare senza ripensare il tutto.

Quello che devo archiviare è un ESP8266 con NodeMCU per usarlo come controller senza testa Wi-Fi (vedi questo link ). Raspberry GPIO non viene più utilizzato (questo è il punto). C'è solo un web server NodeJS sul Pi.

Ecco un breve schizzo dell'architettura: questa architettura è fattibile?

Vorrei chiarire il ruolo dei componenti principali:

  • Raspberry Pi: ospita il web server NodeJS
  • Server web NodeJS: fornisce le pagine Web all'utente finale. Fondamentalmente una pagina con un pulsante "Fammi un caffè". Dietro la scena, dobbiamo "spingere" il riscaldamento del pulsante dell'acqua, attendere 30 secondi, quindi "spingere" il pulsante del caffè. Il server Web lo fa inviando richieste HTTP a ESP8266 (tramite Wi-Fi). Il server NodeJS esegue anche la registrazione e l'analisi dei dati (quanti caffè hai bevuto quest'anno?)
  • ESP8266: utilizza NodeMCU. I suoi GPIO sono collegati a un transistor che controlla i pulsanti della macchina da caffè. Non mi interessa come alimentare ESP8266. Gestisce un server Web per ascoltare le richieste di Raspberry Pi ed eseguire di conseguenza le azioni sui GPIO.

Questa architettura è fattibile? Questa architettura è flessibile?


EDIT, per rispondere a Sean Houlihane (spoiler per mantenere il post relativamente breve):

Non ne sono sicuro al 100%, ma sembra che un transistor sia sufficiente. L'interruttore della macchina da caffè funziona a bassa tensione (3,3 V) e ESP8266 non condivide il terreno con la macchina da caffè.

Per quanto riguarda il rilevamento della temperatura e il controllo del livello dell'acqua, la macchina per caffè Senseo ha questo incorporato. Uso tipico: premere il pulsante centrale per avviare il processo di riscaldamento, scegliere la dimensione del caffè premendo il pulsante "singolo" o "doppio". Una volta terminato il processo di riscaldamento, il caffè inizia a fluire. Se non c'è abbastanza acqua, termina e un LED lampeggia.

I progressi che mi aspetto:

  • La versione 1.0 sarà "Basta avviare la macchina da caffè, sono sicuro che sia pronta". Controllo il pulsante della tazza singola e il pulsante di riscaldamento.
  • La versione 2.0 sarà "Avvia la macchina e inviami un feedback" Avevo un altro ESP8266, collegato al LED di feedback (in modo da poter sapere quando si sta riscaldando e quando è fuori dall'acqua) e un altro su una scala per assicurarsi che il la tazza è lì prima di far funzionare la macchina da caffè. Potrei anche aggiungere un avviso quando la macchina da caffè viene avviata per dire all'utente di cambiare il contenitore.

  • La versione 3.0 sarà per trovare un modo per capire se il pod è stato modificato, monitorando l'apertura del meccanismo con una sorta di interruttore. Ma questo non rientra nell'ambito del mio progetto al momento.


Ciao e benvenuto su Internet of Things! Anche se non sto cercando di convincerti a spostare questa domanda (va bene qui), vorrei invitarti a raspberrypi.stackexchange.com per qualsiasi altra domanda (o risposta che potresti voler fornire) rispetto al Raspberry Pi :)
Ghanima,

@Ghanima Sono consapevole dell'esistenza di questo sito, mi sono appena "unito alla community" proprio ora, grazie
Etsitpab Nioliv,

2
HTTP? Dovresti usare HTCPCP .
JAB

Risposte:


5

L'architettura che proponi sembra OK. Puoi aggiungere ulteriori funzionalità, come l'autenticazione e la sanificazione delle richieste (ad esempio controlli dell'ora del giorno, limitazione della velocità, ecc.), Quindi è un ottimo esempio da investigare.

Probabilmente ci sono alcuni dettagli importanti nell'implementazione che non hai ancora esaminato. Ad esempio, l'interruttore a transistor - potrebbe essere necessario un mosfet, forse un relè (o relè a stato solido) e potrebbe avere problemi di tensione e isolamento.

Altre cose da considerare, rilevamento della temperatura, livello dell'acqua (attenzione alla contaminazione) e altre caratteristiche. Tracciamento pod RGB (questo lo rende una macchina monouso o necessita di un allarme pod non sostituito?)


1
Modificata la mia risposta per fornire maggiori informazioni
sull'obiettivo
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.