Archivo de la categoría: ESP8266

Novedades Arduino

Desde el año 2015 ha habido varios cambios en la organización de Arduino como empresa que es interesante conocer por las consecuencias que puede tener en el desarrollo de las placas Arduino y en el software.

Arduino LLC fue la compañía creada por Massimo Banzi, David Cuartielles, David Mellis, Tom Igoe and Gianluca Martino en 2009 y era la propietaria de la marca Arduino. Las placas Arduino eran fabricadas por una spinoff llamada Smart Projects Srl creada por Gianluca Martino. En noviembre de 2014 cambiaron el nombre de la empresa que manufactura las placas Arduino de Smart Projects Srl a Arduino Srl y registraron el dominio arduino.org, esto fue el inicio de la división que se produjo poco después.

A principios de 2015 se produjo una división dentro de Arduino y desde entonces han aparecido bastante cambios para los usuarios de Arduino, la primera es que ha aparecido una nueva marca llamada “Genuino” asociada a arduino.cc y una nueva web oficial de Arduino www.arduino.org.

El 1 de octubre de 2016 durante el World Maker Faire de New York, Massimo Banzi and Federico Musto anunciaron las empresas Arduino LLC (arduino.cc) y ArduinoSRL (arduino.org) han firmado un acuerdo, cerrando las disputas iniciadas a principio de 2015. Anunciaron que el recién creado “Arduino Holding” será el punto único para la distribución de los productos Arduino actuales y futuros y continuará sacando al mercado nuevas innovaciones. Además, anunciaron la futura formación de la “Fundación Arduino” sin ánimo de lucro, que será la responsable de mantener el IDE Arduino open source y continuará fomentando el movimiento open source, pero que no se ha hecho realidad.

En el verano de 2017 donde se comunicó que BCMI, la empresa fundada por  Massimo Banzi, David Cuartielles, David Mellis and Tom Igoe, co-fundadores de Arduino ha adquirido el 100% de Arduino AG, la corporación que tenía todas las marcas registradas de Arduino. En el Comunicado Massimo Banzi dice que de esta forma se renueva el compromiso con el HW y SW open source con un crecimiento sostenible de la empresa. Su visión es permitir a cualquier innovar con la electrónica durante mucho tiempo y democratizar el IoT para los individuos, educadores, profesionales y negocios.

Enlaces con las noticias por orden cronológico:

A partir de la Nueva era Arduino

Adquisión de Arduino AG (empresa que tenía la marca Arduino en propiedad): https://blog.arduino.cc/2017/07/28/a-new-era-for-arduino-begins-today/

Nuevas placas Arduino IoT MKR WAN 1300 y MKR GSM 1400 en la Maker Faire New York 2017: https://blog.arduino.cc/2017/09/25/introducing-the-arduino-mkr-wan-1300-and-mkr-gsm-1400/

Asociación entre Arduino y ARM: https://blog.arduino.cc/2017/10/05/arduino-announces-arm-partnership/

Beta Arduino IDE: https://blog.arduino.cc/2017/10/11/be-among-the-first-to-try-arduino-ide-1-9-beta/

Soporte placas linux desde Arduino Create: https://blog.arduino.cc/2017/11/03/linux-support-comes-to-arduino-create/. Esto permite programar placas linux como si se trataran de Arduinos y que múltiples programas Arduino puedan ejecutarse en una placa y comunicarse entre ellos. Y pueden programarse remotamente,

De momento solo para placas Intel como ntel® NUC, Dell Wyse®, Gigabyte™ GB-BXT y las placas UP2 http://www.up-board.org/upsquared/

Nueva Arduino Reference: https://blog.arduino.cc/2017/12/14/new-search-engine-arduino-reference/. Cambio de aspecto https://www.arduino.cc/reference/en/, más rápida y ahora se puede colaborar en la documentación a través de https://github.com/arduino/reference-en y con un reference en español https://github.com/arduino/reference-es

Usar Arduino para programar dispositivos IoT Linux: https://blog.arduino.cc/2018/03/13/you-can-now-use-arduino-to-program-linux-iot-devices/. Se amplían los dispositivos soportados por Arduino Create para el desarrollo de IoT. Desde https://create.arduino.cc/getting-started es posible gestionar y programar muchas de las placas más populares basadas en Linux, incluyendo Raspberry Pi y BeagleBone

Arduino Yun rev 2, completamente open source y resolviendo algunos problemas de seguridad de la versión 1: https://blog.arduino.cc/2018/03/29/arduino-yun-rev-2-is-here/

Placa: https://store.arduino.cc/arduino-yun-rev-2

Nuevas placas en Arduino Day 2018: https://blog.arduino.cc/2018/05/12/the-mkr-family-gets-bigger-with-two-new-iot-boards/

MKR Wifi 1010 https://store.arduino.cc/arduino-mkr-wifi-1010, es una evolución de la placa MKR Wifi 1000 con menor consumo, equipada con un ESP32 y in firmware Wifi open source.

MKR NB 1500 https://store.arduino.cc/arduino-mkr-nb-1500, con conectividad de bajo consumo NB-IoT (narrowband IoT) que trabaja sobre redes LTE que usen NB-IoT, para España Vodafone.

Arduino engineering kit: https://blog.arduino.cc/2018/05/12/arduino-goes-to-college-with-the-new-arduino-engineering-kit/

Placas presentadas en el Maker Faire Bay Area 2018: https://blog.arduino.cc/2018/05/17/say-hello-to-the-next-generation-of-arduino-boards/

MKR Vidor 4000 https://store.arduino.cc/arduino-vidor-4000, primer Arduino basado en un chip FPGA, con WiFi y crypto chip para conexiones seguras.  

Arduino UNO Wifi Rev2 https://store.arduino.cc/arduino-uno-wiFi-rev2 con un nuevo microcontrolador ATmega4809 https://www.microchip.com/wwwproducts/en/ATMEGA4809, un módulo WiFi  u-blox Nina W102 y IMU integrada.

En la novedades sobre Arduinos no oficiales se han añadido nuevas placas al soporte del IDE Arduino: https://github.com/arduino/arduino/wiki/unofficial-list-of-3rd-party-boards-support-urls

Aunque los reyes de los procesadores no oficiales soportados por Arduino son el ESP8266 y el ESP32:

Anuncios

Entender Arduino

Arduino no solo es una placa azul muy popular con la que hacer semáforos, encender leds o usado en las impresoras 3D. Arduino va mucho más allá y vamos a verlo en este capítulo.

Primer Arduino:

Ya hemos visto anteriormente qué es Arduino: https://aprendiendoarduino.wordpress.com/2018/04/02/que-es-arduino-7/

A modo de resumen los tres componentes de Arduino son:

Arduino = HW + SW + Comunidad

Arduino simplifica el trabajo con microcontroladores y ofrece las siguientes ventajas: barato, multiplataforma, entorno de programación sencillo, software libre y extensible mediante librerías en C++, hardware libre y extensible.

Al trabajar con Arduino, se manejan conceptos de diferentes tecnologías que a priori no tienen nada que ver entre ellos pero que los unifica: electronica digital y analogica, electricidad, programación, microcontroladores, tratamiento de señales, protocolos de comunicación, arquitectura de procesadores, mecánica, motores, diseño de placas electrónicas etc…

Diez razones para usar Arduino: http://www.modulo0tutoriales.com/10-razones-para-usar-arduino/

Mitos sobre Arduino que todo el mundo cree y no son verdad: https://www.baldengineer.com/5-arduino-myths.html

HW Arduino

El HW de Arduino es básicamente una placa con un microcontrolador. Un microcontrolador (abreviado µC, UC o MCU) es un circuito integrado programable, capaz de ejecutar las órdenes grabadas en su memoria. Está compuesto de varios bloques funcionales, los cuales cumplen una tarea específica. Un microcontrolador incluye en su interior las tres principales unidades funcionales de una computadora: unidad central de procesamiento, memoria y periféricos de entrada/salida.

Características de un Microcontrolador:

  • Velocidad del reloj u oscilador
  • Tamaño de palabra
  • Memoria: SRAM, Flash, EEPROM, ROM, etc..
  • I/O Digitales
  • Entradas Analógicas
  • Salidas analógicas (PWM)
  • DAC (Digital to Analog Converter)
  • ADC (Analog to Digital Converter)
  • Buses
  • UART
  • Otras comunicaciones.

El hardware de Arduino usa microcontroladores generalmente Atmel AVR. Los microcontroladores más usados en las plataformas Arduino son el Atmega168, Atmega328, Atmega1280, ATmega8 por su sencillez, pero se está ampliando a microcontroladores Atmel con arquitectura ARM como el Atmel SAMD21 o los ST STM32, y también Intel.

Arduino dispone de una amplia variedad de placas y shields para usar dependiendo de nuestras necesidades.

Placas Arduino: https://aprendiendoarduino.wordpress.com/2017/06/19/placas-arduino-2/

Un shield es una placa compatible que se puede colocar en la parte superior de los arduinos y permite extender las capacidades del arduino.

Shields Arduino: https://aprendiendoarduino.wordpress.com/2017/06/20/shields-arduino-3/

HW Compatible Arduino

Además del HW oficial de Arduino tenemos infinidad de placas compatibles con Arduino.

Dentro del HW compatible con Arduino podemos distinguir tres tipos:

Listados de placas Arduino y compatibles:

Dentro del entorno Arduino, podemos encontrar placas basadas en el microcontrolador ESP8266 con wifi integrado y pila de protocolos TCP/IP que no sigue el factor de forma de Arduino. De este microcontrolador han salido muchas placas como las wemos https://www.wemos.cc/

Resultado de imagen de wemos.jpg

Placas de otros fabricantes de microcontroladores como Microchip o Mediatek con sus modelos ChipKit o LinkIt.

Documentación de la placa linkit one:

SW Arduino

El software de Arduino es un IDE, entorno de desarrollo integrado (siglas en inglés de Integrated Development Environment). Es un programa informático compuesto por un conjunto de herramientas de programación.

El IDE de Arduino es un entorno de programación que ha sido empaquetado como un programa de aplicación; es decir, consiste en un editor de código, un compilador, un depurador y un constructor de interfaz gráfica (GUI). Además incorpora las herramientas para cargar el programa ya compilado en la memoria flash del hardware.

Es destacable desde la aparición de la versión 1.6.2 la incorporación de la gestión de librerías y la gestión de placas muy mejoradas respecto a la versión anterior y los avisos de actualización de versiones de librerías y cores.

Todos lo cambios en la versiones pueden verse en: https://www.arduino.cc/en/Main/ReleaseNotes

Código fuente del IDE de Arduino está disponible en: https://github.com/arduino/Arduino/  y las instrucciones para construir el IDE desde código fuente pueden verse en: https://github.com/arduino/Arduino/wiki/Building-Arduino

Podemos también ver los problemas/bugs detectados de la versión actual y hacer un seguimiento de ellos: https://github.com/arduino/Arduino/issues y en http://forum.arduino.cc/index.php?board=2.0

En principio el IDE de arduino solo tenía soporte para las placas Arduino y los clones o forks con los mismos microcontroladores que los Arduinos oficiales. Desde la versión 1.6.2 del IDE de arduino.cc y gracias al gestor de placas, podemos añadir soporte a otros microcontroladores y placas al IDE de Arduino, como al ESP8266.

Listado de URLs para soporte de tarjetas no oficiales: https://github.com/arduino/Arduino/wiki/Unofficial-list-of-3rd-party-boards-support-urls

Arduino.cc tiene disponible un IDE on-line dentro del entorno Arduino Create https://create.arduino.cc/ que es una plataforma on-line integrada que permite escribir código, acceder a contenido, configurar placas y compartir proyectos, muy enfocado al Internet de las Cosas (IoT).

También existen otros IDEs alternativos como Atmel Studio http://www.atmel.com/Microsite/atmel-studio/ para microntroladores Atmel.

El software hecho para Arduino con el IDE es portable, es decir, el mismo firmware que hemos hecho para un Arduino/Microcontrolador, sirve para otras placas Arduino u otras placas compatibles Arduino como el ESP8266.

Comunidad Arduino

Un factor del éxito de Arduino ha sido la comunidad que está apoyando este proyecto y que día a día publica nuevo contenido, divulga y responde a las dudas.

En Internet hay disponible todo tipo de cursos, tutoriales, herramientas de consulta, proyectos, etc… que ayudan a que se pueda usar Arduino con facilidad.

El primer sitio donde empezar para trabajar con Arduino es http://www.arduino.cc/ y el segundo sitio el playground de Arduino http://playground.arduino.cc/

Arduino playground es un wiki donde todos los usuarios de Arduino pueden contribuir. Es el lugar donde publicar y compartir código, diagrama de circuitos, tutoriales, trucos, cursos, etc.. y sobretodo el lugar donde buscar cuando tengamos dudas, un problema, una librería adecuada para nuestro proyecto, etc… Esa la base de datos de conocimiento por excelencia de Arduino.

Arduino playground: http://playground.arduino.cc/

Algunos apartados importantes en playground.

Otro lugar donde la comunidad colabora, se puede buscar información y preguntar las dudas que tengamos, es el foro Arduino: http://forum.arduino.cc/.

También existen lugares no oficiales de Arduino donde resolver nuestras dudas:

Arduino en las redes sociales:

Otro lugar de encuentro de la comunidad son diversos portales donde se publican proyectos con Arduino:

Por último, también hay espacios locales para la comunidad, son los llamados hacklabs hackerspace, makerspace, etc.. que aunque hay ciertas diferencias entre unos y otros, se trata de un sitio físico donde gente con intereses en ciencia, nuevas tecnologías, y artes digitales o electrónicas se puede conocer, socializar y colaborar. Puede ser visto como un laboratorio de comunidad abierta, un espacio donde gente de diversos trasfondos puede unirse. Pone al alcance de aficionados y estudiantes de diferentes niveles la infraestructura y ambiente necesarios para desarrollar sus proyectos tecnológicos.

Hacklab: https://es.wikipedia.org/wiki/Hacklab

Mejores prácticas Hackerspaces: https://elplatt.com/new-hackerspace-design-patterns

Listado de Hackerspaces: https://hackerspaces.org/wiki/List_of_ALL_Hacker_Spaces

También hay otro espacio local algo diferente que son los fablabs: es un espacio de producción de objetos físicos a escala personal o local que agrupa máquinas controladas por ordenadores.

Fablab: https://es.wikipedia.org/wiki/Fab_lab

Qué es un fablab: http://fab.cba.mit.edu/about/charter/

Este podcast explica las diferencias entre estos espacios: http://make.cesargarciasaez.com/2016/02/01/la-hora-maker-010-fablabs-makespaces-hackerspaces-y-hacklabs/

Movimiento maker: https://en.wikipedia.org/wiki/Maker_culture

Más información sobre la comunidad, makerspaces y fablabs, ver los artículos:

Filosofía Arduino

Por último para entender bien lo que es Arduino, es recomendable ver el documental de Arduino de unos 30 minutos de duración. Arduino the Documentary: http://blog.arduino.cc/2011/01/07/arduino-the-documentary-now-online/

IoT Manifesto: https://create.arduino.cc/iot/manifesto/

We believe that the best way to grow this environment is to develop open source platforms and protocols to propose as an alternative to the myriad of proprietary hardware and software platforms each one of the big players are developing.
We believe in creating tools that make these technologies understandable to the most diverse set of people as possible, this is the only way to make sure innovation benefits most of humanity.
We propose that connected devices should be: Open, Sustainable and Fair.

We foresee a world with billions of connected smart objects. These smart objects will be composed and orchestrated, thus making the Internet of Things a reality. The IoT will be the eyes, noses, arms, legs, hands of a new, extended, cyber body. The nervous system of such a body will be the Internet, allowing the interaction with a distributed intelligence made of hardware processors and human minds, behaviors, software procedures, and services, shared in the Cloud.

Video. Conectar ESP8266 a Internet. WifiClient

TODO: poner enlace al vídeo

Una vez escaneadas las redes, vamos a conectarnos a una de ellas y acceder a internet llegando a un servidor y ver su contenido.

El ejemplo WiFiClientBasic que podemos encontrar en Archivos – Ejemplos – ESP8266WiFi – WiFiClientBasic.

Este ejemplo se conecta a una red WiFi y manda un mensaje a un servidor TCP, en este caso a la IP 192.168.1.1 y al puerto 80.

La clase ESP8266WiFiMulti es igual que la clase ESP8266WiFi pero que permite configurar múltiples conexiones a puntos de acceso que en caso de perder la conexión se conecte al siguiente: http://arduino-esp8266.readthedocs.io/en/latest/esp8266wifi/station-examples.html?highlight=ESP8266WiFiMulti

Con WiFi.mode(WIFI_STA); pongo el ESP8266 en modo estación, es decir, para conectar a una red WiFi de un punto de acceso.

Para más información:

Una vez conectado entramos en el loop y me conecto a un servidor como cliente. La clase cliente permite acceder a servicios de los servidor pudiendo enviar y recibir datos:

NOTA: en caso que el router wifi de una IP en otro rango que no sea el 192.168.1.x, cambiar la IP de la variable host por la IP del router wifi al que nos conectamos.

Ejercicio propuesto: conectar a https://www.aprendiendoarduino.com/servicios/aprendiendoarduino/ y leer el mensaje que devuelve.

Solución: https://github.com/jecrespo/aprendiendoarduino-curso-esp8266-youtube/blob/master/WiFiClientBasicMejorado/WiFiClientBasicMejorado.ino

En este caso debemos usar un lenguaje de comunicación común para hablar entre el servidor y el ESP8266, es el mismo lenguaje que usa cualquier navegador que se conecta a una página web y es el HTTP.

Una vez conectados al puerto 80 debe mandar un GET con la ruta del servidor y acabar con una línea nueva, tal y como funciona este protocol. Para ello mando:

 
client.println("GET /servicios/aprendiendoarduino/ HTTP/1.0");
client.println("Host: www.aprendiendoarduino.com");
client.println();

Si todo funciona bien recibiré la respuesta “HTTP1.1 200 OK” seguido de las cabeceras y luego una línea nueva, tras la cual aparecerá la respuesta del servidor. Para leer todas las líneas y no solo la primera es necesario hacer un bucle while mientras haya datos recibidos con la instrucción client.available(): https://www.arduino.cc/en/Reference/WiFiClientAvailable

NOTA: es necesario añadir la cabecera HTTP “Host: http://www.aprendiendoarduino.com” para que el hosting de la web resuelva el nombre del dominio.

La respuesta obtenida es:

Mensaje oculto: “Bienvenido al servidor de http://www.aprendiendoarduino.com

Más información sobre el protocolo HTTP: https://aprendiendoarduino.wordpress.com/2017/06/26/protocolo-http-2/

Video. Primeros Pasos con ESP8266

Enlace Vídeo

Una vez que sabemos que es el ESP8266 y tenemos el IDE instalado, vamos a aprender a usar el Wifi del ESP8266. No entramos en el uso de otras características que son comunes a Arduino y que trataré de forma genérica en otros vídeos dentro del curso de Arduino en vídeo https://www.aprendiendoarduino.com/videos/curso-arduino/.

Si quieres saber más de Arduino y de su programación puedes ver los cursos de https://www.aprendiendoarduino.com

Una forma de aprender a manejar un dispositivo hardware o una librería es leer los ejemplos y ponerlos en práctica mientras se revisa la documentación en lugar de leer toda la documentación antes de empezar a practicar. Para empezar con los módulos ESP8266 una vez instalado el soporte para las placas, lo más sencillo es ejecutar los ejemplos que vienen con el soporte instalado para los módulos ESP8266.

Para ver los ejemplos debemos primero seleccionar la placa que vamos a usar, en nuestro caso la Wemos D1 mini o la nodeMCU.

Todos los ejemplos disponibles en el IDE de Arduino los puedes encontrar en los ejemplos de las librerías que vienen con el soporte del ESP8266 para Arduino que hemos instalado anteriormente en: https://github.com/esp8266/Arduino/tree/master/libraries

WiFiScan

Veamos primero el ejemplo WiFiScan que podemos encontrar en Archivos – Ejemplos – ESP8266WiFi – WiFiScan.

Este sketch muestra cómo escanear redes WiFi y el código es casi similar al usado con el WiFi shield de Arduino pero incluyendo la librería “ESP8266WiFi.h” en lugar de “WiFi.h”

La documentación de la librería “ESP8266WiFi” está en http://arduino-esp8266.readthedocs.io/en/latest/esp8266wifi/readme.html y dentro de la librería hay varias clases, entre ellas está scan para escanear redes y la client para conectarnos a un servidor: http://arduino-esp8266.readthedocs.io/en/latest/esp8266wifi/readme.html#scan

Al usar la librería ESP8266WiFi, lo primero es configurar el WiFi del ESP8266, en este caso en modo estación (WIFI_STA), es decir, para conectarse a un AP, pero en este caso nos desconectamos para poder escanear todas las redes.

Para scanear la red usamos la clase scan de WiFi: http://arduino-esp8266.readthedocs.io/en/latest/esp8266wifi/scan-class.html y este proceso tarda aproximadamente un segundo y devuelve un número entero con el número total de redes encontradas. Luego mediante una serie de métodos puedo obtener los datos de SSID, RSSI, etc… de las redes encontradas en el scaneo.

Luego saco por pantalla el nombre de la red (SSID), la potencia (RSSI) y si es una red protegida. En la línea 40 hay un operador que no es común es un operador ternario https://es.wikipedia.org/wiki/Operador_ternario que es un if simplificado.

Luego para acceder a los datos de las redes encontradas en el scan, uso las funciones SSID, RSSI y encryptionType para encontrar el SSID, la señal y el tipo de cifrado de las redes encontradas.

Para más información ver la documentación de la clase scan en : http://arduino-esp8266.readthedocs.io/en/latest/esp8266wifi/scan-class.html

Más ejemplos de uso de la clase scan: http://arduino-esp8266.readthedocs.io/en/latest/esp8266wifi/scan-examples.html

Ejercicio propuesto: modificar el ejemplo WiFiScan para que también busque las redes WiFi ocultas y también muestre el canal y la MAC del punto de acceso o BSSID https://es.wikipedia.org/wiki/BSSID

Solución: https://github.com/jecrespo/aprendiendoarduino-curso-esp8266-youtube/blob/master/WiFiScanMejorado/WiFiScanMejorado.ino

En este caso he usado dos funciones:

  • muestra_encriptacion() que me dice la encriptación de la red wifi que me da el método WiFi.encryptionType()
  • muestra_SSID() que me da el nombre de SSID y en caso que sea una red oculta se dice.

También uso tabuladores “\t” para mostrar la información de forma más clara.

Con la información obtenida de las MACs, RSSI y canal, usando la librería de Germán Martín puedo obtener la localización https://github.com/gmag11/ESPWifiLocation gracias a  Google Maps GeoLocation API. Un tutorial completo realizado por Luis del Valle puede verse en https://programarfacil.com/blog/arduino-blog/geolocalizacion-wifi-arduino-nodemcu/

Video. Preparación IDE Arduino para ESP8266

Una vez conocido el hardware del ESP8266 visto en el anterior vídeo https://www.aprendiendoarduino.com/2018/01/23/video-iniciacion-a-esp8266-hardware/ vamos a ver como preparar el entorno de programación de Arduino (IDE) para programar el ESP8266.

Estas son las dos placas que vamos a usar.

Instalación Drivers uso NodeMCU y Wemos D1 Mini

Para conectar las placas de prototipado NodeMCU y Wemos D1 Mini usamos el puerto USB y al contrario que con Arduino donde los drivers ya se instalan con el IDE, en este caso debemos instalar los drivers que emula un puerto serie (COM) en el USB de la placa utilizada.

Para el Wemos D1 Mini es necesario instalar el driver del conversor USB a serie que es el CH340G y excepto para el D1 mini Pro que es el chip CP2104:

Para el NodeMCU es necesario instalar el driver del adaptador USB CP210x de silicon labs:

Preparación IDE Arduino para usar con ESP8266

El ESP8266 dispone internamente de un pequeño procesador, prácticamente es capaz de replicar casi cualquier cosa los Arduinos puedan hacer. Usando el entorno de programación y el lenguaje de programación de Arduino podemos programar un ESP8266 cargando un firmware programado por nosotros mismo. Esto permite que la CPU ESP8266 y sus componentes Wi-Fi sean programados como cualquier otro dispositivo Arduino.

  • Puedes desarrollar con el mismo IDE que ya conoces
  • La comunidad ha hecho un Cross compiler, de forma que prácticamente utilizas los mismos comandos que utilizas con Arduino.
  • Puedes programar el procesador de tu ESP8266 exactamente como si fuera un Arduino con los mismos comandos, y en lo que se refiere a la WIFI, puedes olvidarte de los comandos AT, porque incluye una serie de librerías, que imitan la librería WIFI de Arduino con lo que se pueden reutilizar muchos programas hechos para Arduino y compilarlos para un ESP8266.  

El Arduino Core ESP8266 está disponible a través de GitHub: https://github.com/esp8266/Arduino

Reference de Arduino core para el ESP8266:

Listado de URLs para soporte de tarjetas no oficiales: https://github.com/arduino/Arduino/wiki/Unofficial-list-of-3rd-party-boards-support-urls

Podemos instalar el soporte a terceros en nuestro IDE simplemente añadiendo el texto “http://arduino.esp8266.com/stable/package_esp8266com_index.json” en propiedades:

Y luego desde el gestor de tarjetas dar a instalar al soporte para ESP8266.

Blink con ESP8266

Una vez preparado nuestro IDE de Arduino para programar placas con ESP8266, podemos probar que funciona. Para ello vamos a probar blink en el Wemos D1 Mini y en el NodeMCU.

Paso 1: Abrir el ejemplo blink del IDE de Arduino:

void setup()
{ pinMode(LED_BUILTIN, OUTPUT); }

void loop()
{ digitalWrite(LED_BUILTIN, HIGH);
delay(1000);
digitalWrite(LED_BUILTIN, LOW);
delay(1000);
}

Paso 2: seleccionar la tarjeta que vamos a programar

  • Wemos R2 & D1 mini
  • NodeMCU 1.0 (ESP-12E module)

Paso 3: Cargar el programa y comprobar que el led integrado funciona.

Ejercicio Propuesto

Revisar los ejemplos para ESP8266 que aparecen en el IDE y ejecutar el scanner de redes wifi llamado “WifiScan”.