连接阿里云物联网平台

这篇具有很好参考价值的文章主要介绍了连接阿里云物联网平台。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

物联网


前言

阿里云物联网平台: link
— `
pip3 install paho-mqtt

一、创建产品

阿里云物联网平台接入,python,阿里云,物联网,云计算

阿里云物联网平台接入,python,阿里云,物联网,云计算
然后点击刚刚创建的产品,然后点击功能定义,点击草稿编辑,再点击自定义功能定义
阿里云物联网平台接入,python,阿里云,物联网,云计算
然后输入你想要上传的信息的类型定义
阿里云物联网平台接入,python,阿里云,物联网,云计算

二、创建设备

设备信息是基于你刚刚定义的产品信息
阿里云物联网平台接入,python,阿里云,物联网,云计算

点击进去后你点击右上角的查看,可以看到三元组
阿里云物联网平台接入,python,阿里云,物联网,云计算
将上边的三元组放入代码中,然后把那个标识符改改

#!/usr/bin/python3

import aliLink,mqttd,rpi
import time,json

#线程
import threading
import time


###################################阿里云参数
# 三元素(iot后台获取)
ProductKey = '1'
DeviceName = '2'
DeviceSecret = "3"
# topic (iot后台获取)
POST = '/sys/1/2/thing/event/property/post'  # 上报消息到云
POST_REPLY = '/sys/1/2/thing/event/property/post_reply'
SET = '/sys/1/2/thing/service/property/set'  # 订阅云端指令


# 消息回调(云端下发消息的回调函数)
def on_message(client, userdata, msg):
    #print(msg.payload)
    Msg = json.loads(msg.payload)
    switch = Msg['params']['PowerLed']
    rpi.powerLed(switch)
    print(msg.payload)  # 开关值

#连接回调(与阿里云建立链接后的回调函数)
def on_connect(client, userdata, flags, rc):
    pass


# 链接信息
Server,ClientId,userNmae,Password = aliLink.linkiot(DeviceName,ProductKey,DeviceSecret)

# mqtt链接
mqtt = mqttd.MQTT(Server,ClientId,userNmae,Password)
mqtt.subscribe(SET) # 订阅服务器下发消息topic
mqtt.begin(on_message,on_connect)

def job1():
    # 信息获取上报,每10秒钟上报一次系统参数
    while True:
        time.sleep(10)


        # CPU 信息
        #CPU_temp = float(rpi.getCPUtemperature())  # 温度   ℃
        #CPU_usage = float(rpi.getCPUuse())         # 占用率 %
    
        # RAM 信息
        #RAM_stats =rpi.getRAMinfo()
        #RAM_total =round(int(RAM_stats[0]) /1000,1)    # 
        #RAM_used =round(int(RAM_stats[1]) /1000,1)
        #RAM_free =round(int(RAM_stats[2]) /1000,1)
    
        # Disk 信息
        #DISK_stats =rpi.getDiskSpace()
        #DISK_total = float(DISK_stats[0][:-1])
        #DISK_used = float(DISK_stats[1][:-1])
        #DISK_perc = float(DISK_stats[3][:-1])

        # 构建与云端模型一致的消息结构
        updateMsn = {
            'cpu_temperature':12,
            'cpu_usage':12,
            'RAM_total':12,
            'RAM_used':12,
            'RAM_free':12,
            'DISK_total':12,
            'DISK_used_space':12,
            'DISK_used_percentage':12,
            'PowerLed':12
        }
        JsonUpdataMsn = aliLink.Alink(updateMsn)
        print(JsonUpdataMsn)

        mqtt.push(POST,JsonUpdataMsn) # 定时向阿里云IOT推送我们构建好的Alink协议数据


###################################



new_thread = threading.Thread(target=job1, name="T1")
   # 启动新线程
new_thread.start()
#!/usr/bin/python3

# pip install paho-mqtt
import paho.mqtt.client

# =====初始化======
class MQTT():
    def __init__(self,host,CcientID,username=None,password=None,port=1883,timeOut=60):
        self.Host = host
        self.Port = port
        self.timeOut = timeOut
        self.username =username
        self.password = password
        self.CcientID = CcientID

        self.mqttc = paho.mqtt.client.Client(self.CcientID)    #配置ID
        if self.username is not None:    #判断用户名密码是否为空
            self.mqttc.username_pw_set(self.username, self.password)    #不为空则配置账号密码

        self.mqttc.connect(self.Host, self.Port, self.timeOut) #初始化服务器  IP  端口  超时时间


    # 初始化
    def begin(self,message,connect):
        self.mqttc.on_connect = connect
        self.mqttc.on_message = message
        self.mqttc.loop_start()  # 后台新进程循环监听

# =====发送消息==========
    def push(self,tag,date,_Qos = 0):
        self.mqttc.publish(tag,date,_Qos)
        #print('OK',date)

# =======订阅tips=====
    def subscribe(self,_tag):
        self.mqttc.subscribe(_tag)   #监听标签

import time,json,random
import hmac,hashlib

def linkiot(DeviceName,ProductKey,DeviceSecret,server = 'iot-as-mqtt.cn-shanghai.aliyuncs.com'):
    serverUrl = server
    ClientIdSuffix = "|securemode=3,signmethod=hmacsha256,timestamp="

    # 拼合
    Times = str(int(time.time()))  # 获取登录时间戳
    Server = ProductKey+'.'+serverUrl    # 服务器地址
    ClientId = DeviceName + ClientIdSuffix + Times +'|'  # ClientId
    userNmae = DeviceName + "&" + ProductKey
    PasswdClear = "clientId" + DeviceName + "deviceName" + DeviceName +"productKey"+ProductKey + "timestamp" + Times  # 明文密码

    # 加密
    h = hmac.new(bytes(DeviceSecret,encoding= 'UTF-8'),digestmod=hashlib.sha256)  # 使用密钥
    h.update(bytes(PasswdClear,encoding = 'UTF-8'))
    Passwd = h.hexdigest()
    return Server,ClientId,userNmae,Passwd

# 阿里Alink协议实现(字典传入,json str返回)
def Alink(params):
    AlinkJson = {}
    AlinkJson["id"] = random.randint(0,999999)
    AlinkJson["version"] = "1.0"
    AlinkJson["params"] = params
    AlinkJson["method"] = "thing.event.property.post"
    return json.dumps(AlinkJson)

if __name__ == "__main__":
    pass
# 树莓派数据与控制

import os
# Return CPU temperature as a character string                                     

def getCPUtemperature():
    res =os.popen('vcgencmd measure_temp').readline()
    return(res.replace("temp=","").replace("'C\n",""))
 
# Return RAM information (unit=kb) in a list                                      
# Index 0: total RAM                                                              
# Index 1: used RAM                                                                
# Index 2: free RAM                                                                
def getRAMinfo():
    p =os.popen('free')
    i =0
    while 1:
        i =i +1
        line =p.readline()
        if i==2:
            return(line.split()[1:4])
 
# Return % of CPU used by user as a character string                               
def getCPUuse():
    data = os.popen("top -n1 | awk '/Cpu\(s\):/ {print $2}'").readline().strip()
    return(data)
 
# Return information about disk space as a list (unit included)                    
# Index 0: total disk space                                                        
# Index 1: used disk space                                                        
# Index 2: remaining disk space                                                    
# Index 3: percentage of disk used                                                 
def getDiskSpace():
    p =os.popen("df -h /")
    i =0
    while True:
        i =i +1
        line =p.readline()
        if i==2:
            return(line.split()[1:5])
def  powerLed(swatch):
    led = open('/sys/class/leds/led1/brightness', 'w', 1)
    led.write(str(swatch))
    led.close()

# LED灯状态检测
def getLed():
	led = open('/sys/class/leds/led1/brightness', 'r', 1)
	state=led.read()
	led.close()
	return state
    
if __name__ == "__main__":
 
    # CPU informatiom
    CPU_temp =getCPUtemperature()
    CPU_usage =getCPUuse()
    print(CPU_usage)
    # RAM information
    # Output is in kb, here I convert it in Mb for readability
    RAM_stats =getRAMinfo()

    RAM_total = round(int(RAM_stats[0]) /1000,1)
    RAM_used = round(int(RAM_stats[1]) /1000,1)
    RAM_free = round(int(RAM_stats[2]) /1000,1)
    print(RAM_total,RAM_used,RAM_free)
    # Disk information
    DISK_stats =getDiskSpace()

    DISK_total = DISK_stats[0][:-1]
    DISK_used = DISK_stats[1][:-1]
    DISK_perc = DISK_stats[3][:-1]
    print(DISK_total,DISK_used,DISK_perc)

总结

提示:这里对文章进行总结:

例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。文章来源地址https://www.toymoban.com/news/detail-517096.html

到了这里,关于连接阿里云物联网平台的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 微信小程序连接阿里云物联网平台——物联网远程控制开发1

    博主在尝试使用微信小程序与阿里云物联网平台的topic通信,但有些资源说的不够详细,容易搞懵小白,因此补充一些。 内容框架参考: 【物联网】微信小程序接入阿里云物联网平台 微信小程序连接阿里云物联网平台 - MQTT协议题 在此感谢两位博主的分享。 微信开发者平台

    2024年02月09日
    浏览(65)
  • 【ESP-01S / ESP8266 AT指令连接阿里云物联网平台】

    关注+星标 公众号,不错过精彩内容 作者 | MakingClub 微信公众号 | electronic造物实验室 注册阿里云账号并搜索物联网服务。选择并进入物联网平台产品页。 点击管理控制台,进入物联网平台管理界面。 选择公共实例(如果尚未开通,需要先进行开通,具体步骤不再赘述),然

    2024年02月07日
    浏览(64)
  • STM32+ESP8266+APP连接阿里云监测环境温湿度系列笔记1:阿里云物联网平台配置及数据上传

            在数据传递过程中阿里云物联网平台相当于服务器,ESP8266为客户端,通过路由器连接服务器时需要在物联网平台创建设备,具体过程如下: 1. 首先 在物联网平台创建公共实例,并点击进入, 图1 2.可见设备接入物联网平台的整体流程如图2中红色方框所示, 接下

    2024年02月04日
    浏览(58)
  • ESP8266-01S接入机智云物联网平台

    接入机智云物联网平台,首先需要烧写机智云的固件,官网就有免费下载直接使用! 下载对应固件包 ESP8266-01s模块进入烧录模式连接图 GPIO0用于固件烧写模式,低电平为烧写模式,高电平为运行模式(默认状态) ESP8266-01S      USB-TTL串口 3v3---------------3v3 GND--------------GND T

    2023年04月27日
    浏览(42)
  • Air780E|阿里云|AT命令|物联网|三元组|鉴权|算法|密钥生成|(3)-阿里云物联网手动接入步骤

    目录 基础资料 探讨重点 实现功能 硬件准备 软件版本 保姆级步骤 新建项目 1. MQTT连接官方说明: 2、配置文件基本模式 方式1:采用平台给定的MQTT连接参数 方式2:采用平台给定的MQTT连接工具计算相关参数 方式3:示例,采用Python实现连接参数生成 3、一型一密AT方式连接

    2023年04月22日
    浏览(45)
  • 腾讯云物联网开发平台 LoRaWAN 透传接入 更新版

    之前有一篇文章介绍LoRaWAN透传数据,不过还是用物模型+云端数据解析脚本,不是真正的透传。腾讯云物联网开发平台也支持对LoRaWAN原始数据的透传、转发。今天来介绍下。 腾讯云 IoT Explorer 是腾讯云主推的一站式物联网开发平台,IoT 小能手从设备侧开发、平台功能操作、应

    2023年04月26日
    浏览(48)
  • 阿里云物联网平台专用工具详细说明

    为了更便捷的使用阿里云物联网平台和更好的让YFIOs数据组态和阿里云物联网平台对接,开发了一款阿里云物联网平台专用工具-AliIoTTools。 AliIoTTools物联网平台专用工具第一版开发完毕的时候,阿里云物联网平台相关的API为151个(目前已经超过该数字),该工具共采用了77个

    2024年02月02日
    浏览(55)
  • 搭建阿里云物联网平台实现MQTT通信

    1,点击进入阿里云官方网站:阿里云-上云就上阿里云 (aliyun.com) 2,注册登录并且进行实名认证; 如下图: 点击右上角 控制台,进入如图界面:  3,在阿里物联网云平台创建设备:   首先创建产品:大致过程如下(多图预警)    添加自定义功能:  发布上线后,就成为了

    2024年02月08日
    浏览(63)
  • modbus采集和 mqtt上报相结合,通过荔枝派(F1c100s芯片模块)实现数据采集连接阿里云物联网平台进行数据上报和下发功能。

    通过荔枝派(F1c100s芯片模块)搭载SDIO-wifi模块,写入了主函数程序。根据读取modbus模拟器的数据,反馈到阿里云物联网平台当中。图中左侧的阿里云物联网平台所显示的温度为66摄氏度,与modbus模拟器的数据是一样的,图片右侧是荔枝派(F1c100s芯片模块)的编程软件X-shell的

    2024年02月15日
    浏览(55)
  • 基于阿里云物联网平台的Android物联网软件框架(快速开发)

    提示:该工程是连接阿里云物联网平台的模板代码,将MQTT连接、JSON数据的订阅发布等操作封装,并且能够迅速将获取到的数据显示到手机界面上。使用了Servier进行网络连接的逻辑操作,并且使用自定义控件,绑定对用标识符的数据对象,实现了数据自动实时更新等操作,并

    2024年02月06日
    浏览(54)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包