使用IoT-Fast,轻松读写TDengine数据。IoT-Fast是一款集合了数据采集、上报云端、图形组态为一体的软件,免费下载地址: :::info https://www.gkiiot.com/download.html ::: 文章以对接TDengine为例,包括TDengine的介绍,采集,上云,共分为四个部分:

  • TDengine介绍

    简单介绍TDengine数据库,以下用taos简称,提供两种对接方式。

  • IoT-Fast-采集控制系统

    对底层设备进行数据读取、写入的配置界面,还可以进行数据处理。

  • IoT-Fast-云平台

    将采集控制系统收集的数据进行分类展示、告警阈值设置、历史数据查询等功能。

  • IoT-Fast-微信小程序/App

    通过微信小程序或者手机app进行远程数据的查看,以及动作的执行。

一、TDengine

TDengine是一款开源、高性能、分布式、支持SQL的时序数据库,官网地址: :::info https://www.taosdata.com/ ::: 使用IoT-Fast,轻松增删读写TDengine数据 - 图1
使用IoT-Fast对接taos,提供两种对接方式。一种为使用IoT-Fast已经封装好TDengine节点,实现简单对接;另外一种为调用taos的dll库,用户可以使用C++根据taos的API文档进行对接。下面我会分别介绍两种对接实例,用户需要先搭好taos的环境。

二、IoT-Fast-采集控制系统

打开IoT-Fast的采集控制系统,选择左边的节点,按住鼠标左键拖入到中间的配置栏。
使用IoT-Fast,轻松增删读写TDengine数据 - 图2

方法一

先说第一种方式,从左侧的存储节点中拉出TDengine
使用IoT-Fast,轻松增删读写TDengine数据 - 图3
双击TDengine控件配置数据库的IP、端口、账号和密码。
使用IoT-Fast,轻松增删读写TDengine数据 - 图4
从左侧通用节点中拉出定时器调试节点,再拉出一个function
使用IoT-Fast,轻松增删读写TDengine数据 - 图5 使用IoT-Fast,轻松增删读写TDengine数据 - 图6
双击function进入配置界面,写上“查询当前数据库下的所有数据表信息”语句,代码如下。

  1. msg.payload="SHOW DATABASES"
  2. return msg;

使用IoT-Fast,轻松增删读写TDengine数据 - 图7
按住白色小框可以拉出一条线连接上另一个白色小框。这样就将两个控件用线连接起来,数据是从左往右流动的,最后流入调试控件就会在右侧的调试窗口显示。
使用IoT-Fast,轻松增删读写TDengine数据 - 图8
按下图连接后点击右上角的部署按钮,将右侧的界面调到调试窗口
使用IoT-Fast,轻松增删读写TDengine数据 - 图9
点击定时器前面的按钮,调试窗口显示查询到的系统所有数据库,点击箭头可以打开数组。
使用IoT-Fast,轻松增删读写TDengine数据 - 图10
附上一些增删查写语句,只需要修改function中的内容就可以了。

  1. msg.payload="CREATE DATABASE IF NOT EXISTS fdauto "
  2. return msg;
  1. msg.payload="DROP DATABASE IF EXISTS fdauto"
  2. return msg;
  1. msg.payload="CREATE TABLE IF NOT EXISTS fdauto.data (t1 TIMESTAMP ,num INT)
  2. return msg;
  1. msg.payload="DROP TABLE IF EXISTS fdauto.data"
  2. return msg;
  1. msg.payload="CREATE TABLE IF NOT EXISTS fdauto.auto (t1 TIMESTAMP ,num INT) TAGS (t1_name INT, t2_name INT) "
  2. return msg;
  1. msg.payload="DROP TABLE IF EXISTS fdauto.auto"
  2. return msg;
  1. msg.payload="ALTER TABLE fdauto.auto ADD TAG t4 BOOL;"
  2. return msg;
  1. msg.payload="ALTER TABLE fdauto.auto DROP TAG t4"
  2. return msg;
  1. msg.payload="INSERT INTO fdauto.data VALUES (1601446732369,2)"
  2. return msg;
  1. msg.payload="select * from fdauto.data"
  2. return msg;
  1. msg.payload="use fdauto"
  2. return msg;

方法二

方法二对比方法一较为复杂,是通过调用taos的dll库获取到数据,taos的dll库是用C++语言编程的,从左侧拉出一个C++的dll链接库节点。
使用IoT-Fast,轻松增删读写TDengine数据 - 图11
双击配置dll链接库,点击箭头处选择taos的dll文件;全局变量名是用于function等控件获取全局变量用,例如:global.get(“taos”);下方的方法名返回类型参数类型需要查看taos的API文档配置。
使用IoT-Fast,轻松增删读写TDengine数据 - 图12
拉出定时器调试function节点,连接起来。
使用IoT-Fast,轻松增删读写TDengine数据 - 图13
双击function节点编写一段查询客户端和服务端版本信息的语句。

  1. let ref = global.get("ref");
  2. let libtaos = global.get("taos");//获取dll动态链接库设置的全局变量
  3. libtaos.taos_init();//涛思数据库初始化函数
  4. //涛思数据库连接(从前往后依次配置IP、账号、密码、数据库名、端口)
  5. let connection = libtaos.taos_connect(ref.allocCString("192.168.18.139"), ref.allocCString("root"), ref.allocCString("taos"), ref.allocCString("mes_center"), ref.alloc(ref.types.int, 6030));
  6. //涛思数据库客户端信息
  7. msg.clientInfo= ref.readCString(libtaos.taos_get_client_info());
  8. //涛思数据库服务器信息
  9. msg.serverInfo= ref.readCString(libtaos.taos_get_server_info(connection));
  10. return msg;

使用IoT-Fast,轻松增删读写TDengine数据 - 图14
配置完成后点击部署,点击定时器按钮,调试窗口返回客户端和服务端的版本信息。
使用IoT-Fast,轻松增删读写TDengine数据 - 图15
数据获取到之后,就可以上传到云平台展示了,这里就上传一下版本信息。

三、IoT-Fast-云平台

点击云平台按钮进入云平台首页。
使用IoT-Fast,轻松增删读写TDengine数据 - 图16
点击左侧产品中心-产品开发,新增一个产品,类别选择自定义品类
使用IoT-Fast,轻松增删读写TDengine数据 - 图17
查看创建的产品,在功能定义-自定义参数中新增属性。
使用IoT-Fast,轻松增删读写TDengine数据 - 图18
创建配置如下,标识符是采集控制和云平台能够对应上的关键字符,同一个产品中不能有重复的标识符
使用IoT-Fast,轻松增删读写TDengine数据 - 图19
使用IoT-Fast,轻松增删读写TDengine数据 - 图20
功能定义-分组中创建一个上报分组,类型选择上报,将左边的点位全选,点击右箭头,加入到当前分组中。
使用IoT-Fast,轻松增删读写TDengine数据 - 图21
接着点击产品中心-设备管理,在该产品下增加一个设备。
使用IoT-Fast,轻松增删读写TDengine数据 - 图22
下一步将云平台和采集控制中的属性进行绑定,回到采集控制系统,从左侧云平台中拉出微联云上行控件,用于将采集的数据上报云平台
使用IoT-Fast,轻松增删读写TDengine数据 - 图23
双击控件就可以选择刚刚在云平台创建的产品、设备和分组了。
使用IoT-Fast,轻松增删读写TDengine数据 - 图24
将它接在function后面,然后双击function,将获取到的值赋到标识符的对象下。
使用IoT-Fast,轻松增删读写TDengine数据 - 图25
function中修改后的的代码如下,配置好后点击部署,点击一下定时器的按钮

  1. //前面代码没有改动
  2. let ref = global.get("ref");
  3. let libtaos = global.get("taos");
  4. libtaos.taos_init();
  5. let connection = libtaos.taos_connect(ref.allocCString("192.168.18.139"), ref.allocCString("root"), ref.allocCString("taosdata"), ref.allocCString("mes_center"), ref.alloc(ref.types.int, 6030));
  6. msg.clientInfo= ref.readCString(libtaos.taos_get_client_info());
  7. msg.serverInfo= ref.readCString(libtaos.taos_get_server_info(connection));
  8. //新增“将值赋值到标识符对象下”
  9. msg.payload={
  10. "client":msg.clientInfo,
  11. "server":msg.serverInfo
  12. }
  13. return msg;

回到云平台,查看设备的运行状态,可以看到数据已经成功上传上来了。
使用IoT-Fast,轻松增删读写TDengine数据 - 图26

四、IoT-Fast-微信小程序/APP

软件上的数据支持在微信小程序或者APP上查看,小程序和APP的二维码在云平台首页的右侧,目前只支持安卓APP,ios的用户可以直接用微信小程序查看。
使用IoT-Fast,轻松增删读写TDengine数据 - 图27
扫码进入IoT-Fast小程序,输入PC端注册的账号密码。
使用IoT-Fast,轻松增删读写TDengine数据 - 图28
进入首页,可以看到产品和设备数量,点击设备查看该账号下的所有设备。
使用IoT-Fast,轻松增删读写TDengine数据 - 图29
使用IoT-Fast,轻松增删读写TDengine数据 - 图30
选择taos数据库,点击查看可以看到设备的详细信息。
使用IoT-Fast,轻松增删读写TDengine数据 - 图31
使用IoT-Fast,轻松增删读写TDengine数据 - 图32