dever c2113b18de edit | 4 lat temu | |
---|---|---|
admin | 4 lat temu | |
conf | 4 lat temu | |
front | 4 lat temu | |
modbus_tk | 4 lat temu | |
model | 4 lat temu | |
runtime | 4 lat temu | |
service | 4 lat temu | |
test | 5 lat temu | |
.gitignore | 5 lat temu | |
LICENSE | 5 lat temu | |
README.md | 4 lat temu | |
admin.py | 5 lat temu | |
cron.py | 4 lat temu | |
front.py | 5 lat temu | |
install.py | 4 lat temu | |
modbus.py | 5 lat temu | |
mqtt.py | 4 lat temu | |
ngrok.cfg | 4 lat temu | |
sync.py | 5 lat temu |
本地控制器+数据采集服务+本地界面
开发语言:python 框架:tornado+demeter类库
通信协议:
所有通信都是基于topic(key:value)的形式进行传输。
topic的key定义:method/type/parent/child
其中,method为传输的数据类型(见基础数据类型表),type为设备的类型(见设备类型表),parent为网关id,child为设备id
1、接入网关:在农场后台,录入网关基本信息,如网关的设备id和名称即可。
2、接入设备:无需在后台录入,只要使用以下topic定义就能自动接入。
topic具体定义:
1、需要设备pub的key:用于数据、状态等提交到服务器,value均为数值
1.1、传感器:
key定义:sensor/温度等/gateway/device
说明:获取传感器数据,可以定义5分钟提交一次
注意:如需要批量提交,请去掉device项,value改成json格式:{'device_1':12,'device_2':33}
1.2、控制器:
key定义:control/阀门、卷帘/gateway/device
说明:获取控制器状态,可以定义30秒或者更短提交一次
1.3、摄像头拍照:
key定义:pic/图片名_总数_当前序号/gateway/device
说明:获取摄像头的照片,可以定义10分钟提交一次
1.4、电源:
key定义:power/power/gateway/device
说明:电源比较特殊,所以单独拿出来做一个类型。
注意:当为网关电源时,gateway和device值相同即可
2.需要服务器pub的key:
2.1、更新开关状态:
key定义:update/阀门等定义/gateway/device
说明:更新开关的状态,设备sub订阅update/#这样的消息即可,qos需要为2。
附表(待持续完善):
1、基础数据类型表
类型名 | 说明 |
---|---|
sensor | 传感器 |
control | 控制器 |
pic | 摄像头 |
power | 电源 |
update | 更改状态 |
2、设备类型表
类型名 | 所属基础类型 | 说明 |
---|---|---|
temprature | sensor | 温度 |
humidity | sensor | 湿度 |
light | sensor | 光照 |
co2 | sensor | 二氧化碳 |
pm2.5 | sensor | pm2.5 |
power | power | 电源 |
valve | control、update | 阀门 |
blower | control、update | 放风机 |
增加支持modbus协议:
01 10 00 FA 00 04 08 01 03 00 00 00 04 44 09 AD 68 8,30