将树莓派接入物联网平台

更新时间:
复制为 MD 格式

通过将树莓派设备接入物联网平台实现数据上报。

步骤一:安装依赖库

Python 3支持MQTT需要Paho-MQTT的库的支持,参照步骤安装Paho-MQTT支持库。

  1. 单击系统界面左上角的命令窗口图标。

  2. 下载并安装Paho-MQTT。

    sudo python3 -m pip install paho-mqtt==1.6.1 -i https://mirrors.aliyun.com/pypi/simple/

步骤二:下载程序文件包

  1. 下载源码文件包:code.zip

  2. 解压源码文件并将文件code移动到目录/home/pi/Desktop下。

    解压后的 code 文件夹中包含5个文件:aliLink.pymqttd.pyreadme.mdrpi.pyrun.py

步骤三:修改运行程序文件

  1. 鼠标选中run.py文件,右键单击并选择Thonny Python IDE

  2. 修改设备证书和Topic信息。

    相关信息的获取请参见创建产品和设备

    #!/usr/bin/python3
    import aliLink,mqttd,rpi
    import time,json
    # 三元素(iot后台获取)
    ProductKey = 'xxx'
    DeviceName = 'xxx'
    DeviceSecret = "xxx"
    # topic(iot后台获取)
    POST = 'xxx'  # 上报消息到云
    POST_REPLY = 'xxx'
    SET = '/sxxx'  # 订阅云端指令
    # 消息回调(云端下发消息的回调函数)
    def on_message(client, userdata, msg):
        #print(msg.payload)
  3. 单击Save并退出。

步骤四:启动源码程序

  1. 回到系统的命令行窗口。

  2. 执行以下命令进入源码文件目录,然后运行主程序。

  3. cd /home/pi/Desktop/code/
    sudo python3 run.py
程序运行成功后,设备将接入阿里云的物联网平台,可以与阿里云物联网平台实现通信。

设备每隔10秒上报一次自己的数据,并且会响应物联网平台下发的控制指令。

pi@raspberrypi:~ $ cd /home/pi/Desktop/code/
pi@raspberrypi:~/Desktop/code $ ls
aliLink.py  mqttd.py  __pycache__  readme.md  rpi.py  run.py
pi@raspberrypi:~/Desktop/code $ python3 run.py
{"id": 564455, "version": "1.0", "params": {"cpu_temperature": 45.0, "cpu_usage": 6.2, "RAM_total": 3999.8, "RAM_used": 320.1, "RAM_free": 2979.0, "DISK_total": 7.0, "DISK_used": 3.6, "DISK_perc": 54.0}, "method": "thing.event.property.post"}
{"id": 152795, "version": "1.0", "params": {"cpu_temperature": 45.0, "cpu_usage": 1.4, "RAM_total": 3999.8, "RAM_used": 320.3, "RAM_free": 2980.0, "DISK_total": 7.0, "DISK_used": 3.6, "DISK_perc": 54.0}, "method": "thing.event.property.post"}

验证与调试

  1. 登录物联网平台控制台。

  2. 在左侧导航栏,选择设备管理设备

  3. 设备页面的设备列表中,找到目标设备,查看设备在线状态和时间。

    若设备成功上线,状态列将显示绿色在线标识,最后上线时间列将显示设备最近一次连接平台的时间。

  4. 单击设备右侧操作栏的查看

  5. 在设备详情页选择物模型数据运行状态页签,查看设备上报的数据信息。

    页面以数据卡片形式展示磁盘总量磁盘使用率磁盘已用空间power_LED内存空闲内存总量内存占用CPU温度CPU使用率等属性的实时监控数值。

  6. 在设备详情页选择在线调试,单击前往查看

  7. 在线调试页面,选择属性调试,在power_LED输入框右侧,单击调试,选择获取

    系统的电源指示灯将根据发送指令变化:关闭或开启。