BinPal — умный магнитик с напоминанием об утилизации

Немецкий радиолюбитель Доминик Бухсталлер разработал умный магнит на холодильник, отслеживающий график сбора бытовых отходов.

BinPal — так называется разработка Доминика Бухсталлера, которая должна отслеживать график утилизации (рис. 1).

BinPal — умный магнитик с напоминанием об утилизации

Рис. 1. BinPal — умный магнитик с напоминанием об утилизации

«Я столько раз подряд пропускал сбор картона, что мы могли бы легко построить большую картонную крепость. Поскольку я явно не совсем справлюсь с этой задачей, мне нужен был маленький помощник, чтобы спасти планету, — отметил он — Я начал с поиска напоминаний в Интернете и наткнулся на проект в календаре Google, разработанный Андреасом Шписсом. Хотя мне понравилось, как он использовал сервис Google для отслеживания времени, я подумал, что в нем не хватает нескольких моментов, которые я мог бы улучшить».

Таким образом, разработчик отметил следующие моменты:

  • должен быть маленьким и красиво выглядеть,
  • без кабеля, работает от батареи с несколькими неделями автономной работы,
  • удобный для детей интерфейс,
  • устойчивость к падениям,
  • наличие визуального уведомления, без звукового сигнала,
  • в идеале должен располагаться на кухне,
  • основан на ESP32,
  • иметь зарядку через USB и мониторинг батареи.

В итоге получился магнит, состоящий всего из 4 компонентов (рис. 2):

  • ESP32 Lolin32 lite
  • дисплей HX1230 (это дисплей с Aliexpress и похож на монохромный LCD Nokia 5110),
  • два емкостных сенсорных модуля TTP223
  • несколько старых аккумуляторов LiPol от камеры PlaySport.
    Компоненты BinPal

    Рис. 2. Компоненты BinPal

Все компоненты получили вторую жизнь либо после переработаки (батарея от разряженной камеры), либо устаревшие (снятый с производства дисплей HX1230), либо излишки от другого проекта.

Поскольку была использована подсветка ЖК-дисплея для уведомлений, дополнительные компоненты стали не нужны.

Корпус из фанеры

Рис. 3. Корпус из фанеры

Корпус изготовлен из нескольких кусков фанеры, вырезанной лазером (рис. 3). Но он может быть изготовлен практически из любого материала — нужен только один вырез для дисплея.

 

Как это работает

Основная операция BinPal заключается в подключении к Google App Script каждое утро, чтобы проверить, есть ли новая задача, которую нужно выполнить, и показать ее на дисплее. При наличии новой задачи подсвечивается один из 4 соответствующих значков: био, бумага, пластик, мусор (рис. 4).

Иконки дисплея: био, бумага, пластик, мусор

Рис. 4. Иконки дисплея: био, бумага, пластик, мусор

Пользователь имеет возможность выбрать любую иконку (кнопка банан) и удалить активное напоминание (кнопка корзины). Если напоминание не было удалено до 20:00, подсветка дисплея начинает мигать, чтобы еще больше привлечь внимание к открытой задаче.

Разработчик хотел получить календарь прямо из календаря Google, но с ESP32 это оказалось довольно сложно. Вместо этого используется короткий скрипт приложения Google, который проверяет календарь на наличие новых обязанностей по утилизации и предоставляет информацию через REST API. Этот обходной путь имеет то преимущество, что может одновременно синхронизировать время без использования дополнительной службы NTP.

 

Время автономной работы

Чтобы иметь возможность работать несколько недель от батареи, ESP32 должен спать как можно дольше. Однако максимальная продолжительность сна ESP32 составляет чуть более часа, поэтому нужно было убедиться, что при просыпании устройство снова засыпает, пока не придет время снова связаться с календарем. Кроме того, пользователь может разбудить устройство, чтобы удалить уведомление или проверить монитор батареи. Все это в совокупности затрудняет поддержание точного времени в течение дня. Решение состояло в том, чтобы интенсивно использовать процессор ULP ESP32 для учета времени, поскольку он может выполнять простые операции, пока ESP32 спит. ULP используется для мигания подсветки ЖК-дисплея и подсчета секунд во время сна.

Хотя предполагается, что ULP работает на частоте 8 МГц, соответствующий генератор не так точен. Поэтому было решено откалибровать цикл задержки в моем коде ULP при запуске, чтобы получить довольно точный счет в одну секунду.

 

Мониторинг батареи

Чтобы проверить состояние зарядки аккумулятора и сколько энергии используется с течением времени, был добавлен простой экран мониторинга аккумулятора, доступ к которому можно получить, нажав обе кнопки одновременно. Он добавляет одну точку данных каждые 24 часа, тогда как скетч рандомизирует все данные при загрузке. Таким образом, на картинке показано около 14 пикселей = 2 недели данных батареи.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *