物联网

文章目录

  • 物联网
  • 前言
  • 一、创建产品
  • 二、创建设备
  • 总结

前言

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

一、创建产品


然后点击刚刚创建的产品,然后点击功能定义,点击草稿编辑,再点击自定义功能定义

然后输入你想要上传的信息的类型定义

二、创建设备

设备信息是基于你刚刚定义的产品信息

点击进去后你点击右上角的查看,可以看到三元组

将上边的三元组放入代码中,然后把那个标识符改改

#!/usr/bin/python3import 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 = hostself.Port = portself.timeOut = timeOutself.username =usernameself.password = passwordself.CcientID = CcientIDself.mqttc = paho.mqtt.client.Client(self.CcientID)    #配置IDif 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 = connectself.mqttc.on_message = messageself.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,hashlibdef linkiot(DeviceName,ProductKey,DeviceSecret,server = 'iot-as-mqtt.cn-shanghai.aliyuncs.com'):serverUrl = serverClientIdSuffix = "|securemode=3,signmethod=hmacsha256,timestamp="# 拼合Times = str(int(time.time()))  # 获取登录时间戳Server = ProductKey+'.'+serverUrl    # 服务器地址ClientId = DeviceName + ClientIdSuffix + Times +'|'  # ClientIduserNmae = DeviceName + "&" + ProductKeyPasswdClear = "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"] = paramsAlinkJson["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 =0while 1:i =i +1line =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 =0while True:i =i +1line =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 stateif __name__ == "__main__":# CPU informatiomCPU_temp =getCPUtemperature()CPU_usage =getCPUuse()print(CPU_usage)# RAM information# Output is in kb, here I convert it in Mb for readabilityRAM_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 informationDISK_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提供了大量能使我们快速便捷地处理数据的函数和方法。

连接阿里云物联网平台相关推荐

  1. 利用PYTHON连接阿里云物联网平台

    语言:python 3.7 环境:windows 10 实例:公共实例(免费) 阿里云的官方文档只有C语言和Linux环境,因此自我探索出利用PYTHON连接阿里云物联网平台的方法和步骤. 概述 - ...

  2. Paho Java Client 连接阿里云物联网平台

    Paho Java Client 连接阿里云物联网平台 进入阿里云物联网平台->点击产品->新建 点击设备->添加设备 查看设备证书,复制记录,后面使用 阿里云TCP通信 一机一密. ...

  3. 使用arduino D1 wifi模块(WeMos D1)连接阿里云物联网平台并成功实现APP点亮板载LED(九)---制作APP

    前几篇文章讲解了如何在阿里云控制台上给设备登记"身份证",如何用MQTT.fx客户端模拟一个设备连接阿里云物联网平台,分析了arduino编程环境如何配置依赖库,在arduino ...

  4. 手把手教你用Arduino接入阿里云物联网平台,ESP8266连接阿里云物联网平台必看教程...

    使用Ardui no 的方式快速连接阿里云物联网平台. 文中提到的 AliyunIoTSDK 这个 Arduino 库,可以在 Arduino 库商店里搜索到(搜索 AliyunIoTSDK) Ali ...

  5. ESP-MQTT-AT指令连接阿里云物联网平台

    文章目录 文章背景 关键的关键词 本章使用 本章约定 所需资源 技术正文 一:连接方式 二:步骤(简介 3.ESP模块+stm32单片机) 1.创建设备复制三元素组 2.信息生成 3.使用串口工具和云 ...

  6. 阿里云HaaS100物联网开发板学习笔记(四)轻应用初步--用javascript连接阿里云物联网平台

    摘要:本篇文章讲解如何使用JavaScript"轻应用"连接阿里云物联网平台并上报一个数据.仍然延续前几篇文章的结构,从安装软件环境开始讲,以使零基础的同学看了本篇文章之后,也能够 ...

  7. ESP8266 AT指令连接阿里云物联网平台

    模组:ESP-12F   ||   ESP-12S  ||   (保险来说,ESP模组的flash应该 大于4MB.或者说为32Mbit 才可以)待补充 ... 平台:阿里云物联网平台 固件:ESP8 ...

  8. 使用arduino D1 wifi模块(WeMos D1)连接阿里云物联网平台并成功实现APP点亮板载LED(五)---MQTT.fx模拟设备连接阿里云

    前文提到,物联网设备在阿里云物联网平台登记了"身份证"之后,阿里云物联网平台上的设备就处于"未激活""离线"或者"在线" ...

  9. STM32F103C8T6通过ESP8266连接阿里云物联网平台(附代码)

    代码: https://download.csdn.net/download/cainiaofu/13973012 阿里云lot Studio控制 Web开发(程序已精简) 分享一下自己使用stm32 ...

  10. 树莓派mqtt协议连接阿里云物联网平台,手机端获取数据并控制

    树莓派mqtt协议连接阿里云物联网平台(三) 前面树莓派的数据已经上传到云端,可是我的android手机该如何获取树莓派上传的这些数据呢,,困惑了我好几天的疑问,解开的那一刻,真的时拨开云雾见青天啊. ...

最新文章

  1. 小瓜牛漫谈 — String、StringBuffer、StringBuilder
  2. swagger导出excel文档_将Swagger2文档导出为HTML或markdown等格式离线阅读
  3. NYOJ 5177 疯牛(最大化最小值 二分搜索)
  4. csv 导 mysql
  5. rsync+lsyncd实现(本地以及远程)文件实时同步
  6. 他曾是离诺贝尔奖最近的中国人之一!
  7. qt 窗口自绘、鼠标响应拖动窗口
  8. CentOS下搭建测试WEB平台
  9. c++ java string_C++中string类型的内部结构是什么?
  10. 斐波那契数(动态规划和递归)
  11. Layer弹窗回车执行确定按钮事件
  12. 3月28日 simulink学习(一)
  13. mysql与oracle语法区别
  14. 联想计算机电源风扇怎样清理,风扇除尘功能说明:联想电源管理V1.0、V7.0、V8.0及早期机型除尘说明...
  15. Emacs-224-彩虹猫的实现
  16. Java小游戏实操---大鱼吃小鱼 游戏开发
  17. 常用的dede标签小总结
  18. 平面点集的凸包问题的算法分析
  19. 等保测评中web应用防火墙怎么选择?
  20. 红帽与Cloudera结成大数据联盟 释放企业级Hadoop潜能

热门文章

  1. 论文投稿指南——中文核心期刊推荐(天文、测绘学)
  2. 企业信息化投入中咨询服务_中国铁建信息化综合业务咨询服务项目
  3. 如何构建中英文混合的语音识别模型?
  4. 为什么我们的自动化测试“要”这么难
  5. wpf Rectangle
  6. pc(电脑)用java通过adb操作android手机发短信及中文乱码解决
  7. 葡萄酒入门从酒标开始
  8. 08年朗讯(青岛)笔试题
  9. 计算机导论新发展方向,基于新工科的计算机导论课程教学改革研究
  10. 车联网终端4G-TBOX新能源汽车/汽油车/货车定位终端