声明:本产品并非本人原创,仅仅是个人仿造学习,致敬创新的一个DEMO,不具备商业用途,也请不要用于商业用途!(侵权立删)
原产品官网: https://www.switch-bot.com/products/switchbot-bot
设计方案来源
- 这是一个把普通开关变成智能开关的装置
- 在工作时可以远程控制一个小的机械手,来达到控制的效果
- 在需要反向控制的时候,可以通过一个挂绳来反向牵引开关
- 该公司产品不走国内,都是销售国外,我在油管上找到了一个拆解视频,自己就按照想法仿造了出来。
硬件设计
- 硬件方案我没有采用单BLE SOC的方案,而是采用了我比较熟悉的STM32+BLE的方案
- 主控MCU:STM32L051K8U6
- 蓝牙模组:信驰达 BG22
- 电机驱动:DRV8837
- 支持连电池供电和充电
其中比较重要的是,电机阻塞的判定,由于电池电量采集的比较精准,所以可以依靠电机在遇到障碍物阻塞的时候的电流变化来判定是否停止。实践效果还可以。
关于精确测量电池电压可以看这篇文章:https://blog.csdn.net/switch_love_case/article/details/113553837
功耗相关
- 由于设备需要一直保持广播状态,任何时刻都可以通过手机蓝牙搜索连接,这也是功耗消耗最大的地方,同时我针对低功耗蓝牙模组的选型也做了很久,最终确定了这款蓝牙,也是群里面朋友推荐的,他还送了我几块儿,非常感谢!!
- 该模组官方文档详细说明了其功耗,作为广播状态下还是很棒的。
根据测试整机的功耗在10-35波动,因为BLE是间歇广播工作的,最终平均功耗我暂时没有仪器去测试,但是最终的效果还是很棒的。感觉一个小电池用几个月应该是没有问题的。
外壳设计
- 尺寸与装配花了很长的时间
- 由于搞不到实物,所以我在油管上找到了一个拆解视频,找个做,估算一个尺寸就开始凭空想象着设计,最终完成了成品,比较满意
微信小程序开发
- 模板用的之前的框架,改吧改吧就行了,功能基本实现了
- 搜索和连接
- 开关
- 电量统计
- 而且支持定时开关(应该有一些小BUG)