【实践】工业用变频器上云 【2】 将硬件设备接入阿里云,并且能正常通讯

简介: 本系列介绍,如何将一台台达变频器接入阿里云物联网,并且实现云端操控的实践案例。本章介绍如何将我们的硬件设备顺利的接入阿里云物联网平台,并且正常的传输数据

将设备接入阿里云并且能显示数据

图片1.jpg

协议

首先我们需要理解阿里云IOT的 ALINK JSON协议,其实这个协议很简单

{
    "id":1,
    "version":"1.0",
    "params":
    {
        "Frequency":5000,
        "direction":0,
        "onoff":1
    },
    "method":"thing.event.property.post"
}

以上就是标准的Alink Json协议的范本,params的标签下面就是我们之前构建的设备模型的参数,只要将数据匹配进去云端就可以正确解析我们设备构建的数据了

我们来构建硬件程序(标准的arduino ESP8266 C++源码)
用到如下库:
https://github.com/MINI-Qiang/aliIotLink 【阿里云IOT链接】
https://github.com/bblanchon/ArduinoJson/tree/5.x 【arduinoJSON第5版,如果使用6版本注意自行修改】

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

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

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)
//{
//}

void setup()
{
  Serial.begin(115200);

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

  //初始化阿里云
  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());  //返回平台链接消息代码
  }
  working(10000); //上报业务,每10秒(10000ms)上报一次
}

// 构建Alink协议
String updateAlinkJson(uint16_t _id, JsonObject &_AliIotJson)
{
  StaticJsonBuffer<256> jsonBuffer;
  JsonObject& AlinkJson = jsonBuffer.createObject();
  AlinkJson["id"] = _id;
  AlinkJson["version"] = "1.0";
  AlinkJson["params"] = _AliIotJson;
  AlinkJson["method"] = "thing.event.property.post";
  String JsonStr;
  AlinkJson.printTo(JsonStr);
  return JsonStr;
}

//定时上报数据与状态
void working(uint16_t delayTime)
{
  uint32_t thisTime = millis();
  if ((thisTime % delayTime) == 0)
  {
    StaticJsonBuffer<130> jsonBuffer; //定义json缓冲区
    JsonObject& paramsJson = jsonBuffer.createObject(); //初始化对象
    paramsJson["Frequency"] = 4999; //将频率数据填为5000
    //paramsJson["direction"] = false; //
    //paramsJson["onoff"] = true; //
    String data = updateAlinkJson(random(1, 100), paramsJson); //提供一个随机ID,并且将负载消息加入
    aliLink.publish(postTopic, data.c_str());
    Serial.println(data); //串口同步输出消息
  }
}

代码结构非常简单,填写自己的wifi帐号密码,然后按照之前我们创建设备的时候提供的链接参数进行修改

然后使用ArduinoJSON支持库构建一个阿里云ALINKJSON的标准框架提交数据即可完成数据数据上行

1.png

我们确认下,新设备是没有任何数据的

程序上传

2.png

打开IDE 上传我们的程序到控制器,注意,上传的时候不能堆叠485模块,因为上传程序也会使用串口,如果堆叠会造成信道冲突致使失败

注意确认选择板卡 速率和端口

3.png

然后点击上传,上传完成后,硬件会自动连接WIFI,然后开始向阿里云发送数据

4.png

从云端的设备运行状态就可以看出来,设备上报的数据已经在了。而且设备本身的状态也变成了在线,至此,我们的硬件与阿里云IOT的链接就完成了

内容总结:本章内容需仔细阅读源码,理解如何通过json和阿里云进行上报数据的

系列链接

【实践】工业用变频器上云 【1】 硬件介绍 与阿里云IOT设备创建

相关文章
|
1月前
|
存储 弹性计算 人工智能
2024阿里云开年采购优惠活动,云服务器99计划可领上云代金券
2024阿里云开年采购优惠活动,云服务器99计划可领上云代金券,2024年阿里云3月优惠「开年采购季」云服务器价格表和优惠券领取,99计划云服务器99元一年起、免费领取上云扶持优惠券,不只是云服务器、云数据库、存储、云电脑、域名等均有活动
|
2月前
|
弹性计算
2024年阿里云服务器优惠活动汇总_普惠上云_阿里云优惠
2024年阿里云服务器优惠活动汇总_普惠上云_阿里云优惠,2024阿里云服务器优惠活动政策整理,轻量2核2G3M服务器61元一年、2核4G4M带宽165元1年,云服务器4核16G10M带宽26元1个月、149元半年,阿里云ECS云服务器2核2G3M新老用户均可99元一年续费不涨价,企业用户2核4G5M带宽199元一年,阿里云百科整理2024阿里云优惠活动政策整理、云服务器CPU内存、带宽、系统盘收费价格表
72 0
|
2月前
|
弹性计算 安全 数据库
阿里云优惠活动中心_精选活动_产品优惠_上云首选_普惠好价
阿里云优惠活动中心_精选活动_产品优惠_上云首选_普惠好价
53 0
|
1月前
|
存储 安全 网络协议
2024阿里云上云采购季活动,云服务器计算型c8a、通用型g8i/g8a/g8y实例区别及价格参考
在阿里云2024年的上云采购季活动中,除了以往活动中有的轻量应用服务器和经济型e、通用算力型u1、计算型c7、通用型g7实例之外,阿里云还新增了计算型c8a、通用型g8i/g8a和g8y实例规格,这些都是具有超高性能的AMD&Intel&倚天第八代云服务器,那么这几个云服务器实例规格的性能及适用场景是怎样的呢?本文为大家介绍阿里云计算型c8a、通用型g8i/g8a和g8y实例规格性能及适用场景。
367 0
2024阿里云上云采购季活动,云服务器计算型c8a、通用型g8i/g8a/g8y实例区别及价格参考
|
3月前
|
关系型数据库 MySQL 分布式数据库
横琴人寿引入阿里云PolarDB云数据库支撑寿险核心业务上云
横琴人寿近年来启动了数字化转型,IT基础设施云化是转型的一个重要方向,数据库的云原生化是其中的核心工作之一,选型过程中重点考察了阿里云PolarDB MySQL数据库,三层解耦、极致弹性、100%兼容、高性价比等方面表现突出,在后续使用过程中对寿险的核心业务上云起到了很重要的作用。
|
3月前
|
存储 人工智能 安全
阿里云企业成长解决方案,含通用、企业上云、企业服务、教育等多场景
在数字化时代,企业的成长离不开云计算技术的支持。阿里云作为领先的云服务提供商,推出了全面的企业成长解决方案,涵盖通用场景、企业上云、新零售、企业服务、教育、游戏、医疗健康、文化传媒和工业制造等多个行业。这些解决方案旨在帮助企业轻松应对各种挑战,实现数字化转型和升级。
阿里云企业成长解决方案,含通用、企业上云、企业服务、教育等多场景
|
4月前
|
弹性计算 缓存 编解码
阿里云服务器价格真便宜了,多款特价云服务器助你优惠上云
本文将介绍阿里云的几款特价云服务器:轻量应用服务器2核2M3M带宽50GB 高效云盘63元1年,轻量应用服务器2核4M60GB 高效云盘165元1年,经济型e实例2核2G 40G Entry云盘,3M带宽99元,经济型e实例2核4G 40G Entry云盘,3M带宽30.06元3个月起,经济型e实例4核8G配置带宽按量付费模式下价格只要299元1年。
阿里云服务器价格真便宜了,多款特价云服务器助你优惠上云
|
4月前
|
弹性计算 安全 关系型数据库
阿里云上云解决方案参考,多种技术与行业解决方案助力企业上云
对于初次上云的用户来说,参考一份适合自己行业的解决方案可帮助自己快速上手,并根据方案的内容选择适合自己的云产品进行方案部署。阿里云发布各种解决方案是基于众多客户上云的成功案例萃取而成的最优化企业上云指导,涵盖前端Web和移动应用程序开发、网站搭建、网络组网、数据库、迁云等众多上云项目。本文为大家汇总了一些上云解决方案的详情入口,方便大家快速查询与自己场景相符的解决方案。
阿里云上云解决方案参考,多种技术与行业解决方案助力企业上云
|
4月前
|
物联网
阿里云企业用户专享上云补贴,区域补贴满10000元减5000元
阿里云为企业用户推出专属上云补贴优惠,企业提交申请内部评估及审批通过后,即可获取上云补贴金,使用补贴金购买指定云产品,满10000元即可立减5000元。
阿里云企业用户专享上云补贴,区域补贴满10000元减5000元
|
4月前
|
运维
高效运维,上云实践丨阿里云用户组北京站 12月15日等你来加入
阿里云的产品与技术专家,将结合案例展示CloudOps如何帮助企业降低IT运维成本,提升交付速度与系统可靠性;还会有企业的资深运维人员一起,探讨云上高效运维的最佳实践。