CTWing-中国电信IoT物联网平台设备接入实战

电信物联网平台: https://www.ctwing.cn

IoT物联网技术推荐搜索

中国电信

物联网

IoT

中国电信物联网平台,帮助者搭建安全性能强大的数据通道,方便终端(如传感器、执行器、嵌入式设备或智能家电等等)和云端的双向通信。

 

一、产品定义和设备注册

登陆控制台后,我们现在产品中心创建产品

 

产品创建后,我们可以在产品详情看到如下信息,其中设备为0台。

 

我们点击服务定义,属性列表,添加温度属性,并设置标识符和数据类型。

 

同理,添加湿度属性,设置完成如下。

 

我们点击服务列表,添加数据上报类型的服务,并定义服务标识参数列表

 

创建完成后,我们服务定义如下。

 

接下来,我们查看Topic列表,能看到用于数据上报的Topic主题。

 

最后,我们点击设备管理,添加一个新设备,注册成功后,设备状态为已注册

 

二、设备端程序开发

 

温湿度计硬件设备以MQTT协议接入电信物联网平台,通过阅读开发文档,我们知道以下信息:

  • 电信物联网平台支持MQTT3.1.1

  • 接入地址为mqtt.ctwing.cn,端口为1883,TLS单向认证的接入端口为8883

  • MQTT的CONNECT报文的clientid字段填入设备ID、username字段必填(任意字符即可)、password字段填入设备特征串

 

Node.js完整设备端代码如下:

const mqtt = require('mqtt');
//设备身份三元组+区域
const deviceConfig = {
    deviceId: "设备ID",
    deviceSecret: "设备特征码"
};

//1.设备CONNECT参数
const options = {
    username: deviceConfig.deviceId + Date.now(),
    clientId: deviceConfig.deviceId,
    password: deviceConfig.deviceSecret,
    protocolVersion: 4, //MQTT v3.1.1
}
//2.建立连接
const url = 'tcp://mqtt.ctwing.cn:1883';
const client = mqtt.connect(url, options);

//3.属性数据上报
const pubTopic = 'up_data';
setInterval(function() {
    //发布数据到topic
    client.publish(pubTopic, getPostData());
}, 5 * 1000);

function getPostData() {
    const payloadJson = {
            temperature: Math.floor((Math.random() * 20) + 10),
            humidity: Math.floor((Math.random() * 20) + 60)
        }

    console.log("===postData\n topic=" + pubTopic)
    console.log(payloadJson)

    return JSON.stringify(payloadJson);
}

 

三、设备端运行

 

我们启动模拟脚本,设备接入电信物联网平台。此时,我们查看设备管理,当前设备变为已激活,并且处于在线状态。

 

我们点击数据查看,输入设备ID,可以看到属性上报的数据内容,其中前两条包含两个属性,后两条仅有一个温度属性上报。

 

四、设备行为日志

 

当设备运行出现异常时,我们可以进入消息跟踪,来定位问题。下面截图,展示了数据上报异常信息。

阿里云物联网平台提供了Android SDK,可以帮助开发者快速接入设备。下面简单介绍如何使用Android Studio版的阿里云物联网平台SDK接入设备。 步骤1:创建设备 在阿里云物联网平台创建一个设备,将设备的三元组(ProductKey、DeviceName、DeviceSecret)记录下来。 步骤2:集成SDK 下载阿里云物联网平台Android SDK,将下载的SDK文件解压缩,将其中的“aliyun-iot-sdk-android.jar”文件拷贝到Android Studio项目的“libs”目录下。 步骤3:添加依赖 在项目的“build.gradle”文件中添加以下依赖: ```implementation 'com.alibaba:fastjson:1.2.31'``` 步骤4:添加权限 在项目的“AndroidManifest.xml”文件中添加以下权限: ``` <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> ``` 步骤5:初始化SDK 在需要使用SDK的Activity的“onCreate”方法中,添加以下代码进行SDK初始化: ``` // 初始化IoT物联网实例 IoTAPIClient ioTAPIClient = new IoTAPIClient.Builder() .setAppKey(appKey) .setAuthInfo(authInfo) .setConnectProtocol(IoTConnectProtocol.CONNECT_PROTOCOL_TCP) .build(); // 初始化设备 Device device = ioTAPIClient.getDevice(productKey, deviceName, deviceSecret); ``` 其中,appKey和authInfo是阿里云物联网平台授权信息,需要在阿里云物联网平台获取。productKey、deviceName和deviceSecret是在步骤1中获取的设备三元组。 步骤6:发送消息 使用设备实例,可以向阿里云物联网平台发送消息。例如: ``` // 发送消息 device.publish("/sys/" + productKey + "/" + deviceName + "/thing/event/property/post", "{\"CurrentTemperature\": " + temperature + "}", 0); ``` 其中,第一个参数是消息的Topic,第二个参数是消息的内容,第三个参数是消息的QoS(0或1)。 以上就是阿里云物联网平台Android SDK的简单接入流程。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

hanchufeng2020

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值