hola a todos es un placer tenerlos por aqui de nuevo, esta vez les traigo una guia rapida para usar el nodeMCU que es un excelente chip para hacer IOT, esta guia esta pensada para personas un poco experimentadas que necesitan ejemplos claros del uso del ESP.
ESP8266
Es hora de actualizarse y así mismo actualizar el tipo de dispositivos que usamos para diferentes propósitos, en este caso el rey indiscutible para hacer IOT es el modulo wifi ESP8266, que se puede usar tanto como esclavo para arduino como un dispositivo completo para hacer IOT por menos de $5(en su versión 01).
Es tanto el auge que tuvo este pequeño chip que tiene un foro dedicado a él, la razón por la que digo que es el rey indiscutible es debido a la versatilidad que tiene con:
- 802.11 b/g/n
- Wi-Fi Direct (P2P), soft-AP
- Integrated TCP/IP protocol stack
- Integrated TR switch, balun, LNA, power amplifier and matching network
- Integrated PLLs, regulators, DCXO and power management units
- +19.5dBm output power in 802.11b mode
- Power down leakage current of <10uA
- 1MB Flash Memory
- Integrated low power 32-bit CPU could be used as application processor
- SDIO 1.1 / 2.0, SPI, UART
- STBC, 1×1 MIMO, 2×1 MIMO
- A-MPDU & A-MSDU aggregation & 0.4ms guard interval
- Wake up and transmit packets in < 2ms
- Standby power consumption of < 1.0mW (DTIM3)
(datos sacados de sparkfun)
Algunos se preguntaran para que es todo esto, jaja yo también me lo pregunte y solamente haciendo las cosas e investigando se sabe para que es en realidad cada una de sus características.
Hay varios «modelos» del ESP8266 cada uno con diferente propósito, en nuestro caso vamos a utilizar el ESP8266-12E Tuve la fortuna de que un amigo tuviera uno, así que gracias a él es este tutorial :D.
NodeMcu
Es una plataforma Open Hardware al igual que arduino, no es solamente un circuito o una placa en realidad como dije arriba es una comunidad o hasta un movimiento.
Se programa en LUA, un lenguaje que carga scripts al micro para cargarlos al inicio, aunque también podemos interactuar con él mediante consola con comandos en tiempo real.
Que necesitamos:
- Drivers (Este driver es el que yo necesitaba para comunicación tal vez uds necesiten otro )
- cable micro usb
- putty o cualquier programa parecido
- ESPlorer
- lo mas importante, ganas de aprender 😀
Lo primero es conectar nuestro NodeMcu a la computadora e instalar los drivers,
Al terminar de instalar los drivers nos aparecerá un puerto COM. clic derecho en equipo —-> propiedades —> administrador de dispositivos —-> puertos COM LPT —-> al final aparece el numero de puerto 😀
ahora abrimos putty
damos click en Serial nos aparecera el nombre del puerto en nuestro caso vamos a utilizar el COM3 y la velodidad de transmision de datos se queda en 9600 baudios.
clic en open
A ustedes les aparecerán mas letras que a mi (yo lo tengo formateado ) así que no se preocupen si no les aparece como a mi.
antes de empezar a hacer scripts y subirlos con ESPlorer vamos a ejecutar algunas lineas de código en tiempo real para que se acostumbren.
Algo que tienen que tener mucho en cuenta es el hecho de que cuando su dispositivo se reinicie tendrán que empezar desde la primera linea de código.
Ejemplo 1
Encendiendo y apagando un LED
los comentarios se hacen con dos guiones (–):
pin = 0 -- numero de pin que vamos a utilizar
gpio.mode(pin,gpio.OUTPUT)--configuramos el pin como salida
--El led esta configurado de tal manera que cuando mandamos un pulso negativo se enciende
gpio.write(pin,gpio.HIGH) -- mandamos un pulso positivo para que se apague el LED
gpio.write(pin,gpio.LOW)-- mandamos un pulso negativo para que se encienda
gpio.write(pin,gpio.HIGH)-- lo volvemos a apagar.
Quedaría de esta manera:
Ejemplo 2
modo STATION Conectando el ESP al wifi.
Con dos simples lineas nos podemos conectar.
wifi.setmode(wifi.STATION) -- configurando modo cliente wifi.sta.config("nombreWIFI","Contraseña")-- configuracion para conectarnos ip = wifi.sta.getip()-- creamos una variable que almacenará la IP print(ip)-- lo mostramos en pantalla.
ejemplo 3
Modo punto de acceso (AP)
wifi.setmode(wifi.SOFTAP) cfg={} cfg.ssid="nombre"-- nombre del SSID cfg.pwd="clave"-- clave del Wifi wifi.ap.config(cfg)-- configuramos
Es momento de escanear las redes wifi a nuestro alrededor.
Liceo Santa Lucia es el lugar donde me dieron el espacio para poder hacer todas mis locuras muchas gracias 😀
Cuando nos conectemos a nuestro wifi nuevecito reluciente recien creado, nos dara una IP 192.168.4.2 siendo el ESP la ip 192.168.4.1 esto nos servira para poder crear dentro un servidor HTTP.
ejemplo 4
Montando un servidor.
servidor= net.createServer(net.TCP,30) servidor:listen(80,function(c) c:send("<h1>Node MCU 101 Bienvenido</h1>") end)
Una vez conectados al ESP nos vamos a la direccion ip, si no la sabemos poner en la consola la siguiente instrucción.
–modo cliente o station
wifi.setmode(wifi.STATION) -- configurando modo cliente wifi.sta.config("nombreWIFI","Contraseña")-- configuracion para conectarnos ip = wifi.sta.getip()-- creamos una variable que almacenará la IP servidor= net.createServer(net.TCP,30) servidor:listen(80,function(c) c:send("<h1>Node MCU 101 Bienvenido</h1>") end) print(ip)-- lo mostramos en pantalla.
-- modo punto de acceso. wifi.setmode(wifi.SOFTAP) cfg={} cfg.ssid="MicrofControl" wifi.ap.config(cfg) servidor= net.createServer(net.TCP,30) servidor:listen(80,function(c) c:send("<h1>Node MCU 101 Bienvenido</h1>") end)
abrimos el navegador y vamos a esa direccion. En mi caso puse el servidor en un AP asi que tengo que ir a 192.168.4.1 su caso puede ser diferente dependiendo de la IP que les muestre y el modo que hayan configurado.
Ejemplo 5
sensor dht11
Este es un sensor de humedad, temperatura muy usado y muy bueno :D, afortunadamente ya tenemos la librería para poder usarlo.
pin = 4-- pin de datos conectado al dht status,temperatura,humedad,temperaturaDecimales,humedadDecimales = dht.read(pin)--variables para datos if(status == dht.OK) then-- print("temperatura: "..temperatura) print("humedad: "..humedad) print("temperatura en decimales: "..temperaturaDecimales) print("humedad en decimales: "..humedadDecimales) end
En este ejemplo nos va a mostrar la temperatura y la humedad del ambiente solamente si esta funcionando el sensor o esta bien conectado.
ahora vamos con ejemplos un poco mas complicados, recuerden que todos estos ejemplos cuando se reinicie o apague el dispositivo van a perderlos porque son comandos en tiempo real. Asi que pilas.
ejemplo 6
visualizando la temperatura y humedad desde un navegador.
pin=4 wifi.setmode(wifi.SOFTAP) cfg = {} cfg.ssid="ModuloDeTemperatura" wifi.ap.config(cfg) servidor = net.createServer(net.TCP,30) servidor:listen(80,function(c) status,temperatura,humedad,temperaturaDecimales,humedadDecimales = dht.read(pin)--variables para datos if(status == dht.OK) then c:send("<h1>temperatura: "..temperatura.."</h1>") c:send("<h1>humedad: "..humedad.."</h1>") end end)
Ustedes se encargan de que se vea mas bonito jaja.
Espero que esta guia les haya servido, cualquier duda sugerencia o comentario estan los comentarios mas abajo.
Recuerden este metodo es con comandos en tiempo real adelante vamos a usar ESPlorer para meter los archivos dentro del ESP y correrlos desde el encendido 😀
Gracias por leerme nos vemos en otro post 😀
Este micro es genial, he pasado horas investigando sobre este modulo, mi experiencia con lua no fue muy buena porque se quedaba sin memoria, y en ocasiones se colgaba, por eso mismo me pase a programarlo en arduino y c++ aunque este ultimo es realmente difícil por la poca documentación que existe, cuando tenga tiempo volveré a intentar con lua porque según leí compilando los script se logra un 50% en mejora de rendimiento, excelente tutorial!
Me gustaMe gusta
Muchas gracias espero que te haya servido 😀
Espero tus comentarios a futuro
Me gustaMe gusta
Muy buena selección de ejemplos.
Me gustaMe gusta
Muchas gracias espero que te haya servido 😀
Me gustaMe gusta
Excelente Guia, gracias por tu Información, precisamente ando investigando mucho sobre el modulo NodeMCU, y apenas lo estoy aprendiendo, además quisiera trabajarlo en un proyecto de domótica, y quisiera usarlo como receptor y controlador de dispositivos, por medio de una App, parecido al sistema de Smart TV que se conecta mediante la Red, sin necesidad de conección con arduino o Raspberry, como ya se sabe hacer, y que no fuese conexión punto a punto.
Me gustaría que nos mantuviesemos en contacto para compartir mas información.
Me gustaMe gusta
Hola mario, sera un gusto poder compartirte mas información sigamos en contacto, dime que es lo que te interesa saber.
Me gustaMe gusta
Excelente, gracias!
Me gustaMe gusta
Excelente tutorial, ya lo pude bajar y me funciono, ahora quiero leer entradas desde los gpio 0 y gpio 2 desde el modulo y verlas en el servidor como dos luces pilotos
Me gustaLe gusta a 1 persona
Hola Carlos 😀
me alegro que te haya funcionado mira el motodo es el siguiente para los inputs
pin = 1
gpio.mode(pin,gpio.OUTPUT)
gpio.write(pin,gpio.HIGH)
gpio.mode(pin,gpio.INPUT)
estado = gpio.read(pin)
print(estado)
Cualquier duda me comentas 🙂
Me gustaLe gusta a 1 persona
HOLA MIRA ME GUSTARÍA SABER COMO CONFIGURO LOS PINES GPIO PERO DESDE ARDUINO IDE YA QUE LUA NO HE PROGRAMADO Y PUES SI ME GUTSARIA SABER MAS POR IDE Y A QUE HE LOGRADO TODO MENOS LEER ANÁLOGAS Y PODER CAMBIAN LOS PINES TANTO A ANÁLOGA COMO A DIGITAL o.O
te dejo mi correo espero una pronta respuesta gracias
andres.t15@hotmail.com
Me gustaMe gusta
tengo unos videos en youtube donde podes ver como lo hacemos, con el analogico ten cuidado ya que los pines del esp8266 solo aceptan valores de 0 a 1v si usas mas puedes arruinarlo.
https://www.youtube.com/channel/UCcX7pz1DHmcfhr3YxPe0HCQ
Me gustaMe gusta
hola, tengo la placa nodemcu lolin v3, y tengo instalado micropython, quiero saber como puedo aplicar todos los ejemplos de arriba, pues cuando pongo wifi me dice que no esta definido, asi mismo quisiera saber como ver la IP de la tarjeta gracias
Me gustaMe gusta
Holi Adrian te dejo el Tutorial para hacerlo http://wp.me/p5b5HP-hc
Me gustaMe gusta
gracias si meda la ip de la placa, paro ahora como puedo controlarlo desde mi movil, y que programa puedo usar en el movil, saludos
Me gustaMe gusta
Bueno eso ya lo dejo en ti 🙂
Micropython tiene muy buenas librerías si logras hacerlo o necesitas ayuda en algo más concreto hazlo saber y te ayudaré 🙂
Me gustaMe gusta
bueno he probado con putty en mi movil y no lo puedo conectar a la nodemcu que otro programa podria instalar en mi movil y como lo echo andar via wifi con la nodemcu gracias
Me gustaMe gusta
Puedes ponerle un bt hc-05 en las líneas de tx rx y podes conectarte con el celular por Bluetooth
Sí quieres acceder a el tienes que utilizar la librería
Web_repl
Me gustaMe gusta
te dejo la guia 🙂
No olvides suscribirte para mas informacion 🙂
https://themicrofcontrol.wordpress.com/2017/07/01/web-repl-comunicacion-con-micropython-por-medio-de-wifi/
Me gustaMe gusta
muy buen tutorial! Ahora yo tengo una inquietud y es la siguiente: Sera posible interconectar 2 ESP8266 como si fueran XBEE, es decir en 1 ESP8266 poner pulsadores de entrada al puerto GPIO y al segundo ESP8266 ponerle leds de salida al puerto GPIO? de forma que si yo presiono un pulsador en el primer ESP8266 se encienda el led del GPIO correspondiente al segundo ESP8266, como en estas imagenes emisor: http://www.stretchmame32.nobody.jp/emisor.jpg y receptor http://www.stretchmame32.nobody.jp/receptor.jpg es asi exactamente como tengo esta inquietud de que se puedan utilizar de esta manera, sin necesidad de computador ni modem de internet, sino que se conecten punto a punto, uno como cliente y otro como servidor
Me gustaMe gusta
Hola antonio si claro
Pon uno en modo server y el otro en cliente te conectas por medio de http y envias paquetes get o post al servidor c:
Interesante propuesta la verdad,si lo logras me encantaria verlo.
PD: el Nodemcu en modo server no aguanta muchas conexiones pero solamente un nodemcu si funcionaria
Saludos
Me gustaMe gusta