Borja HTTP Control 2
Continuando con HTTP_control
Esta vez añado Conexion a una red wifi existente y lectura del Pin A0.
Manejo:
1) Conectar el ESP al USB del PC y abrir terminal serie del arduino para ver la IP que obtiene al conctarse al WIFI
1b) O Con el movil y el programa libre Port Autority (por ejemplo) ver la IP que obtiene el ESP al conectarse al wifi.
2) Con el ordenador o el movil conectado al mismo wifi
poner en el navegador la IP indcada en el terminal.
3) Esta vez si pulsamos en leer A0
al refrescar la pagina veremos com el valor cambia al tocar el pin A0 con el dedo. (al ser un entrada analogica es bastante sensible)
Explicacion:
1) El programa se conecta a una red wifi llamada Mi_Red_WIFI (cambiar por el nombre de la red wifi a la que nos queremos conectar)
char* Red_WIFI = "Mi_Red_WIFI";
char* password_WIFI = "Mi_Contraseña_Wifi";
WiFi.mode(WIFI_AP_STA);
WiFi.softAP("ESP");
WiFi.begin(Red_WIFI, password_WIFI);
he cambiado WIFI_AP por WIFI_AP_STA (AP = punto de acceso) (STA de estacion) he añadido WiFi.begin(Red_WIFI, password_WIFI); Para que se conecte a la red WIFI
2) Pasados 5 segundos muestro la ip obtenida WiFi.localIP()
delay(5000); //tiempo para que conecte al WIFI
Serial.print(F("http://"));
Serial.println(WiFi.localIP().toString());
Aqui teneis el codigo completo.
#include <ESP8266WiFi.h>
#include <WiFiClient.h>
#include <ESP8266WebServer.h>
ESP8266WebServer servidor_web(80);
char* Red_WIFI = "nombre red wifi";
char* password_WIFI = "contraseña red wifi";
void setup(){
Serial.begin(115200);
Serial.println(F("\n\nIniciando..."));
WiFi.mode(WIFI_AP_STA);
WiFi.softAP("ESP");
WiFi.begin(Red_WIFI, password_WIFI);//intenta conectarse al wifi
servidor_web.on("/LedOn" , D4a0 );//en el WEMOS d1 mini
servidor_web.on("/LedOff" , D4a1 );//el led esta conectado a D4
servidor_web.on("/leerA0" , leerA0 );
servidor_web.on("/" , pag_principal);
servidor_web.begin();
Serial.println(F("http://192.168.4.1"));
delay(5000); //tiempo para que conecte al WIFI
Serial.print(F("http://")); Serial.println(WiFi.localIP().toString());
}
void loop(){
servidor_web.handleClient();
yield();delay(1);
}
void D4a0() {
pinMode(D4, OUTPUT);
digitalWrite(D4, 0);
servidor_web.send(200, "text/plain", "Ok D4=0");
}
void D4a1() {
pinMode(D4, OUTPUT);
digitalWrite(D4, 1);
servidor_web.send(200, "text/plain", "Ok D4=1");
}
void leerA0() {
servidor_web.send(200, "text/plain", "A0="+String(analogRead(A0)) );
}
PROGMEM const char Texto_html_pagina_principal[] =
R"=====(
<a href=/LedOn > Encener LED </a> |
<a href=/LedOff> Apagar LED </a> |
<a href=/leerA0> Leer A0 </a>
)=====";
void pag_principal() {
servidor_web.send(200, "text/html", Texto_html_pagina_principal );
}