Сенсори руху - це високотехнологічні пристрої безпеки, які ви бачите зараз не лише в кіно, чи не так? Навчимося, як зробити свій власний пристрій відстеження руху.
Побудуємо пасивний інфрачервоний (PIR) сенсор руху, з'єднаний через Wi-Fi з EasyIoT Cloud в Інтернеті. Використаємо ESP8266, модуль PIR і Arduino IDE.
Вступ
Конфігурація EasyIoT Cloud
Зареєструйтеся на сервісі EasyIoT Cloud. Якщо не отримаєте підтвердження реєстрації на електронну пошту, то перевірте папку зі спамом. Якщо і там її немає, зв'яжіться з власниками ресурсу і вони активують ваш обліковий запис.
Потім перейдіть Configure->Modules->Add Module. Установіть Digital Input (DI) - цифровий вхід як тип модуля і ім'я його сенсора PIR:
Далі натисніть на Sensor.Parameter1. Встановіть "Description" для PIR і перевірте повідомлення UI для того, щоб отримувати повідомлення в реальному часі через веб-інтерфейс:
Натисніть кнопку збереження (Save parameter). Після збереження, ви побачите InstanceId/ParameterId. Запишіть - це знадобиться нам пізніше в програмі:
Поверніться до модуля конфігурації і додайте ще два параметри (через кнопку Add parameter).
Це два параметри, щоб задати текст в модулі. Ім'я першого параметра Settings.StatusText1, а другий Settings.StatusText2. Встановіть значення для першого як "Motion", а для другого як "Ok".
Далі, встановимо зображення для модуля. Для цього додайте ще два параметри і назвіть їх Settings.Icon1 і Settings.Icon2. Для першого параметра встановіть значення "siren_2.png", а для другого параметра встановіть значення "siren_1.png".
Після додавання всіх параметрів конфігурація модуля повинна виглядати наступним чином:
Програма
Програма написана в Arduino IDE ESP8266. Зверніться до керівництва Arduino ESP8266 IDE, щоб дізнатися, як підключити модуль ESP8266 до комп'ютера, щоб завантажити програму. Програма доступна на GitHub. Вам також знадобиться бібліотека EIoTCloudRestApi. У бібліотеці, вкажіть ім'я користувача точки доступу і пароль.
/*
Created by Igor Jarc
See http://iot-playground.com for details
Please use community forum on website do not contact author directly
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
version 2 as published by the Free Software Foundation.
*/
#include <ESP8266WiFi.h>
#include "EIoTCloudRestApi.h"
// EasyIoT Cloud definitions - change EIOT_CLOUD_INSTANCE_PARAM_ID
#define EIOT_CLOUD_INSTANCE_PARAM_ID "xxxx"
#define INPUT_PIN 2
EIoTCloudRestApi eiotcloud;
bool oldInputState;
void setup() {
Serial.begin(115200);
eiotcloud.begin();
pinMode(INPUT_PIN, INPUT_PULLUP);
oldInputState = !digitalRead(INPUT_PIN);
}
void loop() {
int inputState = digitalRead(INPUT_PIN);;
if (inputState != oldInputState)
{
eiotcloud.sendParameter(EIOT_CLOUD_INSTANCE_PARAM_ID, (inputState == 1));
oldInputState = inputState;
}
}
У програмному забезпеченні змініть EIOT_CLOUD_INSTANCE_PARAM_ID:
// EasyIoT Cloud definitions - change EIOT_CLOUD_INSTANCE_PARAM_ID
#define EIOT_CLOUD_INSTANCE_PARAM_ID "xxxx"
Підставимо INSTANCEID/ParameterId в конфігурацію параметрів:
Якщо змінили номера використаних виводів GPIO на ESP8266, то також змініть вказані виводи GPIO в програмі.
Апаратні засоби
У нашому випадку використовуємо ESP8266-01, але можете використати будь-який інший ESP8266 з програматором FDTI. Для джерела живлення можете взяти дві батареї типу АА або блок 3.3 В AMS1117.
Сенсор PIR живиться від 5 В, але якщо подивимося на схему, то побачимо, що всередині використовується 3.3 В. Оскільки в ESP8266 є 3.3 В, то можемо обійти внутрішній стабілізатор PIR:
Підключення після стабілізатора можна знайти на виводі 3 роз’єму JP1. У нашому випадку, ми підключили електроживлення 3.3 В до цього виводу, а не 5 В до зовнішнього виводу живлення.
Ви можете побачити це на наступному зображенню:
ESP8266 з підключеним ІЧ-сенсором
Нижче наведені з’єднання, які треба зробити:
І це все! Насолоджуйтесь сенсором руху.
(Джерело: dzone.com)