【实践】工业用变频器上云 【4】 正式上云 通过阿里云IOT直接控制变频器

简介: 本章节主要结合前面的所有内容,融合代码,将设备控制与云端通讯用程序逻辑连接起来,实现远程控制

产品推荐:阿里云物联网开发者工具(IoT Studio),立刻免费体验吧!  
  

06 通过IOT控制变频器

之前,我们已经能够顺利的驱动变频器,并且能够与阿里云平台进行连接交互了

现在我们需要将两部分功能进行融合,使之能够通过阿里云的操作指令来执行变频器的对应动作

看代码:

#include <aliIotLink.h>
#include <ESP8266WiFi.h>
#include <ArduinoJson.h>

//变频器库部分
#include "deltaVDF.h"
deltaVDF VDF(1); //实例化一个变频器 MODBUS总线地址为1

const char* ssid = "OCROBOT";
const char* password = "jikegongfang";

static const char ProductKey[] PROGMEM = "a15mLG9bUxt";
static const char DeviceName[] PROGMEM = "uJCypeOEunEP4R5MJEar";
static const char DeviceSecret[] PROGMEM = "YXlW9wW2EYtXweZfwCZcUFbYhnDgnVr7";

static const char postTopic[]  PROGMEM = "/sys/a15mLG9bUxt/uJCypeOEunEP4R5MJEar/thing/event/property/post";   //上报消息topic
static const char setTopic[]  PROGMEM = "/sys/a15mLG9bUxt/uJCypeOEunEP4R5MJEar/thing/service/property/set";    //服务器消息topic

WiFiClient espClient;   //实例化 wifi网络
PubSubClient client(espClient); //将网络传入MQTT
AliIotLink aliLink(client);  //将mqtt传入服务


void working(uint16_t delayTime, float temps);

//回调函数
void Callbacks(char* topic, byte* payload, unsigned int length)
{
  //消息解析
  StaticJsonBuffer<256> jsonBuffer;
  JsonObject& JsonData = jsonBuffer.parseObject(payload);
  if (!JsonData.success()) //判断对象是否符合标准
  {
    return;
  }


  //JsonData["params"]["Frequency"]
  JsonVariant  frequency = JsonData["params"]["Frequency"]; //取出key中的消息;
  JsonVariant  direction = JsonData["params"]["direction"]; //取出key中的消息;
  JsonVariant  onoff = JsonData["params"]["onoff"]; //取出key中的消息;
  bool directionData ;

  
  if (frequency.success())     //如果频率消息存在
  {
    VDF.SetF(frequency.as<uint16_t>());     //将频率数据发送到变频器
  }
  if (direction.success())    //如果方向数据存在
  {
    directionData = direction.as<bool>();    //将方向数据缓存
  }
  if (onoff.success())      //启停数据存在
  {
    if (onoff.as<bool>() == 0)
    {
      VDF.stop();       //停止电机
    }
    else
    {
      VDF.run(directionData);      //启动电机
    }
  }
}

void setup()
{
  Serial.begin(9600, SERIAL_8E1);    //初始化串口,参数为变频器配置参数
  VDF.begin(Serial); //将串口对象传入变频器库

  //初始化WIFI
  WiFi.mode(WIFI_STA); // 接入端模式
  WiFi.begin(ssid, password);  //初始化并且链接wifi
  while (WiFi.status() != WL_CONNECTED)
  {
    delay(500);
  }

  //初始化阿里云
  aliLink.subTopic(FPSTR(setTopic));   //订阅服务器下行消息
  aliLink.setCallback(Callbacks);   //注册下发消息回调函数
  aliLink.begin(FPSTR(DeviceName), FPSTR(ProductKey), FPSTR(DeviceSecret)); //完成初始化配置 三元素(DeviceName,ProductKey,DeviceSecret)
}
void loop()
{
  //阿里云链接维持
  aliLink.loop();
  if (aliLink.state() != 0) //错误消息打印
  {
    Serial.println(aliLink.state());  //返回平台链接消息代码
  }
}

代码有一定的变动,因为我们不需要上报消息了。所以去掉了上报消息的部分,然后因为我们需要接受平台的反馈消息,所以我们启用了回调函数,并且将控制逻辑写在了回调函数中

下载完代码后,记得插回485模块

设备上线后,我们首先查看下设备的频率情况

IMG_4998.JPG

设备上当前默认值是30HZ

我们使用阿里云IOT的设备在线调试功能

1.png

首先进入在线调试页面

2.png

选择频率,方法是设置,然后设置一个值,我们设定为5000(就是修改图上2500这个数,截图截错了。。囧)点击发送指令

4.png

发送指令后右侧会有日志记录

我们再来看设备端

IMG_5001.JPG

当前设备频率已经被正确设定了

其他指令,包括启动停止均可进行在线调试,可以自己动手测试

演示视频

如此,我们就完整的实现了通过阿里云IOT的在线调试功能,通过协议指令来控制我们的工业设备,下一篇,我们来构建一个web可视化页面,通过鼠标交互的方式实现控制

相关文章
|
3月前
|
存储 分布式计算 物联网
Apache IoTDB进行IoT相关开发实践
当今社会,物联网技术的发展带来了许多繁琐的挑战,尤其是在数据库管理系统领域,比如实时整合海量数据、处理流中的事件以及处理数据的安全性。例如,应用于智能城市的基于物联网的交通传感器可以实时生成大量的交通数据。据估计,未来5年,物联网设备的数量将达数万亿。物联网产生大量的数据,包括流数据、时间序列数据、RFID数据、传感数据等。要有效地管理这些数据,就需要使用数据库。数据库在充分处理物联网数据方面扮演着非常重要的角色。因此,适当的数据库与适当的平台同等重要。由于物联网在世界上不同的环境中运行,选择合适的数据库变得非常重要。 原创文字,IoTDB 社区可进行使用与传播 一、什么是IoTDB 我
155 9
Apache IoTDB进行IoT相关开发实践
|
4月前
|
存储 分布式计算 物联网
Apache IoTDB进行IoT相关开发实践
IoTDB是专为物联网(IoT)设计的开源时间序列数据库,提供数据收集、存储、管理和分析。它支持高效的数据写入、查询,适用于处理大规模物联网数据,包括流数据、时间序列等。IoTDB采用轻量级架构,可与Hadoop和Spark集成,支持多种存储策略,确保数据安全和高可用性。此外,它还具有InfluxDB协议适配器,允许无缝迁移和兼容InfluxDB的API和查询语法,简化物联网项目的数据管理。随着物联网设备数量的快速增长,选择适合的数据库如IoTDB对于数据管理和分析至关重要。
236 12
|
4月前
|
存储 分布式计算 物联网
Apache IoTDB进行IoT相关开发实践
The article introduces IoTDB, an open-source time-series database designed for efficient management of IoT-generated data. It addresses challenges like real-time integration of massive datasets and security. IoTDB supports high-performance storage,
135 0
Apache IoTDB进行IoT相关开发实践
|
4月前
|
分布式计算 NoSQL 物联网
麻省理工IOT教授撰写的1058页Python程序设计人工智能实践手册!
Python是世界上最流行的语言之一,也是编程语言中使用人数增长最快的一种。 开发者经常会很快地发现自己喜欢Python。他们会欣赏Python的表达力、可读性、简洁性和交互性,也会喜欢开源软件开发环境,这个开源环境正在为广泛的应用领域提供快速增长的可重用软件基础。 几十年来,一些趋势已经强有力地显现出来。计算机硬件已经迅速变得更快、更便宜、更小;互联网带宽已经迅速变得越来越大,同时也越来越便宜;优质的计算机软件已经变得越来越丰富,并且通过“开源”方式免费或几乎免费;很快,“物联网”将连接数以百亿计的各种可想象的设备。这将导致以快速增长的速度和数量生成大量数据。 在今天的计算技术中,最新的创新
|
4月前
|
分布式计算 NoSQL 物联网
麻省理工IOT教授撰写的1058页Python程序设计人工智能实践手册!
Python是世界上最流行的语言之一,也是编程语言中使用人数增长最快的一种。 开发者经常会很快地发现自己喜欢Python。他们会欣赏Python的表达力、可读性、简洁性和交互性,也会喜欢开源软件开发环境,这个开源环境正在为广泛的应用领域提供快速增长的可重用软件基础。
|
5月前
|
存储 分布式计算 物联网
Apache IoTDB进行IoT相关开发实践
IoTDB是面向物联网的时序数据库,专注于时间序列数据管理,提供高效的数据处理、集成Hadoop和Spark生态、支持多目录存储策略。它还具有InfluxDB协议适配器,允许无缝迁移原本使用InfluxDB的业务。文章讨论了IoTDB的体系结构,包括数据文件、系统文件和预写日志文件的存储策略,并介绍了如何配置数据存储目录。此外,还提及了InfluxDB版本和查询语法的支持情况。IoTDB在物联网数据管理和分析中扮演关键角色,尤其适合处理大规模实时数据。
92 5
|
5月前
|
存储 分布式计算 物联网
Apache IoTDB进行IoT相关开发实践
物联网技术带来数据库管理挑战,特别是实时数据整合与安全性。IoTDB是一个专为时间序列数据设计的数据库,提供数据收集、存储和分析服务,适用于海量物联网数据。其架构包括数据文件、系统文件和预写日志文件的管理,并支持多目录存储策略。此外,IoTDB还开发了InfluxDB协议适配器,使得用户能无缝迁移原有InfluxDB业务。此适配器基于IoTDB的Java服务接口,转换InfluxDB的元数据格式,实现与IoTDB的数据交互。目前,适配器支持InfluxDB 1.x版本及部分查询语法。
179 5
|
6月前
|
消息中间件 弹性计算 物联网
【阿里云弹性计算】阿里云ECS在IoT领域的应用:支撑大规模设备连接与数据处理
【5月更文挑战第26天】阿里云ECS是弹性计算服务,支持IoT设备的连接与数据处理。通过MQTT协议实现设备快速接入,配合消息队列处理异构实时数据。ECS可用于部署数据处理工具、应用服务,如智能家居控制系统,通过弹性伸缩适应负载变化。结合阿里云其他服务,ECS为IoT提供完整解决方案,助力企业数字化转型。
88 0
|
传感器 监控 物联网
阿里云IoT HaaS 510:快速实现物联网数据传输的利器
众所周知,物联网(IoT)是近年来日益热门的技术领域之一,它的广泛应用为人们的生活和工作带来了无限可能。在物联网应用中,数据的采集和传输是至关重要的一环。DTU是一种应用于物联网数据传输的终端设备,它可以将各类传感器、数据采集单元等通过串口RS232/485传输到DTU,再由DTU转发到4G网络上传至云端。阿里云IoT HaaS 510是一款开板式DTU产品,能够帮助企业快速搭建物联网平台,并实现数据的采集和传输,那么本文就来简单分享一下。
491 1
阿里云IoT HaaS 510:快速实现物联网数据传输的利器
|
监控 物联网 Java