环境
ESP32: Arduino
APP : HbuilderX
外围器件:BH1750(GY-302)
硬件思路:
(1)功能:划分为手动和自动模式,在手动模式下,可手动控制窗帘的打开和关闭;在自动模式下,随着光强阈值来调整窗帘的打开与否
(2)模块划分:BLE蓝牙(数据发送、数据接收)、BH1750光强传感器、步进电机(驱动)
(3)逻辑设计:首先就是setup也就是通常讲的硬件初始化。对蓝牙名称、串口波特率、BH1750的IIC、步进电机驱动等的初始化
初始化创建了蓝牙对象 C++ 后期会有个 Read 的回调接收APP端发送的数据 还有 Send的发送到APP端
其次是主函数 loop 循环函数 先对初始化创建的蓝牙对象进行状态查询,如果处于连接状态,上传光强采集到的数据
然后是窗帘的控制代码
最后是光强传感器的读取数据。死循环
还有就是运行时间的查询,当下运行时间和过去APP端发送数据的记录时间进行差值计算
如果长时间没有接收到来自APP端发送数据的指令,就自动切换到自动模式
(4)指令设置:步进电机控制的指令标志:
(2)引脚:BH1750 SCL–>22 SDA–>21 VCC–>VCC GND–>GND
步进电机驱动 ULN2003 IN1—IN4 依次对应 15 2 4 16
软件思路:
软件是用HBuilderX写出来的,让它run起来挺简单的,只需要看看官网的例程,B站大学搜一下教程,看个几集,晓得一下结构就可以了。嗯这里是参考网上的部分BLE蓝牙例程拼凑出来的。。。。不过整体运行是没有问题的,简单实现了功能。
可以使用一般的BLE助手来进行连接验证
最上面两张截图是由我参考之后修改再修改来的,APP的代码比较多,打包上传了。
这个是整体图
有整套工程、软件硬件、可自行略微调整更换APP端视图、布局等、也有详细的论述文本。。
资源等后期更新