Czy ta architektura jest wykonalna i elastyczna?

9

Mam problem z upewnieniem się, że mój projekt jest naprawdę wykonalny.

Co chcę zarchiwizować: Kontroluj mój ekspres do kawy Senseo przez Internet. Sprowadza się do zwykłego sterowania 2 przyciskami.

Pierwsze łatwe rozwiązanie:

  1. Skonfiguruj serwer NodeJS na moim Raspberry Pi.
  2. Podłączam moje Raspberry GPIO do 2 tranzystorów, aby kontrolować przyciski ekspresu do kawy
  3. Mogę kontrolować Raspberry GPIO bezpośrednio w JavaScript. Na przykład wywołanie http://myraspberrypi.com/makemeacoffee aktywuje GPIO, aktywuje przyciski i kawa płynie

Ale: Nie chcę podłączać mojej maliny do ekspresu do kawy (potrzebuję Pi do innych celów) i uważam, że oddzielenie serwera WWW i samego kontrolera to dobry pomysł. Jeśli jutro chcę monitorować temperaturę w mojej łazience lub sterować drugim ekspresem do kawy (za pomocą innego ESP8266), chcę móc to zrobić bez ponownego przemyślenia całej sprawy.

To, co muszę zarchiwizować, to ESP8266 z NodeMCU, aby używać go jako bezgłowego kontrolera Wi-Fi (patrz ten link ). Raspberry GPIO nie są już używane (o to chodzi). Na Pi jest tylko serwer sieciowy NodeJS.

Oto krótki szkic architektury: czy ta architektura jest możliwa?

Pozwól, że wyjaśnię rolę głównych elementów:

  • Raspberry Pi: Hostuje serwer sieciowy NodeJS
  • Serwer sieciowy NodeJS: Obsługuje strony internetowe dla użytkownika końcowego. Zasadniczo strona z przyciskiem „Zrób mi kawę”. Za kulisami musimy „nacisnąć” przycisk podgrzewania wody, odczekać 30 sekund, a następnie „nacisnąć” przycisk kawy. Serwer WWW robi to, wysyłając żądania HTTP do ESP8266 (przez Wi-Fi). Serwer NodeJS wykonuje również rejestrowanie i analizę danych (ile kawy wypiłeś w tym roku?)
  • ESP8266: Używa NodeMCU. Jego GPIO są podłączone do tranzystora sterującego przyciskami ekspresu do kawy. Nie dbam o to, jak zasilić ESP8266. Działa serwer WWW, aby słuchać żądań Raspberry Pi i odpowiednio wykonywać działania na GPIO.

Czy ta architektura jest wykonalna? Czy ta architektura jest elastyczna?


EDYCJA, aby odpowiedzieć Sean Houlihane (spoiler, aby post był stosunkowo krótki):

Nie jestem tego w 100% pewien, ale tranzystor wydaje się wystarczający. Przełącznik ekspresu do kawy działa przy niskim napięciu (3,3 V), a ESP8266 nie dzieli ziemi z ekspresem do kawy.

Ekspres do kawy Senseo ma wbudowaną funkcję wykrywania temperatury i kontroli poziomu wody. Typowe zastosowanie: Naciśnij środkowy przycisk, aby rozpocząć proces podgrzewania, wybierz rozmiar kawy, naciskając przycisk „pojedynczy” lub „podwójny”. Po zakończeniu procesu podgrzewania kawa zaczyna płynąć. Jeśli nie ma wystarczającej ilości wody, kończy się, a dioda LED miga.

Postęp, którego oczekuję:

  • Wersja 1.0 będzie brzmiała: „Po prostu uruchom ekspres do kawy, jestem pewien, że jest gotowy”. Kontroluję przycisk pojedynczej filiżanki i przycisk podgrzewania.
  • Wersja 2.0 będzie brzmiała „Uruchom maszynę i przekaż mi informację zwrotną”. Miałem kolejny ESP8266, podłączony do diody LED sprzężenia zwrotnego (aby wiedzieć, kiedy się nagrzewa i kiedy nie ma wody) i jeszcze jedną na skalę, aby upewnić się, że filiżanka jest tam przed uruchomieniem ekspresu do kawy. Mogę również dodać alert, gdy ekspres do kawy jest uruchomiony, aby poinformować użytkownika o zmianie kapsuły.

  • Wersja 3.0 będzie znaleźć sposób, aby stwierdzić, czy kapsuła została zmieniona, śledząc otwarcie mechanizmu za pomocą pewnego rodzaju przełącznika. Ale obecnie nie wchodzi to w zakres mojego projektu.

Etsitpab Nioliv
źródło
Witaj w Internet of Things! Chociaż nie próbuję cię przekonać do przeniesienia tego pytania (tutaj wszystko jest dobrze), chciałbym zaprosić cię na raspberrypi.stackexchange.com w celu uzyskania innych pytań (lub odpowiedzi, które możesz chcieć udzielić) w odniesieniu do Raspberry Pi :)
Ghanima
@Ghanima Zdaję sobie sprawę z istnienia tej strony, właśnie „teraz dołączyłem do społeczności”, dzięki
Etsitpab Nioliv
2
HTTP? Powinieneś używać HTCPCP .
JAB

Odpowiedzi:

5

Architektura, którą proponujesz, wydaje się OK. Oprócz tego możesz zbudować więcej funkcji, takich jak uwierzytelnianie i dezynfekcja żądań (na przykład kontrola pory dnia, ograniczenie prędkości itp.), Więc jest to świetny przykład do zbadania.

Prawdopodobnie jest kilka ważnych szczegółów w implementacji, których jeszcze nie zbadałeś. Na przykład przełącznik tranzystorowy - może to być mosfet, może przekaźnik (lub przekaźnik półprzewodnikowy) i może mieć problemy z napięciem i izolacją.

Więcej rzeczy do rozważenia, wykrywanie temperatury, poziom wody (ostrożny w przypadku zanieczyszczenia) i inne funkcje. Śledzenie kapsułek RGB (czy to sprawia, że ​​jest to maszyna jednorazowego użytku, czy potrzebujesz alarmu niewymienionego na kapsułkę?)

Sean Houlihane
źródło
1
Zredagowałem moją odpowiedź, aby podać więcej informacji na temat ostatecznego celu i kroków, które trzeba podjąć, aby tam dotrzeć
Etsitpab Nioliv