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

 

Устройство измерения уровня света на основе ESP8266

Автор: Mike(admin) от 20-06-2019, 07:55

Вы когда-нибудь хотели узнать, включен ли ваш свет в вашей комнате, находясь на довольно большом расстоянии от своего дома? Что делать, если вы находитесь за городом и забыли, выключили ли вы свет в гостиной? Этот проект позволяет вам увидеть уровни освещения комнаты с простой веб-страницы.


Устройство измерения уровня света на основе ESP8266

В качестве основы проекта был взят популярный WiFi микроконтроллер ESP8266. Схема подключения самого устройства довольно простая.


Устройство измерения уровня света на основе ESP8266

Для начала припаяйте штыревые разъемы к плате ESP8266, если их нет. Затем подключите LDR-датчик к резистору 10 кОм и 3,3В. LDR изменяет сопротивление в зависимости от уровня света, который на него направлен. Затем добавьте перемычку для подключения резистора 10 кОм к выводу АЦП. На макетной плате это может иметь выглядеть следующим образом.


Устройство измерения уровня света на основе ESP8266

Код для этого устройства довольно прост. Не забудьте указать свои учетные данные WiFi в прилагаемом скетче. Для просмотра страницы с данными о свете в вашей комнате или где-либо еще просто посетите IP-адрес ESP8266. Убедитесь, что веб-сайты автоматически обновляются в настройках браузера. Если вы хотите просматривать страницу, когда вы не в той же сети, перенесите порт на IP-адрес ESP8266. Так, вместо IP, например, можно набрать MY_IP: THE_PORT_I_CHOSE_TO_FORWARD. MY_IP – это ваш внешний IP-адрес, а THE_PORT_I_CHOSE_TO_FORWARD – это порт, который вы установили в настройках своего маршрутизатора. Теперь вы можете проверить, включены ли ваши лампочки, не находясь в комнате. Код программы следующий.



#include <ESP8266WiFi.h>
#include <WiFiClient.h>
#include <ESP8266WebServer.h>
#include <ESP8266mDNS.h>

const char* ssid = "SSID";
const char* password = "PSSWD";

ESP8266WebServer server(80);

void handleRoot() {
  String msg = "<html><head><title>ESP8266 Light Levels</title></head>";
  msg += "<body>";
  msg += "<p>The light level is: ";
  msg += String(analogRead(A0))+"</p>";
  msg += "<meta http-equiv=\"refresh\" content=\"1\" />";
  msg += "</body></html>";
  server.send(200, "text/html", msg);
}

void handleNotFound(){
  String message = "File Not Found\n\n";
  message += "URI: ";
  message += server.uri();
  message += "\nMethod: ";
  message += (server.method() == HTTP_GET)?"GET":"POST";
  message += "\nArguments: ";
  message += server.args();
  message += "\n";
  for (uint8_t i=0; i<server.args(); i++){
    message += " " + server.argName(i) + ": " + server.arg(i) + "\n";
  }
  server.send(404, "text/plain", message);
}

void setup(void){
  Serial.begin(115200);
  WiFi.begin(ssid, password);
  Serial.println("");

  // Wait for connection
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
  Serial.println("");
  Serial.print("Connected to ");
  Serial.println(ssid);
  Serial.print("IP address: ");
  Serial.println(WiFi.localIP());

  if (MDNS.begin("esp8266")) {
    Serial.println("MDNS responder started");
  }

  server.on("/", handleRoot);

  server.onNotFound(handleNotFound);

  server.begin();
  Serial.println("HTTP server started");
}

void loop(void){
  server.handleClient();
}



© digitrode.ru


Теги: ESP8266, датчик света, датчик освещенности



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


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

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

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