def OpenCom(self,*args):#设置端口和波特率selComPort =‘com2’#波特率selBaudRate =9600 #奇偶校验selParity = 'N'try:if(not self.mySerial):self.mySerial = serial.Serial(port=selComPort, baudrate=selBaudRate,bytesize=8,parity=selParity,stopbits=1,timeout=5)else:if(self.mySerial.isOpen()):self.mySerial.close()self.mySerial = serial.Serial(port=selComPort, baudrate=selBaudRate, bytesize=8, parity=selParity, stopbits=1, timeout=5)self.lblInfo['text'] = '打开成功!'except Exception as ex:self.lblInfo['text'] = '打开失败!'
#使用com口发送modbus协议给终端设备。
def btnEmId_Click(self):
barray = bytearray([0x05, 0x03, 0xA#, 0x54, 0x00, 0x08])
vOldEmId = self.txbOldEmId.get()
vNewEmId = self.txbNewEmId.get()
barray[0] = int(vOldEmId)
barray[5] = int(vNewEmId)
#crc校验
strInput = utils.crc16_append(barray)
print(barray)
n = self.mySerial.write(barray)
if(n >0):
str = self.mySerial.readall()
self.lblInfo['text'] = 'success!'
# for s in str:
# print (hex(s))
else:
self.lblInfo['text'] = 'error!'
python提供了丰富的module 对串口的操作同样有对应的module:serial
环境:python3.5 蓝牙模块:HC-05 波特率38400
首先导入serial模块(通过pip install serial 安装)
获取串口ser 通过serial.Serial(地址,波特率,超时时间)
创建线程监听串口数据
使用 ser.in_waiting() 获知数据量 这个函数返回当前串口收到的数据长度
收取数据后进行详细操作
python需要运行在windows、mac、linux这样的系统环境里,而这样的环境要拿到传感器的数据有几种方法。可以通过zigbee转发数据,python第三方库中有pyserial这样的库通过配置串口数据、波特率等参数,能够接收到传感器数据,对数据进行处理后,再进行分析。