| | |
| | | import utime # 延时函数在utime库中 |
| | | uart = UART() |
| | | |
| | | |
| | | |
| | | #电量 |
| | | g_dianlaing = 0 |
| | | g_dianya=0 |
| | | g_dianlaingbaojing=0 |
| | | |
| | | #打开串口通讯 |
| | | def uart_init(): |
| | | uart.open("serial3") |
| | |
| | | |
| | | #发送指令到串口 |
| | | def sundSos(hex_data,type): |
| | | global g_dianlaing,g_dianya,g_dianlaingbaojing |
| | | # 将16进制数据列表转换为字节串 |
| | | byte_data = bytes(hex_data) |
| | | uart.write(byte_data) |
| | |
| | | print("CRC 校验正确") |
| | | if type=='sos': |
| | | print("输出计算得到的电量: {}".format(readBuf[4])) |
| | | app_aliyunIot.sudDataPostProps({"Dsos":readBuf[4]}) |
| | | # app_aliyunIot.sudDataPostProps({"Dsos":readBuf[4]}) |
| | | g_dianlaing=readBuf[4] |
| | | elif type=='alert': |
| | | print("输出计算得到的电池报警: {}".format(readBuf[4])) |
| | | app_aliyunIot.sudDataPostProps({"Dalert":readBuf[4]}) |
| | | g_dianlaingbaojing=readBuf[4] |
| | | # app_aliyunIot.sudDataPostProps({"Dalert":readBuf[4]}) |
| | | elif type=='dianya': |
| | | print(readBuf[3],readBuf[4]) |
| | | dianyasun=hex_to_decimal_divide(readBuf[3],readBuf[4]) |
| | | print("输出计算得到的电压: {}".format(dianyasun)) |
| | | app_aliyunIot.sudDataPostProps({"Dv":dianyasun}) |
| | | g_dianya=dianyasun |
| | | # app_aliyunIot.sudDataPostProps({"Dv":dianyasun}) |
| | | |
| | | else: |
| | | print("CRC 校验不正确") |
| | | if type=='sos': |
| | | g_dianlaing=0 |
| | | elif type=='alert': |
| | | g_dianlaingbaojing=0 |
| | | elif type=='dianya': |
| | | g_dianya=0 |
| | | # app_aliyunIot.sudDataPostProps({"Dv":dianyasun}) |
| | | |
| | | def hex_to_decimal_divide(dec1, dec2): |
| | | hex1 = '{:02X}'.format(dec1) |
| | |
| | | decimal_value = int(hex1 + hex2, 16) |
| | | # 除以 100 并保留一位小数 |
| | | result = round(decimal_value / 100, 1) |
| | | return result |
| | | return result |
| | | def getG_dian(): |
| | | global g_dianlaing,g_dianya,g_dianlaingbaojing |
| | | return [g_dianlaing,g_dianya,g_dianlaingbaojing] |