Оглавление:

Датчик присутствия: 12 шагов
Датчик присутствия: 12 шагов
Anonim
Датчик присутствия
Датчик присутствия

Носимые устройства обычно являются устройствами с поддержкой BLE. Для них характерно периодически анонсировать некоторые данные по своему MAC-адресу. Мы используем ESP для сканирования этих данных и запуска события через Интернет, когда он находит определенный MAC-адрес. Эта конкретная реализация предназначена для одного пользователя с интеллектуальной вилкой, подключенной к лампе. Но его также можно использовать с набором зарегистрированных устройств с любыми типами устройств с поддержкой IOT.

Запасы

  1. ESP32
  2. (опционально) TECKIN WiFi Wall Plug S10
  3. Устройство с поддержкой BLE любого типа

Шаг 1. Определите свой сценарий

Определите свой сценарий
Определите свой сценарий

В качестве триггера можно использовать большинство современных носимых устройств. Это могут быть Apple Watch, браслет mi fit, телефон или даже ваше собственное носимое устройство на базе ESP32.

Наверное, один из самых важных шагов. Вы должны думать заранее в трех вещах:

1. Какое носимое устройство или устройство будет запускать датчик приближения.

2. Что будет срабатывать датчик (это делается через IFTTT).

3. Когда датчик собирается сработать

В этом примере я буду использовать свои Apple Watch, чтобы активировать интеллектуальную розетку для включения лампы, когда я сижу за своим столом.

В этом уроке мы рассмотрим умную розетку от TECKIN. Вы можете найти его на Amazon по хорошей цене. Он также совместим с Alexa и Google Home. Огромное значение!

Шаг 2: (Введение) Установите триггер - несколько пользователей

Если вы хотите настроить так, чтобы он работал с любым человеком с устройством с поддержкой BLE, достаточно близко к вашему датчику, пропустите следующий шаг. Это довольно полезная настройка, которую я использую лично. Имейте в виду, что этот датчик можно легко взломать или использовать для срабатывания, поэтому я бы не стал сильно доверять пинте стенда безопасности; просто для практического использования (т.е. я не хочу, чтобы мой компьютер запускал его, так как он всегда будет рядом с датчиком).

Шаг 3. (Введение) Установка триггера - Ограниченные пользователи

Этот шаг сильно зависит от вашей настройки. Чтобы ограничить, какие устройства могут запускать датчик, у вас есть несколько способов ограничения:

- MAC-адрес BLE (эквивалент IP-адресу в сети Wi-Fi. Причина, по которой он не гарантирует безопасность, поскольку не является реальным MAC-адресом модуля. На устройствах iOS он изменяется каждый раз при перезапуске Bluetooth, что не так весело)

- Код производителя (лучший вариант, но нет возможности ограничить конкретные устройства от одного производителя / модели)

- Имя, сервисный UIDD (редкий, но лучший вариант, в основном носимые устройства DIY или, возможно, приложение для Android)

Некоторые примечания:

1. Если это устройство iOS:

- У вас есть несколько важных плюсов и минусов. Pro, они передают уровень мощности, на котором это рекламные данные. Это полезно на этапе калибровки, вы обнаружите, что использование Apple Watch полезно, поскольку они транслируют на 24 дБ, а iPhone и большинство устройств передают на 12 дБ.

CON, вам придется найти обходные пути. Объявленный MAC-адрес (основной метод идентификации) меняется каждый раз при перезапуске сигнала Bluetooth, а это означает, что вам придется каждый раз загружать код… не весело. Вы можете использовать данные производителя, которые могут различаться в зависимости от модели. Это означает, что вы можете ограничить, чтобы он воспринимал «все iPhone 8».

2. Если это устройство Android:

- Лично у меня андроид устройства нет. Но, вероятно, есть много приложений, которые могут исправить MAC-адрес или даже добавить персональное имя (если вы хотите пойти по этому пути). На устройствах iOS есть приложение «nrf connect», которое может это сделать. Но не является постоянным, то есть если вы блокируете экран или переключаете приложения … конфигурация отключается через пару секунд.

3. Еще один ESP32. (ваш лучший выбор)

- Такой простой код можно реализовать в таком устройстве; смарт-браслет с питанием от esp32. Код на самом деле является примером из библиотеки ESP BLE BLE_IBeacon.ino. Я не слишком много тестировал его, так как мой смарт-браслет уже отправлен, вероятно, скоро опубликую обновления.

Шаг 4: (Настройка) - IFTTT

(Настройка) - IFTTT
(Настройка) - IFTTT

Итак, на этом этапе вам, вероятно, следует принять все решения вашего рабочего процесса. У вас есть запускающее устройство, у вас есть место для подключения ESP с беспроводным подключением к Интернету, и у вас есть действие, которое IFTTT может автоматизировать.

IFTTT мощный; будь то просто отправка простого уведомления на ваше устройство, вы хотите отправить твит или включить лампочку с помощью умной вилки. В этом руководстве мы реализуем последний вариант с помощью интеллектуальных разъемов TECKIN, совместимых с IFTTT. В любом случае загрузите приложение IFTTT или перейдите на сайт IFTTT.com и создайте учетную запись.

На данный момент это все!

Если вы просто хотите отправить уведомление или что-то еще, кроме плагина Smart Life, вы можете пропустить следующий шаг.

Шаг 5: (Настройка) IOT Device * необязательно *

Загрузите приложение «Smart Life» из PlayStore (android) или AppStore (iOS). Инструкции довольно просты, хотя процесс немного сложен. Обнаружил на этапе сканирования (когда моргала синяя кнопка) в какой-то момент он останавливался, потом пару раз вручную нажимал на включение и выключение. Это мне помогло. В любом случае; Настройка этого плагина ничем не отличается от нашего приложения, поэтому, если он у вас уже есть и он подключен к вашему приложению, вы должны быть готовы к работе.

ОБРАТИТЕ ВНИМАНИЕ: у вас должна быть возможность включать и выключать переключатель из приложения, прежде чем вы перейдете к этому шагу. Это будет означать, что вы правильно настроили интеллектуальную розетку.

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

Шаг 6. (Настройка) IFTTT Webhook Api * Опытные пользователи *

(Настройка) IFTTT Webhook Api * Опытные пользователи *
(Настройка) IFTTT Webhook Api * Опытные пользователи *

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

1. Создайте новое событие.

2. Установите "this" как api веб-перехватчика. Запишите название, которое вы присвоили событию.

3. Установите "это" на желаемое поведение. Для умной вилки найдите умную жизнь и выберите «включить».

4. Выберите смарт-штекер и нажмите «Готово».

5. На главном экране найдите карточку «веб-перехватчики». После того, как вы ее нажали, нажмите внизу «получить больше».

6. Пресс-документация. Это покажет вам ваш ключ API вместе с построителем и тестером URL.

7. Используйте конструктор URL с именем, которое вы написали в # 2. Скопируйте это и запишите.

8. Повторите эти действия, если хотите, чтобы срабатывало поведение, когда датчик присутствия больше не активен. В нашем случае повторите №3, но выберите «выключить». Кроме того, в №2 имя на этот раз также должно быть другим.

Если вы закончили, пропустите следующий шаг.

Шаг 7: (Настройка) IFTTT Webhook Api * Для начинающих с фотографиями *

(Настройка) IFTTT Webhook Api * Для начинающих с фотографиями *
(Настройка) IFTTT Webhook Api * Для начинающих с фотографиями *
(Настройка) IFTTT Webhook Api * Для начинающих с фотографиями *
(Настройка) IFTTT Webhook Api * Для начинающих с фотографиями *
(Настройка) IFTTT Webhook Api * Для начинающих с фотографиями *
(Настройка) IFTTT Webhook Api * Для начинающих с фотографиями *

Подробное руководство * фото-руководство должно быть похоже на Android и в Интернете *

IFTTT - это простой рабочий процесс: если «это происходит», то «это происходит». Вы должны создать новый, 1. в приложении нажмите «получить больше», и появится список.

2. Прямо под панелью поиска написано «создавайте собственные апплеты с нуля», нажмите знак «плюс».

3. Нажмите "это" плюс.

В нашем случае «this» будет вызовом api через Интернет. Вызов api - это обращение к URL-адресу, как если бы вы вводили поиск в Google, а URL-адрес - google.com/(длинная строка символов). Чтобы создать api: (после нажатия "this")

4. Выполните поиск по "webhooks".

5. Выберите единственный вариант.

6. Назовите свое мероприятие (в этом примере мы будем использовать «Сидеть»). Запишите это имя, очень важно.

7. Нажмите "Создать триггер".

Ok! Теперь мы ближе к «той» части. В этом уроке мы установим «то», чтобы включить умную вилку. Но вы можете выбрать что угодно из IFTTT. Хороший способ проверить настройку - выбрать «уведомления», которые будут отправлять уведомление на ваш телефон каждый раз, когда срабатывает датчик (или вызывается API, даже из веб-браузера: полезно для тестирования!)

8. Нажмите "тот" плюс.

9. Найдите «Умная жизнь» (или «уведомления»).

10. Нажмите «включить» (вам нужно будет повторить эти шаги, чтобы создать еще одно событие, которое будет отключено, когда вы уйдете).

11. Если у вас правильно настроены оба приложения и разъем, вы должны увидеть свой разъем в раскрывающемся списке «какое устройство / группа».

12. Выберите «Создать действие», а затем - «Готово».

Теперь вы должны увидеть, что событие подключено. Теперь нам нужно получить URL-адрес api. Для этого:

13. Перейдите на главный экран IFTTT.

14. Найдите карточку Webhooks.

15. Выберите «Подробнее».

16. Нажмите на кнопку «Документация». Вы должны увидеть веб-страницу с вашим ключом.

17. В полях "{событие}" введите название вашего мероприятия (помните пункт 6).

18. Внизу страницы нажмите «Проверить».

Вероятно, вы должны увидеть зеленый баннер «событие было запущено», и вы должны увидеть, сработало оно или нет. В нашем случае вилка должна включиться. Или вы должны увидеть уведомление, если решили пойти по этому пути. Это может занять некоторое время, но не более минуты, чтобы убедиться, что вы это сделали. Помните, что это, вероятно, чувствительно к регистру.

19. Наконец. Скопируйте URL-адрес, на котором вы заменили название вашего мероприятия (на 17), и сохраните его в надежном месте. Это вам скоро понадобится.

20. Повторите 1-12. В 6 мы будем использовать "Стенд" на этот раз. В 10 выберите вместо этого «выключить».

21. Повторите 13-18, если хотите, но вы можете обойтись без URL-адреса, который вы скопировали в 19, но теперь измените место, где вы написали «Сидеть», и замените его на «Встань». Вы можете проверить это в веб-браузере. Он должен сказать: «Поздравляю! Вы запустили мероприятие «Стенд». Тогда вилка должна была выключиться.

Шаг 8: (Код) Программирование ESP32

(Код) Программирование ESP32
(Код) Программирование ESP32

Вы можете пропустить этот шаг, если чувствуете себя комфортно при загрузке эскизов из Arduino IDE на плату ESP32 Board. Только не забудьте установить для приложения раздел размером 2 МБ, по крайней мере, так как вес скетча немного больше обычного лимита 1,2 МБ.

Есть много отличных руководств, вот некоторые из которых я рекомендую:

circuitdigest.com/microcontroller-projects…

Но все же, чтобы вы не заблудились, я остановлюсь на нескольких важных ключевых моментах.

- ESP32 не является платой Arduino, но все же может быть запрограммирован с помощью Arduino IDE. С простым кодом Arduino. Но вам все равно нужно будет настроить IDE для работы с ESP32.

- Вам нужно будет установить некоторые библиотеки через «Менеджер дополнительных плат» в настройках. Это URL-адрес, который вы должны вставить:

- (необязательно, может помочь) В Инструменты-> Управление библиотеками… -> (найдите библиотеку esp BLE)

- в Tools теперь у вас должен быть длинный список устройств ESP, я рекомендую модуль разработчика ESP32

- (ВАЖНО) Выберите (нет Ota 2mb app / 2mb spifs) в диспетчере разделов. Этот шаг важен, поскольку приложение становится довольно тяжелым из-за использования как Wi-Fi / http-соединений, так и BLE-сканера.

Если вы все сделали правильно, вы сможете запрограммировать ESP32. Теперь это похоже на Arduino на некоторых платах. Подключите его, выберите подходящую плату, порт USB, и все готово. Но во многих других случаях вам придется продолжить

Шаг 9: (Код) Загрузите код в ESP32

(Код) Загрузите код в ESP32
(Код) Загрузите код в ESP32

Хорошо, если вы здесь, это означает, что вы успешно загрузили скетч на плату ESP32, предпочтительно скетч blink.ino.

Вот основной прилагаемый код, вы также можете найти его в репозитории GitHub. Вам необходимо заменить следующее:

SSID - ваше имя Wi-Fi

PSK - Ваш пароль Wi-Fi

sit - URL-адрес с надписью "Сидеть" из API IFTTT, который вы написали ранее.

stand - URL с надписью "Stand" из API IFTTT, который вы написали ранее

Теперь поднесите триггерное устройство к плате и загрузите код. Затем откройте Serial Monitor (115200 бод) после успешной загрузки кода.

Если вы планируете использовать это с любым устройством с поддержкой BLE, пропустите следующий шаг.

ПРИМЕЧАНИЕ: если вы получаете сообщения об ошибках памяти, это связано с тем, что настройки по умолчанию оставляют только 1 МБ памяти (из имеющихся 4 МБ) для необработанного кода ESP. Остается часть для нескольких вещей, которые можно программировать по воздуху. Обычно я делаю следующее:

- в Tools у вас должен теперь быть длинный список устройств ESP, я рекомендую модуль разработчика ESP32 - выберите «no Ota 2mb app / 2mb spifs» в диспетчере разделов.

Это дает мне двойной объем памяти, необходимый для этого приложения.

Шаг 10: (Код) Загрузите код в ESP32 * необязательно *

(Код) Загрузите код в ESP32 * необязательно *
(Код) Загрузите код в ESP32 * необязательно *

Вот сложная часть, упомянутая на шаге «Установка триггера». Монитор выведет MAC-адрес (должен выглядеть как ##: ##: ##: ##: ##, где # - либо число, либо буква от a до f), код производителя и RSSI (отрицательное число.). Здесь вам нужно немного поэкспериментировать, чтобы найти ваше устройство. Обычно я кладу его рядом с доской, чтобы было ясно видно, какое число наименьшее. Я снимаю флажок «Автопрокрутка», чтобы скопировать значения.

  • Если это Mac-адрес, заполните им myDevice. Затем раскомментируйте строку № 96 и строку комментария № 95.
  • Если это Имя, заполните им «myDevice». Затем раскомментируйте строку №97 и строку комментария №95.
  • Если это MaufactureData, вам пока не повезло, я все еще разрабатываю эту часть.

Для добавления поддержки некоторых устройств вы должны иметь возможность скопировать условный оператор в # 96 или # 97 и разместить их рядом друг с другом в этом синтаксисе:

if ((условие1) || (условие2) || (условие3)) {

Соответственно добавьте дополнительные переменные (myDevice1, myDevice2, myDevice3).

Шаг 11: Установите ESP и откалибруйте

Поместите ESP и откалибруйте
Поместите ESP и откалибруйте

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

На этом этапе код, который вы загрузили, работает с параметрами, которые я лично протестировал и использую каждый день со своим телефоном на моем столе; это не значит, что это сработает и для вас. Значит калибровку нужно делать самому.

1. Поместите плату ESP32 в окончательное ФИКСИРОВАННОЕ место. Если вы по какой-то причине измените положение вашего ESP32, вам, вероятно, следует сделать это снова. Это обеспечит вам в целом хорошее впечатление.

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

2. Откройте Serial Monitor с запущенным кодом.

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

3. При определении порогов замените их здесь:

  • near_thrsh
  • far_thrsh

4. Повторно загрузите код, протестируйте и повторяйте, пока не найдете оптимальную производительность.

Несколько вещей, которые следует учитывать:

1. Вы хотите, чтобы разница между порогами составляла около 20 дБ. Если near_thrsh установлен на 50, тогда желательно, чтобы far_thrsh было 70 или больше. Если разница слишком мала, вы можете найти некоторые расстояния или места, где доска включается и выключается без остановок. Увеличение этой разницы гарантирует, что вы избежите этого нежелательного поведения. Я лично обнаружил, что запаса в 20 дБ вполне достаточно.

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

3. Изучите класс в строке 82 кода; здесь вся логика. Тем не менее, код хорошо прокомментирован. Не стесняйтесь спрашивать на GitHub!

Шаг 12: Поздравляю! Вы сделали

Сообщите мне в комментариях о любых предложениях или если у вас возникли проблемы. Не забудьте проверить GitHub, если ваша проблема уже решена!

Рекомендуемые: