设备使用HTTPS协议接入IoT物联网平台

简介: HTTPS协议接入IoT物联网平台

设备基于HTTPS协议接入IoT平台

设备基于HTTPS协议接入IoT平台仅华东2支持
官网文档 https://help.aliyun.com/document_detail/58034.html

1.设备身份认证:通过三元组获取token

HTTPS服务器地址为 https://iot-as-http.cn-shanghai.aliyuncs.com
/>image.png
image.png

认证请求示例:

POST /auth HTTP/1.1
Host: iot-as-http.cn-shanghai.aliyuncs.com
Content-Type: application/json
body: {
    "version": "default",
    "clientId": "mylight1000002",
    "signmethod": "hmacsha1",
    "sign": "4870141D4067227128CBB4377906C3731CAC221C",
    "productKey": "ZG1EvTEa7NN",
    "deviceName": "NlwaSPXsCpTQuh8FxBGH",
    "timestamp": "1501668289957"
}

返回示例:

{
  "code": 0,//业务状态码
  "message": "success",//业务信息
  "info": {
    "token":  "6944e5bfb92e4d4ea3918d1eda3942f6"
  }
}

2.设备数据上报

HTTPS服务器地址为 https://iot-as-http.cn-shanghai.aliyuncs.com/topic/${topic}

image.png

请求示例:

POST /topic/a1GFjLP3xxC/device123/pub
Host: iot-as-http.cn-shanghai.aliyuncs.com
password:${token}
Content-Type: application/octet-stream
body: ${your_data}

返回示例

{
  "code": 0,//业务状态码
  "message": "success",//业务信息
  "info": {
    "messageId": 892687627916247040
  }
}

3.实战案例Nodejs版

3.1 创建高级版产品

image.png

3.2 功能定义

添加产品属性定义

属性名 标识符 数据类型 范围
温度 temperature float -50~100
湿度 humidity float 0~100

image.png

3.3 设备管理>注册设备,获得身份三元组

image.png

3.4 设备模拟代码

var rp = require('request-promise');
const crypto = require('crypto');

const deviceConfig = {
    productKey: "替换productKey",
    deviceName: "替换deviceName",
    deviceSecret: "替换deviceSecret"
}

const topic = `/sys/${deviceConfig.productKey}/${deviceConfig.deviceName}/thing/event/property/post`;

//1.获取身份token
rp(getAuthOptions(deviceConfig))
    .then(function(parsedBody) {
        console.log('Auth Info :'+JSON.stringify(parsedBody))
        //2.发布物模型数据
        pubData(topic, parsedBody.info.token, getPostData())
    })
    .catch(function(err) {
        console.log('Auth err :'+JSON.stringify(err))
    });

//生成Auth认证的参数
function getAuthOptions(deviceConfig) {

    const params = {
        productKey: deviceConfig.productKey,
        deviceName: deviceConfig.deviceName,
        timestamp: Date.now(),
        clientId: Math.random().toString(36).substr(2),
    }

    //1.生成clientId,username,password
    var password = signHmacSha1(params, deviceConfig.deviceSecret);

    var options = {
        method: 'POST',
        uri: 'https://iot-as-http.cn-shanghai.aliyuncs.com/auth',
        body: {
            "version": "default",
            "clientId": params.clientId,
            "signmethod": "hmacsha1",
            "sign": password,
            "productKey": deviceConfig.productKey,
            "deviceName": deviceConfig.deviceName,
            "timestamp": params.timestamp
        },
        json: true
    };

    return options;
}

//publish Data to IoT
function pubData(topic, token, data) {

    const options = {
        method: 'POST',
        uri: 'https://iot-as-http.cn-shanghai.aliyuncs.com/topic' + topic,
        body: data,
        headers: {
            password: token,
            'Content-Type': 'application/octet-stream'
        }
    }

    rp(options)
        .then(function(parsedBody) {
            console.log('publish success :' + parsedBody)
        })
        .catch(function(err) {
            console.log('publish err ' + JSON.stringify(err))
        });

}
//模拟物模型数据
function getPostData() {
    var payloadJson = {
        id: Date.now(),
        params: {
            humidity: Math.floor((Math.random() * 20) + 60),
            temperature: Math.floor((Math.random() * 20) + 10)
        },
        method: "thing.event.property.post"
    }

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

    return JSON.stringify(payloadJson);
}
//HmacSha1 sign
function signHmacSha1(params, deviceSecret) {

    let keys = Object.keys(params).sort();
    // 按字典序排序
    keys = keys.sort();
    const list = [];
    keys.map((key) => {
        list.push(`${key}${params[key]}`);
    });
    const contentStr = list.join('');
    return crypto.createHmac('sha1', deviceSecret).update(contentStr).digest('hex');
}

3.5 运行效果

image.png

IoT物联网技术

相关实践学习
钉钉群中如何接收IoT温控器数据告警通知
本实验主要介绍如何将温控器设备以MQTT协议接入IoT物联网平台,通过云产品流转到函数计算FC,调用钉钉群机器人API,实时推送温湿度消息到钉钉群。
阿里云AIoT物联网开发实战
本课程将由物联网专家带你熟悉阿里云AIoT物联网领域全套云产品,7天轻松搭建基于Arduino的端到端物联网场景应用。 开始学习前,请先开通下方两个云产品,让学习更流畅: IoT物联网平台:https://iot.console.aliyun.com/ LinkWAN物联网络管理平台:https://linkwan.console.aliyun.com/service-open
相关文章
|
14天前
|
物联网
DC/AC电源模块:为物联网设备提供可靠的电力支持
DC/AC电源模块:为物联网设备提供可靠的电力支持
DC/AC电源模块:为物联网设备提供可靠的电力支持
|
14天前
|
安全 物联网
BOSHIDA DC/AC电源模块:为物联网设备提供可靠的电力支持
BOSHIDA DC/AC电源模块:为物联网设备提供可靠的电力支持
BOSHIDA DC/AC电源模块:为物联网设备提供可靠的电力支持
|
1天前
|
供应链 安全 物联网
物联网(IoT)安全:风险与防护策略
【6月更文挑战第26天】物联网(IoT)安全风险包括数据泄露、设备劫持、DDoS攻击、超级漏洞和不安全设备。防护策略涉及强化设备安全设计、建立认证授权机制、加密数据传输、实施安全监控、加强供应链管理、提升用户安全意识及采用零信任模型。多层面合作以降低安全威胁,确保物联网稳定安全。
|
8天前
|
安全 物联网 网络安全
智能家居安全:物联网设备的风险与防护
【6月更文挑战第18天】随着科技的飞速发展,智能家居设备已经深入人们的日常生活。然而,这些便捷的智能设备背后隐藏着不容忽视的安全风险。本文将探讨智能家居中常见的安全威胁,并提供有效的预防措施,帮助用户构建一个更加安全的智能家居环境。
|
10天前
|
传感器 人工智能 搜索推荐
人工智能(AI)与物联网(IoT)的融合是当今技术领域的一个重要趋势
人工智能(AI)与物联网(IoT)的融合是当今技术领域的一个重要趋势
|
10天前
|
安全 物联网 物联网安全
物联网(IoT)的兴起与挑战:技术变革的双刃剑
【6月更文挑战第17天】**物联网的崛起带来了智能家居、智慧城市等便利,但安全挑战、设备兼容性和带宽压力也随之而来。加强安全、统一标准及提升处理能力是关键。面对挑战,持续的技术创新和法规完善将推动其健康发展,物联网的未来充满希望。**
|
22天前
|
安全 前端开发 中间件
中间件中HTTP/HTTPS 协议
【6月更文挑战第3天】
18 3
|
23天前
|
传感器 物联网 Linux
物联网设备的操作系统之争:Linux vs RTOS
【6月更文挑战第4天】在遥远的数码星球,物联网城中的Linux先生与RTOS小姐展开激烈角逐,分别在操作系统领域各显神通。Linux先生以其开源、兼容性强、功能丰富占据服务器、桌面及嵌入式设备市场,适合处理复杂任务和需要强大计算能力的设备。而RTOS小姐以实时性、高效响应和低资源占用见长,适用于资源有限、强调实时性的物联网设备。设备制造商在两者间抉择,引发物联网设备操作系统的选择大战。通过Python与FreeRTOS示例,展现了两者在智能家居和生产线控制等场景的应用。在物联网世界,Linux与RTOS共同推动设备智能化,为生活带来更多便捷。
66 3
|
1天前
|
安全 物联网 网络安全
智能家居安全:物联网设备的风险与防护策略
【6月更文挑战第25天】在智能家居技术迅猛发展的今天,物联网(IoT)设备已成为现代生活的一部分。然而,随着这些设备的普及,安全问题也日益凸显。本文将深入探讨智能家居中物联网设备所面临的安全风险,并针对这些风险提出有效的防护策略。我们将从技术、用户教育以及政策制定三个层面,分析如何构建一个更加安全的智能家居环境。
|
6天前
|
机器学习/深度学习 安全 数据安全/隐私保护
【计算机网络】深度学习HTTPS协议
【计算机网络】深度学习HTTPS协议
16 0

热门文章

最新文章

相关产品

  • 物联网平台