Objetivos

 

  • Presentar la familia WeMos D1.
  • Al menos la D1 y la D1 mini
  • Mostrar como programarlos.
  •  

    La WeMos D1

     

    No cabe duda de que los chips ESP8266 han sido una autentica revelación en el mercado de los WIFI sencillos y más importante aún, baratos. Cuando miro el Google Analitics para ver qué cosas son lo que más os interesan, de esta vuestra casa, las páginas relativas al ESP8266 suelen ser siempre las primeras en la lista.

    Hace algo más de un año, conseguir que tu Arduinillo se conectara a la WIFI, suponía rascarte el bolsillo hasta encontrar unos 70E además de  tu Arduino.

    Pero con la aparición delos ESP8266 empezaron a aparecer multitud de modelos sencillos basados en el, de modo que conseguir una conexión básica era sencillo y por poco más de 5€, lo que ha sido toda una revolución sin duda.

    Pero como la felicidad nunca es completa, el fabricante chino de este chip se prodigó sacando al mercado toda una colección de modelos con diferentes pines hasta conseguir que tuviéramos una empanada mental de tamaño extra luxe.

    Y no me extraña porque hacía falta dedicar un rato al tema para entender que a pesar de los infinitos módulos de montaje que nos vendían como cosas distintas, el chip era siempre el mismo y la diferencia correspondía solamente a la montura en la que se soldaba el chip base.

    Las características eran espectaculares. Un  SOC (System On Chip o procesador central) de 32 bits a 160 MHz con RAM y EEPROM mas el stack WIFI completo por unos 5€ era algo que nos atraía como moscas a la miel.

    Pero como cuestión de principio, uno ya ha aprendido suficientes lenguajes de programación y estructuras de micro procesadores a lo largo de mi vida, como para salir corriendo a aprender otro que aún no había demostrado que fuese a permanecer.

  • Muchos buenos productos son enterrados por las arenas del tiempo sin dejar más rastro que la cara de memo que se te queda después de dedicarle unos cuantos cientos de horas.
  • De esto se yo un rato, he dedicado muchas horas a cantidad de productos prometedores que se fueron al vertedero a pesar de las mejores promesas técnicas.
  • Al final es lo que se vende lo que permanece y eso raramente es lo mejor técnicamente, aunque os parezca asombroso.

    Conociendo las WeMos D1

  •  

    Para empezar podemos decir que esta placa está gobernada por un ESP8266 que se encarga de las tareas de procesamiento y del control de WIFI tranquilamente, todo en un único chip, que si nos leei de vez en cuando os sonará ya de sobra.

    Vista de distribucion de pines

    Las características principales de la placa:

  • 11 entradas/ salidas digitales.
  • 1 entrada analógica.
  • Conector micro USB
  • Distribución de pines tipo Arduino UNO.  Microcontroller ESP-8266EX Operating Voltage 3.3V Digital I/O Pins 11 Analog Input Pins 1 Clock Speed 80MHz/160MHz Flash 4M bytes

     

    No quiero comparar, que siempre me dijeron que era muy feo, pero este es un procesador de potencia similar a un DUE, no a un UNO y eso a 80 MHz que si lo subimos a 160 MHz, no te digo y además incluye WIFI, por una fracción del precio.

    Aparentemente no le falta nada, e incluye tanto I2C como SPI y una puerta analogica de 3.3V

    Pin Function ESP-8266 Pin
    D0 RX GPIO3
    D1 TX GPIO1
    D2 IO GPIO16
    D3 (D15) IO, SCL GPIO5
    D4 (D14) IO, SDA GPIO4
    D5 (D13) IO, SCK GPIO14
    D6 (D12) IO, MISO GPIO12
    D7 (D11) IO, MOSI GPIO13
    D8 IO, Pull-up GPIO0
    D9 IO, Pull-up, BUILTIN_LED GPIO2
    D10 IO, Pull-down,SS GPIO15
    A0 Analog Input A0

    Fíjate que esta placa dispone de capacidad PWM en todos los pines digitales ya además dispone de I2C y SPI, pero todos los pines son de 3.3V incluyendo el convertido analógico al digital.

    El fabricante pone una nota diciendo que en esta tarjeta todos los pines soportan interrupciones, SPI e I2C, además de PWM excepto el pin2, lo que es un bonus espectacular.

    Además esta placa soporta la programación OTA (Over The Air) es decir sin hilos directamente a través del WIFI, algo que habrá que investigar.

     

    Programando la WeMos D1

     
     

    La gran virtud esta placa es que incorpora un ESP8266 con los pines de Arduino, lo que nos resulta mucho mas sencillo de hacernos con ella, por lo familiar de todo y en principio debería correr con cualquier Shield que acepte 3.3V (Que deberían ser todos) y también compilar sin demasiados problemas las librerías existentes.

  • Mucho cuidado aquí. Aunque la buena gente que se ha dejado los cuernos trabajando para nosotros haciendo las librerías y el pluggin Arduino, han puesto todo su cuidado en duplicar las llamadas a las librerías estándar, no os fiéis demasiado hasta que no lo probéis cuidadosamente.
  • Al final son diferentes procesadores con diferentes directivas y poco a poco se irá puliendo todo, pero los errores en esto son inevitables y conviene no dar por supuesto que todo va a funcionar a la primera.
  • Cómprate una y empieza a probar, pero no supongas de entrada que todo funcione y luego te quejes amargamente de que te hemos engañado. No te fíes de nadie (Y mucho menos de nosotros que somos bien conocidos por frecuentar bares y lugares dudosos a deshoras) 
    Para empezar el fabricante pone a nuestra disposición una buena colección de ejemplos que podéis descargar aquí , pero siguiendo la costumbre imbécil habitual, no proporciona ninguna descripción de ellos y hay que ajustarse a lo que podemos sacar leyendo los programas y aun así hay mucha información.

    Hay ejemplos básicos para hacer el blinking led y fadding en LEDs (Ajustar el brillo) así como la forma de leer la puerta analógica. Incluye varios ejemplos de lo más interesantes como mover un servo y mucho más útil como implementar un Ticker o interrupción programada cada cierto tiempo para llamar a una de nuestras funciones, además del ejemplo adaptado del I2C scanner que ya vimos en su día para explorar el I2C en busca de dispositivos conectados.

    También tenemos un ejemplo de cómo leer un sensor de temperatura Dallas DS18x20 y varios ejemplos de cómo usar diferentes Shield que sospecho no son los que esperáis sino unos pequeñajos que el mismo fabricante proporciona, pero que en cualquier caso nos proporcionara pistas sobre el asunto.

    Lo asombroso es no proporcionan ni un joido ejemplo de cómo acceder y usar la WIFI interna. Si, ya sabemos que se supone que el Shield y el ESP8266 es 100% compatibilice con los ejemplos oficiales del WIFI Shield Arduino.

  • Que ya que estamos puedes encontrar aquí:
  • https://www.arduino.cc/en/Guide/ArduinoWiFiShield.
  • https://www.arduino.cc/en/Tutorial/WiFiWebServer. [/fancy-ul] [/three-fourth]
  • Pero uno echa de menos que hubieran colocado aquí unos cuantos ejemplos probados y que pudiéramos revisar para aprender.

    Vamos a empezar programando algo rápido como un blinking LED para variar ya acostumbrarnos a la placa.

    Tenemos que empezar instalado el pluggin IDE para el ESP8266 (los que no lo hayáis instalado aun), y podéis hacerlo leyendo la sesión que dedicamos al asunto aquí.

    Además estas placas utilizan, como no, el chip CHG340 por lo que si aún no habéis instalado el driver correspondiente podéis hacerlo descargándolo de aquí ch341ser_win (Ya estáis tardando, porque os lo vais a encontrar en todos los sitios)

    • Los amigos de Apple podéis encontrar aquí el driver correspondiente. Los de Linux no lo necesitais porque suelev venir de fábrica.

    Y ahora conectad vuestro flamante WeMos D1 a un USB y seleccionad la placa correspondiente:

    Arduino IDE

    [one-fourth]  [/one-fourth][three-fourth last][margin value=»5″ /][fancy-ul style=»rounded-tick»]

    [three-fourth last][margin value=»5″ /][fancy-ul style=»rounded-tick»]

    • Os fijareis que ahora marca la D1 R1 como retirada porque la nueva R2  que acaba de salir, es lo mismo pero incluye además, con una modificación para que junto con Arduino se le pueda cargar NodeMCU (Que es otro lenguaje similar a Arduino pero pensado para la Web)
    • También aparece las WeMos D1 mini de la que hablaremos enseguida.. [/fancy-ul] [/three-fourth]

    Seleccionad ahora el puerto serie en el que se os haya instalado la placa y así como sin querer, fijaros que podemos variar la velocidad de la CPU y si es preciso mejorarla.

    Wemos D1

    Vamos a volcar un Blinking LED como este para hacer boca:

    void setup()
       {  pinMode(BUILTIN_LED, OUTPUT); // Onboard LED
          Serial.begin(9600);
       }
    
    void loop()
       { digitalWrite(BUILTIN_LED, HIGH);  // turn on LED with voltage HIGH
         delay(1000);                      // wait one second
         digitalWrite(BUILTIN_LED, LOW);   // turn off LED with voltage LOW
         delay(1000);                      // wait one second
         Serial.println(BUILTIN_LED);
       }

    Enseguida veréis parpadear la luz interna, que como curiosidad no está conectado al pin 13 sino al pin 2.

     

    WeMos D1 mini

     

    Hay una variante de esta misma placa con muchos menos pines pero las mismas posibilidades y de mucho menor tamaño ideal para pequeños proyectos que requieran poco tamaño y WIFI, que se llama WeMos D1 mini.

    [one-half]

    Vista superior

    [/one-half]
    [one-half last]

    Vista inferior

    [/one-half]

    Es una placa bastante minúscula (Tened en cuenta que el cable de la foto es un micro USB )y con muy buena pinta que está pidiendo a gritos usarla en algo para hacer pruebas con sensores y enviando datos a través de WIFI. Aquí os dejo el pinout:

    pin out

    Son al final una buena solución para usar los ESP8266 de una manera cómoda y bien empaquetada que nos evite los dolores de cabeza habituales de que pines hay que colocar o dejar. La placa viene completa y lista para usar directamente desde le IDE Arduino sin más historias, lo que resulta una novedad de lo mas bienvenida y casi apetece decir eso tan castellano de «Dios mio. Por fin»

    Aunque seguro que habrá cosas que fallarán, son unas placas de lo más curiosas y recomendables si queréis pelearos con los WIFI baratos y los ESP8266, os recomiendo que empecéis por aquí y os olvidéis inicialmente de ESP01 y demás. Ya tendréis tiempo de usar chips cuando estáis diseñando una placa integrada.

    Al final estas placas pueden ser una muy buena solución para enredar con los ESP8266 y las WIFI de un modo sencillo y sin problemas de pines raros y puñetas similares.

    Aun no las he probado suficiente y desde luego me he encontrado varios shield de pantallas TFT que no funcionan porque necesitan los pines A4 y A5 y otros como el Shield keypad que necesita alimentacion a 5V y sencillamente no parece ir, pero para conectar sensores y cosas asi deberia funcionar bastante bien si podemos aceptar que es de 3.3V

     

    Resumen de la sesión

     

  • Presentamos las nuevas placs WeMos basadas en los chips WIFI ESP8266.
  • Presentamos los modelos D1 y el D1 mini.
  • Vimos que podemos progranmarlo directamente desde el IDE Arduino sin mas que instalar el pluggin IDE
  • VImos com programar el mas sencillo ejemplo de blinking LED. [/three-fourth][margin value=»5″ /]
  •   

    Deja una respuesta