Índice:

Ponto de acesso (AP) NodeMCU ESP8266 para servidor Web com sensor de temperatura DT11 e impressão de temperatura e umidade no navegador: 5 etapas
Ponto de acesso (AP) NodeMCU ESP8266 para servidor Web com sensor de temperatura DT11 e impressão de temperatura e umidade no navegador: 5 etapas

Vídeo: Ponto de acesso (AP) NodeMCU ESP8266 para servidor Web com sensor de temperatura DT11 e impressão de temperatura e umidade no navegador: 5 etapas

Vídeo: Ponto de acesso (AP) NodeMCU ESP8266 para servidor Web com sensor de temperatura DT11 e impressão de temperatura e umidade no navegador: 5 etapas
Vídeo: Como Programar o ESP8266 para ser um WEB SERVER - Video #3 - ESP8266 Primeiros Passos 2024, Dezembro
Anonim
Ponto de acesso (AP) NodeMCU ESP8266 para servidor Web com sensor de temperatura DT11 e impressão de temperatura e umidade no navegador
Ponto de acesso (AP) NodeMCU ESP8266 para servidor Web com sensor de temperatura DT11 e impressão de temperatura e umidade no navegador

Olá pessoal, na maioria dos projetos usamos ESP8266 e na maioria dos projetos usamos ESP8266 como servidor web para que os dados possam ser acessados em qualquer dispositivo via wi-fi acessando o servidor web hospedado por ESP8266, mas o único problema é que precisamos de um roteador funcionando para isso e nosso dispositivo também precisa ser conectado ao roteador e precisamos colocar nossas credenciais de wi-fi no código, então se você alterar o wi-fi, então você precisa alterar as credenciais no código e precisa recarregá-lo. Portanto, basicamente, temos dois problemas aqui: 1- precisamos de uma conexão wi-fi para hospedar o servidor da web (roteador) 2- toda vez que se a conexão wi-fi precisar ser alterada, precisamos inserir as credenciais e recarregar o código. Para evitar todo esse problema, o que podemos fazer é, em vez de dar um acesso wi-fi podemos fazer com que o ESP8266 crie uma conexão wi-fi própria, então se nos conectarmos a essa conexão wi-fi podemos acessar o servidor web de ESP8266. Então, basicamente, estaremos hospedando um servidor web com ESP8266 com ponto de acesso. estará criando um servidor web usando Access Point com ESP8266 e vamos conectar um sensor DHT11 e imprimir temperatura e umidade na página do servidor web.

Etapa 1: Coisas que você precisa

Coisas que você precisa
Coisas que você precisa
Coisas que você precisa
Coisas que você precisa

1x ESP 8266 Nodemcu: 1x DHT11: 1x breadboard:.: Poucos jumpers:

Etapa 2: Obtenha as bibliotecas DHT11

Obtenha as bibliotecas DHT11
Obtenha as bibliotecas DHT11
Obtenha as bibliotecas DHT11
Obtenha as bibliotecas DHT11

Abra seu Arduino IDE e vá para Sketch> Incluir Biblioteca> Gerenciar Bibliotecas. O Library Manager deve abrir. Pesquise “DHT” na caixa de pesquisa e instale a biblioteca DHT de Adafruit. Depois de instalar a biblioteca DHT de Adafruit, digite “Adafruit Unified Sensor” na caixa de pesquisa. Role todo o caminho para baixo para encontrar a biblioteca e instale-a. Depois de instalar as bibliotecas, reinicie seu Arduino IDE.

Etapa 3: conexões

Conexões
Conexões

O circuito é muito fácil de conectar tudo conforme mostrado na esquemática

Etapa 4: Código de Ponto de Acesso

Código de Ponto de Acesso
Código de Ponto de Acesso

Dos meus instructables anteriores, irei modificar o código do servidor web deste instructables:

E transforme-o em código do servidor da web do ponto de acesso. Copie o código fornecido abaixo:

#include "Arduino.h" #include "ESP8266WiFi.h"

#include "Hash.h"

#include "ESPAsyncTCP.h"

#include "ESPAsyncWebServer.h"

#include "Adafruit_Sensor.h"

#include "DHT.h"

const char * ssid = "ESP8266"; const char * password = "senha"; # define DHTPIN 5 // Pino digital conectado ao sensor DHT // Descomente o tipo de sensor em uso: // # define DHTTYPE DHT11 // DHT 11 # define DHTTYPE DHT22 // DHT 22 (AM2302) // # define DHTTYPE DHT21 // DHT 21 (AM2301) DHT dht (DHTPIN, DHTTYPE); // temperatura e umidade atuais, atualizadas no loop () float t = 0,0; float h = 0.0; // Cria o objeto AsyncWebServer na porta 80AsyncWebServer server (80); // Geralmente, você deve usar "unsigned long" para variáveis que mantêm o tempo // O valor rapidamente se tornará muito grande para um int para armazenarunsigned long previousMillis = 0; // armazenará a última vez que o DHT foi atualizado // Atualiza as leituras do DHT a cada 10 segundosconst long interval = 10000; const char index_html PROGMEM = R "rawliteral (ESP8266 Servidor DHT

Temperatura% TEMPERATURE% ° C

Umidade% HUMIDITY%%) rawliteral "; // Substitui o marcador de posição pelo processador DHT valuesString (const String & var) {//Serial.println(var); if (var ==" TEMPERATURE ") {return String (t);} else if (var == "HUMIDADE") {return String (h);} return String ();} void setup () {// Porta serial para fins de depuração Serial.begin (115200); dht.begin (); Serial.print ("Configurando AP (Ponto de acesso)… "); // Remova o parâmetro de senha, se desejar que o AP (Ponto de acesso) seja aberto WiFi.softAP (ssid, senha); IPAddress IP = WiFi.softAPIP (); Serial.print (" Endereço IP do AP: "); Serial.println (IP); // Imprimir ESP8266 Endereço IP local Serial.println (WiFi.localIP ()); // Rotear para servidor raiz / página da web.on (" / ", HTTP_GET, (AsyncWebServerRequest * request) {request-> send_P (200, "text / html", index_html, processor);}); server.on ("/ temperature", HTTP_GET, (AsyncWebServerRequest * request) {request- > send_P (200, "text / plain", String (t).c_str ());}); server.on ("/ umidade", HTTP_GET, (AsyncWebServerRequest * request) {request-> send_P (200, "texto / simples", String (h).c_str ()); }); // Inicia o servidor server.begin ();} void loop () {unsigned long currentMillis = millis (); if (currentMillis - previousMillis> = interval) {// salvar a última vez que você atualizou os valores DHT previousMillis = currentMillis; // Lê a temperatura como Celsius (o padrão) float newT = dht.readTemperature (); // Lê a temperatura como Fahrenheit (isFahrenheit = true) // float newT = dht.readTemperature (true); // se a leitura da temperatura falhou, não altere o valor de t if (isnan (newT)) {Serial.println ("Falhou para ler do sensor DHT! "); } else {t = newT; Serial.println (t); } // Ler umidade float newH = dht.readHumidity (); // se a leitura de umidade falhou, não altere o valor de h if (isnan (newH)) {Serial.println ("Falha ao ler do sensor DHT!"); } else {h = newH; Serial.println (h); }}} Antes de enviar o código, certifique-se de colocar as seguintes coisas: const char * ssid = "ESP8266"; // qualquer SSID de wi-fi que você desejaconst char * password = "password"; // passa para conectar ao ssidSet acima O ESP8266 como um ponto de acesso: Para definir esp8266 como um ponto de acesso, usaremos o comando softAP conforme mostrado abaixo; para criar um ponto de acesso. WiFi.softAP (ssid, senha); Existem também outros parâmetros opcionais que você pode passar para o método softAP (). Aqui estão todos os parâmetros: Se você abrir o monitor serial, poderá ver o IP do ponto de acesso. O que é feito seguindo parte do código. IPAddress IP = WiFi.softAPIP (); Serial.print ("endereço IP do AP:"); Serial.println (IP); Por padrão, o endereço IP é: 192.168.4.1

Etapa 5: Etapa final: teste

Etapa final: teste
Etapa final: teste

Após fazer o upload do código, abra seu wi-fi móvel / pc e conecte-se ao wi-fi esp8266 (qualquer ssid e senha que você inseriu no código, use-o). Depois de conectar, basta abrir o IP em seu navegador que obtivemos do monitor serial (https://192.168.4.1.) e você poderá ver a temperatura e umidade em seu navegador como minhas. E não usamos nenhuma rede wi-fi para fazer isso, é assim que funciona o ponto de acesso do esp8266.

Recomendado: