В этой статье разберем приложение Blynk. Blynk-это платформа с приложениями iOS и Android для управления Arduino, Raspberry Pi, ESP8266 и другими через Интернет.
Прежде чем приступить к материалу, я Вас попрошу, если нравится то, что я делаю и хотите следить за моей деятельностью, то рекомендую подписаться на мой телеграмм канал: https://t.me/ypavla
Там я публикую новости о вышедших видео, статьях и разные устройства для умного дома и не только показываю.
Спасибо за внимание, теперь продолжим.
Я хотел сделать детектор движения, который будет уведомлять меня каждый раз, когда засечет движение. Я играл с pir sensor некоторое время, но после некоторых проблем с настройкой (чувствительность x время) я решил использовать датчик HC-SR04. Идея проста: вы устанавливаете детектор в том месте где вы хотите улавливать движение, и он будет реагировать на разность измеренного расстояния и оповещать нас на телефоне в приложении Blynk.
Что вам будет нужно:
- ESP8266 советую Wemos D1– http://ali.pub/2s6wfn
- НС-SR04 ультразвуковой дальномер–http://ali.pub/2s6woz
- Blynk приложение
Схема подключения выглядит таким образом:
WeMos D1 — > HC-SR04
5V — > VCC
G — > GND
D6 — > Эхо
D7 — > Trig
Для настройки программы Blynk я оставлю картинки:
Опишем порядок действий:
- Скачать приложение Blynk
- Зарегистрироваться или войти (если у вас уже есть учетная запись)
- Нажмите”+”, чтобы создать новый проект
- Дайте проекту имя и выберите устройство, которое вы используете (в нашем случае это ESP8266) и нажмите ” создать”
- Вы получите маркер аутентификации который прислали на почту, он нам понадобится позже.
- На странице проекта Blynk нажмите”+”, чтобы добавить виджет уведомления.
- В настройках проекта (значок гайки вверху) “Отправить приложение подключенную команду” в ON.
- Закройте настройки и нажмите кнопку воспроизведения
Теперь пришло время загрузить код:
#include <ESP8266WiFi.h> #include <BlynkSimpleEsp8266.h> #define BLYNK_PRINT Serial char auth[] = "47c9d3d8bc924cc1b592cd64d63d6a96"; //Blynk token char ssid[] = "NETGEAR"; //Ваш SSID char pass[] = "14111990"; //ВАШ пароль от wi-fi //Название локации String location = "Room"; int rangeMin = 0; int rangeMax = 50; //HC-SR04 пины подключения датчика const int echoPin = D6; const int trigPin = D7; // Определение переменных long duration; int distance; int saveDis = 0; SimpleTimer timer; void sensorFire() { digitalWrite(trigPin, LOW); delayMicroseconds(2); digitalWrite(trigPin, HIGH); delayMicroseconds(10); digitalWrite(trigPin, LOW); duration = pulseIn(echoPin, HIGH); saveDis = distance; distance = duration * 0.034 / 2; } void sensorRead() { sensorFire(); if (rangeMin < distance && distance < rangeMax) { sensorFire(); if (rangeMin < distance && distance < rangeMax) { Blynk.notify(String(location) + ": Расстояние изменено "); } } } void setup() { Serial.begin(115200); delay(10); Blynk.begin(auth, ssid, pass); Blynk.notify(String(location) + " connected to: " + String(ssid)); pinMode(trigPin, OUTPUT); pinMode(echoPin, INPUT); timer.setInterval(1000L, sensorRead); } void loop() { Blynk.run(); timer.run(); }
Скачать скетч можно здесь: https://yadi.sk/d/u8TKy5RtgnLuwA
А вот скетч с датчиком движения HC-sr501
#include <ESP8266WiFi.h> #define BLYNK_PRINT Serial #include <BlynkSimpleEsp8266.h> char auth[] = "47c9d3d8bc924cc1b592cd64d63d6a96"; /* WiFi credentials */ char ssid[] = "NETGEAR"; char pass[] = "14111990"; /* HC-SR501 Motion Detector */ #define ledPin D7 #define pirPin D1 int pirValue; int motionDetected = 0; void setup() { Serial.begin(115200); delay(10); Blynk.begin(auth, ssid, pass); pinMode(ledPin, OUTPUT); pinMode(pirPin, INPUT); digitalWrite(ledPin, LOW); } void loop() { getPirValue(); Blynk.run(); } void getPirValue(void) { pirValue = digitalRead(pirPin); if (pirValue) { Serial.println("==> Motion detected"); Blynk.notify("T==> Motion detected"); } digitalWrite(ledPin, pirValue); }
Ну на этом все. Если хотите увидеть как настраивается Blynk то смотрите в видео: