Go Down

Topic: ESP8266 (Read 144 times) previous topic - next topic

OscarFdez

Buenas,
estoy haciendo un proyecto en el cual quiero transmitir los datos que almacena mi arduino a una aplicación android, para ello, mi intención era aprovechar el wifi de mi casa y con el módulo ESP8266 conectarme a el y empezar la conexión. He visto en internet que mucha gente lo que hace es utiizar los comandos AT por el puerto serie pero lo que yo quiero es que la comunicación sea inalámbrica, es decir, yo no voy a escribir nada por puerto serie, quiero que desde un primer momento sean el módulo ESP8266 y android los que se comuniquen, es posible?
Muchas gracias.

arkarash

Si están en la misma red sólo tienes que hacer conexiones TCP o UDP sabiendo cual es la IP de cada uno de ellos. Te dejo un ejemplo así rápido que crea un AP para que no tengas que pasar ni por el Router, directo de Android a ESP, sólo tienes que conectar el móvil a la red que crea el ESP.

Code: [Select]
#include <ESP8266WiFi.h>
WiFiServer server(8080);
void setup() {
WiFi.mode(WIFI_AP_STA);
    WiFi.softAP(AP_Nombre, WiFiClave); // Poner lo que quieras como SSID y Clave
    WiFi.disconnect();
    server.begin();
}
void loop() {
WiFiClient client = server.available();
  if (client){
     client.println("Hola");
  }
}

No lo he probado, lo acabo de teclear sobre la marcha, pero para que te hagas una idea

OscarFdez

Muchas gracias arkarash, esta sería una opción, que el ESP haga de servidor wifi, aunque mi intención es que el ESP se conecte a la red wifi de mi casa y así mi android no tendría que conectarse a otra red wifi tan sólo para consulta datos.
No se si eso sería posible, cómo lo ves?

arkarash

Code: [Select]
#include <ESP8266WiFi.h>

const char* ssid     = "your-ssid";
const char* password = "your-password";

void setup() {
  Serial.begin(115200);
  delay(10);

  Serial.println();
  Serial.println();
  Serial.print("Connecting to ");
  Serial.println(ssid);
 
  WiFi.mode(WIFI_STA);
  WiFi.begin(ssid, password);
 
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }

  Serial.println("");
  Serial.println("WiFi connected"); 
  Serial.println("IP address: ");
  Serial.println(WiFi.localIP());
}



Sustituyendo el ssid y el password por los de tu router el ESP se conectará a él y te dará su IP por el puerto Serie para que la sepas. A partir de ahí sólo tienes comunicarte desde el móvil a la IP asignada y viceversa.

Todo esto está en los ejemplos que vienen con la librería ESP8266.

surbyte

Has montado lo necesario para usar el módulo ESP8266 directamente desde el IDE.
Hago el comentario porque existen librerías con ejemplos que resuelven de manera elemental este nivel de consulta que has hecho.

Solo ve a este sitio Arduino ESP8266

Y sigues estos pasos

Install the current upstream Arduino IDE at the 1.8 level or later. The current version is at the Arduino website.
Start Arduino and open Preferences window.
Enter http://arduino.esp8266.com/stable/package_esp8266com_index.json into Additional Board Manager URLs field. You can add multiple URLs, separating them with commas.
Open Boards Manager from Tools > Board menu and install esp8266 platform (and don't forget to select your ESP8266 board from Tools > Board menu after installation).

Traducido sería no literalmente:
Si ya tienes el IDE 1.8 o mayor entonces arranca tu IDE
Ve a Preferencias y agrega

http://arduino.esp8266.com/stable/package_esp8266com_index.json

En el Gestor de Placas  verás que intenta actualizarse, déjalo hacerlo.
Luego verás que aparences un nuevo menú de placas ESP8266
Seleccioná la que corresponda a tu caso y listo.

Con ello tambien vienen librerías. Asi que ve a Ejemplos y veras ESP8266 WIFI, MESH, etc, etc
comienza a mirar las que digan WIFI
Corre los ejemplos, ajusta SSID y password y te conectarás a tu red WIFI.

De ahi en adelante un mundo!!!

OscarFdez

Muchas gracias a todos! Mañana probaré lo que me habéis dicho, tiene buena pinta.
Gracias otra vez :D  :D

Go Up