Node MCU es una plataforma para el desarrollo de proyectos IoT que integra el famoso chip ESP8266, el cual se ha extendido enormemente debido a su facilidad para desarrollar proyectos open source que pueden ademas pueden involucrar el IoT. Esta placa destaca porque integra capacidades de comunicación via WiFi , conteniendo en su interior un microprocesador que puede ser programado fácilmente usando el conocido lenguaje de programación Lua o bien vía Arduino IDE.
Obviamente ante todo no podemos perder de vista su bajisimo precio comparados con otras opciones mucho mas potentes como el ESP32 ( que es su sucesor y mejora en todo excepto en el precio a esta), pero en todo caso para muchos proyectos de IOT es mas qeu suficinete, pues no debemos olvidar que incluye el modulo wifi integrado y un bus GPIO para conectar dispositivos de E/S. Ademas se puede programar con el sistema Arduino lo cual nos aporta un fantástico IDE y un sinfin de manuales y ejemplos de desarrollo.
Este modulo es Ideal como una solución independiente en lugar de Arduino además de Wi-Fi integrado siendo fácil de programar a través del IDE de Arduino (como vamos a ver ) , al igual que un Arduino. Todos los periféricos con bus I2C puede unirse,por ejemplo Pantallas OLED, pantallas LCD, temperatura, presión, sensores de humedad pueden ser conectados en paralelo. También se puede conectar múltiples DS18B20
Sin embargo, sólo hay una entrada analógica y salida y por ejemplo algunas pantallas táctiles no se pueden conectar con ella.
¿Se pregunta cómo empezar a desarrollar código con su económico ESP8266 ?
Los pasos a seguir para conectar un ESP8266 son los siguientes:
Instalación del IDE de Arduino.Si aun no lo tiene instalado ,se puede hacer desde aqui
Es necesario instalar el controlador USB requerido en su ordenador para que pueda programar el ESP8266. Independientemente de la opción de firmware que elijamos, primero necesitamos comunicarnos con la placa de desarrollo ESP-12E utilizando la interfaz USB de la computadora.
El módulo USB a Serial UART incluido en la placa es Silicon Labs ‘CP2012, para lo cual generalmente necesitamos instalar los controladores de puerto COM virtual (VCP) fácilmente disponibles para su sistema operativo específico.Una vez instalado, debemos verificar que el CP2102 sea reconocido por su ordenador
Una vez que el controlador está instalado, podemos conectar el cable USB al puerto USB de la computadora y la placa. Después de hacerlo, deberíamos ver el mensaje: software del controlador del dispositivo instalado correctamente.
Además, podemos verificar manualmente que todo funcione correctamente siguiendo estos pasos:
Abra el Administrador de dispositivos (disponible a través del Panel de control → Sistema y seguridad → Administrador de dispositivos en la sección Sistema) Debajo de la entrada Puertos (COM & LPT), debe haber un puerto abierto llamado USB-SERIAL CP2102 (COM) donde hay un número típicamente mayor o igual a 3.
Ahora que estamos listos para comunicarnos con nuestro ESP8266 a través del CP2102, podemos explorar algunas de las diferentes opciones de firmware disponibles.
En el IDE de Arduino, vaya al menú de herramientas, seleccionada su placa y elija el puerto al que está conectado su ESP8266.En el ejemplo es el COM11
Ahora copie el siguiente código para probar que puede subir y ejecutar código código en la placa :
/*
ESP8266 Led Parapadeante
*/
void setup(){
pinMode(LED_BUILTIN, OUTPUT);// Initializa el pin de LED_BUILTIN como salida
}
void loop() { // la función de bucle se repite una y otra vez para siempre
digitalWrite(LED_BUILTIN, LOW);// encienda el LED
delay(1000); //Espera de 1 segundo
digitalWrite(LED_BUILTIN, HIGH);// Apague el LED haciendo que el voltaje sea ALTO
delay(2000); // Espere dos segundos para dejar apagado LED
}
El LED azul en el módulo ESP – 01 está conectado a GPIO 1, (que también es el pin TXD, por lo que no podemos usar Serial.print () al mismo tiempo)
Tenga en cuenta que el nivel de voltaje es BAJO pero en realidad el LED está encendido, porque es bajo en el ESP – 01
En este código se usa LED_BUILTIN para encontrar el pin con el LED interno de modo
Como puede apreciar , el código ejecuta un bucle infinito en el que pone el estado bajo un segundo (encendiendo el led) para posteriormente forzar a nivel alto dos segundos(apagando el led ) y así indefinidamente gracias al bucle que se repite indefinidamente
Instale la biblioteca zip descargada en el paso anterior desde Programa -> Incluir biblioteca -> Añadir libreria ZIP. y seleccionar ahora el fichero descargado con anterioridad Cayenne-MQTT-ESP-master.zip
Ya puede crear una cuenta Starter en cayenne ( si aun no la tiene ya creada)
Una vez ya validado vaya a la esquina superior izquierda y pulse sobre el botón verde add new
Ahora seleccione Generic ESP8266 como la placa y tome nota ahora de los siguintes paraetros ofrecidos por la pagina:
MQTT USERNAME:
MQTT PASSWORD:
CLIENT ID:
MQTT SERVER:
MQTT PORT:
NAME YOUR DEVICE (optional):
Abra el boceto de ejemplo incluido desde Archivo -> Ejemplos -> Cayenne-MQTT-ESP. Modifique el boceto incluido con su información de red y la información de autenticación de Cayenne que recibió al agregar su dispositivo.
Ejemplo de envio temperatura TMP102
Normalmente se adquiere un placa auxiliar para el pequeño sensor de temperatura digital TMP102. El TMP102 es un sensor digital (también conocido como I2C TWI), tiene una resolución de 0,0625 ° C, y tiene una precisión de hasta 0,5 ° C, lo cual lo convierte es un sensor muy práctico pues requiere una muy baja corriente.
La comunicación con el TMP102 se logra a través de una interfaz serie de dos hilos. No existe regulador de tensión de a bordo, por lo que el voltaje suministrado debe estar entre 1,4 a 3.6VDC.
En estas placas los condensadores de filtrado y resistencias de pull-up se incluyen.
En el código siguiente o muestra cómo enviar datos de temperatura a un sensor TMP102 en Cayenne Dashboard.Obviamente se requiere la Biblioteca de Cayenne para ejecutar este programa (si aún no lo ha hecho, puede instalarlo desde Arduino IDE Library Manager).
Las conexiones como vemos en la iamgen del TMP102 al ESP8266 on la siguintes:
TMP102 ESP8266
[VCC] ————- [3V3]
[GND] ————- [GND]
[ADD0] ———– [GND]
[SDA] ————- [Pin analógico 4] (El SDA puede ser diferente en algunos dispositivos, por ejemplo, para Arduino Mega, el pin SDA es Pin digital 20)
[SCL] ———— [Pin analógico 5] (El SCL puede ser diferente en algunos dispositivos, por ejemplo, para Arduino Mega, el pin SCL es Pin digital 21)
Y este esl codigo que subiremos a nuestro ESP8266:
#define CAYENNE_PRINT Serial // Comment this out to disable prints and save space #include <CayenneTMP102.h> #include <CayenneEthernet.h> // Change this to use a different communication device. See Communications examples.
// Cayenne authentication token. This should be obtained from the Cayenne Dashboard. char token[] = "AuthenticationToken";
// Virtual Pin of the TMP102 widget. #define VIRTUAL_PIN V1
// Address used to read from the TMP102. This is determined by the ADD0 pin on the TMP102. // Connecting it to ground means the sensor will use 0x48 for the address. See the TMP102 datasheet for more info.
// This function is called when the Cayenne widget requests data for the Virtual Pin. CAYENNE_OUT(VIRTUAL_PIN) { // This command writes the temperature in Celsius to the Virtual Pin. Cayenne.celsiusWrite(VIRTUAL_PIN, tmpSensor.getCelsius()); // To send the temperature in Fahrenheit or Kelvin use the corresponding code below. //Cayenne.fahrenheitWrite(VIRTUAL_PIN, tmpSensor.getFahrenheit()); //Cayenne.kelvinWrite(VIRTUAL_PIN, tmpSensor.getKelvin()); }
Estos son los pasos resumidos que haremos en el interfaz de Cayenne:
1. En Cayenne Dashboard, agregue un nuevo widget TMP102. 2. Configure el widget en Visualización de valor. 3. Seleccione Virtual Pins y un número de pin virtual. 4. Establezca VIRTUAL_PIN en el número de pin que seleccionó. 5. Adjunte un TMP102 a su ESP8266.
Establezca la variable tmp102Address para que coincida con ADD0. ADD0 conectado a GND corresponde a una dirección de 0x48.
Establezca la variable del token para que coincida con el token de Arduino desde el Tablero.
Compile y cargue este boceto.
Una vez que el Arduino se conecta al Tablero, debe actualizar automáticamente el widget TMP102 con datos.
Debido al aumento de los costos de energía, las personas están encontrando formas de monitorear su consumo de energía para tomar medidas de ahorro de energía para su hogar. El objetivo de este proyecto es hacer un medidor de energía de bricolaje usando el PZEM-004T v3 para monitorear su consumo de energía, y dado que IoT es la nueva norma para el monitoreo remoto, también podemos conectar el medidor de energía con un tablero de IoT a través de Wi-Fi.
Esta conexión la haremos usando el mini microcontrolador ESP8266 para visualizar las lecturas del medidor en línea donde puede acceder usando su ordenador o teléfono inteligente a traves de la app de Cayenne.
Componentes de hardware y software:
Hardware:
Medidor de energía PZEM-004T-100A v3
ESP8266 con cable ( también nos sirve cualquier controlador de la família ESP8266 como Wemos D1 Mini)
Cables de puente macho – hembra
Tablero de circuitos
Software:
IDE de Arduino
Plataforma en línea:
Cayenne IoT
El medidor de energía PZEM-004T-100A v3
Rango de medida de 100A utilizando un transformador externo
Se utiliza principalmente para medir voltaje CA, corriente, potencia, energía, frecuencia y factor de potencia
Sin función de visualización
La capa física utiliza la interfaz de comunicación UART a RS485
La capa de aplicación utiliza el protocolo Modbus-RTU para comunicarse
Los datos se leen a través de la interfaz TTL que se puede conectar directamente con microcontroladores basados en Arduino o ESP sin necesidad de ningún convertidor adicional
CARASTERICTICAS FUNDAMENTALES:
Tipo de producto:Módulo de comunicación AC
Modelo de producto:PZEM-004T
Función del producto:
Este documento describe la especificación del módulo de comunicación de CA PZEM-004T, el módulo se utiliza principalmente para medir la tensión de CA, la corriente, la potencia activa, la frecuencia, el factor de potencia y la energía activa, el módulo es sin función de visualización, los datos se leen a través de la interfaz TTL.
PZEM-004T-10A: Rango de medición 10A (Shunt incorporado)
PZEM-004T-100A: Rango de medición 100A (transformador externo)
Rango de medición:
Tensión Rango de medición:80~260V Resolución: 0.1V Precisión de medición: 0,5%. Corriente Rango de medición: 0~10A(PZEM-004T-10A); 0~100A(PZEM-004T-100A) Corriente de medición inicial: 0,01A(PZEM-004T-10A); 0,02A(PZEM-004T-100A) Resolución: 0.001A Precisión de medición: 0,5%. Potencia activa Rango de medición: 0~2.3kW(PZEM-004T-10A); 0~23kW(PZEM-004T-100A) Potencia de medición inicial: 0,4W Resolución: 0.1W Formato de visualización: <1000W, muestra un decimal, como: 999.9W
≥1000W, muestra sólo números enteros, como: 1000W
Precisión de medición: 0,5%. Factor de potencia Rango de medición: 0.00~1.00 Resolución: 0.01 Precisión de medición: 1%. Frecuencia Rango de medición: 45Hz~65Hz Resolución: 0,1Hz Precisión de medición: 0,5%. Energía activa Rango de medición: 0~9999.99kWh Resolución: 1Wh Precisión de medición: 0,5%. Formato de visualización: <10kWh, la unidad de visualización es Wh(1kWh=1000Wh), como: 9999Wh
≥10kWh, la unidad de visualización es kWh, como por ejemplo 9999.99kWh
Restablecimiento de la energía: utilice el software para restablecer. Alarma de sobre potencia El umbral de potencia activa se puede establecer, cuando la potencia activa medida supera el umbral, puede alarmar
Interfaz de comunicación Interfaz TTL。
Protocolo de la capa física La capa física utiliza la interfaz de comunicación UART a TTL
La velocidad de transmisión es de 9600, 8 bits de datos, 1 bit de parada, sin paridad
¿Cómo mide?
El medidor utiliza un transformador de corriente para medir la corriente. Está diseñado para producir una corriente alterna en su devanado secundario que es proporcional a la corriente que se mide en su primario. Reduce las corrientes de alto voltaje a un valor mucho más bajo y proporciona una forma conveniente de monitorear de manera segura la corriente eléctrica real que fluye en una línea de transmisión de CA.
INSTALAR ESP8266 EN IDE ARDUINO
Actualmente configurar el entorno de Arduino para funcionar con las placas de desarrollo de ESP8266 es muy sencillo,gracias al soporte que ha recibido de la comunidad, que hace que lo tengamos disponible como un paquete que podemos descargar y añadir al gestor de placas.
Para poder programar las placas de desarrollo basadas en el ESP8266 simplemente tendremos que configurar la URL del paquete para que podamos agregarlas al gestor de placas del IDE de Arduino.
Para ello accedemos al menú de configuración y en “Gestor de URLs adicionales de tarjeta” hacemos click en el pequeño botón de la derecha.
En la ventana que aparece, añadimos esta la siguiente URL.
Si teníamos otras direcciones, dejamos cada una de ellas en una línea.
Ahora entramos en el gestor de tarjetas del IDE de Arduino.
Buscamos el paquete de placas de desarrollo basadas en el ESP8266 y lo instalamos.
Ya tenemos disponibles las placas de desarrollo basadas en el ESP8266 para programarlas con el IDE de Arduino. ¡Así de fácil!
En la próxima entrada profundizaremos en cómo programar ESP8266 con el IDE de Arduino, y veremos las similitudes y diferencias entre programar un Arduino convencional y una placa basada en el ESP8266.
Plataforma en línea:
Cayenne IoT
Cayenne es el primer generador de proyectos de IoT de arrastrar y soltar del mundo que permite a los desarrolladores, diseñadores e ingenieros crear rápidamente prototipos y compartir sus proyectos de dispositivos conectados.
Cayenne se diseñó para ayudar a los usuarios a crear prototipos de Internet de las cosas y luego llevarlos a producción
Cayenne es un producto de myDevices que le permite no solo mostrar datos, sino también configurar disparadores, monitorear dispositivos, controlar dispositivos, etc.
La API de Cayenne MQTT se utiliza para conectar cualquier dispositivo que tenga con Cayenne Cloud
¿Qué es MQTT?MQTT significa
transporte de telemetría de Message Queue Server. Es un protocolo de mensajería extremadamente simple y liviano (suscripción y publicación) diseñado para dispositivos limitados y redes con alta latencia, bajo ancho de banda o redes poco confiables. Con MQTT, los dispositivos IoT con recursos limitados pueden enviar o publicar información sobre un tema específico a un servidor que actúa como
intermediario de mensajes MQTT. Luego, el corredor transmite la información a aquellos clientes que se han suscrito previamente al tema del cliente. Para este proyecto,
Cayenne Dashboard actúa como intermediario de mensajes MQTT.
Configuración de hardware:
Diagrama esquemático:
Conexiones:
PZEM-004T-100A v3
Conexión de carga
Transformador de corriente (CT) Cable VCC conectado a PZEM-004T v3 Live (+) Terminal
Transformador de corriente (CT) Cable GND conectado al terminal neutro (-) PZEM-004T v3
Cable de carga viva (+) conectado al terminal de carga viva (+) PZEM-004T v3
Cable de carga neutra (-) conectado a la terminal de carga neutra (-) PZEM-004T v3
Conexión ESP8266
Cable VCC conectado al pin 3.3v
Cable GND conectado al pin GND
El cable TX (transmisión) está conectado al pin D7
El cable RX (recepción) está conectado al pin D8
ESP8266
Pin VCC conectado al cable PZEM-004T v3 VCC
Pin GND conectado al cable PZEM-004T v3 GND
Pin D7 (RX) conectado al cable PZEM-004T v3 TX
Pin D8 (TX) conectado al cable PZEM-004T v3 RX
Configuración del programa:
Antes de configurar el código Arduino, debemos instalar la placa ESP8266 en el IDE de Arduino.
Capaz de escribir bocetos, usar funciones y bibliotecas de Arduino
Ejecute bocetos sin necesidad de un microcontrolador externo
Biblioteca integrada en el IDE
Más información sobre la biblioteca, junto con la configuración de ESP8266 Arduino en Github
PZEM004Tv30.h
Biblioteca de medidores de energía Peacefair (PZEM-004T v3)
Versión actualizada de la biblioteca PZEM-004T anterior para admitir versiones más nuevas
Proporciona funciones completas del monitor de energía PZEM-004T v3
Más información sobre la biblioteca y enlace de descarga en Github
También se puede descargar en Arduino Library Manager
Variables:
PZEM004Tv30 pzem(D7,D8)
El constructor de objetos para el medidor de energía junto con las conexiones de pin
Voltaje
Valor del sensor de tensión en voltios (V)
Actual
Valor del sensor de corriente en amperios (A)
Energía
Valor del sensor de potencia en vatios
Energía
Valor del sensor de energía en kilovatios hora (kWh)
Frecuencia
Valor del sensor de frecuencia en hercios (Hz)
Factor de potencia
Resultado calculado basado en los valores del sensor
Funciones:
pzem.voltaje()
obtener valor de voltaje
pzem.actual()
obtener el valor actual
pzem.power()
obtener valor de potencia
pzem.energy()
obtener valor de energía
pzem.frecuencia()
recuperar valor de frecuencia
pzem.pf()
obtener el valor del factor de potencia
Después de probar el sensor SIN CONEXION , ahora podemos conectarlo con el tablero de Cayenne para cargar lecturas de energía en línea.
Con el siguiente código que subiremos al ESP8266 si lo personalizamos con nuestras propias claves (estan marcadas tachadas) podemos probar
Code (PZEM-004T V3 with Cayenne Dashboard):
//Libraries
#include <Arduino.h>
#include <CayenneMQTTESP8266.h>
#include <PZEM004Tv30.h>
//Debug Cayenne Connection
#define CAYENNE_DEBUG
//Enable Serial Print
#define CAYYENE_PRINT Serial
//Canales de Cayenne para mostrar los datos
#define VOLTAGE_CHANNEL 1 //voltage
#define CURRENT_CHANNEL 2 //current
#define POWER_CHANNEL 3 //power
#define ENERGY_CHANNEL 4 //energy
#define FREQUENCY_CHANNEL 5 //frequency
#define POWERFACTOR_CHANNEL 6 //power factor
//RX pin = D7 connected to the TX pin of PZEM-004T v3
//TX pin = D8 connected to the RX pin of PZEM-004T v3
//Constructor del dispositivo Peacefair
PZEM004Tv30 pzem(D7,D8);
//Credencial de la WiFi a la que se conectara para el envio.
char ssid[] = "HOTSPOTniKOYA";
char wifiPassword[] = "09771665851";
//ESP8266 Información para la autenticacion de Cayenne obtenida de Cayenne Dashboard.
char username[] = "439049b0-0660-11ed-8df2-dd50487e509b";
char password[] = "1f5cf9c47e9fc2b28eaa1ffb054b62003a71127a";
char clientID[] = "349a2920-1bf1-11ed-baf6-35fab7fd0ac8";
//Meter values
float Voltage;
float Current;
float Power;
float Energy;
float Frequency;
float PowerFactor;
void setup() {
Serial.begin(115200);
//Esperar a que Serial Monitor se abra antes de proceder
while(!Serial);
delay(100);
//Start Cayenne connection
Cayenne.begin(username, password, clientID, ssid, wifiPassword);
Serial.println("PZEM-004T-100A Energy Meter Cayenne Interface using ESP8266 ( o un Wemos D1 Mini)");
Serial.println("");
}
void loop() {
//get meter values
Voltage = pzem.voltage();
Current = pzem.current();
Power = pzem.power();
Energy = pzem.energy();
Frequency = pzem.frequency();
PowerFactor = pzem.pf();
Cayenne.loop();
}
//Display Voltage Value
CAYENNE_OUT(VOLTAGE_CHANNEL)
{
Serial.println("Resultados de las medidas: ");
Cayenne.virtualWrite(VOLTAGE_CHANNEL, Voltage);
Serial.print("Voltaje: "); Serial.print(Voltage,3); Serial.println("V");
}
//Display Current Value
CAYENNE_OUT(CURRENT_CHANNEL)
{
Cayenne.virtualWrite(CURRENT_CHANNEL, Current);
Serial.print("Corriente: "); Serial.print(Current,3); Serial.println("A");
}
//Display Power Value
CAYENNE_OUT(POWER_CHANNEL)
{
Cayenne.virtualWrite(POWER_CHANNEL, Power);
Serial.print("Potencia: "); Serial.print(Power,3); Serial.println("W");
}
//Display Energy Value
CAYENNE_OUT(ENERGY_CHANNEL)
{
Cayenne.virtualWrite(ENERGY_CHANNEL, Energy);
Serial.print("Energia: "); Serial.print(Energy,3); Serial.println("kWh");
}
//Display Frequency Value
CAYENNE_OUT(FREQUENCY_CHANNEL)
{
Cayenne.virtualWrite(FREQUENCY_CHANNEL, Frequency);
Serial.print("Frequencia: "); Serial.print(Frequency,2); Serial.println("Hz");
}
//Display Power Factor Value
CAYENNE_OUT(POWERFACTOR_CHANNEL)
{
Cayenne.virtualWrite(POWERFACTOR_CHANNEL, PowerFactor);
Serial.print("Factor de Potencia: "); Serial.println(PowerFactor,3);
Serial.println("");
}
Desglose del código:
Bibliotecas:
Arduino.h
El soporte ESP8266 para Arduino
Capaz de escribir bocetos, usar funciones y bibliotecas de Arduino
Ejecute bocetos sin necesidad de un microcontrolador externo
Biblioteca integrada en el IDE
Más información sobre la biblioteca, junto con la configuración de ESP8266 Arduino en Github
CayenneMQTTESP8266.h
Biblioteca Cayenne MQTT ESP para la conexión del generador de proyectos Cayenne IoT
Admite módulos Wi-Fi ESP8266 y ESP32
Leer y enviar datos a Cayenne Dashboard
Más información sobre la biblioteca y enlace de descarga en Github
PZEM004Tv30.h
Biblioteca de medidores de energía Peacefair (PZEM-004T v3)
Versión actualizada de la biblioteca PZEM-004T anterior para admitir versiones más nuevas
Proporciona funciones completas del monitor de energía PZEM-004T v3
Más información sobre la biblioteca y enlace de descarga en Github
También se puede descargar en Arduino Library Manager
Variables: @PZEM-004T v3
PZEM004Tv30 pzem(D7,D8)
El constructor de objetos para el medidor de energía junto con las conexiones de pin
Voltaje
Valor del sensor de tensión en voltios (V)
Actual
Valor del sensor de corriente en amperios (A)
Energía
Valor del sensor de potencia en vatios
Energía
Valor del sensor de energía en kilovatios hora (kWh)
Frecuencia
Valor del sensor de frecuencia en hercios (Hz)
Factor de potencia
Resultado calculado basado en los valores del sensor
@Cayenne
CAYENNE_DEBUG
Habilita la impresión en serie de Cayenne
Serie CAYENNE_PRINT
Habilita el monitor serie para imprimir datos
VOLTAJE_CANAL 1
El canal Cayenne asignado para proyectar lecturas de voltaje del medidor
CANAL_ACTUAL 2
El canal Cayenne asignado para proyectar lecturas actuales del medidor
POTENCIA_CANAL 3
El canal Cayenne asignado para proyectar lecturas de energía del medidor
ENERGÍA_CANAL 4
El canal Cayenne asignado para proyectar lecturas de energía del medidor
FRECUENCIA_CANAL 5
El canal Cayenne asignado para proyectar lecturas de frecuencia del medidor
FACTOR DE POTENCIA_CANAL 6
El canal Cayenne asignado para proyectar lecturas de factor de potencia del medidor
sid[]
El nombre de la conexión Wi-Fi para conectar el Wemos D1 mini
Contraseña de wifi[]
La contraseña de conexión Wi-Fi para conectar el Wemos D1 mini
nombre de usuario char[]
Nombre de usuario de Cayenne del dispositivo (proporcionado en el código de enlace de Cayenne)
contraseña de char[]
Contraseña de Cayenne del dispositivo (proporcionada en el código de enlace de Cayenne)
ID de cliente char[]
ID de cliente de Cayenne del dispositivo (proporcionado en el código de enlace de Cayenne)
Funciones: @PZEM-004T V3
pzem.voltaje()
obtener valor de voltaje
pzem.actual()
obtener el valor actual
pzem.power()
obtener valor de potencia
pzem.energy()
obtener valor de energía
pzem.frecuencia()
recuperar valor de frecuencia
pzem.pf()
obtener el valor del factor de potencia
@Cayenne
Cayenne.begin(nombre de usuario, contraseña, ID de cliente)
Inicia la conexión de cayena
Muestra el estado de la conexión en el monitor serie
Cayenne.loop()
Llama a la clase CAYENNE_OUT(VIRTUAL_CHANNEL)
Cayenne.virtualWrite(Canal, Salida)
Mostrar los valores del medidor en el monitor serial
Sube los valores de salida al canal virtual del tablero
Y una vez que llevamos un rato con el montaje funcionando este es el resultado
NOTAS IMPORTANTES:
Si conectamos el PZEM004 a un ESP8266, la tension de alimentación para la sincronizacion del canal de comunicaciones es 3,3V (en caso de un Wemos seria de 5v)
Para que las medidas sean correctas los leds TX y RX del PZEM004 deben parpadear rápido y con luz tenue. Si alguno de los leds TX o RX se queda fijo esto significa que o bien alguna conexión es incorrecta o no se ha actualizado el firmware del controlador , de modo que si consultamos la consola serie veremos que las medidas no son correctas ( el IDE de Arduino las pinta como nan). Ver la imagen de abajo donde se aprecia este error.
En caso de que no se pueda programar el controlador ESP8266 desde el IDE de Arduino un truco consiste en desconectar la línea de 3.3V hacia la salida RS425 antes de compilar el código.
A veces es necesario reiniciar tanto el PZEM004 como el ESP8266 si no hay resultados correctos .
Si no tenemos la consola serie para saber si está sacando datos correctos ( es decir que no saca los valores nan) una buena referencia son los dos leds (tX y RX) del PZEM004 qeu deben lucir a la vez a intervalos regulares ( según el delay definido en el bucle principal)
Debemos programar el controlador antes de conectar la salida RS425 del PZEM004 para evitar problemas
Se ha usado un ESP8266 ( aunque se puede usar cualquiera similar que pertenezca a esta familia) para que no de problemas el api de Cayenne . Para usar un ESP32 se debe seleccionar en el interfaz el Esp826 pues funciona también con la familia del ESP32 , si bien la llibreria es CayenneMQTTESP32.h
Debe estar conectado para enviar un comentario.