Windows下Python读取小米蓝牙温湿度计2的数据

该代码示例展示了如何通过BleakClient连接到指定MAC地址的蓝牙设备,并异步读取特定特征值(ebe0ccc1-7a0a-4b0c-8a1a-6ff2997da3a6)。解析接收到的字节数据,获取温度、湿度、电压和电池电量信息,并打印结果。每秒更新一次数据。
摘要由CSDN通过智能技术生成
from dataclasses import dataclass
import time
from bleak import BleakClient
import asyncio
Mac="A4:C1:38:"#你的温度计的MAC
@dataclass
class Result:
    temperature: float
    humidity: int
    voltage: float
    battery: int = 0
    
async def main(address):
    client = BleakClient(address,timeout=30.0)
    await client.connect()
    print("连接成功")
    while(1):
        buff=await client.read_gatt_char("ebe0ccc1-7a0a-4b0c-8a1a-6ff2997da3a6")
        try:    
            result = Result(0,0,0,0) 
            temp=int.from_bytes(buff[0:2],byteorder='little',signed=True)/100
            humidity=int.from_bytes(buff[2:3],byteorder='little')
            voltage=int.from_bytes(buff[3:5],byteorder='little') / 1000
            battery = round((voltage - 2) / (3.261 - 2) * 100, 2)
            result.temperature = temp
            result.humidity = humidity
            result.voltage = voltage
            result.battery = battery
            print(result)
        except Exception as e:
            print(e)
        time.sleep(1)

asyncio.run(main(Mac))

请自行安装库,部分代码借鉴 @请叫我雯子小姐的小爷

评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值