自建电表温湿度计数据统计平台
原理
物联网网关通过rs485获取数据,并转网络协议
定时任务自动获取数据并存入数据库
使用django构建数据显示页面
硬件测试
电表:DDSU6606
温湿度计:HK-SHT30-1T-1H-5-36V-RS485
网关:TAS-LAN-462E
rs485转usb数据线
485通信调试
1.通过rs485转usb数据线和串口调试软件,根据说明书,测试和电表和温湿度通信
2.测试通过后,修改波特率设置站号码
3.将网关接入交换机、连接线缆。
网关网络调试
4.根据网关说明书,设置网关ip端口,服务模式等参数(server模式,网关作为服务端)
5.使用网络调试助手测试,测试通过tcp协议读取电表数据
python代码设计
通信代码
def oit_tastek_1(host='192.168.0.80', port=8081):
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
s.connect((host, port))
s.sendall(bytes.fromhex('0F 03 03 00 00 01 85 60'))#电压
data1 = encode_u(s.recv(1024).hex())
s.sendall(bytes.fromhex('0F 03 03 03 00 01 75 60'))#电流
data2 = encode_i(s.recv(1024).hex())
s.sendall(bytes.fromhex('0F 03 03 12 00 01 25 65'))#功率因数
data3 = encode_q(s.recv(1024).hex())
s.sendall(bytes.fromhex('0F 03 00 00 00 04 45 27'))#电量
data4 = encode_p(s.recv(1024).hex())
if data1 and data2 and data3 and data4:
return (data1, data2, data3, data4)
else:
return False
#使用apscheduler运行定时任务
入库代码
使用django自带的models
web页面
前端使用chart.umd.js展示数据,后端使用django的models提供数据