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

 
» » » Счетчик посетителей на основе ESP8266 и ИК-датчиков с публикацией данных в Интернет



Счетчик посетителей на основе ESP8266 и ИК-датчиков с публикацией данных в Интернет

Автор: Mike(admin) от 30-12-2022, 03:55

В рамках данного проекта мы реализуем простой счетчик посетителей, который сможет считать количество входящих в помещение и выходящих из него посетителей. Он основан на беспроводной микроконтроллерной плате Node MCU с ESP8266 и двух ИК-датчиках, которые активируются при обнаружении объекта в своем поле видимости.


Основная логика этого проекта заключается в том, что датчики размещаются в точках входа и выхода и срабатывают всякий раз, когда человек совершает движение в их области действия, затем ИК-датчик переходит в низкое логическое состояние, а счетчик увеличивается, и данные последовательно отправляются в облако сервиса ThingSpeak.


Схема подключения компонентов счетчика посетителей на основе ESP8266 следующая.


Счетчик посетителей на основе ESP8266 и ИК-датчиков с публикацией данных в Интернет

Далее приведен код программы ESP8266.



#define SECRET_SSID    "    "  //Учетные данные Wi-Fi для подключения к сети
#define SECRET_PASS    "      "
#define CHANNEL_ID                //ID вашего канала
#define WRITE_APIKEY   "       "   //Ключ Api

#include <WiFiClient.h>

WiFiClient wifiClient;

#include <ESP8266HTTPClient.h>
#include "ThingSpeak.h"

int irPin=2;
int irPin1=13;
int led = 4;
int count=0;
int count1=0,lft=0;
int val1=0,val2=0;
int mag = 0;


//Tweet credential declarations
String host = "api.thingspeak.com";
int httpPort = 80;  
String url = "/apps/thingtweet/1/statuses/update";

HTTPClient http; 


unsigned long myChannelNumber = CHANNEL_ID;
const char * myWriteAPIKey = WRITE_APIKEY;

#include <ESP8266WiFi.h>

char ssid[] = SECRET_SSID;   // SSID вашей сети (имя)
char pass[] = SECRET_PASS;   // пароль вашей сети
int keyIndex = 0;            // порядковый номер вашего сетевого ключа (необходим только для WEP)
WiFiClient  client;

void setup() {
  pinMode(irPin, INPUT);
  pinMode(irPin1, INPUT);
  pinMode(led,OUTPUT);
  Serial.begin(115200);
  delay(100);
  

  WiFi.mode(WIFI_STA);

  ThingSpeak.begin(client);
}



void loop() {
  
  // Подключиться или переподключиться к WiFi
  if (WiFi.status() != WL_CONNECTED) {
    Serial.print("Attempting to connect to SSID: ");
    Serial.println(SECRET_SSID);
    while (WiFi.status() != WL_CONNECTED) {
      WiFi.begin(ssid, pass); // Подключитесь к сети WPA/WPA2. Измените эту строку, если используете открытую сеть или сеть WEP
      Serial.print(".");
      delay(5000);
    }
    Serial.println("\nConnected.");
  }

  
  
  val1=digitalRead(irPin);
  // Счетчик входящих посетителей
  if(val1 == LOW)
  {
    count++;
    Serial.print("People Entering: ");
    Serial.println(count);
    lft=count-count1;
    Serial.print("People in room: ");
    Serial.println(lft);
   
    ThingSpeak.writeField(myChannelNumber, 1,  count, myWriteAPIKey);
  
    delay(500);
   // digitalWrite(led,LOW);

    
  }

  //Счетчик выходящих посетителей
  val2=digitalRead(irPin1);
  if(val2 == LOW)
  {
    count1++;
    Serial.print("People  Leaving: ");
    Serial.println(count1);
    lft=count-count1;
    Serial.print("People in room: ");
    Serial.println(lft);
    
    ThingSpeak.writeField(myChannelNumber, 2,  count1, myWriteAPIKey);
    

    delay(500);
   // digitalWrite(led,LOW);
  }

  //digitalWrite(led,LOW);
  
  delay(50);

  ThingSpeak.writeField(myChannelNumber, 3,  lft, myWriteAPIKey);

  delay(100);
  //Включаем светодиод и выводим данные в последовательный монитор, если вошло более 20 человек.
  if(lft > 20)
  {
    digitalWrite(led,HIGH);
  }
  else
  {
    digitalWrite(led,LOW);
  }
  delay(500);
}

Вот так это может выглядеть в ThingSpeak.


Счетчик посетителей на основе ESP8266 и ИК-датчиков с публикацией данных в Интернет



© digitrode.ru


Теги: ESP8266, ИК-датчик




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

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

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