Tutorial del Internet de las Cosas y Bluetooth con el ESP32
Juan Antonio Villalpando
Volver al índice del tutorial
____________________________
300.- ESP8266. Instalación. IDE Arduino.

- Características de la Tarjeta.
Utiliza una CPU Tensilica L106 32-bit
CPU: Tensilica Xtensa LX3 (32 bit)
Voltaje de operación entre 3V y 3,6V
Corriente de operación 80 mA
Niveles de los terminales: 3,3 V
Protocolos soportados: 802.11 b/g/n (2,4 GHz)
Potencia de salida: 0,15 (W); +19.5dBm en modo 802.11b
Admite tres modos de funcionamiento: AP, STA, STA + Soft-AP
Comunicación tipo de interfaz: SPI, Serial, dos UART (115200 bps)
Frecuencia de Reloj: 80MHz/160MHz
Instruction RAM: 32KB
Data RAM: 96KB
Memoria Flash Externa: 4MB
Pines Digitales GPIO: 17 (pueden configurarse como PWM a 3.3V)
Pin Analógico ADC: 1 (0-1V)
El diodo de la placa corresponde a la salida D4.
Entrada analógica 10-bit (1024 valores posibles)
Entrada ADC (Análogico Digital Convertidor)
digital I/O Pines: 11 x GPIO
All digital IO pins are protected from over-voltage with a snap-back circuit connected between the pad and ground. The snap back voltage is typically about 6V, and the holding voltage is 5.8V. This provides protection from over-voltages and ESD. The output devices are also protected from reversed voltages with diodes.
http://www.esp8266.com/viewtopic.php?f=5&t=5556&start=5#sthash.GUIiDzaX.dpuf



- Esquema de la tarjeta Wemos D1 R2
- Documentación del ESP8266 en inglés.
- Documentación ESP8266-12E
- 0A-ESP8266-Datasheet-EN-v4.3.pdf
- Ejemplos de la librería.
___________________________
- Instalación.
1.- Instalamos el driver:
ch341ser_win.zip
2.- En el IDE de Arduino vamos a Archivo / Preferencias. Pestaña de Ajustes y pegamos esta dirección en Gestor de URLs Adicionales de Tarjetas:
http://arduino.esp8266.com/versions/2.3.0/package_esp8266com_index.json,
http://arduino.esp8266.com/stable/package_esp8266com_index.json (esta es la última que he puesto)
- [Antes estaban aquí: http://downloads.arduino.cc/packages/package_index.json]
3.- Vamos a Herramientas / Placa: / Gestor de tarjetas...
4.- Aparecerá esp8266 by ESP8266 Community
- Pulsamos en More info y luego en el botón de Instalar

- Tardará unos minutos en Descargar definiciones de tarjetas...
6.- Cuando esté descargado, volvemos a Herramientas / Placa y localizamos NodeMCU 1.0 (ESP-12E Module)

- Ya tenemos nuestra tarjeta Wemos D1 R32 preparada para funcionar.
_________________________________
1.- Parpadeo del LED_BUILTIN (D4).

________________________________
- Código.
- En la tarjeta podemos encontrar dos LED azules con los que podemos realizar pruebas, uno es el D4 y está junto al ESP8266, otro es el D5 y está en el centro de la tarjeta nombrado como SCK.
- Observa en esta aplicación que tienen lógica contraria, es decir en LOW uno enciende y el otro apaga.
parpadeo.ino |
// Juan Antonio Villalpando
// kio4.com
// Dos LED en la tarjeta.
#define LED4 D4 // Es el cercano al 8266.
#define LED5 D5 // Es el SCK en la tarjeta.
void setup() {
pinMode(LED4, OUTPUT);
pinMode(LED5, OUTPUT);
}
void loop() {
digitalWrite(LED4, LOW);
digitalWrite(LED5, LOW);
delay(1000);
digitalWrite(LED4, HIGH);
digitalWrite(LED5, HIGH);
delay(500);
}
|
_________________________________
2.- Definir terminales.
- Otra manera de establecer los terminales. mediante #define y mediante int.
parpadeo_2.ino |
#define LED4 D4
// int LED4 = D4;
void setup() {
pinMode(pin5, OUTPUT);
}
void loop() {
digitalWrite(LED4, HIGH);
delay(500);
digitalWrite(LED4, LOW);
delay(500);
}
|
_________________________________
2.- Escanea WiFi cercanos.
- Debe salir un listado de los WiFi cercanos.
- Consulta el Monitor Serie.
scanwifi.ino |
#include "ESP8266WiFi.h"
void setup()
{
Serial.begin(115200);
// Desconecta si por si estuviera como Punto de Acceso.
// WiFi.mode(WIFI_STA);
WiFi.disconnect();
delay(100);
}
void loop()
{
Serial.println("Comienzo de escaneo.");
// WiFi.scanNetworks indicará el número de redes captadas.
int n = WiFi.scanNetworks();
Serial.println("Fin de escaneo.");
if (n == 0) {
Serial.println("No se ha encontrado ninguna red.");
} else {
Serial.print(n);
Serial.println(" redes encontradas.");
for (int i = 0; i < n; ++i) {
// Nombre de red (SSID) y potencia (RSSI).
Serial.print(i + 1);
Serial.print(": ");
Serial.print(WiFi.SSID(i));
Serial.print(" (");
Serial.print(WiFi.RSSI(i));
Serial.println(" dBm)");
delay(10);
}
}
Serial.println("");
// Espera 5 segundos y comienza otro escaneo.
delay(5000);
}
|
___________________________________________________
3.- ¿Qué es RSSI?
- Es el indicador de fuerza de la señal recibida (RSSI por las siglas del inglés Received Signal Strength Indicator ). RSSI en la Wikipedia.
- Si una señal tiene un RSSI de -50 dBm, qué potencia tiene.
- El dBm indica la potencia en decibelios referido a 1 mW.
- Para pasarlo a Watios sería
10^(-50/10) * 10^(-3) = 10 nW
- En España la máxima potencia de WiFi permitida con 2,4 GHz es de 100 mW, esto es 20 dBm.
- La sensibilidad de las estaciones receptoras suele estar por los -100 dBm.
_______________________________________________
- Incluir librerías.
Se puede poner con doble comillas o con < >, según estos criterios:
#include "archivo.h" buscará la librería primero en el directorio donde esté el código .ino de tu aplicación, si no lo encuentra buscará en la carpeta libraríes de Arduino
#include <archivo.h> solo buscará la librería en la carpeta libraríes de Arduino.
- Las librerías suelen estar en: C:\Archivos de Programa(86)\Arduino\libraries

________________________________
- Tutorial sobre ESP8266
https://iotmakervn.github.io/iot-starter-book/
Bit coin
https://min-api.cryptocompare.com/data/price?fsym=BTC&tsyms=EUR
_______________________________
|