Hộp nhắc uống thuốc cho người già có cảnh báo qua điện thoại
Ghi chú thiết kế một hộp thuốc có đèn, buzzer nhỏ, RTC và cảnh báo điện thoại cho người thân khi quá giờ mà chưa thấy xác nhận lấy thuốc.
Chia sẻ

Nếu bạn làm một phiên bản tương tự, mình khuyên thử cùng người sẽ dùng nó và giữ mọi lời nhắc thật nhẹ nhàng.
Nhắc uống thuốc nghe đơn giản, nhưng trong nhà lại là chuyện dễ căng thẳng. Người uống không muốn bị nhắc như bị kiểm soát. Người thân thì lo, nhất là khi lịch thuốc có nhiều mốc trong ngày.
Nhiều cô chú, ông bà vẫn tự sinh hoạt được, chỉ là lịch thuốc hơi rối: sáng một viên, trưa nửa viên, tối thêm thuốc khác. Điện thoại có thể đặt báo thức, nhưng có lúc điện thoại để xa, để im lặng, hoặc người dùng tắt báo thức rồi quên mất mình đã lấy thuốc chưa. Một hộp thuốc có đèn ở đúng ngăn, tiếng bíp nhẹ và biết báo cho người thân sau một khoảng chờ sẽ sát với hành vi thật hơn.
Đây không phải là thiết bị y tế và không nên tự ý thay đổi đơn thuốc. Mình xem nó như một thiết bị nhắc việc trong gia đình: hỗ trợ đúng giờ, ghi nhận đã mở hộp, và báo khi có khả năng quên.
Mục tiêu của bản đầu
Mình sẽ không bắt đầu bằng một máy chia thuốc tự động. Với người già, cơ khí càng phức tạp thì càng nhiều thứ có thể kẹt, sai hoặc khó vệ sinh. Bản MVP nên là một hộp nhắc uống thuốc bán tự động:
- Có 7 hoặc 14 ngăn, chia theo ngày hoặc buổi.
- Đến giờ thì sáng đúng ngăn, kêu bíp nhẹ.
- Người dùng mở nắp hoặc bấm nút để xác nhận đã lấy thuốc.
- Nếu sau 10-15 phút chưa xác nhận, gửi cảnh báo tới điện thoại người thân.
- Nếu mất Wi-Fi, thiết bị vẫn nhắc tại chỗ bằng RTC.
- Lịch thuốc có thể được chỉnh qua Home Assistant, Telegram bot, Blynk hoặc một web page nội bộ đơn giản.
Điểm quan trọng là hộp không được làm người dùng thấy bị kiểm soát. Nó nên giống một lời nhắc nhẹ, còn cảnh báo cho người thân chỉ là lớp dự phòng.

Bản đầu tiên nên bắt đầu bằng mạch rời: ESP32, RTC, buzzer, LED và một nút xác nhận, trước khi nghĩ tới vỏ hộp đẹp.
Phần cứng đề xuất
Cấu hình vừa đủ để thử:
- ESP32-C3 hoặc ESP32-S3 mini.
- DS3231 RTC để giữ giờ khi mất mạng.
- Buzzer nhỏ, âm lượng thấp.
- LED cho từng ngăn hoặc một LED RGB kèm nhãn ngăn.
- Reed switch, Hall sensor, microswitch hoặc cảm biến nắp để biết ngăn đã mở.
- Một nút lớn để xác nhận nếu không muốn gắn cảm biến cho từng ngăn.
- Pin Li-ion/LiPo kèm mạch sạc hoặc dùng USB nếu hộp được đặt cố định cạnh giường.
- Vỏ in 3D hoặc hộp thuốc có sẵn được khoan/gắn thêm đèn.
Nếu làm cho người lớn tuổi dùng thật, nút bấm phải to, đèn phải nhìn rõ, tiếng bíp không được chói tai, và hộp phải dễ lau. Những chi tiết này nghe không “kỹ thuật”, nhưng thường quyết định thiết bị có được dùng tiếp sau tuần đầu hay không.
Luồng hoạt động
Firmware có thể chạy theo state machine đơn giản:
Idle:
chờ tới lịch uống thuốc tiếp theo
Reminder:
bật đèn ngăn tương ứng
kêu bíp ngắn mỗi vài chục giây
ghi lại thời điểm bắt đầu nhắc
Confirmed:
người dùng mở nắp hoặc bấm nút
tắt đèn, tắt buzzer
Gửi trạng thái "đã lấy thuốc"
Escalated:
Nếu quá 10-15 phút chưa xác nhận
Gửi cảnh báo tới điện thoại người thân
vẫn tiếp tục nhắc nhẹ tại chỗ
Với lịch thuốc, mình sẽ lưu cấu hình dạng đơn giản:
[
{ "slot": 1, "time": "07:30", "label": "morning" },
{ "slot": 2, "time": "12:30", "label": "noon" },
{ "slot": 3, "time": "20:30", "label": "night" }
]
Không nên lưu tên thuốc chi tiết lên cloud nếu chưa nghĩ kỹ về riêng tư. Ở bản đầu, chỉ cần lưu “sáng/trưa/tối” hoặc “ngăn 1/ngăn 2”. Tên thuốc và liều dùng vẫn nên nằm trên giấy, trên nhãn hộp, hoặc trong app riêng của gia đình.

Cảnh báo qua điện thoại chỉ nên xuất hiện khi người dùng chưa xác nhận đã lấy thuốc sau một khoảng chờ hợp lý.
Gửi cảnh báo qua điện thoại
Có vài đường triển khai, tùy nhà đang dùng gì:
- Home Assistant + MQTT: ổn nhất nếu nhà đã có server nhỏ.
- Telegram bot: dễ gửi tin cho người thân, không cần viết app.
- Blynk hoặc Arduino IoT Cloud: nhanh cho bản demo.
- Web app nội bộ: tự chủ hơn, nhưng mất công làm account, thông báo và bảo mật.
Payload MQTT có thể rất gọn:
{
"device": "medicine-box-bedroom",
"slot": 2,
"state": "missed",
"scheduledAt": "12:30",
"battery": 76
}
Mình sẽ tránh gửi cảnh báo ngay khi tới giờ. Cách hợp lý hơn là cho người dùng một khoảng chờ. Ví dụ 7:30 hộp sáng đèn, 7:40 mới gửi tin “chưa thấy xác nhận”. Nếu 7:38 người dùng mở ngăn, điện thoại chỉ nhận log im lặng hoặc không cần nhận gì cả.
Ý tưởng khoảng chờ này cũng giống cách thiết kế các thiết bị IoT môi trường như thiết bị nhắc mở cửa sổ khi phòng bí khí: không báo ngay lập tức, mà chờ điều kiện đủ rõ rồi mới gửi nhắc có ngữ cảnh.
Những chi tiết dễ sai
Đừng dùng tiếng báo quá lớn. Người già có thể giật mình hoặc tắt hẳn thiết bị nếu nó gây khó chịu.
Đừng giả định mở nắp là đã uống thuốc. Mở nắp chỉ là tín hiệu tốt hơn “không biết gì”, nhưng vẫn không thay thế được người chăm sóc hoặc hướng dẫn của bác sĩ.
Đừng phụ thuộc hoàn toàn vào Wi-Fi. RTC và alarm tại chỗ phải chạy được khi mạng mất.
Đừng làm app có quá nhiều nút cấu hình. Với người nhà, chỉ cần chỉnh giờ, bật/tắt lịch, xem lần xác nhận gần nhất và pin.
Đừng để pin yếu rồi im lặng. Pin dưới một ngưỡng nào đó nên báo trước vài ngày, vì thiết bị nhắc thuốc mà tự hết pin thì rất dễ bị mất niềm tin.
Bản MVP mình sẽ làm
Nếu tự dựng bản đầu, mình sẽ chọn:
- Hộp 7 ngăn có sẵn.
- ESP32-C3.
- DS3231.
- Một LED RGB hoặc 3 LED cho sáng/trưa/tối.
- Một nút xác nhận lớn.
- Buzzer nhỏ.
- MQTT về Home Assistant.
- Telegram alert cho người thân khi quá 15 phút chưa xác nhận.
Sau khi chạy ổn một tuần, mới tính chuyện cảm biến từng nắp ngăn. Sau một tháng, nếu người dùng thật sự thấy hữu ích, lúc đó mới đáng thiết kế PCB và vỏ riêng.
Checklist thử nghiệm
- Chạy thử lịch giả trong 1 ngày, mỗi 30 phút nhắc một lần.
- Rút Wi-Fi để chắc chắn rằng RTC và buzzer vẫn hoạt động.
- Test pin yếu và thông báo pin yếu.
- Test người dùng bấm nhầm hoặc bấm trễ.
- Kiểm tra hộp có dễ mở với tay yếu không.
- Nhờ người thân đọc thông báo và xem có dễ hiểu không.
- Ghi lại các trường hợp báo phiền để chỉnh thời gian chờ.
Mình sẽ xem bản này là thành công nếu sau một tuần nó không làm người dùng khó chịu. Nhắc đúng giờ, âm thanh vừa đủ, nút dễ bấm, tin nhắn gửi cho người thân chỉ xuất hiện khi thật sự cần. Một hộp thuốc tốt không nên tạo cảm giác bị theo dõi; nó chỉ nên giảm bớt vài cuộc gọi lo lắng trong ngày.
Nguồn tham khảo
Chia sẻ
Tiếp tục khám phá
Đọc tiếp
Bài viết liên quan
Smart thermostat tự học cách căn phòng ấm lên
Ghi chú làm smart thermostat bằng ESP32, ESPHome và Home Assistant, có lớp tốc độ làm ấm để bật đúng lúc mà vẫn giữ giới hạn an toàn.
Đồng hồ để bàn “chỉ báo chất lượng giấc ngủ” không cần camera
Ghi chú làm một đồng hồ ESP32 cạnh giường, dùng CO2, nhiệt độ, ánh sáng và cảm biến hiện diện để giải thích vì sao sáng dậy thấy phòng ngủ không ổn, không cần camera.
Màn hình HMI gắn gần tủ lạnh cho thực đơn và đồ sắp hết hạn
Ghi chú làm một màn hình HMI LCD/TFT gắn cạnh tủ lạnh, dùng Home Assistant để xem thực đơn tuần, đồ sắp hết hạn và cập nhật nhanh danh sách cần mua.