MotionSense
Компоненты и расходные материалы
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 |
Необходимые инструменты и машины
|
Приложения и онлайн-сервисы
|
Об этом проекте
MotionSense
Введение
В этом руководстве я расскажу, как создать систему, которая уведомляет о любой несанкционированной активности или вторжении. Я использовал Arduino и PIR для обнаружения активности и ESP8266 для подключения к Wi-Fi. Мой Xperia Z1 используется для получения уведомлений. Я использовал приложение всплывающих уведомлений Pushbullet для получения уведомлений и API Pushbullet для отправки уведомлений от Arduino.
Необходимые знания
- Знание Arduino и базового оборудования [посетите:www.arduino.cc]
- Идея об AT-командах [прочтите:http://www.codeproject.com/Articles/85636/Introduction-to-AT-commands-and-its-uses]
- ПИР, как это работает [о:https://en.wikipedia.org/wiki/Passive_infrared_sensor]
"Вещи"
Arduino Mega 2560
ESP8266 серийный WiFi вариант ESP-01
ИК-датчик HC-SR501
Конденсатор 1000 мкФ, разные резисторы [ конденсатор для питания WiFi, резистор для регулирования напряжения ]
Проволока с одинарной резьбой 0,5 мм [ соединительный провод ]
Перемычки "мама-мама" [ соединители ]
Xperia Z1 [для приложения Pushbullet подойдет любой смартфон]
Мой ноутбук [кодирование в Arduino]
IDE Arduino [v1.6.4]
Что делать
Среда настроена: Если у вас не установлен arduino, установите его с веб-сайта arduino.
Скрыть код копии
Настройка PIR:
Я предполагаю, что вам нужна максимальная чувствительность с минимальным циклом оповещения, чтобы повысить скорость обнаружения. Поэтому установите потенциометры PIR следующим образом:
Теперь откройте белую сферу датчика PIR, и вы увидите описание контакта:GND | ВНЕ | VCC
Подключите женские перемычки к GND VCC и OUT.
Теперь подключите другой конец перемычки (подключенной к PIR) к Arduino:
PIR GND -> Arduino GND
PIR VCC -> Arduino 5 В
PIR OUT -> ЦИФРОВОЙ контакт 2 [вы можете выбрать PIN-код по вашему выбору и также изменить код Arduino]
Чтобы проверить свой PIR, вы можете использовать этот код в Arduino Playground .
Итак, ваш PIR датчик ГОТОВ работать
Скрыть код копии
Включение Arduino для подключения к Интернету через Wi-Fi:
Я использовал для своего проекта последовательный WiFi-модуль ESP8266 (вариант ESP-01), который стоит довольно дешево. Помимо ESP-01 доступны другие варианты. Также доступны разные прошивки. Я использовал стандартную прошивку AT. Проверьте эти два изображения для справки о подключении
Не подключайте ESP8266 к Arduino с помощью перемычки:
ESP8266 GND -> Arduino GND
ESP8266 UXTX (вывод передачи) -> Arduino RX2 (вывод мега-приемника Arduino, т.е. Serial2 в коде)
ESP8266 CH_PD (сделать HIGH) -> Arduino 5V (добавьте один регулятор напряжения 0f 3.3, поскольку ESP 8266 может выдерживать 3.3 В. Я использовал резистор, так как у меня не было регулятора напряжения. Но регулятор напряжения предпочтительнее)
оставить RST, GPIO2 и GPIO0 неподключенными
ESP8266 URXD (контакт приемника) -> Arduino TX2 (вывод приемника Arduino, например, Serial2 в коде)
ESP8266 VCC -> 3,3 В Arduino
ESP8266 имеет проблемы с питанием во время передачи данных. Он потребляет столько энергии от Arduino, что Arduino может перезапуститься, если Arduino получает питание через USB-порт ПК. Даже при питании 5в через вилку может не хватить. Следовательно, всегда рекомендуется использовать внешний источник питания для ESP8266. Однако в своем эксперименте я использовал для этого быстрое и дешевое решение. Я использовал один электролитный конденсатор емкостью 1000 мкФ, чтобы обеспечить питание ESP8266.
более длинный контакт -> ESP8266 VCC подключен к 3,3 В
более короткий контакт -> ESP8266 GND подключен к Arduino GND
Итак, ваш ESP8266 Модуль Wi-Fi ГОТОВ работать
Скрыть код копии
Pushbullet Notifier:
Pushbullet позволяет вам незаметно уведомлять различные устройства с помощью push-уведомлений. Мы собираемся использовать его API для push-уведомлений нашего датчика PIR. УЗНАТЬ БОЛЬШЕ о Pushbullet
Начнем.
Перейти к PushBullet
Зарегистрируйтесь, загрузите приложение Chrome и приложение для смартфона.
Войдите в Pushbullet в ваших устройствах.
Теперь посмотрим, как это работает, отправляя push-сообщения на ваши устройства с помощью приложения или расширения Chrome, установленного на вашем компьютере.
Перейти в раздел API
ПРИМЕЧАНИЕ. Здесь все ссылки и URL-адреса API предоставляются для https-соединения, и Arduino не может использовать https, поскольку он не настолько эффективен, чтобы справиться с этим. Следовательно, мы будем использовать HTTP-версию этих API, которая не упоминается здесь в документации pushbullet, но я получил эту ссылку из github .
В документах pushbullet для отправки они упомянули URL-адрес, который является HTTPS, поэтому мы будем использовать URL-адрес HTTP и порт, предоставленные в этом проекте github. Также мы добавим / pushbullet ранее и путь REST, который они упомянули.
Пример:
для отправки уведомлений на все устройства, согласно pushbullet doc , Путь REST: / v2 / push
но мы будем использовать: / pushbullet / v2 / push
базовый URL: 173.17.168.19
порт: 8181
Теперь проверьте разные API и прочтите описания, чтобы узнать о них. Вы можете использовать их позже для своей расширенной версии этого руководства.
Вам понадобится ваш ключ аутентификации для отправки из Arduino. Так что перейдите в свою учетную запись
Найдите токен доступа , скопируйте и сохраните на свой компьютер в безопасном месте.
Итак, Pushbullet теперь ГОТОВ для отправки и получения push-уведомлений.
Пора писать код
Откройте этот проект GitHub
Перейдите в папку "Эксперименты". Там вы найдете MotionSense.ino . , ваш код, который будет отправлять уведомления на ваши смарт-устройства.
Скопируйте этот код в IDE arduino и подключите свой arduino (уже настроенный с WiFi и датчиком PIR).
Теперь измените эти параметры:
Скрыть код копии
#define SSID "YOURSSID" / * замените YOURSSID на имя вашей точки доступа WiFi * / # define PASS "YOURPASSWORD" / * замените ВАШ ПАРОЛЬ на пароль вашей точки доступа WiFi * /
Вы можете изменить вывод PIR OUT на желаемый
Скрыть код копии
#define PIRPIN 2 / * изменение желаемого цифрового пина вашего Arduino * / # define AUTH_TOKEN "YOUR_TOKEN_FROM_YOUR_ACCOUNT"; / * замените YOUR_TOKEN_FROM_YOUR_ACCOUNT на свой токен доступа * /
Также используйте свой токен доступа, как указано в приведенном выше фрагменте.
Теперь скомпилируйте и запустите.
Потребуется время на калибровку датчика, инициализацию модуля WiFi и подключение к вашей точке доступа.
Вы можете видеть это на своем последовательном мониторе.
После того, как все будет сделано, он начнет цикл по основному циклу, и вы увидите
«Все в порядке | Без вторжений»
в вашем последовательном мониторе постоянно.
Когда бы вы ни подошли к своему ИК-датчику, он обнаружит движение и отправит push-уведомление на ваши устройства.
Краткое понимание кода
#defines - это набор предопределенных параметров, которые необходимо изменить соответственно
В настройках вы можете увидеть инициализацию Arduino Serial (). Serial2 предназначен для последовательного доступа Wi-Fi.
Общие сведения о функциях :
Скрыть код копии
sensor_calibration (); / * Калибрует датчик для правильного вывода. Перед этим нам нужно выключить PIRPIN * /
Скрыть код копии
check_WiFi_radio (); / * Проверяет исправен модуль WiFi * /
Скрыть код копии
reset_wifi (); / * сбрасывает модуль WiFi, чтобы устранить любую проблему * /
Скрыть код копии
set_wifi_mode (); / * Установить модуль WiFi в качестве клиента для подключения к точке доступа * /
После настройки режима WiFi вам необходимо сбросить WiFi, чтобы установить его
Скрыть код копии
check_wifi_stat (); / * Проверяет, подключен ли ваш WiFi-модуль к AP * /
Скрыть код копии
connect_ssid (); / * если не подключен, то подключится с вашим параметром подключения * /
До этого ваш WiFi-модуль был инициализирован и подключен. Теперь вам нужно проверить считывание PIR, обнаруживает ли он движение или нет. Он будет в основном цикле.
Скрыть код копии
pirRead (); / * считывает значение PIR, 0 или 1. Если 1, то датчик движения, если 0, то там ничего нет * /
Если что-то обнаружено, то сначала нужно подключиться к серверу Pushbullet
Скрыть код копии
server_connect (); / * подключение к серверу * /
Теперь push-уведомление
Скрыть код копии
сообщение (); / * отправка уведомления на все устройства * /
отключить
Скрыть код копии
server_disconnect (); / * закрываем соединение с сервером * /
и пройти через
Код
Код MotionSense
Прочтите файл readme репозитория для объяснения кода https://github.com/anupam19/ESP8266-experimentsСхема
Производственный процесс
- Визитная карточка игры «Крестики-нолики»
- Многотемпературный датчик
- Управление паяльником DIY для 862D +
- Пожарная безопасность 3D-принтера
- Датчик Интернета вещей с Arduino, Yaler и IFTTT
- Отталкивающая электромагнитная левитация Arduino
- Бот для захвата удаленного управления
- Регистратор данных с погодными шарами на базе Arduino
- ArduFarmBot - Часть 2:Удаленная станция и реализация Интернета вещей
- CoroFence - Тепловой детектор🖖