Kiến trúc này có khả thi và linh hoạt không?


9

Tôi đang gặp khó khăn nhưng đảm bảo dự án của tôi thực sự khả thi.

Những gì tôi muốn lưu trữ: Điều khiển máy pha cà phê Senseo của tôi qua internet. Nó sôi xuống chỉ đơn giản là kiểm soát 2 nút.

Giải pháp dễ dàng đầu tiên:

  1. Thiết lập máy chủ NodeJS trên Raspberry Pi của tôi.
  2. Tôi cắm GPIO Raspberry của mình vào 2 bóng bán dẫn, để điều khiển các nút máy pha cà phê
  3. Tôi có thể điều khiển Raspberry GPIO trực tiếp trong Javascript. Ví dụ: gọi http://myraspberrypi.com/makemeacoffee kích hoạt GPIO, kích hoạt các nút và dòng cà phê

Nhưng: Tôi không muốn cắm quả mâm xôi vào máy pha cà phê của mình (tôi cần Pi cho các mục đích khác) và tôi nghĩ rằng việc tách rời máy chủ web và chính bộ điều khiển là một ý tưởng hay. Nếu ngày mai tôi muốn theo dõi nhiệt độ phòng tắm của mình, hoặc điều khiển máy pha cà phê thứ hai (sử dụng một chiếc ESP8266 khác) tôi muốn có thể làm điều đó mà không cần suy nghĩ lại toàn bộ.

Những gì tôi cần lưu trữ đó là một chiếc ESP8266 với NodeMCU để sử dụng nó làm bộ điều khiển không đầu Wi-Fi (xem liên kết này ). GPIO Raspberry không còn được sử dụng (đó là điểm). Chỉ có một máy chủ web NodeJS trên Pi.

Dưới đây là một bản phác thảo nhanh về kiến ​​trúc: kiến trúc này có khả thi không?

Hãy để tôi làm rõ vai trò của các thành phần chính:

  • Raspberry Pi: Lưu trữ máy chủ web NodeJS
  • Máy chủ web NodeJS: Phục vụ các trang web cho người dùng cuối. Về cơ bản một trang với một nút "Làm cho tôi một ly cà phê". Đằng sau hậu trường, chúng ta cần "đẩy" nút nước nóng lên, đợi 30 giây, sau đó "nhấn" nút cà phê. Máy chủ web thực hiện điều đó bằng cách gửi các yêu cầu HTTP đến ESP8266 (qua Wi-Fi). Máy chủ NodeJS cũng thực hiện ghi nhật ký và phân tích dữ liệu (bạn đã uống bao nhiêu cà phê trong năm nay?)
  • ESP8266: Sử dụng NodeMCU. GPIO của nó được cắm vào một bóng bán dẫn điều khiển các nút máy pha cà phê. Tôi không quan tâm đến cách cung cấp năng lượng cho ESP8266. Nó chạy một máy chủ web để lắng nghe các yêu cầu Raspberry Pi và thực hiện các hành động trên GPIO tương ứng.

Kiến trúc này có khả thi không? Kiến trúc này có linh hoạt không?


EDIT, để trả lời Sean Houlihane (spoiler để giữ bài tương đối ngắn):

Tôi không chắc chắn 100% về điều này, nhưng một bóng bán dẫn dường như là đủ. Công tắc máy pha cà phê đang hoạt động ở điện áp thấp (3,3V) và ESP8266 sẽ không chia sẻ mặt đất với máy pha cà phê.

Về cảm biến nhiệt độ và kiểm soát mực nước, máy pha cà phê Senseo được tích hợp sẵn. Sử dụng điển hình: Nhấn nút giữa để khởi động quá trình tăng nhiệt, chọn kích cỡ cà phê của bạn bằng cách nhấn nút "đơn" hoặc "gấp đôi". Khi quá trình tăng nhiệt kết thúc, cà phê bắt đầu chảy. Nếu không có đủ nước, nó sẽ kết thúc và đèn LED nhấp nháy.

Tiến độ tôi mong đợi:

  • Phiên bản 1.0 sẽ là "Chỉ cần chạy máy pha cà phê, tôi chắc chắn nó đã sẵn sàng". Tôi điều khiển nút cốc đơn và nút tăng nhiệt.
  • Phiên bản 2.0 sẽ là "Chạy máy và cho tôi thông tin phản hồi" Tôi đã có một chiếc ESP8266 khác, cắm vào đèn LED phản hồi (Để tôi có thể biết khi nào nó nóng lên và khi nào hết nước) và một chiếc khác để cân cốc có trước khi chạy máy pha cà phê. Tôi cũng có thể thêm cảnh báo khi máy pha cà phê được chạy để báo cho người dùng thay đổi nhóm.

  • Phiên bản 3.0 sẽ tìm cách để biết liệu pod đã được thay đổi hay chưa, bằng cách theo dõi việc mở cơ chế bằng một số loại công tắc. Nhưng điều này nằm ngoài phạm vi dự án của tôi vào lúc này.


Xin chào và chào mừng bạn đến với Internet of Things! Mặc dù tôi không cố gắng thuyết phục bạn chuyển câu hỏi này (tất cả đều tốt ở đây) Tôi muốn mời bạn đến raspberrypi.stackexchange.com cho bất kỳ câu hỏi nào khác (hoặc câu trả lời bạn có thể muốn cung cấp) đối với Raspberry Pi :)
Ghanima

@Ghanima Tôi biết về sự tồn tại của trang web này, tôi mới "tham gia cộng đồng" ngay bây giờ, cảm ơn
Etsitpab Nioliv

2
HTTP? Bạn nên sử dụng HTCPCP .
JAB

Câu trả lời:


5

Kiến trúc mà bạn đề xuất có vẻ ổn. Bạn có thể xây dựng thêm chức năng trên đầu trang này, chẳng hạn như xác thực và yêu cầu khử trùng (ví dụ: kiểm soát thời gian trong ngày, giới hạn tỷ lệ, v.v.) để đó là một ví dụ tuyệt vời để điều tra.

Có thể có một số chi tiết quan trọng trong việc triển khai mà bạn chưa xem xét. Ví dụ, công tắc bóng bán dẫn - đây có thể cần phải là mosfet, có thể là rơle (hoặc rơle trạng thái rắn) và có thể có vấn đề về điện áp và cách ly.

Nhiều thứ khác để xem xét, cảm biến nhiệt độ, mực nước (cẩn thận về ô nhiễm) và các tính năng khác. Theo dõi pod RGB (điều này làm cho nó trở thành một máy sử dụng một lần hay cần một báo thức không thay thế pod?)


1
Chỉnh sửa câu trả lời của tôi để cung cấp thêm thông tin về mục tiêu cuối cùng và các bước để đạt được điều đó
Etsitpab Nioliv
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.