Mostrando entradas con la etiqueta ESP8266. Mostrar todas las entradas
Mostrando entradas con la etiqueta ESP8266. Mostrar todas las entradas
22 de noviembre de 2019
Callback Function - Arduino
A partir de C++11 se puede usar funciones invocables sin importar de que tipo sean, es decir, si es puntero de clase o una función suelta.
Ejemplo:
Declaramos un tipo de dato, con los parámetros de la función:
typedef std::function<void(String,String)> IoTOnOffError;
Esto es similar a:
typedef void(*IoTOnOffError)(String,String);
En una clase tenemos la declaración del ejemplo así:
La función/método que guarda el blanco a invocar:
void onError(IoTOnOffError _callback);
Y la variable que tiene el blanco:
IoTOnOffError _error_callback;
Para su invocación se puede llamar usando diferentes maneras, pero hay dos principales, función suelta o que el método corresponda a una clase.
Función suelta:
Se tiene declarada la función:
void error(String source, String error) {
Serial.print(source + ": " + error);
blink();
}
Y solo se inicializa de esta forma:
iotOnOff.onError(error);
De esta forma pasamos el nombre de la función, ya que coincide con la firma de IoTOnOffError
Método que corresponda a una clase:
void IotOnOff::error(String source, String error) {
Serial.print(source + ": " + error);
}
Para inicializar el objeto usamos una funciona lambda, esto crea un método que invocara el llamado con el contexto del objeto:
clase_abc.onError([this](String source, String error) mutable { this->error(source, error); return;});
Ahora el llamado a la función se hace igual en todos los casos, se valida que este inicializada para proceder a su invocación:
if (_error_callback) {
_error_callback("ON_OFF", source + ": " + error);
}
Se debe incluir:
#include <functional>
Notas y Referencias
1 de diciembre de 2016
ESP8266
El ESP8266 es un chip WiFi de bajo consumo y pequeño, desarrollado por una empresa china Espressif, este chip permite desarrollar IOT (Internet of Things). Así, que se puede conectar con cualquier sensor (compatible con Arduino ) a Internet vía WiFi.
Hay otros modelos básicos que incorporan mas GPIO que el inicial, como el ESP-12F
Modelos (prototyping boards):
Para trabajar con el ambiente Arduino se necesita lo siguiente:
Diagrama básico (mínimo) de trabajo (ESP-12):
Notas y referencias:
El ESP8266 se puede usar directamente por medio una interface Serial usando comandos AT, o mas avanzado, usando el ambiente de programación Arduino para re-programarlo.
Existen varios modelos de este chip, el primero denominado ESP-01, fue el inicial.
Hay otros modelos básicos que incorporan mas GPIO que el inicial, como el ESP-12F
Hay otras versiones que ya están diseñadas para conectarlas (micro usb) y programarlas de inmediato, y cuando no se usa una de esas prototyping boards hay que hacer una adecuación mínima para comenzar a trabajar sobre el ESP8266.
Modelos (prototyping boards):
- Adafruit HUZZAH ESP8266 (ESP-12)
- NodeMCU
- WeMos D1
- SparkFun ESP8266 Thing
Para trabajar con el ambiente Arduino se necesita lo siguiente:
- El Arduino IDE de (https://www.arduino.cc).
- Instalar la librería que da soporte al ESP8266 (https://github.com/esp8266/Arduino), esta librerías es OpenSource y mantenida por Ivan Grokhotkov.
- Preparar el Hardware necesario para su conexión.
Diagrama básico (mínimo) de trabajo (ESP-12):
Como subir el programa, se debe poner el esp8266 en modo FLASH, y se realiza de la siguiente forma: Poner GPIO_0 a GND, al mismo tiempo RESET a GND (poner y retirar, o poner un pulsador) y luego retirar el GPIO_0 de GND, y de esta forma el esp8266 entra en modo flash, es decir, pulsar FLASH mantenerlo pulsado mientras se pulsa RESET y soltar ambos.
![]() |
ESP-12F en Protoboard |
Documentación y ejemplos visitar: https://github.com/esp8266/Arduino
Notas y referencias:
Suscribirse a:
Entradas (Atom)