
После того как мне назначили курс приёма лекарств, пропустив второй раз приём препаратов, я решил приобщить свой «умный дом» для напоминания и контроля о приёме лекарств.
После недолгих поисков в интернете, я не нашёл простого и более-менее подходящего для меня решения, решил создать своё устройство. Делал это для себя, поэтому особо не обращал внимания на дизайн и красоту, мое имхо, главное функциональность. Так что девайс получился довольно простым и бюджетным.
Решение состоит из простой пластиковой таблетницы (контейнера) на каждый день с четырьмя отсеками, и беспроводного датчика открытия/закрытия по протоколу Zigbee. Управление и контроль осуществляется открытой системой домашней автоматизации MajorDoMo.
Сперва отмечу, в нескольких предыдущих публикациях, Просто о сложном. MajorDoMo и контроль входного замка. Начало и MajorDoMo, делаем контроль датчика открытия замка. Голосовые уведомления и создания телефонного оповещения я попытался довольно просто и понятно описать небольшие начальные сведения о системе домашней автоматизации MajorDoMo (установка, небольшая настройка и т.д.), так же там можно найти и некоторую информацию о беспроводном датчике открытия/закрытия и основы по настройке протокола zigbee2mqtt в системе домашней автоматизации MajorDoMo.
Компоненты для устройства:
• Простой пластиковый органайзер для таблеток (таблетница) с четырьмя отделениями размером 120 х 20 х 21 мм, внутренние размеры каждого отсека 28 х 19 х 19 мм.

• Беспроводной датчик открытия/закрытия двери, поддерживающий протокол Zigbee (в своей системе домашней автоматизации я использую Zigbee2mqtt).

• Подходящие подручные материалы (материал для корпуса, провода, батарейный отсек формат батареек АА, двухсторониий скотч и т.д).
Первым делом, нужно произвести сопряжение датчика с шлюзом zigbee2mqtt и системой домашней автоматизации, нажав и удерживая кнопку на датчике около 5 секунд.
Разбираем датчик открытия, корпус больше не нужен, выпаиваем геркон, и на его контакты припаиваем 2 провода.
В качестве корпуса для основания устройства, использовал 12-сантиметровый кусок основания пластикового кабель-канала шириной 25 мм, высотой 15 мм. В него уложил датчик открытия без корпуса и провода, а свободное пространство заполнили упаковочным материалом.

В таблетнице на нижней задней стороне делаем небольшое отверстие для этих проводов.
К крышке и дну отсека контейнера для таблеток, с помощью двухстороннего скотча, крепим контакты. Для своих целей я использовал контакты батарейного отсека (для батареек формата АА), к крышке прикрепил пружинный контакт (обычно в устройствах — ), ко дну – контактную площадку. Чтобы обеспечить плотный контакт, приподнял контактную площадку, подложив кусочек пластмассы высотой примерно 5 мм (высота отсека таблетницы оказалась буквально на 2-3 мм выше длинны пружинки от контакта).

Соединил конструкцию изолентой и скрепил с пластиковой таблетницей двухсторонним скотчем.
В итоге получилось следующее:


Для моих целей оказалось достаточно одного датчика для контроля одной ячейки, но в корпусе можно разместить до трёх датчиков без корпуса.
Логика и работа таблетницы
На мой взгляд, работа системы Умный дом довольно индивидуальная, в зависимости в от привычек и предпочтений владельца, особенно в части функций голосового помощника или «домашнего ассистента».
Поэтому разберу на своем примере логику и работу устройства.
У меня прописан курс лечения 2 раза в день по три таблетки, имхо это небольшое количество разового приема лекарств (по объёму таблеток), в некоторых случаях, при неправильном положении оных, контакты всё равно могли замкнуться. Здесь всё просто или уменьшаем полезный объём отсека таблетницы (наращивая стенки отсека) либо … увеличиваем количество препаратов. Я пошёл по второму пути, введя в рацион капсулу добавки. Сейчас при любом расположении лекарств, таблетница правильно отображает информацию.
В рабочем состоянии при закрытой крышке органайзера для таблеток получаем следующее: в случае отсутствия препятствия (пустой отсек без таблеток или капсул) контакты замыкаются, состояние контактов датчика – true (закрыт). При наличии препятствия (таблеток) – состояние датчика – faulse «открыто».

Действия в домашней системе автоматизации MajorDoMo. Как и в прошлых публикациях настраиваем дополнение zigbeedev, создаем простое устройство датчик открытия/закрытия, привязываем физическое устройство (датчик).
Привожу на своём примере свой алгоритм работы устройства действий (как выше упомянул, всё индивидуально). Первоначально пробовал создать разные сложные сценарии, но в итоге решил, чем проще, тем лучше.
Итак, два приема лекарств в день, соответственно задействовал два крайних отсека. Обычно у меня, вечером с 20 до 22 часов – приём лекарств и наполнение таблетницы новыми препаратами на весь следующий день. Утром, выход из дома где то с 8-15 до 8-30, соответственно для себя определил, время приёма лекарств до 8 часов утра.
Делаем в MajorDoMo простенький сценарий (можно, используя php код, можно используя blockly, второй вариант проще, но более ограничен в возможностях программирования, приведен на скриншоте).

Если состояние контакта true (датчик закрыт), тогда система считает, что приём лекарств не был выполнен и таблетки на следующий день не пополнены. Иначе, если же, состояние faulse нет контакта, соответственно между контактами имеется препятствие, контейнер заполнен и будем считать, прием лекарств состоялся, значит всё нормально и система отправляет информационное сообщение. Сообщения отличаются параметром МУВС (минимальный уровень важности сообщений), в первом случае сообщение имеет больший показатель, 5 и соответственно более важен, у меня при этом значении, отправляется голосовое оповещение на все терминалы Умного дома (колонки подключенные к серверу, колонки Яндекс станции) и сообщение на программу удаленного управления MajorDroid NG на смартфоне. Во втором случае – просто информационное уведомление в веб интерфейсе мониторинга Умного дома.
В настройках сценария установим время запуска: 22-00, можем отметить дни срабатывания.

Точно таким же способом, только изменив в условиях состояние датчика, можно сделать утренний сценарий. Первоначально таблетки мы уже вечером положили, состояние датчика до приёма лекарств – faulse. При этом состоянии допустим в 8 утра срабатывает сценарий и в случае faulse идёт уведомление на терминалы «Умного Дома», в случае если контакты замкнуты (препятствие между ними отсутствует), то информационное сообщение.
При желании, можно контролировать и оповещать допустим через каждые 5, 10 минут. Имеется возможность отправлять оповещения по различным каналам связи (телеграмм, SMS, голосовой звонок и т.д.), пока дед не примет таблетки ))
В качестве заключения: с одной стороны решение показалось мне слишком простым и лёгким, не совсем подходящим для аудитории Хабра, возможно этой статье здесь и не место.
А с другой стороны, может идея или реализация кому и пригодится.
Всем добра и здоровья, не болейте.