Недавно получив одну из новых Tiny Tiles от Intel, я захотел создать что-то интересное, использующее встроенные функции платы. Имея встроенный акселерометр и возможности Bluetooth с низким энергопотреблением, я подумал о создании устройства, которое определяет, когда из кофеварки делают глоток. Так родился Connected Koozie…

Connected Koozie стал возможен благодаря библиотеке машин опорных векторов, платформе обмена сообщениями Meshblu и небольшому количеству шитья.

Библиотека опорных векторов, которую я использовал, называется node-svm. SVM — это модели обучения с учителем, которые анализируют данные и распознают закономерности (Википедия). В общем, мне нужно было создать обучающий набор данных для моей SVM. Сначала Tiny Tile отправлял данные акселерометра через BLE в скрипт, который я написал. Скрипт выводит положение акселерометра и логическое значение в файл JSON. Логическое значение представляло, был ли koozie в позиции потягивания. После того, как у меня было достаточно точек данных в файле, я использовал node-svm для создания модели прогнозирования.

С помощью моей новой модели прогнозирования я создал коннектор для отправки «глотков» в Meshblu. Мой коннектор использует модель прогнозирования, чтобы определить, какие значения акселерометра указывают на то, что делается «глоток». Когда Connected Koozie находится в положении «sip», в Meshblu отправляется сообщение.

Наконец, мне пришлось вырезать кусок еще одного кузи и пришить его к Connected Koozie в качестве мешочка для Tiny Tile.

Двигаясь вперед, я хочу использовать сообщения от Connected Koozie, чтобы потенциально облегчить игру с выпивкой или отслеживать количество воды, которое я пью каждый день.

Если вы хотите увидеть код этого проекта, он доступен на мой гитхаб. Я также написал подробное руководство о том, как создать свой собственный Connected Koozie на Hackster.