Hoy vamos a aprender cómo utilizar un módulo wifi ESP8266 conectado a un Arduino. Se trata de encender una bombilla y tres led a través de una interfaz web.
Los componentes que utilizaremos serán los siguientes:
- Protoboard
- Módulo Wifi ESP8266
- Relé
- Arduino
- Bombilla
- Cableado
Protoboard |
Módulo wifi ESP8266 |
Relé |
Arduino |
Bombilla |
Cableado
|
El conexionado del módulo wifi consta de 8 pines, en la siguiente imagen vemos qué función tiene cada uno de éstos:
- Pin de Recepción. URXD
- Pin de voltaje 3.3v. VCC
- Pin GPIO0. No conectar
- Pin RST. No conectar
- Pin GPIO2. No conectar
- Pin voltaje 3.3v. CH_PD
- Pin de tierra. GND
- Pin de transmisión. UTXD
El siguiente paso que debemos dar, es hacer el conexionado total de los componentes. En la siguiente imagen podemos verlo.
Una vez realizada la conexión de todos los componentes tendremos que subir el código de programación al Arduino.
El código de programación que hemos utilizado nosotros es el siguiente:
#include <SoftwareSerial.h> #define DEBUG true SoftwareSerial esp8266(2,3); // make RX Arduino line is pin 2, make TX Arduino line is pin 3. // This means that you need to connect the TX line from the esp to the Arduino's pin 2 // and the RX line from the esp to the Arduino's pin 3 void setup() { SSSerial.begin(19200); esp8266.begin(19200); // your esp's baud rate might be different pinMode(10,OUTPUT); digitalWrite(10,LOW); pinMode(11,OUTPUT); digitalWrite(11,LOW); pinMode(12,OUTPUT); digitalWrite(12,LOW); pinMode(13,OUTPUT); digitalWrite(13,LOW); sendData("AT+RSTrn",2000,DEBUG); // reset module sendData("AT+CWMODE=2rn",1000,DEBUG); // configure as access point sendData("AT+CIFSRrn",1000,DEBUG); // get ip address sendData("AT+CIPMUX=1rn",1000,DEBUG); // configure for multiple connections sendData("AT+CIPSERVER=1,80rn",1000,DEBUG); // turn on server on port 80 } void loop() { if(esp8266.available()) // check if the esp is sending a message { if(esp8266.find("+IPD,")) { delay(1000); // wait for the serial buffer to fill up (read all the serial data) // get the connection id so that we can then disconnect int connectionId = esp8266.read()-48; // subtract 48 because the read() function returns // the ASCII decimal value and 0 (the first decimal number) starts at 48 esp8266.find("pin="); // advance cursor to "pin=" int pinNumber = (esp8266.read()-48)*10; // get first number i.e. if the pin 13 then the 1st number is 1, then multiply to get 10 pinNumber += (esp8266.read()-48); // get second number, i.e. if the pin number is 13 then the 2nd number is 3, then add to the first number digitalWrite(pinNumber, !digitalRead(pinNumber)); // toggle pin // make close command String closeCommand = "AT+CIPCLOSE="; closeCommand+=connectionId; // append connection id closeCommand+="rn"; sendData(closeCommand,1000,DEBUG); // close connection } } } /* * Name: sendData * Description: Function used to send data to ESP8266. * Params: command - the data/command to send; timeout - the time to wait for a response; debug - print to Serial window?(true = yes, false = no) * Returns: The response from the esp8266 (if there is a reponse) */ String sendData(String command, const int timeout, boolean debug) { String response = ""; esp8266.print(command); // send the read character to the esp8266 long int time = millis(); while( (time+timeout) > millis()) { while(esp8266.available()) { // The esp has data so display its output to the serial window char c = esp8266.read(); // read the next character. response+=c; } } if(debug) { Serial.print(response); } return response; }
Una vez cargado correctamente el programa abrimos el monitor serie y nos debería salir la siguiente pantalla.
Finalmente creamos nuestra propia interfaz web. Aquí dejamos el código html utilizado.
<html> <head> <title>ESP8266 LED Control</title> </head> <body> <button id="10" class="led">BOMBILLA</button> <button id="11" class="led">LED AZUL</button> <button id="12" class="led">LED VERDE</button> <button id="13" class="led">LED ROJO</button> <script src="jquery.min.js"> </script> <script type="text/javascript"> $(document).ready(function(){ $(".led").click(function(){ var p = $(this).attr('id'); $.get("https://192.168.4.1:80/", {pin:p}); }); }); </script> </body> </html>
Hay que tener en cuenta que la ip puede variar según la puerta de enlace de cada usuario.
Este sería el resultado final de la interfaz web:
Con la interfaz web ya montada y el enlace WiFi funcionando, ya podemos interactuar con los LED’s y la bombilla remotamente.
Hola Secmotic, no me responde el modulo :/ con su codigo
Hola,
¿Cuál es el error exactamente? Necesitaría más información.
-¿Compila el código?
-¿Lo has conseguido subir a la placa?
-¿Aparecen mensajes por el monitor serie?
-De ser así ¿cuáles?
Hola, en el monitor serie no me aparece nada…
Gracias por tu ayuda
Hola, disculpa la tardanza en contestar.
Si en el monitor serie no aparecen datos, pueden ser debido a diferentes factores:
– Las conexiones de Arduino a la tarjeta WiFi no han sido conectadas correctamente.
– La velocidad de transmisión no está a los baudios correctos (115200 baudios)
– El código no se ha subido al Arduino
Si todo esto está correcto, dímelo y lo seguimos estudiando.
Un saludo
Hola: disculpa, ya subi a mi arduino el programa y me corio perfectamente, ta obtengo en el monitor serial los datos de los comando AT, ahora quiero saber si el codigo para HTML tengo que programarlo en el mismo codigo en arduino o en otra pagina?
saludos
Hola Saul,
El código HTML es un código interpretado por un navegador web y servido por un servidor web. Para que todo funcione correctamente, debes instalar un servidor web (por ejemplo Apache), copiar ahí el fichero HTML y acceder a él desde un navegador. Una forma fácil de instalar Apache es usar una XAMPP que venga bien a tu sistema operativo, y que ya instala servidor web Apache, base de datos MySQL, PHP y Pearl, así como todas sus dependencias.
Para cualquier duda no dudes en volver a consultarnos.
Un saludo
hola de nuevo;
gracias por tu ayuda y por el tiempo que te tomas por ayudarnos, te comento que ya logre montar el codigo html, cargo el programa y no me responde, que hice mal? o las posibles causas que causaron que no me funcionara?
saludos
Hola Saul,
¿Podrías mandarme el código HTML y le echo un vistazo?
Puedes pegarlo aquí o si lo prefieres mándamelo a jose[at ]secmotic.com
Un saludo
Disculpa el modulo wifi tiene que ser forzosamente ese, lo quiero provar con uno esp8266-05 con antena, podrias ayudarme.
No tiene por qué ser ese Jorge, aunque nosotros en el ejemplo hemos utilizado un modelo ligeramente distinto, las funciones de librerías deben estar también disponibles para ese modelo.
did not work. im using arduino uno. follow all the steps. but cannot make my esp working. how it can work if we not connect to particular network like u did in this sketch?
I would need more information, such as if the serial monitor is showing any information or not.
If you don’t connect to your private network, I am afraid this scenario is quite different!
Kind regards
Es un excelente aporte,pero he tenido problemas una vez con el código cargado,no me muestra el mensaje que esta en la foto, sino que salen letras muy extrañas,como se soluciona esto,podrias ser especifico en ese detalle,para ejecutar el monitor la pc debe estar estrictamente conectada al modulo?
Gracias por tu comentario Edwin.
Probablemente sea un problema en cuanto a los baudios seleccionados en el monitor. Asegúrate que lo tienes a 19200.
Un saludo
Hola que tal, estoy utilizando el modulo ESP8266 modelo ESP-05, tienes la configuración de conexion?, otra pregunta, en que momento se conecta al SSID del acces?
Hola,
No me funciona, cargo el programa al arduino y en el serial, el modulo esp8266 no me entrega nada, lo provè con otro programa para los comandos AT y funciona perfectamente. Puedes ayudarme, està todo conectado como se indica y no pasa nada.
Hola,
Me funciona todo, pero no puedo hacer que desde la web funcionen los botones, en algún comentario anterior de carlos, le indicas que debe abrir la pagina desde un servidor web como apache, puedes ayudarme para probar esa ultima parte por favor.
Saludos
Hola Reinaldo.
El código HTML debe estar interpretado por un servidor apache. Para montar un apache hay múltiples guías, pero no entran dentro de este post.
Si buscas un poco de información sobre esto, verás que tienes que montar una pila WAMPP/LAMPP/XAMPP e instalar apache.
Suerte!
Estimado,
todo me funciona pero no puedo poner la web dentro de apache, puedes ayudarme con eso, o donde puedo encontrar la informaciòn paso a paso.
saludos
Reinaldo, si usaste el APPSERV, haz lo siguiente:
1) En la carpeta C:appservwww crea la carpeta leds.
2) Dentro de esta carpeta guarda el archivo html con el nombre index.html
3) Ya desde tu navegador escribe: https://localhost/leds/ (Intro)
4) Debe aparecer la página. Saludos
Estimado Jesus,
Tengo un servidor real, ahi carge la pagina con el nombre luces, la habro desde el hosting pero no funciona al pinchar los botones con el arduino, todo lo que aparece en el monitor serial, lo tengo igual, pero no funciona la pagina, que puedo hacer? por favor, me ayudan a que pueda lograrlo?
Hola me podria decir porque cuando lo copilo en el arduino me sale un error de SSSerial no a sido declaro. Gracias por su tiempo
Si, ha sido un error al copiar el código.
Simplemente sustituya «SSSerial» por «Serial»
Saludos
Amigos,
Instale un servidor real, un hosting para realizar pruebas y dentro del dominio publico, agregue la pagina que indican con el nombre luces, pero al abrirla desde el servidor, me aparece pero no funciona ningun boton, no envia la orden para que se enciendan los led o la ampolleta, pueden ayudarme por favor!!!!
stimado Jesus,
Tengo un servidor real, ahi carge la pagina con el nombre luces, la habro desde el hosting pero no funciona al pinchar los botones con el arduino, todo lo que aparece en el monitor serial, lo tengo igual, pero no funciona la pagina, que puedo hacer? por favor, me ayudan a que pueda lograrlo?
ya pudiste solucionar eso a mi me pasa igual
buen dia tengo una duda en q momento se conecta a la ssd del acces point
Hola Eduardo,
En este post no se hace conexión a ningún access point, el ESP de Arduino crea su propio access point al que te conectas desde la aplicación web.
Un saludo
Buenas noches,
Hola, he tratdo de hacer el ejercicio tal cual, tengo los mismos componentes, cuando compilo funciona todo bien, parparea el arduino y el modulo wifi de color azul, cuando miro el monitor serie me aparece lo siguiente: �)�)ҩ�)��)RJ��))���
La implementaciòn solo la estoy haciendo para el modulo wifi me podrias colaborar con dicho error?
Seguramente se deba a la configuración de los baudios. ¿Has comprobado que en el monitor serie hayas puesto el mismo número que en el código?
hola a mi no me aparece la ip solo el scan de otras redes
Buenas Sebastian,
Ese error se debe a que no tienes bien configurados los baudios en el monitor serie. Por favor, ponlo a 19200, que son los que están configurados en el código arduino.
Un saludo
tengo una duda, debo cargarle el firmware al modulo esp8266, o asi como viene de fabrica debe trabajar?
Hola, me gustó este proyecto. Una pregunta se puede hacer el mismo proyecto sin la placa arduino?
Buenas tardes oye me puedes apoyar porfas aver como puedo aserle en mi casa me ponen ya sea bolitas de cera plastiquitos laminitas en los botones de los pantalones en mi ropa causan voces en qué parte del aparato del wifi u donde puedo identificar donde ay un dispositivo u no se k sea para poderlo quitar la verdad si me tiene un poco traumado y audio y video también mi esposa Abla así al aire
a cuantos baudios debe estar configurado???
Hola, hace unos meses compre una placa rele, un arduno uno y este modulo Wifi, mi idea es hacer funcionar todo como aaparece aqui (muchas gracias por cierto por el gran aporte), pero en lugar de tres leds quisiera poner otros tres reles (compre la placa de 4 reles para hacer funcionar 4 focos), como deberia de hacer mis conexiones (y mi codigo)?.
De nuevo muchas gracias.
Besos.
Estimado
Algo paso con las imágenes.
Hola Rene!
Acabamos de cambiar la web y estamos arreglando las rutas de ficheros, las imágenes estarán disponibles en breve.
Un saludo!
Gracias ahora si
Como estan?
Despues de varios intentos y alcualizar el firm del ESP pude llagar a montar una conexion pero no he podido hacer que responda a la web
osea si entro a la ip el serial me responde que esta entrando, pero no he podido hacer que active los pines de los leds
es un hibrido de varias cosas que encontre por ahi xq en realidad ninguna me llegaba a funcionar
—
#include
#define DEBUG true
SoftwareSerial esp8266(3,2); // make RX Arduino line is pin 2, make TX Arduino line is pin 3.
// This means that you need to connect the TX line from the esp to the Arduino’s pin 2
// and the RX line from the esp to the Arduino’s pin 3
char serialbuffer[400];//serial buffer for request url
const String ssid = «——-«;
const String pw = «———«;
void setup()
{
Serial.begin(19200);
esp8266.begin(19200); // your esp’s baud rate might be different
pinMode(11,OUTPUT);
digitalWrite(11,LOW);
pinMode(12,OUTPUT);
digitalWrite(12,LOW);
pinMode(13,OUTPUT);
digitalWrite(13,LOW);
sendData(«AT+RST\r\n»,2000,DEBUG); // reset module
sendData(«AT+CWMODE=3\r\n»,1000,DEBUG); // configure as access point
sendData(«AT+CWJAP=\»» + ssid + «\»,\»»+ pw +»\»\r\n»,12000,DEBUG);
sendData(«AT+CIFSR\r\n»,1000,DEBUG); // get ip address
sendData(«AT+CIPMUX=1\r\n»,1000,DEBUG); // configure for multiple connections
sendData(«AT+CIPSERVER=1,80\r\n»,1000,DEBUG); // turn on server on port 80
}
void loop()
{
if(esp8266.available()) // check if the esp is sending a message
{
if(esp8266.find(«+IPD,»))
{
delay(1000); // wait for the serial buffer to fill up (read all the serial data)
// get the connection id so that we can then disconnect
int connectionId = esp8266.read()-48; // subtract 48 because the read() function returns
// the ASCII decimal value and 0 (the first decimal number) starts at 48
esp8266.find(«pin=»); // advance cursor to «pin=»
int pinNumber = (esp8266.read()-48)*10; // get first number i.e. if the pin 13 then the 1st number is 1, then multiply to get 10
pinNumber += (esp8266.read()-48); // get second number, i.e. if the pin number is 13 then the 2nd number is 3, then add to the first number
digitalWrite(pinNumber, !digitalRead(pinNumber)); // toggle pin
// make close command
String closeCommand = «AT+CIPCLOSE=»;
closeCommand+=connectionId; // append connection id
closeCommand+=»\r\n»;
sendData(closeCommand,1000,DEBUG); // close connection
}
}
}
/*
* Name: sendData
* Description: Function used to send data to ESP8266.
* Params: command – the data/command to send; timeout – the time to wait for a response; debug – print to Serial window?(true = yes, false = no)
* Returns: The response from the esp8266 (if there is a reponse)
*/
String sendData(String command, const int timeout, boolean debug)
{
String response = «»;
esp8266.print(command); // send the read character to the esp8266
long int time = millis();
while( (time+timeout) > millis())
{
while(esp8266.available())
{
// The esp has data so display its output to the serial window
char c = esp8266.read(); // read the next character.
response+=c;
}
}
if(debug)
{
Serial.print(response);
}
return response;
}
y esta es el html
ESP8266 LED Control
<!– in the tags below the ID attribute is the value sent to the arduino –>
Toggle Pin 11
Toggle Pin 12
Toggle Pin 13
$(document).ready(function(){
$(«.led»).click(function(){
var p = $(this).attr(‘id’); // get id value (i.e. pin13, pin12, or pin11)
// send HTTP GET request to the IP address with the parameter «pin» and value «p», then execute the function
$.get(«https://192.168.1.208/», {pin:p}); // execute get request
});
});
Soy bastante nuevo en esto y entre que recien empiezo con arduino y de html ni j…….
Gracias y saludos desde Uruguay
Hola, disculpa pero el navegador no manda absolutamente nada a la wifi y por lo tanto no pasa nada por el serial salvo que hago uso de los comandos at y si me responde la wifi… lastima que no pongas un video de este proyecto porque seria mas ilustrativo como lo hiciste.
Saludos
HOLA a todos tengo problemas con el modulo wifi, mi modulo es ESP8266-12 CREO que el motivo por el que no me sale nada en el monitor de serie . podriad ayudarme GRACIAS
Hola a todos, muy bueno el site y gracias x mostrarnos el alcance y las posibilidades de este módulo, quería agregar que no es necesario un servidor web apache, se puede crear el html en el escritorio y al abrirlo lo ejecuta el navegador, apache sería útil en el caso de querer hacer uso de PHP. Un saludo!
Muchas gracias pitux. La verdad es que si abres un fichero html con un navegador se puede obtener la misma información como bien dices, aunque no lo estás sirviendo desde ninguna parte. El usar un servidor te permite abrir el fichero desde un ordenador remoto, no siendo necesario abrirlo desde el mismo en el que se encuentre.
Saludos
buenas disculpe tengo un problema cuando realizo todos los pasos en el monitor serie me aparese esto AR+RSTrnAT+CWMODE=2rnAT+CIFSRroAT+CIPLUX=1rnAT+CIPSERVES=1,80rn
a que se debe o estoy conctando algo mal estoy ocupando el arduino uno
hola buenas tardes
Soy nuevo en este proyecto. he realizado todos los pases que figuran en el proyecto y no me funciona.
Si es cierto que lo estoy haciendo con un arduino nano, Cambiando los pin de rx y tx a los 11 y 10. puede ser que tenga algun problema por ser arduino nano.?? un saludo a todos.
el problema es que no carga nada en la pantalla del serial
ok, lo siento, lo he cambiado según los pin del ejemplo y funcionando. Si es cierto que tengo el mismo problema que muchos, los códigos salen con letras raras. por los baudios no es, lo he cambiados uno a uno y nada. Pero sabiendo que comunica, considero que funciona y pasaré al 2º problema con el servidor apache
Buen dia muy buen post pero todavia no e podido hacer jalar nada, primero carge bien el codigo en arduino y en el monitor serial no me aparece todo lo q muestran (puerta de enlace 192.168.4.1 ni los OK) en la imagen y 2 ya puse la pagina en un servidor y ni asi me hace algo
Buenas Lalo,
¿Puedes comprobar que los baudios están bien configurados? Es muy probable que sea ese el problema 🙂
Disculpa, me da error al cargar el programa al Arduino, estoy usando Arduino Uno y me dice «SSSerial was not declared in this scope» y otro que dice: «esp8266 begin(19200); // you esp´s baud might be different
Me salen los siguientes warnings:
/Users/josepablorodriguez/Documents/Arduino/sketch_apr29a/sketch_apr29a.ino: In function ‘void loop()’:
/Users/josepablorodriguez/Documents/Arduino/sketch_apr29a/sketch_apr29a.ino:38:28: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]
if(esp8266.find(«+IPD,»))
^
/Users/josepablorodriguez/Documents/Arduino/sketch_apr29a/sketch_apr29a.ino:45:25: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]
esto podria afectar en algo?
y en el monitor de serie me aparecen un simbilos que no logro decifrar
Buenas a todos,
llevo varios días peleándome con este ejercicio y casi lo tengo. Creo que he advertido varios errores en el script de arriba. Al menos sólo para poder cargarlo he tenido que hacer algunas correcciones. Aparte del SSS -> S, los «rn» los he convertido en «\n».
Aún así, cuando leo el terminal, es como si transmitiera en minúsculas e hiciera distinción. No sé, no tengo mucha idea de esto, pero por ejemplo: la orden «AT+RST» del script vuestro me tira ERROR. En cambio, si cargo un programa de simple comunicación, me da error también sólo cuando lo escribo en minúsculas.
Me podéis echar un cable?
Hola, Mira que intento compilar y me dice que no ha sido delcarado sendData()
dice: ‘sendData’ was not declared in this scope
Ya lo resolví, disculpa, no sé cómo borran los post.
como lo hiciste?
sendData(«AT+RSTrn», 2000, DEBUG); // reset module
sendData(«AT+CWMODE=2rn», 1000, DEBUG); // configure as access point
sendData(«AT+CIFSRrn», 1000, DEBUG); // get ip address
sendData(«AT+CIPMUX=1rn», 1000, DEBUG); // configure for multiple connections
sendData(«AT+CIPSERVER=1,80rn», 1000, DEBUG); // turn on server on port 80
Estos COmandos no modifican nada en el wifi solo los muestra todos pegados como si fueran una sola línea, pareciera que el salto de línea y «enter» no se sirviera o sea no se envían uno por uno.
Qué podría hacer?
Ya lo solucioné, pero ahora, me salen error todos los comandos no salen OK
Mira tengo un problema todos los comandos retornan error.
AT+RST
ERSOR
AT+CWLODE=2
ERQOR
AZ¥¨RÔ*ªC¡C¡Q*ªJÕHøAT+CIPMUX=1
EQROR
AT+CIPSERVDR=1,80
EQROR
Hola carlos la verdad no tengo problemas alguno al cargar el programa al arduino ni tampoco en el codigo html todo me va perecto el problema que al cargar el programa y abrir el monitor serie no me sale nadaaaaaaaa en absoluto ya cambie los baudios que vienen en el programa y hasta cambie los baudios del programa y nada! ayudaaaaaaaa!
hola, saludo desde Chile, quería dar las gracias por los conocimientos compartidos en esta pagina, mi nombre es raul, sigo todo los pasos que mencionas, use en mismo código que subiste pero al momento que intento encender el led, no pasa nada, mi problema es que no logro obtener respuesta del esp8266´por mas que lo intento , eh probado con varios vídeos en youtube donde igual explican el procedimiento y todo que siempre me pasa lo mismo al intentar realzar alguna acción, me ayudaría mucho qe me orientaras en que puedo hacer, muchas gracias por tu atención, saludos.
Para que pueda cargar el código de arduino ,,, cambie: ssserial por serial,,, y «rn» por «\r\n»
y en el interfaz web , utilice la misma IP, ya que me arrojaba la misma.
Esperando su respuesta, se despide Raúl Andrade
y baje la velocidad del código a 9600 baudios , y el modulo wifi también lo deje en 9600.
cabe destacar que leí todos los comentarios, y no encontré respuesta es por eso que escribo, muchas gracias por su atención.
después de muchos intentos logre hacer que funcionara implementando algunas modificaciones al código.
si alguien que no ha logrado hechar a andar el modulo quiere que le de una mano con el código que me deje su correo mas abajo y se lo envío.
Hola, ¿podrías ayudarme con el código?
este es mi correo blackcrow092@hotmail.com
hola!, me envias tu codigo por favor? mi email: rodro077@live.cl
gracias!
Por favor me podrías ayudar con el código! Gracias.
correo: cristian.tineli@outlook.com
Hola ya tengo todo armado, me carga el código, cree la pag. con un bloc de nota y la guarde en mi servidor XAMPP, entro en mi computadora a la red ESP_055973 que es la que me proporciona mi módulo ESP8266, pero cuando abro la pag. y presiono los botones no me hace nada, ya cheque la puerta de enlace y me da la misma 192.168.4.1 donde crees que este el error.
GRACIAS Y SALUDOS MUY BUEN APORTE!
Hola me marca un error al compilar el codigo:
dise que la variable SSSerial no a sido declarada.
El problema por el que no les está funcionando es porque se necesita, para el arduino uno un convertidor serial, no es sólo por los baudios, no creo que al utor del post, tal cual lo expone le funcione
Hola, estoy queriendo hacer algo que me detecte que una luz esta encendida o quemada, es para saber en una ciudad que luminaria esta correctamente encendida y las horas de consumo y cual hay que ir a reemplazar o esta encendida fuera de horario. Agradezco mucho sus comentarios.
Alejandro
Hola que tal buenas tardes no se si siga aun esta publicación, he tenido problemas con la subida del programa, no me compila correctamente,
Arduino:1.6.8 (Windows 10), Tarjeta:»Arduino/Genuino Uno»
C:\\segundo semestre\\arduino modulo wifi\wifi dos\wifi\wifi.ino: In function ‘void setup()’:
wifi:10: error: ‘SSSerial’ was not declared in this scope
SSSerial.begin(19200);
^
C:\segundo semestre\arduino modulo wifi\wifi dos\wifi\wifi.ino: In function ‘void loop()’:
C:\segundo semestre\arduino modulo wifi\wifi dos\wifi\wifi.ino:38:28: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]
if(esp8266.find(«+IPD,»))
^
C:\Trabajo fin de maseter\arduino modulo wifi\wifi dos\wifi\wifi.ino:45:25: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]
esp8266.find(«pin=»); // advance cursor to «pin=»
^
exit status 1
‘SSSerial’ was not declared in this scope
Hola, he seguido el tutorial paso a paso, comprobando las conexiones y demás, mi problema es que no me devuelve respuesta el modulo, es decir ningún OK, solo muestra los comandos AT que se van insertando, he probado con todos los baudios y el único que me funciona es 9600
Hola, sigo con mi duda que puse hace meses:
Hola, hace unos meses compre una placa rele, un arduno uno y este modulo Wifi, mi idea es hacer funcionar todo como aaparece aqui (muchas gracias por cierto por el gran aporte), pero en lugar de tres leds quisiera poner otros tres reles (compre la placa de 4 reles para hacer funcionar 4 focos), como deberia de hacer mis conexiones (y mi codigo)?.
De nuevo muchas gracias.
Besos.
Según tengo entendido el código seria el mismo, así como el conexionado de los reles, los 4 serian iguales a como se muestra el del diagrama. Lo unico que deberias hacer es que donde estan conectados los leds, vas a conectar la activacion de cada rele.
Espero poder ayudar un poco, aunque creo que no soy muy bueno explicando.
Saludos
Buen dia, como haria yo para conectar este modulo a internet? es decir, con un hosting o dominio? porque entiendo que para que esto pueda funcionar asi debo estar conectado a la misma red wifi, pero si quisiera activarlo directamente desde el navegador con mi plan de datos del celular por ejemplo?
Buenos días, estoy intentando hacer funcionar el mismo esquema. El problema que tengo es de comunicación con el módulo WIFI, es un ESP8266-ESP01, ya monté el servidor web y demás, pero en el monitor me ocurren dos cosas, cuando lo seteo a 115200 baudios, me despliega lo siguiente:
AT+RSTrn
AT+CWMODE=2rn
AT+CIFSRro
AT+CIPLUX=1rn
AT+CIPSERVES=1,80rn
Termino Setup:
Cuando lo cambio a 19200 por ejemplo:
©Ò©ý
)Êéý
Ê)Òý
Ò)Tý
))T©ý
Termino Setup:
Donde dice «Termino Setup» es una línea de control que agregué luego de uno de los ultimos sendData:
sendData(«AT+CIPSERVER=1,80rn»,1000,DEBUG); // turn on server on port 80
Serial.println();
Serial.print(«Termino Setup: «);
Si lo seteo a 9600 no me muestra nada, sólo «Termino Setup»…
Agradezco cualquier orientación.
El módulo WIFI creo que funciona bien, al menos me responde los pings, todo me hace pensar que lo que falla es la respuesta del Módulo con el Arduino.
Pero a su vez, montado el servidor web, tampoco funcionan las órdenes que desde el mismo ejecuto.
Gracias.
Saludos
Diego
Alejandra, necesitas controlar los rieles desde un multiplexor.
Cuando el receptor WiFi recibe la señal, esta puede tener diferentes datos; imagínate canal 1, 2, 3 y 4; que van al multiplexor y este habilita la línea para controlar el rele correspondiente que enciende la lámpara.
Esta es la idea general, ahora hay que implementar el hardware y software.
HOLA DISCULPEN ME PODRIAN MANDAR EL ARCHIVO CON EL CODIGO ? NO SE PORQUE ME SIGUE MANDANDO ERROR CADA VEZ QUE COMPILO, MUCHAS GRACIAS
siguen dando seguimiento a este enlace ??
Hola!
No logro conectar mi modulo wifi con arduino. Utilizo el mismo ESP, con ardino Mega. Además una fuente de alimentación externa. El código que estoy utilizando es el vuestro, compila y lo carga correctamente, luego abro el monitor serie pero no me aparece nada, he probado con distintas velocidades sin exito, Ayuda por favor!!
Gracias!
Hola secmotic
Acabe de leer este tutorial y me parecio muy interesante
Pero tengo un problema
El còdigo me compila facilmente ..el led rojo del ESP està encendido osea significa que esta funcionando (pq escuche que puede ser problema de arranque ya que la corriente del arduino es 50 mA)
Solo que cuando abro el Monitor serie no me aparece nada .. ya intente con 19200 y 11500
Cùal podria ser el problema?
Hola , programe directamente el ESP8266 y use su salida GPIO para controlar un modulo de rele de 2 reles , uso una fuente MB102 que tiene salidas de voltaje de 3.3 v y 5 v , el voltaje bajo lo uso para el ESP8266 y el voltaje de 5 VDC lo uso para el modulo de rele , he logrado controlar el rele mediante wifi, pero cuando le conecto una lampara de 220 VAC a loscontactos del modulo de rele , el ESP8266 deja de responder..por favor si me pudieran ayudar con este problema. NO encuentro alguna relacion en las conexiones , el voltaje de 220 VAC esta totalmente aislado mediante los opto del modulo de rele , y mediante el contacto del modulo de rele , no comprende porque falla el ESP8266 cuando conecto una carga en los contactos del rele…Muchas gracias por su atencion
Hola…me podrias ayudar.
me da el siguiente error al querer subirlo a arduino:
Arduino:1.6.8 (Windows 10), Tarjeta:»Arduino/Genuino Uno»
C:\Users\crist\Documents\Arduino\sketch_oct14a\sketch_oct14a.ino: In function ‘void setup()’:
sketch_oct14a:10: error: ‘SSSerial’ was not declared in this scope
SSSerial.begin(19200);
^
C:\Users\crist\Documents\Arduino\sketch_oct14a\sketch_oct14a.ino: In function ‘void loop()’:
C:\Users\crist\Documents\Arduino\sketch_oct14a\sketch_oct14a.ino:38:28: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]
if(esp8266.find(«+IPD,»))
^
C:\Users\crist\Documents\Arduino\sketch_oct14a\sketch_oct14a.ino:45:25: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]
esp8266.find(«pin=»); // advance cursor to «pin=»
^
exit status 1
‘SSSerial’ was not declared in this scope
Este reporte podría tener más información con
«Mostrar salida detallada durante la compilación»
opción habilitada en Archivo -> Preferencias.
Perdon por el comentario anterior pero ya lo puedes borrar, ya mire la solución en los comentarios, era solo que esta mal SERIAL tenia tres SSS
Podrias pasarme tu correo para ver otras dudas que tengo por favor
Hola alguien me puede ayudar porq me tira solo letras en el monitor serie. Ya cambie la configuración para todas las velocidades y la mas legible es a 15200 que me tira esto (la velocidad la cambio tanto en la programacion como en el monitor serie) AR+RSTrnAT+CWMOBE=2rnAT+CIFSRroAT+CIPMUÕŠ’¹ÿAT+CIPSERVER>a,80rn.
Que solución puedo tener para poder ver la ip y q todo sea legible.
alguien sabe agregar un slider al codigo arduino para bajar y subir la intensidad del led
Hola gracias por el aporte. Quería consultar si la bombilla se podria prender de forma manual en el caso de que no este activa la red wifi.
Y si el proyecto se podria realizar con una placa Arduino Pro Mini en lugar de la UNO
Muchas gracias
Despúes de montar el código en el Arduino UNO, hay que dejarlo conectado al puerto USB?
Buen día. Despúes de haber cargado el código en la Arduino UNO, es necesario que siga conectada al cable USB?
Hola, buenos días.
Al compilar siempre me sale:
C:\Users\crist\Documents\Arduino\sketch_oct14a\sketch_oct14a.ino: In function ‘void loop()’:
C:\Users\crist\Documents\Arduino\sketch_oct14a\sketch_oct14a.ino:38:28: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]
if(esp8266.find(“+IPD,”))
^
C:\Users\crist\Documents\Arduino\sketch_oct14a\sketch_oct14a.ino:45:25: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]
esp8266.find(“pin=”); // advance cursor to “pin=”
Por qué me sucede esto? gracias
hola buen dia , como le puedo hacer si quiero encender mas leds ya agregue los botones pero no se prenden.
Buen dia… muy buen ejemplo. Como hago si tengo varios wifi… y quiero acceder desde internet
Hola, yo he hecho ya algunos sistemas con ESP 8266 y arduino mega pero tengo un problema, no se como hacerlo 100% wireless, es decir, sin cables, tienes alguna guía o tal vez visto alguna que me pudiese ayudar?
como hago para poder controlar los leds y la bombilla desde internet y desde cualquier sitio
Hola, disculpa mi ignorancia, pero al compiar y pegar tu código me tira un error:
exit status 1
‘SSSerial’ was not declared in this scope
tengo muy poco conocimiento en arduino, no se si tengo que hacer otra cosa, mas que copiar y pegar, agradecería tu ayuda, desde ya gracias.
AMIGO MUY BUENAS NOCHES AL SUBIR EL CÓDIGO AL ARDUINO Y MIRAR EL PUERTO SERIE NO ME A PÁRESE LA IP ???? POR QUE Y COMO CONECTO AL WIFI EL ESP8266???? O YA VIENE TODO TODO EN EL CÓDIGO ARDUINO
Hola buen día, esa pagina web solo funcionaria dentro de mi red, o tambien en la red global?
Hola Emilio, esa página web solo funcionará en tu red local, salvo que configures el router para abrir los puertos y redirigir el tráfico hacia esa IP local.
Hola podrías subir el archivo jquary.min.js por favor 🙂
Buena información lastima que este incompleta ay que cambiar en una condición un parametro, la pagina web que ponen como ejemplo no funciona debido a que debe especificar los piines a que dirección se dirige al pulsar y gracias a otro tutorial que vi de un Español pude complementarlo y hacerlo funcionar, publicaron un post en ingles y lo pusieron en español, y el post en ingles me dio el mismo problema gg, pero lo bueno que ya lo resolvi
HOLA BUEN DIA COMO PEDO DECLARAR EN EL CODIGO LA SIGUENTE LINEA:
SSSerial.begin(19200);
EL MENSAJE DE ERROR ES ESTE:
‘SSSerial’ was not declared in this scope
Después de depurar algunas cosas, todo funciona menos la función get; si desde el navegador pongo la ip y el pin correspondiente al led, este se enciende o se apaga pero veo que la funcion get no hace lo mismo. Trate de probar con post que son similares, pero no funciona tampoco. Por lo que pude ver la respuesta del modulo al requerimiento de la ip muestra caracteres raros, como si trabajara a otra velocidad pero si lo hago desde el navegador aparece todo perfecto. Alguien podría tirarme alguna idea sobre donde esta el error ó la función get necesita de algún otro parámetro. Gracias por la ayuda
Mande un msj el 31/01 y quedo en moderacion. Pueden verificar la consulta. Gracias
tengo problemas con el html ya lo carge en htdocs de xamap carge lo coloque el mismo ip pero al darle clic a los botones no enciede los leds ni la bombilla
o si o si se nesesita appserver
en que editor de código esta echo el código de programación?
Quisiera hacer lo mismo pero que el html este en el arduino en lugar de en un servisor afuera.
Osea… entrar al Esp01 en modo ap, cooocar su direccion Ip y me muestre unos botones que me sirvan para prender o apagar las salidas del arduino uno.
Hola cómo estás,
Lo puedo hacer con una cinta led y programar varios colores para que se enciendan? Que otro módulo le puedo colocar, puede ser un sensor de sonido para que encienda con un aplauso?
hola excelente tutorial mi duda es que deseo hacer una aplicacion en app inventor y asi enviar informacion del arduino a la aplicación y de la aplicacion mandar datos para cambiar dentro de la programación si podrias ayudarme gracuas