• Уважаемые посетители сайта esp8266.ru!
    Мы отказались от размещения рекламы на страницах форума для большего комфорта пользователей.
    Вы можете оказать посильную поддержку администрации форума. Данные средства пойдут на оплату услуг облачных провайдеров для сайта esp8266.ru
  • Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Делюсь опытом Датчик dht11 + управление нагрузкой

Alex_dv

New member
Код:
#include <ESP8266WiFi.h>
#include <DHT.h>


#define DHTPIN            2         // Pin which is connected to the DHT sensor.

// Uncomment the type of sensor in use:
#define DHTTYPE           DHT11     // DHT 11
//#define DHTTYPE           DHT22     // DHT 22 (AM2302)
//#define DHTTYPE           DHT21     // DHT 21 (AM2301)
DHT dht(DHTPIN, DHTTYPE);
const char* ssid = "YourSSID"; //
const char* password = "xxxxxxxxxx"; //paste your password here
int ledPin = 1; // GPIO1

WiFiServer server(80);
void setup() {
  Serial.begin(115200);
  delay(5000);
  dht.begin();
  pinMode(ledPin, OUTPUT);
  digitalWrite(ledPin, LOW);
  // Connect to WiFi network
  Serial.println();
  Serial.println();
  Serial.print("Connecting to ");
  Serial.println(ssid);
  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
  Serial.println("");
  Serial.println("WiFi connected");
  // Start the server
  server.begin();
  Serial.println("Server started");
  // Print the IP address
  Serial.print("Use this URL to connect: ");
  Serial.print("http://");
  Serial.print(WiFi.localIP());
  Serial.println("/");
}
void loop() {
  // Check if a client has connected
  int timeout;
  WiFiClient client = server.available();
  if (!client) {
    return;
  }
  // Wait until the client sends some data
  Serial.println("new client");
  while(!client.available()){
    delay(1);
    timeout++;
    if(timeout>10000) {break;}
  }
  timeout=0;
  // Read the first line of the request
  String request = client.readStringUntil('\r');
 
  Serial.println(request);
 
  client.flush();
 
  // Match the request
  int value = LOW;
  if (request.indexOf("/LED=ON") != -1)  {
    digitalWrite(ledPin, LOW);
    value = LOW;
  }
  if (request.indexOf("/LED=OFF") != -1)  {
    digitalWrite(ledPin, HIGH);
    value = HIGH;
  }
// Set ledPin according to the request
//  digitalWrite(ledPin, value);
  // Return the response
  client.println("HTTP/1.1 200 OK");
  client.println("Content-Type: text/html");
  client.println(""); //  do not forget this one
  client.println("<!DOCTYPE HTML>");
  client.println("<html>");

  client.print("<strong>Hi! I'm ESP8266</strong>");
  client.print("<br><br>");
  client.print("My blue LED is now: ");
  if(value == LOW) {
    client.println("On");
  } else {
    client.println("Off");
  }
  client.println("<br><br>");
  client.println("Temperature: ");
  client.println(dht.readTemperature());
  client.println("C");

  client.println("<br><br>");
  client.println("Humidity: ");
  client.println(dht.readHumidity());
  client.println("%");
 
  client.println("<br><br>");
  client.println("<a href=\"/LED=ON\"\"><button>Turn On </button></a>");
  client.println("<a href=\"/LED=OFF\"\"><button>Turn Off </button></a><br />");
  client.println("</html>");
  delay(1);
  Serial.println("Client disonnected");
  Serial.println("");
}
Всем привет, сделал первый прототип на esp8266, может кому понадобиться: само устройство состоит из двух блоков, esp 01 с резисторным делителем напряжения на входе RX и источника питания на базе lm1117 3.3 v . Питается схема от эппловского блока питания 5в 1а (но скорее всего он даёт не более 500 ма).
Программа считывает данные с датчика с использованием adafruit’овской библиотеки dht и передаёт их на веб страницу. Фото устройства и страницы прилагаю.
P.S. esp НЕ хватает силы тока встроенного источника питания от usb uart конвертеров! Используйте внешний источник питания с током от 500 мА и соединяете землю источника и конвертера при прошивке чипа.
 

Вложения

Последнее редактирование:

Alex_dv

New member
и еще, конвертер на базе ft232 стабильно не работает через переходник usb type c -> usb 3.0, а через порт usb 2.0 работает нормально
 
Сверху Снизу