Paso 2: Poner el código en
El código que ves hace lo siguiente:
-Se conecta a una red WiFi
-Obtiene una dirección IP
-Connect sobre TCP a un servidor (como cliente)
-Configurar un servidor TCP de los nuestros.
-Leer y mostrar la temperatura de su sensor.
-Leer y mostrar la hora actual.
-Empuje la temperatura en el servidor.
-Mostrar la dirección IP del servidor.
Poner el siguiente código en el IDE, compilar y subir a tu arduino.
! = ESP8266_MODE_STA) {/ / si no es en modo de estación. / / utilizar esp8266.setMode([mode]) para establecer en un especificado / / modo retVal = esp8266.setMode(ESP8266_MODE_STA); if (retVal < 0) {Serial.println (F) ("Error configuración modo."); errorLoop(retVal);}} Serial.println (F ("modo de estación")); < /p >< p > / / esp8266.status() indica WiFi de la ESP8266 conectar / / estado. Un valor devuelto de 1 indica que el dispositivo ya está / / conectado. 0 indica desconectado. (Valores negativos / / equivale a errores de comunicación.) retVal = esp8266.status(); Si (retVal < = 0) {Serial.print (F ("conectando al")); Serial.println(mySSID); esp8266.Connect ([ssid], [psk]) conecta la ESP8266 / / a una red. Éxito la conexión la función devuelve un valor > 0 / / FAIL, la función volverá cualquiera: / / -1: TIMEOUT - la biblioteca tiene un tiempo de espera de sistema 30s / / -3: falla - no podía conectar a la red. retVal = esp8266.connect (mySSID, myPSK); Si (retVal < 0) {Serial.println (F ("Error de conexión")); errorLoop(retVal);}} } < /p >< p > void displayConnectInfo() {char connectedSSID [24]; memset (connectedSSID, 0, 24); / / esp8266.getAP() puede utilizarse para comprobar qué AP el / ESP8266 está conectado a. Devuelve un código de error. El AP conectado se devuelve por referencia como parámetro. int retVal = esp8266.getAP(connectedSSID); Si (retVal > 0) {Serial.print (F ("conectado a:")); Serial.println(connectedSSID); } < /p >< p > / / esp8266.localIP devuelve una variable de la dirección IP con la / / ESP8266 de la actual dirección IP local. Dirección IP myIP = esp8266.localIP(); Serial.Print (F ("mi IP:")); Serial.println(myIP); } < /p >< p > void clientDemo() {/ / para utilizar el ESP8266 como un cliente TCP, utilice el / / ESP8266Client clase. En primer lugar, crear un objeto: ESP8266Client cliente; < /p >< p > / ESP8266Client Connect ([server], [puerto]) se utiliza para / / conectarse a un servidor (const char * o dirección IP) en / / a especificado puerto. Devoluciones: 1 éxito, 2 ya conectado, / / negativo FAIL (-1 = tiempo de espera, -3 = error). int retVal = client.connect (destServer, 80); Si (retVal < = 0) {Serial.println (F ("no pudo conectarse al servidor.")); vuelta;} < /p >< p > / / impresión y escritura pueden usarse para enviar datos a un conectado / / conexión de cliente. Client.Print(HttpRequest); < /p >< p > / / available() devuelve el número de caracteres / / actualmente en el búfer de recepción. mientras que (client.available()) Serial.write(client.read()); Read() obtiene el char de FIFO / connected() es un valor devuelto booleano - 1 si la / / conexión está activa, 0 si está cerrada. Si (client.connected()) client.stop(); STOP() se cierra una conexión TCP. } < /p >< p > void serverSetup() {/ / comenzar Inicializa un ESP8266Server objeto. Lo hará / / inicie un servidor en el puerto especificado en el objeto / / constructor (en área global) server.begin(); Serial.Print (F ("el servidor iniciado! Ir a ")); Serial.println(esp8266.localIP()); Serial.println(); } < /p >< p > void serverDemo() {/ / available() es una función de ESP8266Server que / / devolver un objeto ESP8266Client para la impresión y lectura. / available() tiene un parámetro, un valor de tiempo de espera. Este / / es el número de milisegundos la función espera, / / comprobación de una conexión. Cliente ESP8266Client = server.available(500); Si (cliente) {Serial.println (F ("cliente conectado!")); / / una petición http termina con una línea en blanco boolean currentLineIsBlank = true; mientras que (client.connected()) {si (client.available()) {char c = client.read(); / / si se ha llegado al final de la línea (recibió una nueva línea / / carácter) y la línea está en blanco, ha terminado la solicitud http, / / así que usted puede enviar una respuesta si (c == '\n' & & currentLineIsBlank) {Serial.println (F ("página de envío de HTML")); / / enviar un encabezado de respuesta http estándar : client.print(htmlHeader); HtmlBody de cadena; el valor de cada pin de entrada analógica para (int a = 0; < 1; a ++) {htmlBody += "A"; htmlBody += String(a); htmlBody += ":"; htmlBody += String(Thermister(analogRead(a))); < /p >< p > //htmlBody += Serial.println(temp); htmlBody += "< br > \n"; } htmlBody += "< /p >< p > \n"; Client.Print(htmlBody); rotura; } Si (c == '\n') {/ / vas a empezar un nuevo currentLineIsBlank de línea = true;} else if (c! = '\r') {/ / he conseguido un carácter en la actual línea currentLineIsBlank = false;}} } / / dar el tiempo de navegador web para recibir el delay(1) de datos; cerrar la conexión: client.stop(); Serial.println (F ("cliente desconectado")); }} < /p >< p > / / errorLoop imprime un código de error y los lazos para siempre. void errorLoop (int error) {Serial.print (F ("Error:")); Serial.println(error); Serial.println (F ("bucle para siempre.")); para (;);} < /p >< p > / / serialTrigger imprime un mensaje y espera a que algo / / venir del puerto serial. void serialTrigger(String message) {Serial.println(); Serial.println(Message); Serial.println(); mientras (!. Serial.Available()); mientras que (Serial.available()) Serial.read(); } < /p >