Board logo

标题: Python搭建物联网,一招搞定所有代理商 更新 [打印本页]

作者: look_w    时间: 2019-4-12 14:03     标题: Python搭建物联网,一招搞定所有代理商 更新

三、云端设置

在云端建立一个高级产品,并创建两个设备,以供ESP32 和PC连接。




需要在产品中定义一下功能。




云端和设备端都建立好了之后,可以查看设备运行状态看到数据上传
15344105-9125ca5ecd089d71



这是查看数据记录得到的结果


云端数据记录.JPG

当你看到正确的数据之后,就说明你的成功接入物联网并上传了数据。

接下来就是最重要的部分——设置是使用规则引擎来进行数据转发,将设备demo_01的数据转发到demo_02。这一步的语法很重要,虽然有官网有详细教程,但是当时还是搞了好久才完全正确。

规则查询语句:

SELECT items.IndoorTemperature.value as IndoorTemperature FROM "/sys/use-your-productkey-here/Demo_01/thing/event/property/post" WHERE items.IndoorTemperature.value > 0

四、PC端接入

PC 端使用python模拟MQTT设备登陆阿里云订阅消息就行了,只要装好python很快就可以实现,网上也有很多代码。代码的很大一部分就是在做三元组认证,可以将这部分稍微修改一下来计算ESP32 登陆时所需的

PC端python代码如下:

# coding=utf-8

import datetime

import time

import hmac

import hashlib

import math

try:

import paho.mqtt.client as mqtt

except ImportError:

print("MQTT client not find. Please install as follow:")

print("pip install paho-mqtt")

# 设置连接信息

#Demo_02

ProductKey = "*********"#使用你自己的

ClientId = "2234" # 自定义clientId

DeviceName = "Demo_02"

DeviceSecret ="************************************8**"#使用你自己的

# 获取时间戳(当前时间毫秒值)

us = math.modf(time.time())[0]

ms = int(round(us * 1000))

timestamp = str(ms)

# 计算密码(签名值)

def calculation_sign(signmethod):

data = "".join(("clientId", ClientId, "deviceName", DeviceName,

"productKey", ProductKey, "timestamp", timestamp))

if "hmacsha1" == signmethod:

# ret = hmac.new(bytes(DeviceSecret),

# bytes(data), hashlib.sha1).hexdigest()

ret = hmac.new(bytes(DeviceSecret, encoding="utf-8"),

bytes(data, encoding="utf-8"),

hashlib.sha1).hexdigest()

elif "hmacmd5" == signmethod:

# ret = hmac.new(bytes(DeviceSecret, encoding="utf-8"),

# bytes(data, encoding="utf-8"), hashlib.md5).hexdigest()

ret = hmac.new(bytes(DeviceSecret, encoding="utf-8"),

bytes(data, encoding="utf-8"),

hashlib.md5).hexdigest()

else:

raise ValueError

return ret




欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0