En la serie de tutoriales sobre la conexión de la nube de Arduino con el PLC de Industrial shields, este tutorial cubre el uso de un sensor de temperatura con un PLC de industrial shields ESP32 y la visualización de su lectura en el Dashboard de la nube de Arduino.
Requisito previo
Se recomienda pasar por las siguientes entradas del blog antes de probar este, son un requisito previo a este blog:
Cómo controlar las salidas digitales con Arduino Cloud
Sensor de temperatura y humedad DHT22 / AM2302
InshieldsTnH.ino
#include "thingProperties.h"
#include "DHT.h"
#define DHTPIN 2
#define DHTTYPE DHT22
DHT dht(DHTPIN, DHTTYPE);
void setup() {
// Initialize serial and wait for port to open:
Serial.begin(9600);
// This delay gives the chance to wait for a Serial Monitor without blocking if none is found
delay(1500);
Serial.println("Temp and Humidity readings");
// Defined in thingProperties.h
initProperties();
// Connect to Arduino IoT Cloud
ArduinoCloud.begin(ArduinoIoTPreferredConnection);
/*
The following function allows you to obtain more information
related to the state of network and IoT Cloud connection and errors
the higher number the more granular information you’ll get.
The default is 0 (only errors).
Maximum is 4
*/
setDebugMessageLevel(2);
ArduinoCloud.printDebugInfo();
dht.begin();
}
void loop() {
ArduinoCloud.update();
// Your code here
onHumidityChange();
delay(2000);
}
/*
Since Humidity is READ_WRITE variable, onHumidityChange() is
executed every time a new value is received from IoT Cloud.
*/
void onHumidityChange() {
temp = dht.readHumidity();
// Read temperature as Celsius (the default)
humidity = dht.readTemperature();
// Check if any reads failed and exit early (to try again).
if (isnan(humidity) || isnan(temp)) {
Serial.println(F("Failed to read from DHT sensor!"));
return;
}
Serial.print(F("Humidity: "));
Serial.print(humidity);
Serial.print(F("% Temperature: "));
Serial.print(temp);
Serial.print(F("°C "));
// Add your code here to act upon Humidity change
}
thingsProperty.h
// Code generated by Arduino IoT Cloud, DO NOT EDIT.
#include <ArduinoIoTCloud.h>
#include <Arduino_ConnectionHandler.h>
const char THING_ID[] = "dc7dc375-53a2-4fa0-9fff-9f9109d2b1ea";
const char DEVICE_LOGIN_NAME[] = "9947c851-3bdb-4eff-84d7-401788196951";
const char SSID[] = "Your-SSID"; // Network SSID (name)
const char PASS[] = "PASSWORD"; // Network password (use for WPA, or use as key for WEP)
const char DEVICE_KEY[] = "YOUR DEVICE_KEY"; // Secret device password
void onHumidityChange();
CloudTemperatureSensor temp;
CloudRelativeHumidity humidity;
void initProperties(){
ArduinoCloud.setBoardId(DEVICE_LOGIN_NAME);
ArduinoCloud.setSecretDeviceKey(DEVICE_KEY);
ArduinoCloud.setThingId(THING_ID);
ArduinoCloud.addProperty(temp, READ, 15 * SECONDS, NULL);
ArduinoCloud.addProperty(humidity, READWRITE, 15 * SECONDS, onHumidityChange);
}
WiFiConnectionHandler ArduinoIoTPreferredConnection(SSID, PASS);
Panel de control de Arduino
Para inicializar el widget del gráfico hay que seguir los siguientes pasos:
Selecciona el gráfico en el menú desplegable como se muestra
Haga clic en la variable de enlace
Elije una de las variables de temperatura o humedad para conectar con su gráfico
Una vez vinculado, tu gráfico debería estar listo.
Repite los pasos para la segunda variable.
Si tu PLC está transmitiendo los datos, los gráficos deberían mostrarte algunos datos.
Y eso es todo, has visualizado con éxito tus datos de temperatura y humedad en el tablero de la nube de Arduino.
Arduino Cloud y sensor de temperatura