温度数据的仿真并传输"/>
基于python的4G DTU设备温度数据的仿真并传输
塔石4G DTU设备温度数据的仿真传输
- 数据编码模块
- OneNet平台设备开发文档
- 数据编码代码如下:
- 串口模块
- 源代码
数据编码模块
OneNet平台设备开发文档
开发文档链接:ONeNet设备开发文档
数据编码代码如下:
class Converter(object):def to_hex(data):# onenet平台 .Json数据类型byte_list = '\x03'# 获取ANSI编码及长度list = data.encode('mbcs')len_list = len([format(i, 'X') for i in list])#塔石4G DTU编码格式byte_list += chr(0) + chr(len_list)for i in list:byte_list += chr(i)byte_list += '\r\n'# 串口使用比特流传输s_byte_list = bytes(byte_list, encoding='UTF-8')return s_byte_list
串口模块
class mSerial:def __init__(self, com, bps, timeout):self.port = comself.bps = bpsself.timeout = timeoutglobal Rettry:# 打开串口,得到串口对象self.main_serial = serial.Serial(self.port, self.bps, timeout=self.timeout)# 判断是否打开成功if (self.main_serial.is_open):Ret = Trueexcept Exception as error:print("---Error---:", error)# 打开串口def Open_serial(self):self.main_serial.open()# 发送数据def Send_data(self, data):self.main_serial.write(data)# 关闭串口def Close_serial(self):self.main_serial.close()print(self.main_serial.is_open) # 检验串口是否打开
源代码
# -*- coding: utf-8 -*-
"""
@author: 浅笑醉红楼.(3303295829@qq)
"""
import serial
import serial.tools.list_ports
import time
import randomclass Converter(object):def to_hex(data):# 数据类型byte_list = '\x03'# 获取ANSI编码及长度list = data.encode('mbcs')len_list = len([format(i, 'X') for i in list])#塔石4G DTU编码格式byte_list += chr(0) + chr(len_list)for i in list:byte_list += chr(i)byte_list += '\r\n'# 串口使用比特流传输s_byte_list = bytes(byte_list, encoding='UTF-8')return s_byte_listclass mSerial:def __init__(self, com, bps, timeout):self.port = comself.bps = bpsself.timeout = timeoutglobal Rettry:# 打开串口,得到串口对象self.main_serial = serial.Serial(self.port, self.bps, timeout=self.timeout)# 判断是否打开成功if (self.main_serial.is_open):Ret = Trueexcept Exception as error:print("---Error---:", error)# 打开串口def Open_serial(self):self.main_serial.open()# 发送数据def Send_data(self, data):self.main_serial.write(data)# 关闭串口def Close_serial(self):self.main_serial.close()print(self.main_serial.is_open) # 检验串口是否打开if __name__ == '__main__':count=1myserial=mSerial('COM5',9600,0.5)if (Ret):while (1):Chang = random.uniform(-5, 15)temperature = 20 + Changtemperature = round(temperature, 2)data = {"Temperature": temperature}a = Converter.to_hex(str(data))myserial.Send_data(a)time.sleep(3)print('数据序号:',count)print('温度值:',temperature)count+=1
更多推荐
基于python的4G DTU设备温度数据的仿真并传输
发布评论