Archivo de la etiqueta: MKR1000

Placas Arduino

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

Un shield es una placa compatible que se puede colocar en la parte superior de los arduinos y permite extender las capacidades del arduino. De estas hablaremos en profundidad más adelante.

Primer Arduino:

Arduino Uno

Web: https://store.arduino.cc/arduino-uno-rev3

Es la placa estándar y la más conocida y documentada. Salió a la luz en septiembre de 2010 sustituyendo su predecesor Duemilanove con varias mejoras de hardware que consisten básicamente en el uso de un USB HID propio en lugar de utilizar un conversor FTDI para la conexión USB. Es 100% compatible con los modelos Duemilanove y Diecimila. Viene con un Atmega328p con 32Kbytes de ROM para el programa.

Este es el Arduino que vamos a usar en el curso.

Esquematico: http://arduino.cc/en/uploads/Main/Arduino_Uno_Rev3-schematic.pdf

Microcontrolador: http://www.atmel.com/devices/atmega328p.aspx

Planos del Arduino UNO: https://www.arduino.cc/en/Main/ArduinoBoardUno#documentation

Arduino Mega

Web: https://store.arduino.cc/arduino-mega-2560-rev3

Es con mucha diferencia el más potente de las placas con microcontrolador de 8 bits y el que más pines i/o tiene, apto para trabajos ya algo más complejos aunque tengamos que sacrificar un poco el espacio. Cuenta con el microcontrolador Atmega2560 con más memoria para el programa, más RAM y más pines que el resto de los modelos.

Esquematico: http://www.arduino.cc/en/uploads/Main/arduino-mega2560_R3-sch.pdf

Microcontrolador: http://www.atmel.com/devices/atmega2560.aspx

Planos del Arduino MEGA: http://www.arduino.cc/en/Main/ArduinoBoardMega2560

Mega ADK es una placa basada en el Mega2560 pero con un USB host adicional para conectar móviles basados en Android:

Web: https://www.arduino.cc/en/Main/ArduinoBoardMegaADK

Getting Started con ADK: https://www.arduino.cc/en/Guide/ArduinoADK

Arduino Ethernet

Web: https://store.arduino.cc/arduino-ethernet-rev3-without-poe

Incorpora un puerto ethernet, está basado en el Arduino Uno y nos permite conectarnos a una red o a Internet mediante su puerto de red.

Arduino Due

Web: https://store.arduino.cc/arduino-due

Arduino con la mayor capacidad de procesamiento, basado en un microcontrolador de 32 bit y arquitectura ARM: Atmel SAM3X8E ARM Cortex-M3 CPU. Este arduino está alimentado a 3.3V y dado que gran parte de los shields, sensores, actuadores para Arduino y compatible son a 5V lo limita, pero cada vez se ven más elementos donde se puede elegir el voltaje entre 3.3 y 5V.

Importante: 12-bit ADC

Microcontrolador: http://www.atmel.com/devices/sam3x8e.aspx

Arduino Leonardo

Web: https://store.arduino.cc/arduino-leonardo-with-headers

La diferencia de este arduino con el resto es que trae un único MCU ATmega32u4 que tiene integrado la comunicación USB, lo que elimina la necesidad de un segundo procesador. Esto tiene otras implicaciones en el compartimento del arduino al conectarlo al ordenador, lo que no lo hace apto para iniciarse con él.

Microcontrolador: http://www.atmel.com/devices/atmega32u4.aspx

Los Arduinos basados en el microcontrolador 32u4 permiten aparecer al Arduino conectado al ordenador como un ratón o teclado nativo, simulando un dispositivo de este tipo.

Getting Started: https://www.arduino.cc/en/Guide/ArduinoLeonardoMicro

Librería MouseKeyboard: https://www.arduino.cc/en/Reference/MouseKeyboard

Arduino Leonardo ETH

Web: https://store.arduino.cc/arduino-leonardo-eth  

Es un Arduino Leonardo con ethernet proporcionado por el controlador W5500. Se trata de la versión actualizada del Arduino Ethernet.

Documentación: http://labs.arduino.org/Arduino%20leonardo%20eth

Getting Started: http://labs.arduino.org/Getting+Started+with+Arduino+Leonardo+Eth

Arduino Micro

Web: https://store.arduino.cc/arduino-micro

También basado en el ATmega32u4 pero mucho más compacto.

Ejemplo de placa para uso de Arduino pequeños con bornas: https://spiercetech.com/shop/home/17-arduino-nano-30-controller-terminal-breakout-board.html

Arduino Mini

Web: https://store.arduino.cc/arduino-mini-05

Versión miniaturizada de la placa Arduino UNO basado en el ATMega328. Mide tan sólo 30x18mm y permite ahorrar espacio en los proyectos que lo requieran. Las funcionalidades son las misma que Arduino UNO. Necesita un programador para conectarlo al ordenador: http://arduino.cc/en/Main/USBSerial

Arduino Yun

El Arduino Yun es un Arduino que es diferente a lo que son el resto de Arduino porque además de llevar un microcontrolador, incorpora un Microprocesador MIPS con un Sistema Operativo Linux embebido. La ventaja que aporta Arduino Yun y sus derivados es que el microcontrolador y el microprocesador están conectado mediante un puerto serie y además Arduino nos ofrece una serie de herramientas/librerías que facilita la interconexión entre ellos.

Arduino Yun (MCU + MP con Linux): https://store.arduino.cc/arduino-yun

Guía con Open WRT: https://www.arduino.cc/en/Guide/ArduinoYun

Guía con LininoOS: https://www.arduino.cc/en/Guide/ArduinoYunLin

Familia MKR

La familia de Arduino MKR son uan serie de placas con un factor de forma diferente al de Arduino mucho más pequeño y basados todos en el microcontrolador de 32 bits de Atmel SAMD21. Estas placas están pensadas principalmente para IoT.

Arduino MKRZero

Web: https://store.arduino.cc/arduino-mkrzero

Primero modelo de la familia MKR y heredero del Arduino Zero.

Arduino MKR1000 WIFI

Web: https://store.arduino.cc/arduino-mkr1000

Versión para IoT con procesador Atmel ARM Cortex M0+ de 32bits ATSAMW25 que es el mismo procesador que Genuino Zero pero con wifi integrado, chip de cifrado y antena integrada.

El ATSAMW25 está compuesto por tres principales bloques:

  • SAMD21 Cortex-M0+ 32bit low power ARM MCU
  • WINC1500 low power 2.4GHz IEEE® 802.11 b/g/n Wi-Fi (mismo que el wifi 101 shield)
  • ECC508 CryptoAuthentication

Arduino MKR FOX 1200

Web: https://store.arduino.cc/arduino-mkrfox1200

Arduino anunciado en abril de 2017. En una placa de desarrollo pensada para el IoT con conectividad Sigfox. Comparte muchas características con otras placas de la familia MKR como em microcontrolador SAM D21 32-bit Cortex-M0+.

Incluye un módulo ATA8520 con conectividad sigfox de amplia cobertura y bajo consumo capaz de funcionar durante 6 meses con dos pilas AA. También incluye una suscripción por dos años a la red Sigfox: http://www.sigfox.com/en

Web: https://blog.arduino.cc/2017/04/18/introducing-the-arduino-mkrfox1200/

Arduino MKR WAN 1300

Web: https://store.arduino.cc/mkr-wan-1300

Presentado el 25 de septiembre de 2017 en la maker faire de NY: https://blog.arduino.cc/2017/09/25/introducing-the-arduino-mkr-wan-1300-and-mkr-gsm-1400/

Arduino + LoRa:

Arduino MKR GSM 1400

Web: https://store.arduino.cc/mkr-gsm-1400

Presentado el 25 de septiembre de 2017 en la maker faire de NY: https://blog.arduino.cc/2017/09/25/introducing-the-arduino-mkr-wan-1300-and-mkr-gsm-1400/

Arduino + GSM:

Accesorios para Arduinos MKR

Otros Arduinos oficiales

Existen aun mas Arduino oficiales:

Otros:

Todos los productos de Arduino: https://www.arduino.cc/en/Main/Products

Arduinos para Wearables

Arduino Lilypad

Web: https://store.arduino.cc/lilypad-arduino-main-board

Diseñado para dispositivos “wearables” y e-textiles. Para coser con hilo conductor e instalarlo sobre prendas.

Más información para fabricar wearable con arduino en: http://lilypadarduino.org/

Otros:

Retirados

Hay modelos retirados, pero la documentación sigue disponible y es posible aun comprarlas por terceros que las fabrican o fabricarlas uno mismo.

Arduino 101

Web: https://store.arduino.cc/genuino-101

Es el sucesor del Arduino UNO con procesador Intel Curie Quark de 32 bit diseñado para ofrecer el mínimo consumo de energía, 384 KB de memoria flash, 80 KB de SRAM, un sensor DSP integrado, bluetooth de baja energía, acelerómetro y giroscopio de 6 ejes.

Video de 101: https://blog.arduino.cc/2016/01/13/unboxing-and-setup-of-arduino-101/

Código Firmware: https://github.com/01org/corelibs-arduino101 que no hace falta instalarlo porque ya viene integrado en el IDE de arduino.cc y desde el gestor de librerías se instala en: C:\Users\<user>\AppData\Local\Arduino15\packages\Intel\hardware\arc32\1.0.5

Review completa del 101: http://www.kitguru.net/components/cpu/james-morris/intel-genuino-101-review/

Intel ha descontinuado la gama de microcontroladores usados en diversos Arduinos, lo que parece el fin de la asociación entre Intel y Arduino, más aun cuando Arduino ha firmado un acuerdo con ARM.

Placas Compatibles Arduino

La marca Arduino está protegida y solo puede usarse por Arduino, pero debido a que se trata de hardware libre, existen multitud de placas disponibles que bien son clones, placas derivadas (forks) u otras placas totalmente independientes pero que la comunidad ha desarrollado el código para poder programarlas con el lenguaje de programación de Arduino.

Cuando hablamos de placas compatibles con Arduino, son aquellas que se pueden programar con el IDE de Arduino.

Listado no oficial de placas de terceros soportadas por el IDE de Arduino: https://github.com/arduino/Arduino/wiki/Unofficial-list-of-3rd-party-boards-support-urls

Funduino

Web: https://www.funduinoshop.com/epages/78096195.sf/en_GB/?ViewObjectPath=%2FShops%2F78096195

Chipkit

Web: http://chipkit.net/

ESP8266

Web: https://espressif.com/en/products/hardware/esp8266ex/overview

Moteino

Web: https://lowpowerlab.com/guide/moteino/

Resumen

Arduino.cc products: https://www.arduino.cc/en/Main/Products

Como distinguir un arduino oficial de una copia: http://arduino.cc/en/Products/Counterfeit

Guía para comparar Arduino:  https://learn.sparkfun.com/tutorials/arduino-comparison-guide

Anuncios

Wifi en Arduino

Wifi

El wifi es un mecanismo de conexión de dispositivos electrónicos de forma inalámbrica. Los dispositivos habilitados con wifi como Arduino, pueden conectarse a internet a través de un punto de acceso de red inalámbrica.

Wi-Fi es una marca de la Alianza Wi-Fi, la organización comercial que adopta, prueba y certifica que los equipos cumplen con los estándares 802.11 relacionados a redes inalámbricas de área local.

  • Los estándares IEEE 802.11b, IEEE 802.11g e IEEE 802.11n disfrutan de una aceptación internacional debido a que la banda de 2,4 GHz está disponible casi universalmente, con una velocidad de hasta 11 Mbit/s, 54 Mbit/s y 300 Mbit/s, respectivamente.
  • En la actualidad ya se maneja también el estándar IEEE 802.11ac, conocido como WIFI 5, que opera en la banda de 5 GHz y que disfruta de una operatividad con canales relativamente limpios. La banda de 5 GHz ha sido recientemente habilitada y, además, no existen otras tecnologías (Bluetooth, microondas, ZigBee) que la estén utilizando, por lo tanto existen muy pocas interferencias. Su alcance es algo menor que el de los estándares que trabajan a 2,4 GHz (aproximadamente un 10 %), debido a que la frecuencia es mayor (a mayor frecuencia, menor alcance).

Existen otras tecnologías inalámbricas como Bluetooth que también funcionan a una frecuencia de 2,4 GHz, por lo que puede presentar interferencias con la tecnología wifi. Debido a esto, en la versión 1.2 del estándar Bluetooth actualizó su especificación para que no existieran interferencias con la utilización simultánea de ambas tecnologías, además se necesita tener 40 000 kbit/s.

Existen varias alternativas para garantizar la seguridad de estas redes. Las más comunes son la utilización de protocolos de cifrado de datos para los estándares wifi como el WEP, el WPA, o el WPA2 que se encargan de codificar la información transmitida para proteger su confidencialidad, proporcionados por los propios dispositivos inalámbricos. La mayoría de las formas son las siguientes:

  • WEP, cifra los datos en su red de forma que sólo el destinatario deseado pueda acceder a ellos. Los cifrados de 64 y 128 bits son dos niveles de seguridad WEP. WEP codifica los datos mediante una “clave” de cifrado antes de enviarlo al aire. Este tipo de cifrado no está recomendado debido a las grandes vulnerabilidades que presenta ya que cualquier cracker puede conseguir sacar la clave, incluso aunque esté bien configurado y la clave utilizada sea compleja.
  • WPA: presenta mejoras como generación dinámica de la clave de acceso. Las claves se insertan como dígitos alfanuméricos.
  • WPA2 (estándar 802.11i): que es una mejora relativa a WPA. En principio es el protocolo de seguridad más seguro para Wi-Fi en este momento. Sin embargo requieren hardware y software compatibles, ya que los antiguos no lo son. Utiliza el algoritmo de cifrado AES (Advanced Encryption Standard).
  • IPSEC (túneles IP) en el caso de las VPN y el conjunto de estándares IEEE 802.1X, que permite la autenticación y autorización de usuarios.
  • Filtrado de MAC, de manera que solo se permite acceso a la red a aquellos dispositivos autorizados. Es lo más recomendable si solo se va a usar con los mismos equipos, y si son pocos.
  • Ocultación del punto de acceso: se puede ocultar el punto de acceso (router) de manera que sea invisible a otros usuarios.

Dispositivos de distribución o de red en wifi son:

  • Los puntos de acceso son dispositivos que generan un set de servicio, que podría definirse como una red wifi a la que se pueden conectar otros dispositivos. Los puntos de acceso permiten, en resumen, conectar dispositivos de forma inalámbrica a una red existente. Pueden agregarse más puntos de acceso a una red para generar redes de cobertura más amplia, o conectar antenas más grandes que amplifiquen la señal.
  • Los repetidores inalámbricos son equipos que se utilizan para extender la cobertura de una red inalámbrica, éstos se conectan a una red existente que tiene señal más débil y crean una señal limpia a la que se pueden conectar los equipos dentro de su alcance. Algunos de ellos funcionan también como punto de acceso.
  • Los enrutadores inalámbricos son dispositivos compuestos, especialmente diseñados para redes pequeñas (hogar o pequeña oficina). Estos dispositivos incluyen, un enrutador (encargado de interconectar redes, por ejemplo, nuestra red del hogar con Internet), un punto de acceso (explicado más arriba) y generalmente un conmutador que permite conectar algunos equipos vía cable (Ethernet y USB). Su tarea es tomar la conexión a Internet, y brindar a través de ella acceso a todos los equipos que conectemos, sea por cable o en forma inalámbrica.

Los estándares 802.11b y 802.11g utilizan la banda de 2,4 GHz. En esta banda se definieron 11 canales utilizables por equipos wifi, que pueden configurarse de acuerdo a necesidades particulares. Sin embargo, los 11 canales no son completamente independientes (un canal se superpone y produce interferencias hasta un canal a 4 canales de distancia). El ancho de banda de la señal (22 MHz) es superior a la separación entre canales consecutivos (5 MHz), por eso se hace necesaria una separación de al menos 5 canales con el fin de evitar interferencias entre celdas adyacentes, ya que al utilizar canales con una separación de 5 canales entre ellos (y a la vez cada uno de estos con una separación de 5 MHz de su canal vecino) entonces se logra una separación final de 25 MHz, lo cual es mayor al ancho de banda que utiliza cada canal del estándar 802.11, el cual es de 22 MHz. Tradicionalmente se utilizan los canales 1, 6 y 11, aunque se ha documentado que el uso de los canales 1, 5, 9 y 13 (en dominios europeos) no es perjudicial para el rendimiento de la red.

Esta asignación de canales usualmente se hace sólo en el Punto de acceso, pues los “clientes” automáticamente detectan el canal, salvo en los casos en que se forma una red “Ad-Hoc” o punto a punto cuando no existe punto de acceso.

Canales en 802.11 (wifi) frente a 802.15.4 (zigbee):

Y dentro del espectro electromagnético:

Además, el 802.11n puede utilizar la banda de 5 GHz, que es casi siempre menos concurrida y con menos interferencia que la banda de 2,4 GHz. Pero también funciona en 2,4 GHz, y los clientes 802.11n pueden asociarse con facilidad allí. La Tabla 1 muestra las frecuencias disponibles para los diferentes tipos de clientes inalámbricos.

IEEE 802.11ac (también conocido como WiFi 5G o WiFi Gigabit) es una mejora a la norma IEEE 802.11n, se ha desarrollado entre el año 2011 y el 2013, y finalmente aprobada en enero de 2014.

El estándar consiste en mejorar las tasas de transferencia hasta 433 Mbit/s por flujo de datos, consiguiendo teóricamente tasas de 1.3 Gbit/s empleando 3 antenas. Opera dentro de la banda de 5 GHz, amplía el ancho de banda hasta 160 MHz (40 MHz en las redes 802.11n), utiliza hasta 8 flujos MIMO e incluye modulación de alta densidad (256 QAM).

A un Arduino es posible añadirle conectividad Wifi de forma muy sencilla y ampliar las posibilidades de este microcontrolador con comunicación inalámbrica Wifi.

Hay varias formas de añadir hardware Wifi a Arduino, ya sea con un shield, una breakout board específica, con microcontroladores que tenga wifi integrado o con placas Arduinos que tenga chip wifi en la misma placa. Veamos varios casos de estos tipos, como conectarlos y usarlos, así como las librerías a usar en cada caso.

Buena parte de los visto en Ethernet con Arduino, es válido para wifi, puesto que el protocolo tcp/ip usado es el mismo y solo cambia el medio de comunicación. Trasladar un proyecto de ethernet a wifi es sencillo, solo cambiando la librería para usar el hardware y adaptar los comando en función de los métodos que tengan las librerías.

Wifi 5G

La banda de frecuencia de 5GHz es muy diferente a la de 2.4GHz. Como se puede ver en la siguiente ilustración, ofrece mucho más espacio de frecuencia, que proporciona hasta 25 canales posibles. Como se dará cuenta, sin embargo, hay muchas advertencias a la utilización de 5GHz, y el número de canales configurables en los puntos de acceso pueden ser significativamente menos de 25.

Esta ilustración muestra los canales de 5GHz WiFi disponibles en la actualidad en los diferentes anchos de canal. Cortesía de Security Uncorked

Lo más evidente es el esquema de numeración distinto. El primer canal de conexión WiFi es del 36 y el último es el 165. Sin embargo, no todos los canales están disponibles. En lugar de permitir que usted elija cada canal consecutivo (36, 37, 38, etc.), los dispositivos WiFi están configurados para funcionar solo en canales que no se superponen (36, 40, 44, etc.) si se utilizan los canales 20MHz legados. Todos los canales configurables están separados entre sí por cuatro canales, pero hay lagunas (como el salto del canal 64 al 100) debido a que el espacio de frecuencia dado a WiFi no es totalmente continuo.

WiFi Shield

El WiFi Shield de Arduino conecta Arduino a Internet de forma inalámbrica.

Toda la información sobre este Shield en :

Y los datasheet de los integrados:

Para conectarte al 32UC3: http://arduino.cc/en/Hacking/WiFiShield32USerial

Y la librería para manejar el shield en: http://arduino.cc/en/Reference/WiFi

Actualizar su firmware: http://arduino.cc/en/Hacking/WiFiShieldFirmwareUpgrading

Wifi library:

Un proyecto hecho con Ethernet pasarlo a wifi con el wifi shield, simplemente se trata de cambiar las líneas de código de la parte de red de la librería ethernet a las equivalentes de la librería wifi.

Ejercicio servidor web para encender y apagar led: https://github.com/jecrespo/Aprendiendo-Arduino/tree/master/Ejercicio27-Boton_Mejorado_WIFI

WiFi Shield 101

Arduino WiFi Shield 101 es un shield potente para aplicaciones IoT con autenticación criptográfica, desarrollado con ATMEL, que conecta la placa Arduino a Internet de forma inalámbrica. La conexión a una red WiFi es simple, no se necesita ninguna configuración adicional además del SSID y la contraseña. El WiFi Shield 101 viene con una biblioteca fácil de usar que permite conectar la placa Arduino a Internet con pocas instrucciones. Como siempre, cada elemento de la plataforma – hardware, software y documentación está libremente disponible y de código abierto. Se basa en el módulo Atmel SmartConnect-WINC1500, compatible con la norma IEEE 802.11 b/g/n

Características:

  • Operating voltage both 3.3V and 5V (supplied from the host board)
  • Connection via: IEEE 802.11 b/g/n for up to 72 Mbps networks
  • Encryption types: WEP and WPA2 Personal
  • Support TLS 1.1 (SHA256)
  • Connection with Arduino or Genuino on SPI port
  • Onboard CryptoAuthentication by ATMEL

Web del producto https://www.arduino.cc/en/Main/ArduinoWiFiShield101

La de Adafruit https://www.adafruit.com/products/2891

El módulo wifi WINC1500 integrado es un controlador de red capaz de protocolos TCP y UDP. El Wifi Shield 101 también cuenta con un hardware de seguridad de cifrado / descifrado proporcionado por el chip ATCC508A CryptoAuthentication que es un método ultra seguro para proporcionar un acuerdo clave para el cifrado/descifrado, diseñado específicamente para el mercado de IoT.

Datasheet módulo wifi: http://www.atmel.com/devices/atwinc1500.aspx

El pin digital 7 se utiliza como un pin de handshake entre el shield WiFi 101 y Arduino, y no se debe utilizar. El pin digital 5 se utiliza como pin RESET entre el shield WiFi 101 yArduino, y no debe utilizarse.

Tener en cuenta que Uno + WiFi Shield 101 no es compatible con la biblioteca Serial de software. El WiFi Shield 101 usa una biblioteca que es muy compleja y ocupa más del 60% de la memoria disponible, dejando poco espacio para los sketches. Tener en cuenta que para un uso básico es compatible con el Uno, pero para proyectos complejos se recomienda usar el shield WiFi 101 con un Arduino / Genuino Zero, 101 o Mega 2560.

El Wifi Shield 101 se usa con la librería Wifi101 https://www.arduino.cc/en/Reference/WiFi101

Ejemplo sencillo por con el wifi shield 101: https://www.arduino.cc/en/Tutorial/Wifi101SimpleWebServerWiFi

Más información:

Arduino MKR100

Es un nuevo Arduino con un microcontrolador que lleva integrado wifi y mucho más. El Arduino MKR1000 ha sido diseñado para ofrecer una solución práctica y económica buscando conectividad WiFi para gente con mínima experiencia en redes.

Este Arduino está basado en la MCU ATSAMW25 especialmente diseñado para proyectos IoT. Este SoC está compuesto de tres bloques principales:

  • SAMD21 Cortex-M0+ 32bit low power ARM MCU
  • WINC1500 low power 2.4GHz IEEE® 802.11 b/g/n Wi-Fi
  • ECC508 CryptoAuthentication

Microcontrolado ATSAMW25 http://www.atmel.com/devices/ATSAMW25.aspx

Este Arduino también incluye un circuito para cargar baterías Li-Po y utilizar el MKR1000 alimentándose con este tipo de baterías.

IMPORTANTE: Arduino MKR1000 funciona a 3.3V, el máximo voltaje que pueden tolerar los pines es de 3.3V y aplicar voltajes mayores podría dañar la placa. Mientras que una salida de 5V digital es posible, para una comunicación bidireccional de 5V es necesario level shifting.

Datasheet MCU: http://www.atmel.com/devices/ATSAMW25.aspx  

Esquemático: https://www.arduino.cc/en/uploads/Main/MKR1000-schematic.pdf

Pinout:

Getting Started https://www.arduino.cc/en/Guide/MKR1000

Para programar el MKR1000 es necesario añadir al IDE de Arduino soporte para esta placa, ya que el microcontrolador no es un AVR sino un ARM Cortex-M0 de 32 bits. SAMD Core.

El MKR1000 y Arduino Zero tienen unas librerías específicas por su microcontrolador:

Ejemplo NTP en MKR1000: https://github.com/jecrespo/Aprendiendo-Arduino/tree/master/Ejercicio39-NTP_MKR1000

ESP8266

El ESP8266 es un chip Wi-Fi de bajo coste con pila TCP/IP completa y capacidad de MCU (Micro Controller Unit) producida por el fabricante chino Espressif Systems, con sede en Shanghai.

El chip primero llegó a la atención de los fabricantes occidentales en agosto de 2014 con el módulo ESP-01. Este pequeño módulo permite a los microcontroladores conectarse a una red Wi-Fi y realizar conexiones TCP/IP sencillas utilizando comandos de tipo Hayes.

En siguientes capítulos se tratará en profundidad.

ESP32 el sucesor de ESP8266

ESP32 es una serie de bajo costo, sistema de bajo consumo de energía en un microcontrolador chip con Wi-Fi integrado y Bluetooth de modo dual. La serie ESP32 utiliza un microprocesador Xtensa LX6 de Tensilica de doble núcleo.

Características:

  • Processors:
    • CPU: Xtensa dual-core (or single-core) 32-bit LX6 microprocessor, operating at 160 or 240 MHz and performing at up to 600 DMIPS
    • Ultra low power (ULP) co-processor
  • Memory: 520 KiB SRAM
  • Wireless connectivity:
    • Wi-Fi: 802.11 b/g/n/e/i
    • Bluetooth: v4.2 BR/EDR and BLE
  • Peripheral interfaces:
    • 12-bit SAR ADC up to 18 channels
    • 2 × 8-bit DACs
    • 10 × touch sensors
    • Temperature sensor
    • 4 × SPI
    • 2 × I²S
    • 2 × I²C
    • 3 × UART
    • SD/SDIO/MMC host
    • Slave (SDIO/SPI)
    • Ethernet MAC interface with dedicated DMA and IEEE 1588 support
    • CAN bus 2.0
    • IR (TX/RX)
    • Motor PWM
    • LED PWM up to 16 channels
    • Hall effect sensor
    • Ultra low power analog pre-amplifier
  • Security:
  • Power Management
    • Internal LDO
    • Individual power domain for RTC
    • 5uA deep sleep current
    • Wake up from GPIO interrupt, timer, ADC measurements, capacitive touch sensor interrupt

El ESP32 trae ventajas muy claras frente al modelo anterior, tales como la inclusión de un segundo procesador (es decir, posee 2 núcleos). Además  se ha añadido la posibilidad de utilizar Bluetooth Low Energy (BLE), el cual es un atractivo para proyectos de tipo IoT. Se ha expandido la cantidad de GPIOs; y ahora se cuentan con más pines de lecturas análogas a digitales (ADC). Se incluyeron dos pines de salida digital a análoga (DAC), lo cual es sumamente atractivo para ciertos proyectos con audio. Se debe resaltar el hecho que hasta ahora, casi ningún modelo de Arduino o microcontrolador similar posee un DAC integrado.

Al poseer un segundo núcleo, este se dedica únicamente para manejar los eventos de WiFi (por defecto), aunque se le pueden asignar tareas específicas. Esto permite una ventaja contra el ESP8266, el cual tiene que detener ciertos eventos para procesar las actividades del WiFi. Otra de las ventajas es la posibilidad de utilizar más sensores de lecturas analógicas sin la necesidad de utilizar multiplexores.

Comparativa de especificaciones:

Pinout