jmgomez-IAA / loogbook

Personal web page
0 stars 0 forks source link

Post Ideas: ESP8266 Lerning #48

Open jmgomez-IAA opened 4 years ago

jmgomez-IAA commented 4 years ago

Tutorial

A Beginner's Guide to the ESP8266

https://aprendiendoarduino.wordpress.com/2017/09/12/que-es-esp8266/

Wemos webserver example

jmgomez-IAA commented 4 years ago

Instalación

Links

https://github.com/esp8266/Arduino#installing-with-boards-manager

Descripcion

Archivo/Preferencias/Gestor URLs de tarjetas adicionales https://arduino.esp8266.com/stable/package_esp8266com_index.json

Herraminetas/Placa/Luego en Gestor de Tarjetas: esp8266 by ESP8266 Community v2.6.3

jmgomez-IAA commented 4 years ago

https://www.luisllamas.es/como-usar-el-spiffs-del-esp8266-con-el-arduino-ide/ http://arduino.esp8266.com/Arduino/versions/2.0.0/doc/filesystem.html https://github.com/esp8266/arduino-esp8266fs-plugin https://www.instructables.com/id/Using-ESP8266-SPIFFS/ ESP8266 Arduino Core Installation Reference Libraries File System

Flash layout
Uploading files to file system
File system object (SPIFFS)
Filesystem information structure
Directory object (Dir)
File object
jmgomez-IAA commented 4 years ago

Web Server

https://techtutorialsx.com/2016/10/22/esp8266-webserver-getting-query-parameters/

jmgomez-IAA commented 4 years ago

RFID http://www.esp8266learning.com/esp8266-rfid-rc522-module-example.php

jmgomez-IAA commented 4 years ago

ESP-8266

Links:

datasheet -> ic_uc_espressif_esp8266ex_datasheet_en

SoC

Algunos de los detalles de hardware del ESP8266 y del ESP12E, y sus diferencias respecto a una placa Arduino.

Procesador

Incorpora un procesador a Tensilica L106 32-bit RISC processor, which achieves extra-low power consumption and reaches a maximum clock speed of 160 M. Lo primero a destacar es que el ESP8266 carece de muchas funciones por hardware que incluyen los procesadores Atmel. Unidos a la gestión del Wifi, el SoC tiene que dividir sus recursos entre todas estas funciones. Aunque es más rápido que un Arduino, es una sobrecarga de trabajo, lo cuál en algunas aplicaciones puede suponer un problema.

Memoria

La memoria disponible depende del modo de ejecucion, en Station Mode o conectado al router la RAM size < 50 kB. La moeria ROM esta ocupada por completo y nos es accesible para el programa de usuario, que debe ir a la flash. Carece de memoria Flash interna. La memoria donde almacenamos el programa se incluye en el módulo, pero fuera del SoC, y se comunican entre si por SPI. Eso significa que hay módulos con distinta cantidad de memoria, y que no podremos usar los pines GPIO que comunican con la memoria (lo veremos a continuación).

Alimentación

La alimentación del ESP8266 es a 3.3V, alimentar un voltaje superior a 3.6V destruirá el SoC. Aunque muchas placas de desarrollo incluyen reguladores de voltaje para poder alimentar la placa a 5V, o desde el USB.

I/O

GPIO

Respecto a si el resto de pines del ESP8266 son tolerantes a 5V, ha habido mucho debate. Según el Datasheet (que cambiaba según versiones) no quedaba muy claro, pero se entendía que no lo eran. Sin embargo, en la actualidad, declaraciones de Espressif y experimentos de usuarios nos permiten decir que los pines GPIO del ESP8266 sí son tolerantes a 5V cuando funcionan como entrada digital..

La corriente máxima que pueden proporcionar o absorber los pines digitales es de 12mA. En comparación, la mayoría de modelos de Arduino pueden suministrar 20-40mA.

UART

I2C

No disponible por Hardware

SPI

ADC

Respecto al conversor analógico digital (ADC) la tensión máxima que pueden registrar es de 0-1V. Suministrar más de 1V al ADC lo dañará. No obstante, algunas placas tienen de desarrollo incluyen divisores para ampliar el rango de 0-3.3V. Tendréis que comprobar en cada placa el rango de medición del ADC.

Reset

El pin CHIP_EN controla el encendido o apagado del SoC, estando encendido cuando está en HIGH. El pin EXT_RSTB controla el Reset del ESP8266, activándose cuando está en LOW.

Módulo ESP12E

El ESP12E es el módulo con SoC ESP8266 más empleado en placas de desarrollo.

Wemos D1 Mini

Es una tarjeta portadora/shield para el modulo ESP12E

Algunas de las principales características:

Pinout

Pin ESP-8266 Pin Función
TX TXD TXD
RX RXD RXD
A0 A0 Analog input (max 3.2V)
D0 GPIO16 IO
D1 GPIO5 IO, PWM, Interrupt, I2C, SCL
D2 GPIO4 IO, PWM, Interrupt, I2C, SDA
D3 GPIO0 IO 10k Pull-up, PWM, Interrupt, I2C
D4 GPIO2 IO 10k Pull-up, PWM, Interrupt, I2C, BUILTIN_LED
D5 GPIO14 IO, PWM, Interrupt, I2C, SCK
D6 GPIO12 IO, PWM, Interrupt, I2C,, MISO
D7 GPIO13 IO, PWM, Interrupt, I2C,, MOSI
D8 GPIO15 IO 10k Pull-down, PWM, Interrupt, I2C,, SS
G GND Ground
5V - 5V
3V3 3.3V 3.3V
RST RST Reset
jmgomez-IAA commented 4 years ago

ESP8266 Pinout

Pin GPIO Input Output Comentarios
D0 GPIO16 No interrupciones No PWM No I2C HIGH durante boot Resistencia Pull-Down Conectar a RST para Wake-Up
D1 GPIO5 OK OK SCL (I2C) (frecuentemente)
D2 GPIO4 OK OK SDA (I2c) (frecuentemente)
D3 GPIO0 Pulled Up OK Boot falla si pulled LOW Conectado a botón FLASH
D4 GPIO2 Pulled Up OK HIGH durante boot Boot falla si pulled LOW Built-in LED TX1
D5 GPIO14 OK OK SLCK (SPI)
D6 GPIO12 OK OK MISO (SPI)
D7 GPIO13 OK OK MOSI (SPI)
D8 GPIO15 Pulled to GND OK CS (SPI) LOW durante boot Boot falla si pulled HIGH No tiene Pull-Up
RX GPIO3 OK RX HIGH durante boot No usable si se usa UART
TX GPIO1 TX OK HIGH durante boot Boot falla si pulled LOW Debug output en boot No usable si se usa UART
A0 ADC0 Analog Input NO  
- GPIO6-11 NO NO Usados por la memoria FLASH