lunes, 5 de marzo de 2018

Programación directa del módulo ESP8266 con Arduino UNO o NANO

Buenas a todos!!!
Ultimamente no ando mucho por el blog ya que he estado liado con otros proyectos de mi otra web
lamaquetade.infotronikblog.com y un programa para Android llamado DCCpp Cab, para el control de maquetas ferroviarias en sistema digital.


ESP8266 con divisor de tensión en RX
y listo para ser usado como servidor
webSockets
La central utiliza la comunicación serial para recibir y mandar los datos y ahí es donde entra el
ESP8266 y aunque ya lo había usado en algunos proyectos tales como:
Como actualizar el firmware del ESP8266 con Arduino Nano.
Comandos AT para modulo ESP8266.
Arduino ESP8266 servidor web con DTH11 y sensor de humedad en tierra.
Pero en todos estos proyectos siempre programo Arduino para que sea él el que se comunica y daba las ordenes al ESP8266 tales como la red wifi, SSID y Password.
De la siguiente manera, todas esas ordenes quedaran guardadas directamente en la memoria del ESP8266.
Manos a la obra, ¿que necesitamos?

Antes de montar ningún circuito, tenemos que instalar en el IDE de Arduino  para ello lo primero es abrir el IDE de Arduino e ir a "archivos ==> Preferencias":




Una vez estemos en Preferencias tenemos que incluir esta URL http://arduino.esp8266.com/stable/package_esp8266com_index.json en el apartado  "Gestor de URL's Adicionales de tarjeta" tal y como aparece en la siguiente captura de pantalla:


Clickamos en "Ok" y ahora vamos a añadir los drivers para el ESP8266, para esto tenemos que ir a "Herramientas ==> Placa: ==> Gestor de tarjetas".


 Una vez aquí pondremos ESP en el buscador e instalamos el paquete que esta señalado en la captura: "esp8266 by ESP8266 Community" y lo instalamos.


 Una vez hayamos hecho esto, tenemos que reiniciar el IDE de Arduino para que los cambios tengan efecto.

Para este proyecto hará falta también la librería arduinoWebSockets que va a ser la encargada de comunicar el ESP8266 con otros dispositivos mediante el protocolo " ws:// "

También necesitaremos el Arduino.git aquí voy a poner la instalación en Linux ya que es el sistema operativo que uso. Primero vamos a la carpeta de instalación de Arduino, es decir donde están los archivos del programa que NO es la carpeta Arduino que tenemos en la carpeta personal o Documentos. En mi caso es esta "/opt/arduino-1.8.5". Abrimos la consola y escribimos:
  • cd hardware
    mkdir esp8266com
    cd esp8266com
    git clone https://github.com/esp8266/Arduino.git esp8266
    • y descargamos las herramientas binarias (se necesita Python 2.7)
    cd esp8266/tools
    python get.py
    • Reiniciamos Arduino.

Y con esto ya tenemos todo el software necesario para programar la memoria interna del ESP8266. Parece un poco lioso así de primeras, lo bueno es que una vez este todo instalado no lo tendremos que hacer otra vez.

Para poder programar el ESP8266 necesitaremos tener un dispositivo FTDI para poder programar el ESP. Cómo en el momento de hacer estas pruebas no disponía de ninguno, he usado el mismo Arduino como puente entre el PC y el ESP8266 quedando de la siguiente manera: PC ->Arduino-->ESP8266

NOTA: Este es el esquema que me ha funcionado a mí, ya que no disponía de una fuente de alimentación a 3,3v que es casi imprescindible para poder programar correctamente el software dado que la alimentación de 3,3v de Arduino solo da 50mA y el ESP8266 necesita algo más (200 mA) para ser programado correctamente. Además los pines RX y TX funcionan a 5V para la comunicación, con TX no tendremos problemas pero con RX podríamos tener algún problema así que si usas este esquema, queda bajo tu responsabilidad, a mi me ha funcionado.

Una vez tengamos el ESP8266 listo para programar. Ahora solo queda cargar el sketch en el ESP8266, con lo que tendremos que selecciona la placa que necesitemos tal como si fuera un Arduino UNO o NANO, en mi caso estoy utilizando un ESP8266 genérico así que esa es la placa que debo utilizar:


Una vez seleccionada el proceso es el mismo que para UNO o NANO, una vez todo listo le damos a "subir" y se cargara el programa en la memoria interna del ESP8266:





Bueno hasta aquí llega esta pequeña guía sobre como programar el modulo ESP8266 espero que hayáis tenido suerte con el tema de los voltajes y ya tengáis programado vuestro Sketch.

Fuentes: 
información general: TrainsElectronics.com.
Circuito programador: Github.com (Último comentario).

Sketch:
Sketch DCC++ ESP8266: Seccion de descargas ITB.

Saludos a todos!!!!!

2 comentarios :

  1. Respuestas
    1. Buenas, si, aunque puede que lo hayan mejorado desde que publique el artículo. Pero tal y como está, funciona perfectamente, Saludos!!!

      Eliminar