Este tutorial explicará cómo controlar las salidas digitales de un PLC ESP32 de Industrial Shields con los widgets del panel de control de la nube de Arduino. Vamos a ir directamente al grano.
1) Haz clic en Añadir variable y busque "interruptor" en el menú desplegable. Puede que tengas que deseleccionar las etiquetas en el desplegable. Puedes ponerle el nombre que quieras.
2) Una vez creada la variable, puedes configurar la red. Tendrá que añadir el SSID y el PASSWORD de la red a la que desea conectarse y la clave secreta obtenida en éste tutorial.
En el editor web, verás cuatro pestañas: tienes que copiar el contenido de "main.ino". (Puede tener otro nombre para ti) y thingProperties.h a un nuevo proyecto de arduino en tu PC. También necesitarás el contenido del archivo Secret.
A partir de aquí, es directo como un proyecto regular de Arduino donde se elige el PLC en la sección de la placa y el código. Los códigos se muestran a continuación:
main.ino
#include "thingProperties.h"
void setup() {
pinMode(Q0_2, OUTPUT);
// 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);
// 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();
}
void loop() {
ArduinoCloud.update();
// Your code here
onQ2Change();
}
/*
Since Q2 is READ_WRITE variable, onQ2Change() is
executed every time a new value is received from IoT Cloud.
*/
void onQ2Change() { ///DIGITAL OUTPUT ON OFF SWITCH
if (q2 == true) {
digitalWrite(Q0_2, HIGH);
}
else {
digitalWrite(Q0_2, LOW);
}
// Add your code here to act upon Q2 change
}
thingProperties.h
// Code generated by Arduino IoT Cloud, DO NOT EDIT.
#include <ArduinoIoTCloud.h>
#include <Arduino_ConnectionHandler.h>
const char THING_ID[] = "07c3f5db-b24b-4619-8781-0ce4cc386f24";
const char DEVICE_LOGIN_NAME[] = "9947c851-3bdb-4eff-84d7-401788196951";
const char SSID[] = SECRET_SSID; // Network SSID (name)
const char PASS[] = SECRET_PASS; // Network password (use for WPA, or use as key for WEP)
const char DEVICE_KEY[] = SECRET_DEVICE_KEY; // Secret device password
void onQ2Change();
CloudSwitch q2;
void initProperties(){
ArduinoCloud.setBoardId(DEVICE_LOGIN_NAME);
ArduinoCloud.setSecretDeviceKey(DEVICE_KEY);
ArduinoCloud.setThingId(THING_ID);
ArduinoCloud.addProperty(q2, READWRITE, ON_CHANGE, onQ2Change);
}
WiFiConnectionHandler ArduinoIoTPreferredConnection(SSID, PASS);
El cuadro de mandos
En esta sección, se mostrará un tablero muy simple con un solo interruptor de encendido y apagado para controlar el PLC.
Vaya a la pestaña del tablero de mandos y haga clic en "BUILD DASHBOARD"
Haz clic en AÑADIR y selecciona el interruptor.
Aparecerá una ventana para editar la configuración. Aquí tienes que hacer clic en el botón de la Variable de Enlace.
Y luego vincular la variable que se creó en los pasos anteriores.
Después de esto, estamos listos. Lo único que tenemos que hacer es subir el código al PLC y asegurarnos de que se conecta a la wifi configurada. Puedes comprobar el estado de la conexión en el terminal serie.
Una vez hecho esto, puedes controlar la salida digital del PLC con el interruptor creado en el tablero de la nube de Arduino.
En el siguiente tutorial, veremos cómo podemos llevar los datos de un sensor a la nube y visualizarlos.
Cómo controlar las salidas digitales con Arduino Cloud