2024年11月24日星期日 下午2:37:43

Diy开源BLE Gateway USB蓝牙网关(ESP32 + ESPHome ) +Passive BLE Monitor Integration

1 年 前
#20096 引用
自制开源ESPHome通用蓝牙网关(ESP32 + ESPHome )

https://bbs.hassbian.com/thread-16331-1-1.html

hardware

首先去淘宝花十元左右买个esp32开发板
然后通过USB线把esp32插你的电脑USB



on windows
从python官方网站下载你系统对应版本的python
安装esphome
编译固件
刷esphome - 编译完成后选择提示的1即COM选项,进行固件写入


https://post.smzdm.com/p/a7nwl6ld/

Note

ESP32芯片
32-bit MCU & 2.4 GHz Wi-Fi & Bluetooth/Bluetooth LE



https://www.espressif.com.cn/zh-hans/products/socs

ESP32开发板
32-bit MCU & 2.4 GHz Wi-Fi & BT/Bluetooth LE

https://www.espressif.com.cn/zh-hans/products/devkits


ESP8266 芯片
32-bit MCU & 2.4 GHz Wi-Fi
https://www.espressif.com.cn/zh-hans/products/socs






该蓝牙通用网关与Passive BLE Monitor 集成搭配使用.
从而解决因为蓝牙穿墙能力弱导致蓝牙信号无法穿墙的问题,蓝牙通用网关的主要用途有:

蓝牙信号过不来的就走开源ESPHome通用蓝牙网关,通过wifi信号再到HA上的 Passive BLE Monitor 集成.
接入只支持Active BLE connection的蓝牙设备


硬件很简单,你只需要自备ESP32的主板一枚,建议最好选4M Flash的, 虽然2M的也能刷,但是稍微麻烦些(而且因为闪存小无法支持OTA了). 我选的是ESP-C3-32S(4M)的开发板. 可在某陶上搜索"ESP-C3-32S-Kit"记得问清楚是否4M(2M和4M只差几毛钱).

ESP32-C3是Espressif新出的RISC-V 32位单核处理器(160MHz)支持蓝牙5.0(BLE支持),以前的ESP32是基于蓝牙4.2.

然后准备好ESPHome开发环境,请升级到ESPHome的最新版(至少2022.1版本以后),请不要在arm环境下开发,因为Espressif目前还不支持ESP-C3在arm下的编译.

在Linux环境下安装使用很简单:

ESP32带有蓝牙,可以接入的。我是按照这位老大的推荐https://bbs.hassbian.com/thread-9462-1-1.html 刷的固件
0
1 年 前
#20097 引用

esp32要買CH340刷機一點就亮;
esp32选4M Flash的, 虽然2M的也能刷,但是稍微麻烦些(而且因为闪存小无法支持OTA了). 我选的是ESP-C3-32S(4M)的开发板. 可在某陶上搜索"ESP-C3-32S-Kit"记得问清楚是否4M(2M和4M只差几毛钱).
source:https://bbs.hassbian.com/forum.php?mod=viewthread&action=printable&tid=16331


ESP C3的开发板建议慎选,C3是单核RISC-V方案,优势是支持蓝牙5.0,价格更便宜,但是跟之前的ESP32的双核Xtensa还是差别比较大的,包括ESPHOME目前对它的支持还处于in development状态,我自己在编译的过程中遇到过奇奇怪怪的小坑。个人觉得,多花几块钱买普通的ESP32对新手更友好


既然是用途作为蓝牙网关,当然要选蓝牙5,向下兼容的。
在PC上编译,没问题的,不过一定要记得升级esphome到最新版


感谢分享 C3确实很好 我很多项目都用的C3 这个项目拓展了蓝牙功能 很棒

这个称为“蓝牙网关”不太准确吧?更接近于蓝牙中继器的概念。另外,ble_monitor虽然不错但也有明显的缺点。其实esphome本身已经可以实现很不错的蓝牙网关功能,使用上也更简单。加上自己撸的代码,扩展性也够了。我自己在用的就是花花草草、蓝牙温湿度(内置组件)、体脂秤、燃气灶、门锁、yeelight调光开关(自定义组件)一块esp32搞定


在某陶上搜索"ESP-C3-32S-Kit"记得问清楚是否4M(2M和4M只差几毛钱).

ESP32-C3是Espressif新出的RISC-V 32位单核处理器(160MHz)支持蓝牙5.0(BLE支持),以前的ESP32是基于蓝牙4.2.


0
1 年 前
#20098 引用
1. 是的主要是能中继, 不过也可以说网关: HA上可以不用插蓝牙适配器, 就可以通过这货接入蓝牙设备.
2. ble_monitor 集成的缺陷在哪里? 还请多多指教.
3. 如果有更通用的方式,那自是更好
4. 如果能搞定蓝牙发送指令,未来就是蓝牙的,价格决定一切

2. 是的有的传感是需要每次状态都要的, 把`reset_timer`设置为0,能不能成? 我看文档说设置为0是关闭该习惯. 如果不能那就需要提一个issue了.
3&4. 对啊, 就如Zigbee的ZHA推出了很久了,但是接入还是各种麻烦. 还是需要适配设备. 在我看来这是因为知识工程还不完善.  扯远了.  就通用性而言, 我感觉  Tasmota 要好于 ESPHome, 但是  Tasmota 太重了. 如果 Tasmota能作为一个简单的HA替代性能又太弱, ESPHome的好处是编译灵活,模块化好,不过如果每加一个设备就要重新编译上传固件也挺烦的. ble_monitor 已经有点像Z2M的感觉了:设备的注册管理以及解析内容由ble_monitor完成,只要在ble_monitor 上添加新设备的数据解析就能立马支持新设备,如果能破袭发送指令,那么通过ble_client也是很简单的事情,



1. 也对,这个思路确实挺巧妙的。
2. 我知道一个情况,也不能说完全是ble_monitor的问题。ble_monitor机械地把物理实体映射到ha的传感器,有时候后就会出现数值没变化但实际上有动作需要触发自动化。我最早意识到这个问题是yeelight调光开关的重复动作;再比如指纹锁,连续用同一个指纹开锁,keyid肯定没变化,以至于传感器数值也没有变化;ble_monitor只能提供超时后数值重置的方法,但这个超时最短只能设置为1秒(默认35秒)。显然,很多时候1秒还是太长了。
3. 通用性这方面,其实esphome和ble_monitor也是在互相促进,主要受限还是各厂家各产品的开放性问题,尤其是加密方面。
4. 蓝牙发送指令在esphome上已经可以初步实现了,就是ble_client,但主要限制还是厂家不够开放,也就是我们很只知道发给设备的具体指令是啥。这个比较有参考价值的是坛里风靡一时的那个魅族遥控器。
0
1 年 前
#20483 引用
https://www.zhihu.com/tardis/zm/art/349721245?source_id=1005

ESP32 主控板 × 2;
ESP8266 主控板 × 1;
LED 灯 × 1;
人体红外传感器 × 1;
DHT11 温湿度传感器 × 1;






0