树莓派|树莓派接入阿里云IOT平台1(Python模拟数据上传)

树莓派接入阿里云IOT平台1(Python模拟数据上传) 主要是通过Python脚本模拟两个数据(温度和相对湿度)上传到阿里云,非常简单,只要有一个树莓派 即可,不需要其他传感器,学习完本文章,下一章将搭载一些传感器进行实战,非常有趣。
云平台开发 注册阿里云账号
使用个人淘宝账号或手机号,开通阿里云账号,并通过实名认证(可以用支付宝认证)
注册产品与设备
找到物联网平台
树莓派|树莓派接入阿里云IOT平台1(Python模拟数据上传)
文章图片

【树莓派|树莓派接入阿里云IOT平台1(Python模拟数据上传)】1选择设备管理,2选择产品,3 选择快速入门
树莓派|树莓派接入阿里云IOT平台1(Python模拟数据上传)
文章图片

开始体验
树莓派|树莓派接入阿里云IOT平台1(Python模拟数据上传)
文章图片

填写产品名和设备名
树莓派|树莓派接入阿里云IOT平台1(Python模拟数据上传)
文章图片

设备平台选择Linux,设备连接协议选择MQTT,开发工具包这里我选择Node.js
树莓派|树莓派接入阿里云IOT平台1(Python模拟数据上传)
文章图片

其中三元组我们后面将在树莓派用到,SDK我们直接在树莓派上下载即可,所以这里的“下载Llinux工具包”我们不用管它。
树莓派|树莓派接入阿里云IOT平台1(Python模拟数据上传)
文章图片

点击完成即可,下面三个步骤我们先不管。
树莓派|树莓派接入阿里云IOT平台1(Python模拟数据上传)
文章图片

然后再回到产品管理界面,点击查看
树莓派|树莓派接入阿里云IOT平台1(Python模拟数据上传)
文章图片

点击功能定义,编辑草稿,设置自己产品的具体功能,在这里我们要收到树莓派传来的温度和相对湿度数据,所以我们得定义这两个功能,不然是接收不了的。
树莓派|树莓派接入阿里云IOT平台1(Python模拟数据上传)
文章图片

点击自定义功能
树莓派|树莓派接入阿里云IOT平台1(Python模拟数据上传)
文章图片

根据以下表格,添加温度和相对湿度两个功能
树莓派|树莓派接入阿里云IOT平台1(Python模拟数据上传)
文章图片

添加完后一定要点击发布
树莓派|树莓派接入阿里云IOT平台1(Python模拟数据上传)
文章图片

然后再回到产品管理界面,点击设备管理。
树莓派|树莓派接入阿里云IOT平台1(Python模拟数据上传)
文章图片

进入设备管理界面,点击设备查看
树莓派|树莓派接入阿里云IOT平台1(Python模拟数据上传)
文章图片

进入以下界面,点击右上角的查看,我们就可以查看三元组啦!等一下要用到
树莓派|树莓派接入阿里云IOT平台1(Python模拟数据上传)
文章图片

树莓派端开发 更改Python的版本
我们选用3.X以上的版本,具体2.X行不行好像官方也没说,他们是推荐使用3.X以上的版本的,这里我们在树莓派上修改一下,因为树莓派是默认使用2.X的版本的。
在终端运行以下命令

sudo update-alternatives --install /usr/bin/python python /usr/bin/python2 100 sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 150 sudo update-alternatives --config python

然后我们就可以看到一个界面
可以输入0,1,2去选择Python的
我输入0,然后回车
树莓派|树莓派接入阿里云IOT平台1(Python模拟数据上传)
文章图片

然后在终端输入以下命令可查看python的版本
python

退出python的编译环境按下ctrl+d
以python3程序来模拟设备,建立连接,上报数据。
在桌面建立一个文件夹 aliyun-iot-demo-python
通过终端进入该文件夹,然后下载安装SDK
cd cd./Desktop/aliyun-iot-demo-python pip install paho-mqtt#下载安装SDK

在aliyun-iot-demo-python文件夹内编写一个python脚本,这是官方的一个简单示例,我们需要填入我们的三元组,内容如下:
# -*- coding: utf-8 -*- import paho.mqtt.client as mqtt import time import hashlib import hmac import random import json #这个就是我们在阿里云注册产品和设备时的三元组啦 #把我们自己对应的三元组填进去即可 options = { 'productKey':'你的productKey', 'deviceName':'你的deviceName', 'deviceSecret':'你的deviceSecret', 'regionId':'cn-shanghai' }HOST = options['productKey'] + '.iot-as-mqtt.'+options['regionId']+'.aliyuncs.com' PORT = 1883 PUB_TOPIC = "/sys/" + options['productKey'] + "/" + options['deviceName'] + "/thing/event/property/post"; # The callback for when the client receives a CONNACK response from the server. def on_connect(client, userdata, flags, rc): print("Connected with result code "+str(rc)) # client.subscribe("the/topic")# The callback for when a PUBLISH message is received from the server. def on_message(client, userdata, msg): print(msg.topic+" "+str(msg.payload))def hmacsha1(key, msg): return hmac.new(key.encode(), msg.encode(), hashlib.sha1).hexdigest()def getAliyunIoTClient(): timestamp = str(int(time.time())) CLIENT_ID = "paho.py|securemode=3,signmethod=hmacsha1,timestamp="+timestamp+"|" CONTENT_STR_FORMAT = "clientIdpaho.pydeviceName"+options['deviceName']+"productKey"+options['productKey']+"timestamp"+timestamp # set username/password. USER_NAME = options['deviceName']+"&"+options['productKey'] PWD = hmacsha1(options['deviceSecret'],CONTENT_STR_FORMAT) client = mqtt.Client(client_id=CLIENT_ID, clean_session=False) client.username_pw_set(USER_NAME, PWD) return clientif __name__ == '__main__': client = getAliyunIoTClient() client.on_connect = on_connect client.on_message = on_message client.connect(HOST, 1883, 300) payload_json = { 'id': int(time.time()), 'params': { 'temperature': random.randint(20, 30),#随机温度 'humidity': random.randint(40, 50)#随机相对湿度 }, 'method': "thing.event.property.post" } print('send data to iot server: ' + str(payload_json)) client.publish(PUB_TOPIC,payload=str(payload_json),qos=1) client.loop_forever()

修改完毕保存,我们运行该文件,若无错,去阿里云平台查看,是否有接收到数据。
效果 去到设备管理界面,若看到设备成功在线,那么说明树莓派连接阿里云成功
树莓派|树莓派接入阿里云IOT平台1(Python模拟数据上传)
文章图片

点击查看,再点击物理模型数据
树莓派|树莓派接入阿里云IOT平台1(Python模拟数据上传)
文章图片

然后你就可以看到湿度和温度数据啦,还可以实时刷新数据喔
树莓派|树莓派接入阿里云IOT平台1(Python模拟数据上传)
文章图片
树莓派接入阿里云的基础篇到此结束啦,有问题的小伙伴下方留言,后面 会持续更新,接入一些传感器进行使用,想了解的小伙伴就关注我吧!

    推荐阅读