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

 

Простейший датчик движения на 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, Интернет вещей




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

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

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