esp32 小米温度计
更多
要将ESP32与小米蓝牙温度计(如米家蓝牙温湿度计2)连接并读取数据,可以按照以下步骤操作:
1. 确认设备协议
小米蓝牙温度计通常使用 BLE(蓝牙低功耗) 协议广播数据,并采用 MiBeacon 格式加密温湿度数据。需获取设备的 beacon_key 才能解密数据。
2. 获取 beacon_key
-
方法一:通过米家APP
- 在米家APP中绑定温度计,进入设备详情页。
- 点击右上角“...”进入设置,找到 《蓝牙网关》 功能(需连接小米网关)。
- 部分用户可通过第三方工具(如“Telink Flasher”)或抓包工具提取
beacon_key。
-
方法二:参考开源项目
GitHub上有开源工具(如 ESP32-MiTemperature2)提供密钥提取和解析方法。
3. ESP32 代码实现(Arduino框架)
#include <BLEDevice.h>
#include <BLEUtils.h>
#include <BLEScan.h>
// 替换为你的温度计 beacon_key
const String BEACON_KEY = "xxxxxxxxxxxxxxxx";
// 小米MiBeacon数据解密函数
float decryptTemperature(uint8_t *data) {
// 解密逻辑(需根据具体MiBeacon协议实现)
// 示例:假设data[6]和data[7]为温度数据
int16_t tempRaw = (data[7] << 8) | data[6];
return tempRaw / 100.0;
}
class MyAdvertisedDeviceCallbacks: public BLEAdvertisedDeviceCallbacks {
void onResult(BLEAdvertisedDevice advertisedDevice) {
if (advertisedDevice.getManufacturerData().length() >= 15) {
std::string mfgData = advertisedDevice.getManufacturerData();
uint8_t *data = (uint8_t *)mfgData.data();
// 检查是否为小米MiBeacon
if (data[0] == 0x95 && data[1] == 0xFE) {
float temperature = decryptTemperature(data);
Serial.printf("温度: %.1f°C\n", temperature);
}
}
}
};
void setup() {
Serial.begin(115200);
BLEDevice::init("ESP32");
BLEScan *pBLEScan = BLEDevice::getScan();
pBLEScan->setAdvertisedDeviceCallbacks(new MyAdvertisedDeviceCallbacks());
pBLEScan->setActiveScan(true);
pBLEScan->start(30); // 扫描30秒
}
void loop() {}
4. 注意事项
- 信号范围:确保ESP32与温度计距离在蓝牙有效范围内(通常约10米)。
- 数据加密:若未解密
beacon_key,接收到的数据可能是乱码。 - 低功耗优化:小米温度计通常每10分钟广播一次数据,建议ESP32设置为间隔扫描以省电。
替代方案:通过云端获取
若无法直接连接蓝牙,可通过小米智能网关将温度数据上传至云端,再使用ESP32的WiFi功能调用 米家API 获取数据(需处理OAuth认证)。
参考资源
- GitHub项目:ESP32-MiTemperature2
- 小米BLE协议解析:MiBeacon协议文档
如有具体型号或代码问题,可提供更多细节继续讨论!
【DFRobot Beetle ESP32-C3开发板试用体验】OLED温度计
温度计,快速实现一个测温系统 【步聚】 1、硬件准备:DS18B20接线: ESP32C3 DS18B20 VCC
2022-11-28 14:14:09
语音芯片对温度计的作用
随着生活水平的提高,人们对健康这个概念越来越重视,然后家里面都会备有简单的医疗设备,比如说医药盒、血压计、血糖仪、温度计等等,医药盒。血压计、血
2021-11-02 14:49:02
7天热门专题
换一换
换一换
- 如何分清usb-c和type-c的区别
- 中国芯片现状怎样?芯片发展分析
- vga接口接线图及vga接口定义
- 芯片的工作原理是什么?
- 华为harmonyos是什么意思,看懂鸿蒙OS系统!
- 什么是蓝牙?它的主要作用是什么?
- ssd是什么意思
- 汽车电子包含哪些领域?
- TWS蓝牙耳机是什么意思?你真的了解吗
- 什么是单片机?有什么用?
- 升压电路图汇总解析
- plc的工作原理是什么?
- 再次免费公开一肖一吗
- 充电桩一般是如何收费的?有哪些收费标准?
- ADC是什么?高精度ADC是什么意思?
- dtmb信号覆盖城市查询
- EDA是什么?有什么作用?
- 中科院研发成功2nm光刻机
- 苹果手机哪几个支持无线充电的?
- type-c四根线接法图解
- 华为芯片为什么受制于美国?
- 怎样挑选路由器?
- 元宇宙概念股龙头一览
- 锂电池和铅酸电池哪个好?
- 什么是场效应管?它的作用是什么?
- 如何进行编码器的正确接线?接线方法介绍
- 虚短与虚断的概念介绍及区别
- 晶振的作用是什么?
- 大疆无人机的价格贵吗?大约在什么价位?
- 苹果nfc功能怎么复制门禁卡
- amoled屏幕和oled区别
- 单片机和嵌入式的区别是什么
- 复位电路的原理及作用
- BLDC电机技术分析
- dsp是什么意思?有什么作用?
- 苹果无线充电器怎么使用?
- iphone13promax电池容量是多少毫安
- 芯片的组成材料有什么
- 特斯拉充电桩充电是如何收费的?收费标准是什么?
- 直流电机驱动电路及原理图
- 传感器常见类型有哪些?
- 自举电路图
- 通讯隔离作用
- 苹果笔记本macbookpro18款与19款区别
- 新斯的指纹芯片供哪些客户
- 伺服电机是如何进行工作的?它的原理是什么?
- 无人机价钱多少?为什么说无人机烧钱?
- 以太网VPN技术概述
- 手机nfc功能打开好还是关闭好
- 十大公认音质好的无线蓝牙耳机