# erm_rpi **Repository Path**: NoComments/erm_rpi ## Basic Information - **Project Name**: erm_rpi - **Description**: 机房监控系统树莓派版,esp32 固件有问题,mqtt 库不完善,老是掉线,编译太费事就改用了树莓派 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 2 - **Created**: 2017-11-22 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 机房监控系统网关说明文档 ## 本工程使用方法: ### 硬件 树莓派 + 外接串口(由于树莓派自带串口被用于) ### 软件使用方法: 复制代码到树莓派(Linux 系统,任意目录,添加开机自启动即可) 打开本工程,修改 config.py 里面 wifi 信息、MQTT 信息等。 下载程序完成之后接口正常工作。 ## 通信方式 ### 硬件连接 树莓派 USB 口插入外置 USB 转串口模块,模块连接网关 Zigbee 部分即可 波特率 115200 ,可在 config.py 中配置 ### 通信协议 #### chip_id 获取方法: 单片机端发送: ``` {'chip_id':'?'} ``` 树莓派会回复: ``` {'chip_id':'36366'} ``` #### 数据上传和获取: ##### 数据获取: MQTT 接收到来自服务器话题为`"er/" + chip_id + "/#"` 的json 格式的字符串消息会自动下发到串口 其中 # 为通配符, 适配所有节点和传感器,下位机需要自行鉴定格式和指令是否合法。 ##### 数据上传: 节点直接上传数据格式为 类似: ``` { "id": "er/1234567/1234x", "type": "s", "stype": "temp", "data": "025" } ``` 通过网关 Zigbee 部分头传给树莓派之后,树莓派会自动获取其中 id 并把它作为 Topic 此条完整发送消息到服务器,订阅此话题的设备(推送下发,网关发送完成之后也会收到此信息;订阅此话题的 App 也会收到此信息)就会收到该消息。这样就可以通过预定义的协议部分进行设备控制、状态上传、状态获取。 #### 与服务器交互 网关与服务器交互采用 MQTT 协议,使用订阅/发布 机制,具体具体解释请参阅: https://mcxiaoke.gitbooks.io/mqtt-cn/content/mqtt/01-Introduction.html 树莓派首先通过配置文件获取自身 id(用户自行配置),然后通知给网关的 Zigbee 部分,同时向服务器订阅 `"er/" + chip_id + "/#"` 话题,这样就可以接收到来自服务器关于 `"er/" + chip_id + "/#"` 话题树下级任何客户端的信息了。