Меню

Bluetooth датчик своими руками

Digitrode

цифровая электроника вычислительная техника встраиваемые системы

Датчик приближения Bluetooth на ESP32 – обнаружение присутствия устройств BLE

Датчики приближения можно охарактеризовать как единственные в своем роде переключатели, которые обнаруживают близлежащий объект с помощью света, электромагнитного поля или звука. Как правило, эти типы устройств предназначены для обнаружения близлежащих объектов, и часто большинство из этих датчиков будет использоваться в практических целях. Но есть обстоятельства, когда объект находится далеко от датчика или объект блокируется препятствием, в таких ситуациях мы можем использовать устройства BLE (Bluetooth Low Energy) для обнаружения и определения близости объекта. ESP32 имеет встроенные возможности BLE, которые пригодятся в этом деле.

В этой статье мы покажем вам, как создать простой детектор присутствия BLE с помощью ESP32 и Arduino IDE.

До практической части, ознакомимся немного с теорией. BLE – это сокращение от Bluetooth Low Energy, и оно вошло в нашу повседневную жизнь в 2011 году, потому что в то время все крупные производители начали встраивать технологию BLE в свои устройства. BLE – это технология беспроводной связи с низким энергопотреблением, которая была разработана для приложений с батарейным питанием, которые можно использовать для связи между устройствами на небольшом расстоянии. Некоторые из устройств, которые вы используете каждый день, имеют встроенный Bluetooth, например ваш смартфон, умные часы, беспроводные наушники, беспроводные колонки, устройства умного дома и многое другое. В них есть встроенный Bluetooth для связи или получения данных о местоположении.

BLE – относительно новая технология, и протокол BLE был разработан Bluetooth Special Interest Group (SIG) с основной целью сделать устройства с низким энергопотреблением реальностью. Хотя название недавно созданного протокола осталось прежним, недавно разработанный протокол BLE не был обратно совместим, что означает, что наши устройства Bluetooth Classic не могут взаимодействовать с устройствами BLE, несмотря на это, данная технология позволила разработчикам производить оборудование с очень низким энергопотреблением, то есть эффективные устройства, которые могут работать месяцами и даже годами на небольшой батарее типа «таблетка».

BLE использует иерархическую структуру данных для отправки и получения информации. Устройство BLE, выступающее в качестве сервера, будет передавать сервисы и характеристики, которые могут быть обнаружены клиентом, и после успешного обмена информацией устройства BLE могут обмениваться данными друг с другом одновременно. С технической точки зрения, весь этот информационный стек известен как атрибут устройства BLE. И он определен и реализован с использованием профиля GATT (Generic Attributes). В этих профилях у нас есть сервисы, характеристики и значения в иерархическом порядке. Сервисы содержат характеристики, а характеристика содержит значение; читая характеристику, мы можем прочитать значения и изменения значений с течением времени.

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

Профиль GATT, в котором определяются услуги и характеристики, известен как универсальный уникальный идентификатор (UUID). Есть некоторые стандартные услуги и характеристики, определенные и зарезервированные корпорацией SIG, если мы прочитаем UUID устройства BLE, мы можем сразу определить, что это за устройство. Данные BLE передаются и принимаются очень маленькими пакетами, пакет BLE имеет всего 31 байт, когда пакет TCP имеет размер 60 или более байтов. Наконец, важно помнить, что пакет BLE должен быть правильно структурирован, который затем может быть последовательно сериализован и десериализован как на сервере, так и на стороне клиента.

Как было сказано ранее, датчики приближения могут обнаруживать объекты с помощью света, электромагнитных волн или звука. Серверы BLE регулярно транслируют вещательные сигналы, чтобы клиенты могли их искать и подключаться к ним. Этот вещательный сигнал содержит уникальный адрес BLE MAC (Media Access Control), который очень похож на MAC-адрес, используемый в Wi-Fi, поскольку наш модуль ESP32 имеет встроенный Bluetooth, мы могли бы легко обнаружить этот транслируемый сигнал и сравнить его с таблицей поиска, чтобы обнаружить присутствие известного устройства. После проверки устройства мы можем включить свет локально или, например, использовать Adafruit IO для запуска уведомления в нашем приложении для Android.

Для этого проекта нам понадобится не так много компонентов, это плата ESP32 и устройство с поддержкой BLE, здесь мы используем MI Band, можно также использовать смартфон с поддержкой BLE.

Для демонстрации мы запрограммируем наш контроллер ESP32 на обнаружение известного маяка BLE, и мы зажжем встроенный светодиод, как только известное устройство окажется близко к нему. Полный код для ESP32 приведен далее.

Загрузите код в ESP32. Поднося близко устройство с BLE, вы сможете увидеть, как загорается светодиод на плате.

Источник

Bluetooth датчик протечки воды за $1-2 своими руками с погружением в BLE технологию (I серия)

Открывайте сундучки, доставайте «маячки». Судя по многочисленным отзывам те, кто ранее приобрел Bluetooth брелоки-«антипотеряшки» типа iTAG, TrackerPA и им подобные остались недовольны их функционалом. Пришло время направить их на благое дело – охрану квартир, дач, домов и прочего ценного имущества.

Этим материалом запускаю серию постов с подробным описанием переделок брелков под различные датчики. По итогу, Вы сможете через интернет или GSM-связь получить аудио-видио информацию о проникновении через окна или двери, утечке воды, несанкционированном включении света в помещении, отключении электричества и др. Причем, все это бесплатно, ну или почти бесплатно. Кроме брелка потребуется лишь старый Android гаджет с Bluetooth 4.1 и выше, тройку недорогих радиодеталей, которые наверняка найдутся в ваших или доброго соседа закромах и совсем немного терпения.

Предупреждаю, материалы и объем работ рассчитан на домохозяек и «промозглых» гуманитариев (к коим я себя тоже причисляю), но которые в состоянии отличить паяльник от молотка. Продвинутые I-тишники и жаждущие пообсуждать количество олова на жале могут дальше не читать. Первым будет неинтересно, вторым бесполезно.

Для начала попробуем разобраться, что за зверье эти «маячки», зачем им нужны ваши геоданные, на что производители рассчитывали, запуская их в массовку. Получив эту информацию и несколько советов возможно, вы все же передумаете и захотите использовать их по прямому назначению.

Немного истории:

Идейными и финансовыми вдохновителями Bluetooth «маячков» являются Apple и Google которые в 2007 г. зарегистрировали свои технологии в некоммерческой организации Bluetooth SIG, которая сейчас представляет интересы 35000 компаний-членов. Каждый из прародителей пошел по собственному пути представив через три года свои готовые продукты как iBeacon и Eddystone соответственно. Это все к тому, на сколько серьезный был подход и каковы виделись перспективы этой идеи. Используемые технологии мало чем отличалась в независимости от обилия и скорости смены их названий (Wibree, ULP-B, BlueTooth Low Energy, сейчас — BlueTooth Smart). На мой взгляд самое удобное для понимания и написания название — BlueTooth Low Energy сокращенно BLE, которым судя по публикациям пользуется большинство специалистов и интернет сообщество, которым в дальнейшем буду использовать и я.

Читайте также:  Аккумулятор для кемпинга 12v своими руками

Суть технологии – передать на защищенном канале Bluetooth информацию с максимальной экономией энергии. Производители обещались, что на «одной батарейке CR2032 гаджет способен проработать до 2,5 года…» (слово «до» меня почему-то всегда смущает).

Позже к технологии приросла возможность позиционирования в пространстве, включение в чипы датчиков температуры и давления. Естественно на их основе на рынке появились большая гамма охранных датчиков, но цены у них на порядок выше того, что мы попытаемся с вами достичь. Большая часть фитнес браслетов, беспроводных наушников и гарнитур, пультов для сэлфи и экшн-камер, часов и прочей носимой гарнитуры также используют BLE технологию.

Для визуализации того, как она работает в реальном времени я бы посоветовал закачать с PlayMarket-а программу Bluetooth Scanner — Bluetooth finder — pairing (ссылка исключительно информативного характера, как и все другие в данной серии материалов). Выбрав в программе (русский присутствует) свой брелок, открыв вкладку «Поиск устройств», вы увидите и даже услышите в каком темпе передаются сигналы, когда устройство засыпает и просыпается. Обратите внимание, что наибольший уровень сигнала соответственно и дальность действия приходится на момент подключения, что мы в дальнейшем с успехом будем использовать. Приложение также имеет и прикладное назначение для тех, кто не может сконнектить свои BLE устройства.


Большинство жалоб, которые слышатся от пользователей Bluetooth Tracer-ов (они же маячки, «антипотеряйки»):не подключаются к Bluetooth; не держат связь; не выдают геолокацию места потери; неприятные громкие звуки, которые могут раздаваться в самый неподходящий момент; неудобства с отключением этих звуков; малая дальность связи и т.д.

Взаимосвязь

Многих, наверное, раздражает тот факт, что телефон не может стандартно соединиться с вашим BLE гаджетом. Некоторые, это списывают на недоделки производителя или их желание ограничить ваши возможности. На самом деле, изначально, сама технология BLE не предусматривает обратной передачи идентификационного пакета без которого телефон не может поддержать стандартную связь Bluetooth. Сделано это с двумя целями – сэкономить энергию и разделить технологии. Правда, существуют BLE устройства двойного действия, ярким представителями которых являются недорогие и популярные сэлфи-пульты на процессорах ST17H26.


Для того, чтобы перевести пульт из обычного режима в режим BLE нужно зайти в

выбрать «шестеренку» напротив пульта и отключить «Режим ввода». В любом из режимов пульт будет передавать в эфир 128-битный (38-символьный) пакет UUIDs адреса характерный для BLE устройств. Но для коннекта Вам придется все же переключиться.

По поводу удержания связи могу посоветовать сначала проверить свой телефон на наличие функции Always On Display (всегда на дисплее), что отключает глубокий сон. В старых версиях телефонных аппаратов этой опции нет, ее придется скачать в виде дополнительной программы, в новых — она присутствует по умолчанию, нужно только не забыть активировать ее. Если Вы этого не сделаете, сначала заснет телефон, а после минутного сканирования и сам брелок.

Поскольку, в качестве базы для своей охранной сигнализации я использую замученный экспериментами и временем старый Galaxy S5 на Android 6.0.1, то пришлось подбирать Always On в большом перечне предложений. Выбор пал на CyptoWake от Amir R Adib – минимум рекламы и хорошая функциональность. Для экономии, энергии заставку выбираем потемнее, отключаем не нужное и радуемся жизни.

Тем, кто пользуется программным обеспечением от продавцов BLE трекеров, следует обратить внимание на то, как эти программы глубоко вживаются в OS телефона. Косвенно это можно определить по тому, как «гасится» программа. Если как большинство стандартных (одним движением вверх) и никаких других признаков жизни нет, то она поверхностна и возможно в нужный момент не сможет проявить себя сигналом при блокировке или в ночном режиме. Присутствие более продвинутых программ заметно в верхней строчке уведомлений, даже если вы их смахнете. Такое глубокое «погружение» объяснимо и необходимо. Для приостановки достаточно найти нужную кнопку в программе. Но есть и «наглецы», остановить процесс которых можно только через настойки или длинным кликом на иконке -[о приложеннии]- [остановить]. Не забудьте проверить и отключить программу вашего выбора на оптимизацию питания, заодно проверьте там же, не оптимизируется ли системная программа отвечающая за работу самого Bluetooth.

Для преодоления неудобств с быстрым отключением Allarm-сигнала при выключенном экране можно воспользоваться программой iTAG ONE (КЛЮЧНИЦА) .

Она выводит ярлык-оповещение на экран Always On кликнув на который можно прерывать сирену. Но для нас главное преимущество этой программы, в отличии от других узкоспециализированных, в ее «всеядности» по отношению к процессорам и производителям BLE. При нашем дальнейшем программировании будет использоваться ее уникальная (так мне кажется) функция вывода сообщения о состоянии устройств в панель уведомлений. Кто-то наверное заметит, что и популярная программа iTracing тоже выводит в ниспадающий трэй уведомление о разрыве соединения, однако вряд ли кто обратил внимание, что оно сохраняется даже при восстановлении связи — для нас в дальнейшем, этот момент будет неприемлемым. Но есть недостатки и у iTAG ONE — отсутствие возможности регулирования уровня громкости, которую она выводит на максимум и сохраняет даже при завершении сигнала. В последнем топике сериала мы вернемся к этому вопросу и постараемся обойти эти неприятности.

К курьезам с отключением «антипотеряшек» можно отнести «невнимательность» продавцов и покупателей. Поскольку пульты для сэлфи часто делают в корпусе и на процессорах BLE трекеров — их попросту путают. Отличить их можно по отсутствию у пультов зуммера и как они идентифицируются системой.

Читайте также:  Африканская юбка своими руками ребенку

По центру треккер, с краев пульты:

Внимание: гаджеты BLE даже у одного и того же продавца, в одном и том же корпусе и цвете могут отличаться схемотехникой, процессором и прошивкой. Поэтому, если Вас все же заинтересует повторяемость наших с вами изделий, заранее попросите продавца фото платы, и предупредите, что для вас этот момент важен.

Для сравнения далеко не полный набор из возможных вариантов — ни одного повторения:

О геолокации:

BLE маячки изначально рассчитаны на возможность их поиска внутри помещений, чего не могут по понятным причинам Wi-Fi, GPS и им подобные системы. Но простое позиционирование — для коммерциализации не достаточно. Маячки стали предлагать сетям магазинов, музеям и владельцам выставочных залов, на туристических объектах, предварительно привязав рекламные метки к определенной точке в помещении. Вы подошли к товару или стенду выставки, а в вашем телефоне (при наличии заранее скачанной спец-программы) уже высвечивается полная информация об объекте.

Маячок примерно раз в секунду просыпается и выдает в эфир сигнал, который способен уловить любой современный телефон (планшет, ноутбук, часы, браслет…) даже в том случае, если у вас отключен Bluetooth. Последний незаметно посылает на сервер идентификационные данные маячка и информацию об уровне сигнала, по которым и определяется его местоположение. Именно поэтому протокол Bluetooth SIG требует от производителей включать в программы и прошивки обязательную активацию геоданных. Кстати, сами гаджеты с Bluetooth выше 4 версии также могут работать как маячки и даже полностью копировать любой из BLE устройств. Это свойство разработчики используют для отладки своих программных продуктов. Более того, BLE устройства могут общаться между собой образуя целые сети.

Другими словами, производители BLE рассчитывают на то, что рано или поздно мимо вашей «антипотеряшки» пройдет человек с такой же программой как у Вас, которая через сервер известит о точке, где она сейчас находится. Как Вы понимаете в селе или даже районном центре на такое рассчитывать не стоит, а вот в городе может повезет, хотя в условиях карантина — сомневаюсь. Встречал информацию, что американцы проводили исследования, согласно которым у 40% пользователей смартфонов в крупных городах постоянно подключены Bluetooth и геоданные.

Если находиться в тренде и поверить в пугалки о внедрении повсеместного чипования и создания глобальной сети слежки через 5G, то спешу вас успокоиться — кому надо вас могут отследить с точностью до сантиметров в помещении уже сегодня. Но при этом надо всегда задаваться вопросам — «… а кому Вы нужны?» Если у Вас есть BLE гаджет с собой, к примеру — ключи с трекером в кармане или мобильный телефон, а на столе беспроводная мышка или наушники, достаточно двух устройств из этого неполного списка, чтобы вычислить Ваше местоположение. Но даже если на Вашем теле нет ни одного электронного гаджета, а они лежат мирно где ни будь в квартире (а они наверняка есть), то о вашем местоположении и перемещении в помещении все рано «Всевидящему Оку» будет известно.
Если мы говорим о BLE, то для таких фокусов достаточно отслеживать его уровень сигнала связи. Если Вы оказались на пути этого сигнала, он поменяет свое значение на какое-то время в меньшую сторону. С увеличением числа устройств точность вашего позиционирования возрастает. Я даже задумывался сделать на этом принципе и представить вам датчик движения из брелка, но меня пока останавливает три момента: необходимость писать отдельное приложение, возможные сбои в расчетах при быстром передвижении объектов (пока BLE спит); отсутствие времени; да и зачем, если есть другие, недорогие и более точные решения таких задач.

Пока верстался топик, буквально вчера прилетела информация что (дословно): «Apple и Google объединяют силы с целью помочь медицинским работникам отслеживать контакты лиц, заразившихся коронавирусом. К середине мая они обещают разработать технологию, которая позволяет делать это с помощью беспроводной связи Bluetooth. Специально для внедрения этой технологии компании выпустят полноценную версию API, который позволит ей функционировать на устройствах с операционными системами Android и iOS». Интересно, это то о чем я намекал выше или что-то другое — скоро прояснится.
С неприятными звуками мы разберемся в последней серии, став на время «хакерами», а вот с дальностью не все так просто, хотя можно побороться и в этом вопросе.

Дальность

Есть возможность увеличить/изменить дальность гаджетов BLE программно, но нужно осознавать, что чем выше дальность — тем больше расход энергии. Процедура простая (в помощь программа nRF Connect и ей подобные) но это потребует определенных специализированных знаний (не для домохозяек). Вот припаять кусочек провода к антенному выводу на плате с учетом того, что уже есть длиной так в 8,2 см многим вполне под силу (основы антенно построения здесь)
Как альтернатива – можно погуглить и приобрести готовые варианты Bluetooth трекеров с заявленной дальностью в 50 и даже 100 метров, правда цены совсем другие. Для квартиры же площадью в 60-80 кв. м стандартная для BLE дальность в 10-15 м (при условии расположения базы по центру жилплощади или в коридоре), вполне достаточна. Привередливые, дополнительно могут приобрести BLE повторители (приемопередатчики) выбор очень большой, цены от $4 и выше.

Если Вы еще не передумали разбирать свой BLE гаджет, тогда пошагово приступим собственно к сотворению датчика протечки. Для этого подойдет любая BLE «антипотеряшка» или сэлфи-пульт. Я же выбрал из своей коллекции белый, квадратный брелок по трем причинам — подходит по цвету и фактуре под кафель ванной, лучше защищен от влаги, но главное — из-за того, что его схемотехника не позволяет также просто как у других разделить питание процессора от батареи, а варианты с разделением еще пригодятся для других изделий. Забегая вперед отмечу, что все датчики из сериала основаны на трех принципах – изменении (гашении) сигнала передачи, механическом или транзисторном разрыве питания, эмуляции нажатия встроенной кнопки. Все способы имеют свои достоинства и недостатки, главное понять — где и как их применять.

Читайте также:  Для печи своими руками идеи

В представленном случае, менять частоту радиопередачи будет жидкость (вода). Все что нам нужно для реализации этого «сложного» проекта — два провода и паяльник. Как только вода коснется контактов — связь прервется, а «база» просигнализирует вам о происшествии. Как показали опыты, в зависимости от схемы и обвеса процессора (наличия или отсутствия конденсаторов и резисторов), некоторые брелки способны восстановить связь с базой даже после длительной приостановке работы процессора. Процессор продолжает получать питание, но тактовая частота его меняется (замедляется или совсем приостанавливается). В нашем случае, этот момент не столь существенен. Не так часто происходят затопления, а если процессор все же остановился и связь, после того как контакты обсохли, самостоятельно не восстановилась, то можно одним нажатием кнопки вновь запустить гаджет, благо, что проверить это можно дистанционно, а в некоторых приложениях параллельно проконтролировать и уровень заряда батарейки.

Пошаговая инструкция для домохозяек :

1. Берем нож (можно кухонный) и смело разделяем половинки гаджета.

2. Отбираем у мужа или у соседа паяльник, предварительно предупредив, что это «не на долго». Если будут сопротивляться намекните, что в этом случае Вы бы предпочли тонкое жало, думаю это их на время дезориентирует и утихомирит.

3. Два проводка, или как в моем видио — ножки любой радиодетали + плюс мягкий проводок, можно найти в игрушках младшего ребенка.

4. У среднего отбираем для «базы» старый телефон обязательно пообещав ему на День рождение новый.

Пол дела сделано.
5. Мягким движением руки, один провод припаиваем к любому выводу кнопки. Лучше

т.к. в случае долгого пребывания в воде утечка тока меньше чем если его присоединить к минусу.

Второй, к удобному для пайки выводу (или дорожке) идущему к процессору самой блестящей на плате детали с пятизначными цифрами, как правило, это

6. Свободные концы выводим наружу корпуса брелка. В моем случае три точки пайки и выглядит это так:

Расстояние между проводами не столь важно, можно вывести и в противоположные концы корпуса, как вам покажется удобней. Чувствительность датчика настолько велика, что если Вы возьметесь одной рукой за один вывод, а другой за второй, то сопротивление тела, которое при влажных пальцах равно около 1-2 МОм, а при сухих – 3-10 МОм будет вполне достаточным, чтобы разорвать Bluetooth соединение.

7. Соберите и разместите датчик(и) в потенциально опасном(ых) для протечек месте(ах). Я разместил свой с помощью двойного скотча на стене с выводами в миллиметре от пола. Такое расположение не мешает уборке помещения, прибор не путается под ногами и всегда на виду.

8. Для лучшей защиты электроники от воды рекомендую смазать весь корпус датчика вазелином для обуви или любым жирным кремом для лица (главное, чтобы он был из дорогого бутика). После этого прибор протрите сухой салфеткой, крем останется во всех пазах и отверстиях, тем самым обеспечите датчику хорошую герметичность.

9. Если Вы «профессиональная» домохозяйка и большую часть времени находитесь дома, то для Вас вполне достаточным будет скачать рекомендованное производителем маячка программное приложение, которое оповестит Вас своим сигналом об утечке днем и ночью предохранив от очередного приключения с соседями.

10. Владельцам дач, госслужащим и активным предпринимателям, любителям путешествий и просто трудовому народу стоит дождаться (проще подписаться) последней части сериала. Там Вы получите инструкцию по несложному программированию «базы», которая будет способна не только представить аудио и видео отчет по текущей ситуации в охраняемом жилье в любой точке мира (естественно при наличии доступа к интернету), но и моментально проинформирует через SMS, электронным письмом или звонком. В случае подъема уровня воды в охраняемом помещении, база по Вашему желанию, самостоятельно сможет позвонить соседям снизу и сверху, женским или мужским (лучше мужским) голосом проговорит набранный вами текст – настойчиво попросит перекрыть краны стояка и проверить не течет ли у них по стенам.

Особо нетерпеливые уже сейчас могут скачать программку из PlayMarket Macrodroid предназначенную для автоматизации ваших Androud гаджетов и начать осваивать ее несложный язык.

Почему Macrodroid, а не Automate или Automatel или им подобные? Да потому, что первая очень гибкая и понятная, с интегрированным BLE модулем, на хорошем русском (или более близких вам с десяток других языков).
Продвинутые пользователи, могут попытаться освоить специально разработанный французским профессором программный продукт iTAG Alarm (500 тыс. скачиваний), который, судя по заверению автора, призван сделать с вашего брелка – пульт дистанционного управления. Мне он не подошел, по причине того, что заточен исключительно под конкретного производителя и сильно отстает по функционалу от Macrodroid (более одного млн. скачиваний). Все используемые нами программы бесплатные и как сейчас модно говорить — с возможностью расширения функционала за финансовое вознаграждение. Нам пока предостаточно будет функций их бесплатных версий.
Для автоматического перекрытия Ваших кранов потребуется электронный затвор/кран управляемый по Bluetooth или Wi-FI. Таких на местных и зарубежных интернет рынках предостаточно, правда и цены «кусачие» (как и о обещал – никакой рекламы). Если система затворов работает на собственных частотах, то в них можно постараться интегрировать такие же «антипотеряшки» благо, что они двунаправленного действия.

Итоговое фото:

В следующем материале Вы найдете пошаговую инструкцию изготовления из «антипотеряшек» двух BLE датчиков – уровня жидкости и объема (емкостной ). Они не на многим сложнее в изготовлении, имеют другой функционал и назначение, но их также с успехом можно будет использовать и для детекции протечек воды в помещении. Если стиль и содержание таких топиков понравится сообществу, то в недалекой перспективе попробую описать в картинках и процесс изготовления бесконтактных датчиков дверей и окон с магнитом и без таковых, а так же и датчик детектора влажности почвы (полива). Думаю, что этот абзац будет и ответом на вопрос «… почему сериал?». Все (в том числе программирование) уместить в один топик в моем представлении не приемлемо и не читабельно. Постараюсь долго не затягивать, видео часть уже подготовлена.

Все BLE гаджеты приобретались с экспериментальной целью, у разных продавцов, в разное время, за свои.

Источник

Adblock
detector