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

 

Простейший датчик движения на ESP8266 для Интернета вещей

Автор: Mike(admin) от 23-07-2018, 12:55

На самом деле трудно переоценить, насколько потрясающе выглядят и работают платы на основе ESP8266, такие как Wemos D1 Mini. За буквально пару долларов вы можете получить в удобном форм-факторе прилично мощный микроконтроллер с поддержкой Wi-Fi, который имеет достаточное количество цифровых контактов для выполнения полезных задач Интернета вещей. Как и Arduino и Raspberry Pi, ESP8266 – это устройство, которое открывает все новые области разработки электроники, которые просто не были такими практичными или экономичными, как ранее.


Простейший датчик движения на ESP8266 для Интернета вещей

В качестве прекрасного примера можно привети невероятно простой интернет-детектор движения на основе ESP8266.


С помощью всего лишь платы Wemos D1 Mini, стандартного PIR-датчика и небольшого кода, вы можете создать практичный автономный модуль датчика движения, который можно разместить в любом месте, где вы хотите, чтобы он следил за движением в своей области и передавал данные через Интернет. Когда датчик определяет что-то движущееся, он вызывает событие IFTTT.


Схема подключения очень проста и выглядит она следующим образом:


Простейший датчик движения на ESP8266 для Интернета вещей

Так это может выглядеть в реальности на отладочной плате:


Простейший датчик движения на ESP8266 для Интернета вещей

Корпус можно распечатать на 3D принтере, взяв файлы с Thingiverse (https://www.thingiverse.com/thing:2489968).


Код прошивки ESP8266 для функционирования датчика движения в передачей данных через Интернет следующий:



#include <ESP8266WiFi.h>
const char* ssid     = "xxxx";      // SSID локальной сети
const char* password = "xxxxxx";   // Пароль сети
String result;
String smoke ;
String motion ;

void setup() 
{
  pinMode(D4, INPUT);
  pinMode(D7, INPUT);
  delay(2000);
  Serial.begin(115200);
  WiFi.hostname("ESP8266MotionSensor"); // Имя хоста ESP8266
}

void ifttt() // соединение по Wifi и отправка всех данных через IFTTT
{
  const char host[ ]        = "maker.ifttt.com";          // организатор каналов IFTTT
  const char trigger[ ]     = "motion";                   // имя тригера, который посылаем IFTTT
  const char APIKey[ ]      = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";      // ключ
  Serial.print("Connect to: ");
  Serial.println(host);
  // клиент WiFiClient для организации соединения HTTP
  WiFiClient client;
  if (!client.connect(host, 80)) {
    Serial.println("connection failed");
    return;
    }

// формируем URL
  String url = String("/trigger/") + trigger + String("/with/key/") + APIKey;
  Serial.print("Requesting URL: ");
  Serial.println(url);

// отправка запроса IFTTT
  client.print(String("GET ") + url + " HTTP/1.1\r\n" + "Host: " + host + "\r\n" + "Connection: close\r\n\r\n"); 
   delay(20);

// Считываем все строки ответа сервера и печтаем их в последовательный порт
  Serial.println("Respond:");
  while(client.available()){
    String line = client.readStringUntil('\r');
    Serial.print(line);
    }
  Serial.println();
  Serial.println("closing connection");
  Serial.println();
  Serial.println();
  client.stop();
  delay (20000);
 }
  
void loop()
{
 if(digitalRead(D4)== HIGH)
  {
   motion = digitalRead(D4); // вывод датчика
   smoke = digitalRead(D7);  // для опционального датчика дыма (можно подключить к 7-й цифровой линии)
   Serial.println("Alarm detected!");
   Serial.print("motion ");
   Serial.println(motion);
   Serial.print("smoke ");
   Serial.println(smoke);
   ifttt();
  } 
  else 
  {
    //Serial.println("no trigger"); // для отладки
  }
}



© digitrode.ru


Теги: ESP8266, Интернет вещей



   Благодарим Вас за интерес к информационному проекту digitrode.ru.
   Если Вы хотите, чтобы интересные и полезные материалы выходили чаще, и было меньше рекламы,
   Вы можее поддержать наш проект, пожертвовав любую сумму на его развитие.


Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.

Комментарии:

Оставить комментарий