物联网 毕业设计、树莓派(大学记录)


一、项目说明和场景

使用的编程语言有Java、nodejs、python、C

  1. springboot框架
  2. 集成springsecurity做权限认证+JWT
  3. 硬件设备esp32和树莓派个2套
  4. 阿里云部署和通讯
  5. mqtt做传输
  6. 温湿度传感器,光敏,rola,led,蜂鸣器,语音播报、控件等设备
  7. 内网穿透、zabbix监控、摄像头等功能
  8. 树莓派设备定位百度地图等功能
  9. 主题老年人健康管理系统

二、简单的流程图示

在这里插入图片描述
在这里插入图片描述在这里插入图片描述

三、项目集成流程

  1. 阿里云安装mqtt
  2. 后端集成mqtt,硬件编写mqtt。通过发布和订阅进行消息通讯
  3. 树莓派和esp32通过rola进行关联
  4. 软硬件通过mqtt交互
  5. 硬件设备编写代码实现硬件功能
  6. 后台设计权限流程并落地实现
  7. 部署方面配置服务自启动systemd服务
  8. 阿里云安装zabbix做项目监测,并做成日志分流

相关内容一:springboot集成mqtt

相关内容二:centos、Ubuntu 安装mqtt 和 使用MQTT Mosquitto

要实现通过阿里云物联网平台对树莓派进行连接,并且可以通过阿里云物联网平台对树莓派远程控制其GPIO17口高低电平的输出,需要满足以下条件: 1. 树莓派需要连接到互联网,并且可以访问阿里云物联网平台。 2. 需要在阿里云物联网平台上创建一个 IoT 设备,并且为该设备生成一个设备证书。 3. 需要在树莓派上安装阿里云物联网平台提供的 SDK。 4. 树莓派上需要安装 Python 3。 下面是详细的步骤和代码: 1. 在阿里云物联网平台上创建一个 IoT 设备,并为该设备生成一个设备证书。 2. 在树莓派上安装阿里云物联网平台提供的 Python SDK。 ``` pip3 install aliyun-python-sdk-core pip3 install aliyun-python-sdk-iot ``` 3. 在树莓派上创建一个 Python 脚本,用于连接到阿里云物联网平台,获取设备 Shadow,以及更新设备 Shadow。 ```python import time from aliyunsdkcore.client import AcsClient from aliyunsdkcore.request import CommonRequest from aliyunsdkiot.request.v20170420 import PubRequest from aliyunsdkiot.request.v20170420 import RRpcRequest # 阿里云物联网平台的配置 client = AcsClient( "<accessKeyId>", # 替换为你的 AccessKeyId "<accessSecret>", # 替换为你的 AccessSecret "cn-shanghai" ) # 获取设备 Shadow def get_device_shadow(): request = CommonRequest() request.set_domain("iot.cn-shanghai.aliyuncs.com") request.set_version("2018-01-20") request.set_product_key("<productKey>") # 替换为你的 ProductKey request.set_device_name("<deviceName>") # 替换为你的 DeviceName request.set_action_name("GetDeviceShadow") response = client.do_action_with_exception(request) return response # 更新设备 Shadow def update_device_shadow(payload): request = PubRequest.PubRequest() request.set_accept_format('json') request.set_ProductKey('<productKey>') # 替换为你的 ProductKey request.set_MessageContent(payload) request.set_TopicFullName('/sys/<productKey>/<deviceName>/thing/update') request.set_Qos(0) response = client.do_action_with_exception(request) return response # 监听云端的控制指令 def listen_control_command(): request = RRpcRequest.RRpcRequest() request.set_accept_format('json') request.set_ProductKey('<productKey>') # 替换为你的 ProductKey request.set_DeviceName('<deviceName>') # 替换为你的 DeviceName request.set_Topic('/sys/<productKey>/<deviceName>/thing/service/+/+') response = client.do_action_with_exception(request) response = str(response, encoding='utf-8') return response # 控制 GPIO17 的高低电平 def set_gpio17(value): # TODO: 在这里编写控制 GPIO17 的代码 pass # 主程序 while True: # 监听云端的控制指令 command = listen_control_command() # 解析控制指令 # TODO: 在这里编写解析控制指令的代码 # 更新设备 Shadow payload = '{"method":"update","state":{"reported":{"gpio17":' + str(value) + '}}}' update_device_shadow(payload) # 等待一段时间 time.sleep(1) ``` 4. 在控制台上创建一个 Topic Filter,用于监听控制指令。 5. 在控制台上创建一个 Rule,将 Topic Filter 和 Python 脚本关联起来。 6. 在控制台上创建一个 Websocket 连接,用于实时查看设备 Shadow 的变化。 以上就是实现通过阿里云物联网平台对树莓派进行连接,并且可以通过阿里云物联网平台对树莓派远程控制其 GPIO17 口高低电平的输出的详细步骤和代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

suqinyi

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值