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

HTTP_Control_2_1a

1b) O Con el movil y el programa libre Port Autority (por ejemplo) ver la IP que obtiene el ESP al conectarse al wifi.

HTTP_Control_2_1b

2) Con el ordenador o el movil conectado al mismo wifi

poner en el navegador la IP indcada en el terminal.

HTTP_Control_2_1

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)

HTTP_Control_2_2

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 );
}