Во многих системах контроля традиционные датчики типа выключателей, датчиков объема или движения вполне могут быть заменены на датчик вибраций. Кроме того, акселерометер определяет углы наклона, что тоже может быть полезным.
В качестве основы был взят Misfit Link или Misfit Flash. Это одно и то же устройство и отличается только наличием ремешка (ремешок и клипса (Flash) против просто клипсы (Link)). Внутри него находится популярный NRF51822AA (MCU+BLE) от NordicSemiconductors и не менее известный MEMS акселерометер LIS2DH (STMicroelectronics). Батарея – CR2032.
Зная распиновку NRF51822 совсем нетрудно было обнаружить 2х – пиновый SWD интерфейс, стереть старое (и защищенное) и залить туда свое. Для этого надо припаять всего 2 провода и иметь программатор с поддержкой SWD (например, J-Link). В нашем новом firmware появляется возможность апдейтов через BLE (over-the-air dfu). Так что можно и дальше творить новое даже не припаивая провода.
Ну а дальше – вопрос только в том, какую функциональность хочется иметь. Мне захотелось иметь практически все возможное. Поэтому было разработано firmware – Android приложение со следующей функциональностью:
1. Смотреть текущую ориентацию устройства в виде графика или 3D модели.
2. Устанавливать триггер определяемый порогом, осями и логикой. При срабатывании триггера, устройство шлет сигнал смартфону. Смартфон включает звуковой сигнал и при желании делает фотографию. Причем может делать это в background и выключенном экране.
3. Режим 2 в случае редких событий может быть использован в режиме offline, когда единственным источником информации для смартфона являются advertising packets (1 сек интервал), в которые кодируется информация о углах, заряде батареи, количестве записей. Это экономит батарею устройства и делает очень быстрым просмотр текущего положения. Просто включил телефон и на 3d модели увидел на каком боку спит котик, или в каком положении выша посылка лежит на складе.
4. В NRF51822 есть 256kB флэш памяти. После того как все компоненты кода размещены (SoftDevice (RTOS, часть SDK), наша программа и бутлоадер) остается не меньше 100kB свободной батарее-независимой памяти. Туда мы и пишем срабатывания триггера если включен режим записи. В каждую запись входит время (RTC c кварцем 32768 на борту), максимальное общее ускорение и статическая ориентация устройства. Потом это можно считать, проанализировать или даже посмотреть как фильм.
Я не буду здесь вдаваться в технические детали, их можно посмотреть на моем сайте www.msh-tools.com/misfit. (на английском). Там же опубликован код firmware и bootloader (Keil), и Android Apk (ionic framework). Для тех кто просто хочет это иметь все это доступно уже в скомпилированном виде.
Видео. **Включите звук!**
Устройство получилось очень чувствительным. Оно может быть настроено чтобы срабатывать по простому постукиванию предмета к которому оно прикреплено.
Например. 1) Вам нужно что-нибудь тайно заснять. Телефон закрыт и выключен. Постучите тихонько по устройству или просто поднимите руку и снимок готов. 2) Кто-нибудь периодически залезает к вам в стол или просто ходит в неурочные часы в комнате. Сделайте снимок, и в добавок в соседней комнате (до 10м) прозвенит сигнал тревоги. 3) Я кладу его на зарядное устройство электробайка. Когда зарядка кончается, в зарядном устройстве перестает работать вентилятор. Это событие генерирует сигнал на телефоне. 4) Посмотрите как ехала ваша посылка, какие были ускорения, как ее кантовали. 5) Прикрепите к трубе (кондиционеру и.т.п) и узнаете статистику работы. 6) Про котика узнаете все, что делает, когда спит. 7) В видео есть пример того как я сплю, как ворочаюсь, тоже интересно. Можно к кровати прикрепить, посмотреть как и когда (кем) она использовалась. Ладно, остановлюсь, можно долго продолжать.
Комментарии (8)
barbados
24.06.2016 15:39+2Есть ли такие же хаки на Xiaomi MiBand?
IceSenator
24.06.2016 21:30У него к сожалению закрытый исходный код. Практически невозможно добавить что-то, что не реализовано в оф. софте. Всё что могли уже сделали.(MiBand Notify, Mi Tools).И в ближайшее время Xiaomi его открывать не собирается.
x893
24.06.2016 18:21Отличная статья!
Директории
..\..\..\..\..\..\components\…
..\..\..\..\..\bsp
или из какого SDK?obelix662000
24.06.2016 18:26Nordic Semiconductor SDK. На моем сайте есть инструкция где брать SDK и куда распаковывать проект ( секция reflashing).
x893
24.06.2016 18:56Пока ждал модерации — разобрался. Хочу адаптировать под такой
http://i01.i.aliimg.com/kf/UT8dUY7Xs4XXXagOFbX6.jpg
madf
24.06.2016 18:33NRF51888 — настолько "популярный", что в гугле выдается всего две корявые ссылки :D
по части статьи — спасибоobelix662000
25.06.2016 00:13Извините, ошибся, NRF51822, исправил. Чип действительно очень известный.
Rumlin
В теории можно громкие звуки подслушивать.