Mục lục:

JavaStation (Máy pha cà phê IoT hoàn toàn tự động nạp đầy tự động): 9 bước (có hình ảnh)
JavaStation (Máy pha cà phê IoT hoàn toàn tự động nạp đầy tự động): 9 bước (có hình ảnh)

Video: JavaStation (Máy pha cà phê IoT hoàn toàn tự động nạp đầy tự động): 9 bước (có hình ảnh)

Video: JavaStation (Máy pha cà phê IoT hoàn toàn tự động nạp đầy tự động): 9 bước (có hình ảnh)
Video: The computer designed to only run Java Applets - Sun JavaStation 2024, Tháng bảy
Anonim
JavaStation (Máy pha cà phê IoT hoàn toàn tự động nạp đầy tự động)
JavaStation (Máy pha cà phê IoT hoàn toàn tự động nạp đầy tự động)
JavaStation (Máy pha cà phê IoT hoàn toàn tự động nạp đầy tự động)
JavaStation (Máy pha cà phê IoT hoàn toàn tự động nạp đầy tự động)
JavaStation (Máy pha cà phê IoT hoàn toàn tự động nạp đầy tự động)
JavaStation (Máy pha cà phê IoT hoàn toàn tự động nạp đầy tự động)

Mục tiêu của dự án này là tạo ra một máy pha cà phê được điều khiển bằng giọng nói hoàn toàn tự động có thể tự động nạp đầy nước và tất cả những gì bạn thực sự cần làm là thay thế những người khách quen và uống cà phê của bạn;)

Bước 1: Giới thiệu

Giới thiệu
Giới thiệu

Vì đây là lần sửa đổi cà phê thứ hai của tôi, tôi đã học được rất nhiều điều trong quá trình này, đặc biệt là việc bạn sửa đổi máy càng phức tạp thì càng có nhiều vấn đề / lỗi bạn gặp phải trong quá trình vận hành hàng ngày. Chiếc máy trước đây chỉ là một chiếc máy pha cà phê 1 công tắc cũ đơn giản với một mod chuyển tiếp.

Circolo (phiên bản hoàn toàn tự động) là dòng máy cao cấp hàng đầu của Dolce Gusto. Tôi đã phải dành hàng giờ để tìm kiếm chiếc máy phù hợp vì tất cả các máy khác từ dòng này đều sử dụng cần gạt cơ học trên cùng để chuyển đổi giữa dòng nước lạnh và nóng như trên hình.

Bước 2: Chọn đúng máy

Chọn đúng máy
Chọn đúng máy

Máy cơ bản của tôi không chỉ hoàn toàn tự động mà còn có các tính năng đáng chú ý như tự động tắt sau 5 phút và ghi nhớ lượng cà phê cuối cùng (điều này sẽ giúp mọi thứ dễ dàng hơn rất nhiều sau này trong quá trình sửa đổi). Hoạt động cơ bản của máy:

1, Nút nguồn được đẩy

2, Nhấn nút nước lạnh (nó sẽ ngay lập tức phân tán nước vào cốc)

3, Nhấn nút nước nóng (nó sẽ làm nóng nồi hơi ~ 20-60 giây và bắt đầu xả nước nóng vào cốc) Đèn nguồn sẽ nhấp nháy màu đỏ trong thời gian chờ sau đó chuyển sang màu xanh vĩnh viễn khi nồi hơi đã sẵn sàng.

Máy này cũng có khả năng phát hiện các lỗi sau:

Bể nước trống

Giá đỡ cốc không đúng vị trí

Trong cả hai trường hợp, đèn nguồn sẽ nhấp nháy giữa màu đỏ / xanh lục.

Bước 3: Sửa đổi phần cứng

Sửa đổi phần cứng
Sửa đổi phần cứng

Trong bài viết này, tôi sẽ không trình bày chi tiết việc tháo rời và lắp ráp lại vỏ máy vì có các video về nó trên YouTube. Bộ vi xử lý chính được giấu ngay bên dưới bảng điều khiển đầu, nơi đặt 2 công tắc. Lò hơi nằm ở phía bên phải của vỏ máy tách biệt với mọi thứ khác, máy bơm và bảng điều khiển nguồn điện nằm ở phía bên trái.

Máy pha cà phê là một môi trường hoạt động nặng nề đối với các thiết bị điện tử, không có thiết bị nào trong số các thiết bị bên cạnh là hoàn toàn phù hợp để tích hợp một mạch điện. Bên phải của lò hơi có nhiều không gian hơn nhưng bạn sẽ xử lý nhiệt, rõ ràng là mạch không thể chạm vào tấm lò hơi hoặc thậm chí ở gần nó. Tôi đã chọn nguồn cấp điện / phía máy bơm nhưng ở đây bạn phải đối mặt với sự cộng hưởng nặng nề đến từ hoạt động của máy bơm màng có thể phá hỏng mạch điều khiển / làm dây dẫn tuột ra khỏi đầu nối của chúng theo thời gian.

Bảng cấp nguồn không chứa bất kỳ thứ gì hữu ích nhưng có thể được sử dụng để ngắt nguồn + 5V ổn định (thêm một ngón tay cái cho máy này) có thể được kết nối trực tiếp với chân VIN của Arduino thông qua bộ điều chỉnh điện áp trên bo mạch.

Danh sách phần cứng nhanh (không phải BOM đầy đủ, không bao gồm những điều cơ bản):

  1. Dolce Gusto Circulo phiên bản hoàn toàn tự động
  2. Mô-đun chuyển tiếp 5V 4 kênh với bộ ghép quang cho PIC AVR DSP (Tôi khuyên bạn nên sử dụng Rơ le chuyển mạch bằng cây sậy 4x SIP-1A05)
  3. Arduino Micro (Tôi khuyên bạn nên sử dụng SparkFun Pro Micro hoặc mới hơn trong tương lai)
  4. 2PCS 4n35 FSC Optocouplers Phototransistor
  5. 1/2 "Van điện từ cho không khí nước N / C thường đóng DC 12V
  6. Mô-đun siêu âm Cảm biến đầu dò đo khoảng cách HC-SR04 (mua một số tính năng bổ sung, bạn sẽ biết lý do sau)
  7. 2pcs Mô-đun cảm biến phát hiện độ ẩm hạt mưa Phát hiện mưa cho Arduino
  8. 1 Xbee
  9. Phụ kiện đường ống cho khối nước (có thể thay đổi tùy theo từng ngôi nhà, tốt nhất nên mua nó ở cửa hàng đồ gia dụng và đặt tất cả lại với nhau ở đó trước khi mua)

Bước 4: Kết nối chính và bảng điều khiển

Kết nối chính và bảng điều khiển
Kết nối chính và bảng điều khiển
Kết nối chính và bảng điều khiển
Kết nối chính và bảng điều khiển
Kết nối chính và bảng điều khiển
Kết nối chính và bảng điều khiển

Các điểm mạch sau đây cần được kết nối:

1, Nút nóng

2, Nút lạnh

3, dẫn đỏ

4, màu xanh lá cây dẫn

5, Nút bật nguồn chính

6, GND được chia sẻ

Thật không may, tôi đã làm mất ghi chú / hình ảnh của mình về nơi hàn những thứ này trên bảng nhưng tất cả đều có thể dễ dàng truy tìm lại bằng đồng hồ vạn năng (chỉ cần sử dụng chế độ kiểm tra diode để theo dõi các dây trở lại). Việc hàn không quá khó, hãy chọn các điểm bằng chân SMD và hàn dây ở đó.

Cả hai đèn LED Đỏ / Xanh lá cây đều nằm cạnh nhau ở công tắc nguồn. Chúng cần thiết để xác định trạng thái máy (bật nguồn, sẵn sàng pha cà phê (nồi hơi nóng lên), lỗi). Tôi đã tháo chúng trực tiếp ra khỏi bo mạch chính, vì rất khó để loay hoay với mạch điện nhỏ xung quanh công tắc nguồn.

Tôi đang sử dụng bộ ghép quang của 4N35 để giao tiếp an toàn với Arduino và đọc trạng thái của đèn LED. Ý tưởng ban đầu là sử dụng 5 trong số chúng và thực hiện cả việc đọc và điều khiển công tắc (tạo ra một mạch hoàn toàn im lặng). Thật không may, con chip này không thể tạo ra điện trở đủ thấp để mô phỏng một nút nhấn nên tôi buộc phải sử dụng rơ le. Tôi đã sử dụng mô-đun rơle 4 kênh chung mà tôi có trong tay nhưng nếu tôi phải thực hiện lại dự án này, tôi sẽ chỉ sử dụng rơle Reed nhỏ (SIP-1A05 Reed Switch Relay với điốt flyback bên trong) có thể được kết nối trực tiếp với đầu ra của Arduino chân (tải ~ 7mA) để mọi thứ có thể được đặt trên cấu trúc bảng 2 cấp.

Có thể dễ dàng đưa 5 dây cáp nhỏ xuống bên cạnh dây nguồn bên dưới bảng mạch nguồn.

Để sử dụng không gian hiệu quả hơn trong máy, tôi quyết định chia thiết bị điện tử thành 2 bảng chính:

Bên trái là bảng điều khiển chính, bên phải (những gì tôi gọi là bảng giao tiếp) giữ Xbee và mặc dù nó không được hiển thị trên hình ảnh nhưng 2 cảm biến nước (để phát hiện tràn) nằm phía sau nó. Ở phía trên cùng của đồng hồ thời gian thực (tùy chọn cho thời gian hoạt động:)) và bảng chuyển tiếp 4 kênh nằm bên cạnh máy bơm ở phía dưới được bọc thành miếng bọt biển, cũng được dán keo một chút để bảo vệ khỏi cộng hưởng.

Đối với bảng giao tiếp, tôi không bận tâm đến việc chế tạo PCB mà chỉ sử dụng một bảng mạch thông thường vì không có nhiều thứ diễn ra ở đó. Nó có 6 kết nối với bo mạch chính:

Vcc (5V), GND, Xbee (TX), Xbee (RX), Cảm biến nước1 (Dữ liệu), Cảm biến nước2 (Dữ liệu)

Bước 5: Kiểm soát lưu lượng nước và cơ chế nạp lại

Kiểm soát dòng nước và Cơ chế nạp lại
Kiểm soát dòng nước và Cơ chế nạp lại
Kiểm soát dòng nước và Cơ chế nạp lại
Kiểm soát dòng nước và Cơ chế nạp lại
Kiểm soát dòng nước và Cơ chế nạp lại
Kiểm soát dòng nước và Cơ chế nạp lại

Tôi đã thiết kế chiếc máy này với mục đích bảo mật, giúp cho những kẻ tấn công / trục trặc không thể gây thiệt hại nghiêm trọng đến nguồn nước cho ngôi nhà vì máy sẽ được kết nối với cả vòi và Internet 24/7. Đây là những gì mạch bảo vệ 555 sau đây thực hiện trên đầu của bộ điện từ.

Cũng lưu ý rằng bộ điện từ hoạt động từ nguồn điện 12V mà tôi vẫn cố gắng ép vào đáy của máy pha cà phê bên cạnh máy bơm và bảng tiếp điện. Không để lãng phí nguồn điện, board relay 4channel chuyển trực tiếp main 230V sang adapter sau đó sẽ bật solenoid. Tất nhiên có một vài micro giây thời gian trễ mà bạn phải tính toán cho sự sụp đổ của từ trường cả trên bộ điện từ + trên bộ chuyển đổi khi kéo phích cắm.

Tôi đang sử dụng giắc cắm tiêu chuẩn 3,5 mm để kết nối khối nước bên ngoài với một dây dài 3m và một ống PVC đường kính nhỏ đi ra từ khối đến máy pha cà phê.

Phần trên của bồn nước được khoan lỗ để chứa đường ống này sau đó được đưa xuống đáy bồn. Tôi xin lưu ý rằng điều rất quan trọng là phải cấp đường ống xuống đáy ở bên cạnh mà không đi qua giữa và gây trở ngại cho các cảm biến siêu âm.

Sau khi bộ điện từ được cấp nguồn, mạch sẽ tự động tắt nó sau ~ 4 giây (phải quá đủ thời gian để nạp đầy bình) và nó vẫn ở trạng thái này cho đến chu kỳ BẬT nguồn tiếp theo. Mạch này là tuyến bảo vệ cuối cùng chống lại sự cố và nó hoạt động hoàn toàn độc lập với máy pha cà phê. Nếu rơ le trong máy bị hỏng và tiếp tục đóng, nước có thể tràn vào nhà, với biện pháp bảo vệ này, điều đó không bao giờ có thể xảy ra.

Nếu điều này vẫn không đủ tốt cho bạn hoặc không thể đóng nước hoặc bạn không muốn loay hoay với các khối nước, hãy xem dự án WasserStation của tôi được xây dựng chính xác cho việc này để mở rộng ngăn chứa nước nhỏ của máy pha cà phê.

Bước 6: Phát hiện ngập lụt

Phát hiện ngập lụt
Phát hiện ngập lụt
Phát hiện ngập lụt
Phát hiện ngập lụt
Phát hiện ngập lụt
Phát hiện ngập lụt

Có thêm 2 cảm biến nước để bảo vệ:

  • Cảm biến 1: ở phía sau bể để phát hiện tràn từ bể
  • Cảm biến 2: ở dưới cùng của máy pha cà phê để phát hiện tràn cốc

Cả hai cảm biến này sẽ kích hoạt ngắt làm tắt nguồn nước ngay lập tức, bật đèn báo lỗi và ngừng thực hiện chương trình để ngăn chặn một cuộc tấn công như pha một triệu cà phê và làm ngập nhà theo cách đó. Sau khi thoát khỏi chương trình, máy sẽ không còn phản hồi bất cứ điều gì và phải được bật nguồn theo cách thủ công.

Trong trường hợp bạn tự hỏi điều gì sẽ xảy ra nếu cảm biến siêu âm bị ngập nước (nó đã xảy ra một lần:))

Nó đã cung cấp lại mực nước như thế này trong vài ngày nhưng ngay cả sau khi nó khô đi, nó không bao giờ chính xác trở lại và tôi phải thay thế nó. Máy được thiết kế để chạy từ vòi nước lạnh nên không có hơi nước nóng làm hỏng cảm biến. Cảm biến này chỉ chính xác cho đến khi mực nước cách nó 2-3 cm.

Hình dạng elip của bể khiến việc tính toán mực nước trở nên khó khăn vì vậy chúng được đo và mã hóa cứng vào chương trình để tương ứng với tỷ lệ phần trăm.

Bước 7: Kiểm tra và lắp ráp cuối cùng

Kiểm tra và lắp ráp cuối cùng
Kiểm tra và lắp ráp cuối cùng
Kiểm tra và lắp ráp cuối cùng
Kiểm tra và lắp ráp cuối cùng
Kiểm tra và lắp ráp cuối cùng
Kiểm tra và lắp ráp cuối cùng

Máy ở trạng thái cuối cùng, gần như hoàn toàn ẩn dấu vết của bất kỳ vụ hack nào và nếu 3 đèn LED chỉ báo trạng thái và cổng gỡ lỗi USB không ở đó, bạn sẽ không thể biết có bất kỳ điều gì khác đang xảy ra bên trong khi nó thậm chí có thể có kết nối Wifi Máy chủ Quake:)

Khi tôi sửa đổi thiết bị, tôi luôn ưu tiên hàng đầu việc sử dụng thủ công. Sau khi hack, máy hoàn toàn có thể sử dụng được như ban đầu, ngoại trừ két nước không thể dễ dàng tháo rời. Trừ khi bạn hoàn thành phần thiết kế tự động hóa hoàn toàn nước, máy chỉ có thể được đổ đầy vào thời điểm này bằng tổ hợp ống nhỏ + phễu.

Bước 8: Mã kiểm soát cà phê

Mã kiểm soát cà phê
Mã kiểm soát cà phê

Tìm mã nguồn Arduino đầy đủ được đính kèm bên dưới.

Giải thích ngắn gọn về mã:

Vòng lặp chính gọi hàm xcomm (), chịu trách nhiệm xử lý lệnh, pha cà phê, bật / tắt máy.

Mã bên dưới chỉ đạt được trong trường hợp điều khiển bằng tay. Nó tăng một bộ đếm thống kê để theo dõi số lượng cà phê đã được pha và tự động làm đầy bình chứa nước.

Các lệnh có thể được gửi qua Xbee hoặc qua cổng USB (Phải bật gỡ lỗi ngay từ đầu). Khi liên lạc đến từ một trong hai đèn LED màu cam sẽ nhấp nháy trong một giây để hiển thị hoạt động mạng. Các lệnh sau được thực hiện:

1, CMSTAT - thống kê truy vấn từ máy

Máy lưu trữ số liệu thống kê về số lượng cà phê nóng / lạnh / thủ công đã được tạo ra và cũng có được thời gian hoạt động từ RTC không bị tràn sau 3 ngày nên có thể lên đến hàng năm: P

2, CMWSTART - bắt đầu pha cà phê và đồ uống nóng bằng nước nóng

3, CMCSTART - bắt đầu pha trà đá và đồ uống lạnh bằng nước lạnh

Quá trình nóng và lạnh bắt đầu bằng việc gọi hàm standby (), hàm này sẽ kiểm tra thêm sau đó kích hoạt nút nguồn. Sau đó, chương trình chờ đèn xanh (khi nồi hơi nóng lên) sau đó giả lập nút nhấn nóng / lạnh. Sau đó, nó đợi 50 giây (quá đủ cho cả tách cà phê lớn nhất) rồi tắt nguồn. Điều này thậm chí không cần thiết vì chiếc máy tuyệt vời này sẽ tự động tắt 5 phút sau khi pha cà phê nhưng tại sao lại lãng phí điện năng? Nhân tiện, mức tiêu thụ điện năng ở chế độ chờ của máy ngay cả sau khi sửa đổi là dưới 2 Watts.

Nạp nước và an ninh

Chiếc máy này được thiết kế với mục đích bảo mật, vì vậy kẻ tấn công giành được quyền kiểm soát sẽ không thể làm ngập cả ngôi nhà trong nước. Một lỗi phần cứng cũng sẽ không dẫn đến thiệt hại nghiêm trọng. Bên cạnh các cảm biến phần cứng có các biện pháp bảo vệ được tích hợp trong mã để nạp lại. Bộ đếm kích hoạt quy trình ISR nếu máy không được nạp đầy sau x giây (ví dụ: điều này có thể xảy ra nếu cảm biến siêu âm bị trục trặc và cho ra 20% sau x giây sau khi bắt đầu nạp đầy).

Không có xác thực, bất kỳ ai cũng có thể sử dụng máy trong phạm vi vô tuyến, người biết lệnh vì vậy tôi đã thay đổi ID Xbee piconet mặc định thành một thứ khác, ERR_INVALIDCMD cũng có thể được nhận xét và máy sẽ bỏ qua mọi lệnh không xác định.

Lỗi

Lỗi cà phê kép: điều khó chịu nhất về lỗi này là nó bắt đầu xảy ra vài tháng sau khi sử dụng máy có cùng mã. Sau khi lệnh pha cà phê được phát ra, nó đã pha cà phê, tắt và bật lại và tiếp tục pha thêm 1 ly cà phê với cùng một patroon.

Tôi đã phải bắt đầu gỡ lỗi trùng lặp lệnh từ cấp độ Android vì tôi đã triển khai gửi lại mã trong trường hợp mất gói. Hóa ra là cả phần mềm điều khiển android, C hay nhân Linux trên raspi2 đều không chịu trách nhiệm về điều này thay vì Xbee.

Sau khi phát ra tiếng vọng “CMCSTART”> / dev / ttyACM0 trên nút điều khiển, nó phát ra hai lần đến đầu kia. Tôi kết luận rằng phổ 2,4Ghz trong nhà của tôi bắt đầu bị bão hòa từ nhiều thiết bị vô tuyến trong phạm vi này khiến Xbee gọi một số loại gửi lại trong lớp vô tuyến và dữ liệu được gửi hai lần (không phải lúc nào cũng vậy). Khi lệnh đầu tiên đến trong máy, hàm xcomm () bắt đầu xử lý nó, tuy nhiên lệnh thứ hai đến ngay sau đó đang đợi trong bộ đệm Xbees và khi vòng lặp kết thúc, nó bắt đầu xử lý lệnh thứ hai. Để giải quyết vấn đề này, tôi đã giới thiệu 3 ngưỡng trong mã để không thể pha nhiều hơn 1 ly cà phê trong 2 phút. Ngoài ra, có một giới hạn đối với CMSTAT nhưng để không can thiệp vào mã điều khiển C / Android, nó sẽ chỉ làm chậm các phản hồi trong 2 giây.

Ngưỡng cuối cùng được đặt cho quầy cà phê thủ công, bởi vì một khi máy đã đạt đến trạng thái sẵn sàng (lò hơi nóng lên, đèn xanh) nó đã ghi lại sự kiện màu xanh lá cây hàng trăm lần làm tăng số lượng cà phê.

Bước 9: Cân nhắc thiết kế và suy nghĩ cuối cùng

Sau rất nhiều rắc rối từ việc giao tiếp với Xbee, tôi sẽ không giới thiệu Xbee cho dự án này. Sử dụng radio 433Mhz giá rẻ tiêu chuẩn với VirtualWire và giảm Bps để ổn định hoặc nhúng Raspberry PI Zero có kết nối Wifi trực tiếp vào máy pha cà phê.

Vì ngày tháng cho thấy đây là một dự án cũ nên tôi xin lỗi vì thiếu các chi tiết nhỏ như kết nối từ mạch điều khiển đến các chân pin chính xác trên bo mạch chủ. Dự án này yêu cầu một mức độ kiến thức kỹ thuật nhất định để thực hiện nó một mình. Nếu bạn tìm thấy bất kỳ lỗi / vấn đề nào hoặc muốn đóng góp cho hướng dẫn này, vui lòng cho tôi biết.

Phần mềm điều khiển, các phương pháp điều khiển bằng giọng nói là một phần khác giúp bạn có thể chuẩn bị cà phê chỉ bằng một khẩu lệnh trước khi ra khỏi giường.

Hiện tôi đã hoàn thành tài liệu về hệ thống lưu trữ nước của mình (WasserStation) và cập nhật CoffeeControlCode lên phiên bản mới nhất, cũng bao gồm tính năng nạp đầy tự động. Nếu bạn sử dụng cùng một máy cho công trình, việc đổ đầy sẽ hoạt động hoàn hảo (không có bất kỳ sửa đổi nào đối với mã) vì mực nước đã được hiệu chỉnh theo bình chứa nước của Circolo.

Đề xuất: