Buenas noticias,
Ajuntamos un proyecto
StxLadder en lenguaje Pawn (
Thingspeak-v001.zip) para enviar datos a un canal de
thingspeak.com con el PLC.
Para utilizarlo, requiere:
Dentro del archivo "
info.txt" del proyecto se explica en detalle como utilizar el ejemplo.
Sinopsis:1) Crear una cuenta en
thingspeak.com.
2) Crear un canal con el campo "
field1" y permitir visualizarlo.
3) Obtener la WRITE API KEY y copiarla en constante
THINGSPEAK_WRITE_APIKEY del archivo thingspeak.inc. Escribirla entre comillas "" y sin espacios.
4) Asegurarse de tener configurado el servidor DNS del PLC, en "
PLC > Configurar PLC", pestaña
RED.
5) Compilar el programa para el modelo de PLC adquirido.
6) Descargar al PLC.
Una vez descargado el programa al PLC, si hay conexion a internet, el programa cada 5 segundos enviará un valor entero al campo "field1" de Thingspeak.
El valor se incrementa en uno por cada envio.
Detalles del código:El programa esta construido con dos archivos que sirven de librería y pueden usarse en otros proyectos:
- Thingspeak.p: Rutinas PAWN.
- Thingspeak.inc: Definiciones y constantes.
Por lo tanto, modificando dichos archivos, es posible escribir clientes para otros servicios similares a
thingspeak.com.
En
thingspeak.p se encuentran todas las rutinas disponibles (y documentadas), las importantes para el uso son:
ThingspeakInit(): Inicializa la librería, si la misma no lo hace de forma correcta, el resto de las funciones se comportaran erróneamente.
ThingspeakSendFields(): permite enviar "fields" a Thingspeak, tal cual como se hace con la URL del navegador.
Por ejemplo:
Para alterar el
field1 con valor 5, hacemos: ThingspeakSendFields("
field1=%d", 5)
Para alterar el
field1 y
field2 con valor 5 y 10, hacemos: ThingspeakSendFields("
field1=
%d&field2=
%d", 5, 10)
Es importante que cada
field este separado por un "
&" sin espacios.
Los "%d" son los identificadores de formato, como los que usa la función Printf().
Para alterar el
field1 con 0.85 float, hacemos: ThingspeakSendFields("
field1=%f", 0.85)
Como vemos, el uso de ThingspeakSendFields() permite argumentos variable y un string con formato.
ThingspeakCheckWaitResponse(): Sirve para comprobar que la librería no este esperando una respuesta de
Thingspeak.com.
Finalizando:Para tener en cuenta: El driver creado para Thingspeak utiliza la librería
cliente TCP y las funciones de
manejo de strings.
Pronto serán actualizados los firmwares de otros modelos de PLC para este soporte.
Cualquier duda, quedamos a disposición.