Posted in

多功能太阳能路灯

简介

由于家旁边的街灯坏了,晚上巷子里很黑,不方便也不安全,所以做了这个东西。白天时通过太阳能给电池充电、晚上自动开关灯,通过MQTT协议接入自有服务器,自制APP控制。除了作为街灯使用,也集成了温湿度传感器,预留了IO接口可用于连接人体感应模块(安防)、光照强度传感器(根据光照强度控制开关灯)。

硬件部分

充电部分的主控是CN3791,具有MPPT功能,根据光照强度的不同控制充电功率。输入使用一块淘宝购买的拆机太阳能板,峰值功率7W左右,后发现功率不够日常使用又并联了一块同款太阳能板。并联之后,晴天只需要半天即可补充满夜晚开灯三小时消耗的电量。电池使用8节18650锂电池,总容量约20000mAh。灯源是一盏5W的小灯,亮度足够晚上使用。板子上有液晶屏幕用于显示一些重要参数。

由于MCU的工作电压为3.3V,电池电压为4.2V~3.0V,低电压时压差太小,无法满足LDO的工作条件,因此电源部分使用了一颗升降压一体的电源芯片MP2155,能够稳定提供3.3V电压。

软件部分

主控使用ESP32,使用ESP-IDF。没什么难度,只是一些传感器数据的采集、MQTT协议的数据传输。

手机端使用Android Studio编程,语言是JAVA,也是一个很简单的小程序,功能包括一些信息的显示以及开关灯、自动开关灯时间的控制。

未来可能实现的功能

1.连接光照强度传感器,根据光照强度控制开关灯,会比现在的时间控制更灵活。

2.连接人体感应传感器,家门口有人路过时发出提醒。

3.根据未来天气灵活调整关灯时间,充分利用太阳能。

4.实现OTA功能,方便程序更新。

5.完善APP,能够显示历史数据。

2025/05/27更新

使用两个月后,因暴雨导致PCBA淋雨,功能异常。

PCBA上多处腐蚀,电压检测异常
长毛的ESP32

PCBA腐蚀的地方太多了,更换元器件也不可靠。于是决定迭代一个新版本,打板后重新焊接。新版本主要更新内容如下:

1.修改LCD接口线序错误

2.去除继电器模块,增加一路MOS管控制的输出

3.增加光照强度传感器BH1750

4.原拓展IO改为两个人体存在传感器接口

2025/09/03更新

新版本已实现如下功能:

  • 双MOS管控制,PWM占空比可调
  • 通过BH1750读取光照强度
  • OTA
  • 人体感应(实测猫猫狗狗也可以)
  • 日志存储、查询