用安信可Ai-WB2-01S做一个可用网页控制的简易灯

描述

以下作品由安信可社区用户

KevinLi制作

01简介

使用2个不同功率的Led通过GPIO的PWM通道+三极管控制亮度

安信可

●供电:5V或3V

●控制:用网页http单向控制,这是一个web_server的简单实例。

●管理界面:浏览器地址栏"设备ip/LAMP/",比如"http://192.168.0.127/LAMP"

视频演示

https://www.bilibili.com/video/BV1MpX7YiEyd/?

安信可

点击查看如何使用网页控制2个led

02个人目的

这次项目是想尝试DIY装饰灯、测试三极管硬件电路、测试和学习web_server和html的API解析过程。

效果:实际使用时,利用WB2-01s凸出来的卡座,卡到桌板缝隙或者挂起来,两面都有灯,负责不同区域照明。

03直接驱动LED方式有DAC、PWM

DAC(数字信号转为模拟信号,直接进行DC电压调整,但01S没有这个通道)

PWM(开关电源,电压不变,调节占空比方式,频率足够高人眼就感觉不出来)

"台灯应该是 3125Hz 以上无危害"

这两个方式和手机OLED调光方式有点关系,比如2khz的PWM调光已经被称为高频护眼了。

04项目部署

build out留了项目同名的bin,是默认at-think的wifi,可以改手机热点直接使用;

(还有几个编译好的,我也忘了是不是自动亮度循环测试的了)

压缩包解压到SDK的get-started,修改wifi信息,make -j6编译,烧录 即可。

(WB2或者博流的SDK都行,仅使用了httpd和pwm项目,预留了UDP方法)

安信可

05硬件介绍

WB2-01S仅有3个可用IO,引脚定义如下:

名称功能说明

安信可

ADC是读取输入用,没DAC很可惜,PWM任选2个就好,这里选择了IO4和RX来驱动2个LED,这样TX还可以串口输出log。

LED

一个3.3~3.6v的1W大功率LED,因此需要5v供电 (3v也行但不清楚asm逆流问题);一个2835LED,3v3供电就好;文档写到IO口要下拉,(我没下拉,上电瞬间就会爆闪)

NPN三极管 (S9013)

Rb计算太太太难了,图中算出来的只能说能用;似乎最高频率支持30MHz。

测试PWM的频率

bl602的PWM似乎最大支持20MHz;似乎三极管常用频率是200~20KHz;目标是3KHhz以上,项目目前是4KHz;我测试的500~1M都正常可用,5MHz不正常,不清楚为什么;

安信可

WB2-01S烧录方法

根据安信可论坛大佬业余菜狗提示,WB2系列模组上电瞬间会进入boot模式,这次外置烧录器没成功;使用ESP-01S的烧录器,只接5个引脚,串口的4个;ESP-01S烧录器接到WB2-01S的en, 然后按WB2-01S烧录器的rst按键就可以烧录了;(ESP-01s烧录器的按键是拉低rst;WB2-01S的en内上拉所以悬空有效,rst是NC无效)

其他:

WB2-01S和WB2-01F的FLASH都是2MB,项目的HTML数组用const,注意大小;01S和01F都是3v3供电,ASM1117 5v-3v3的外围电路、静电保护、过流保护、二极管要注意,后者没加。

06代码介绍

网页部分:

写完web转为数组存起来,实现了滑块和数字框同步;

图片元素仅供参考,个人学习用;

黄色部分为指示颜色用,不过还是有点小小问题;

手机UA 显示这个网页,框框不能自动缩放,忽略!

httpd:

-参考SDK,设计了3个GET的API路径,字符串匹配路径(最笨的方法),返回给浏览器页面(body等内容);

- web设置亮度的思路是,浏览器发送GET请求"setLED",36行的"getState"还没实现;

- 另外:esp32的web_server的api面向对象方法(设置url和web的回调)很好用。

安信可

安信可

PWM和UDP:

参考SDK,后者此项目没用上。

07待改进

web前端:代码未整理,有多处冗余部分,刷新网页没有获取当前值;

httpd:还没实现 普通API 返回给前端JSON信息与前端处理;

电路板:这是这个项目第一次打板,我是业余的,尺寸和5v电源供电 有偏移和错误,但功能正常;串口引出了但没用上;

选型:这次选WB2-01S是因为我不会烧录WB2-01F,不过很遗憾吧ADC看成DAC了,只能用PWM方式调光了;

供电方式:电路板的5v引脚画错了,现在是直连USB线取5V,没接电池和升压电路;

08个人建议

问题:正常来说,接入外网MQTT、联动手机语音什么的会很方便,而这个项目需要访问内网网址才能访问;

解决办法1.1:获取网址方式(串口查看ip的log,路由器管理界面去看)

解决办法1.2:路由器进行MAC/ip绑定,设置快捷方式就好了。

进一步:

不使用MQTT实现远程访问:端口映射、公网ip+DDNS 或 内网穿透;

易用性:nfc录入网址/域名快捷方式,就可以一碰就访问啦;

我倾向于WEB的最大原因是,可以远程访问(如上配置端口映射)且简单网页可以轻易转为快捷方式的app,不必进行安卓开发。

09总结

这个帖子写了3.5H,希望http的思路部分可以帮到别人,注释很乱求忽略,冗余测试代码没删干净;

这个项目的http和UDP部分是学习(web->udp)WOL后做出来的,毕竟只需要新增GET API绑定PWM设置就好,但画电路板学习计算基极电阻Rb的时间占大头;

原本还想做的是,同时可用蓝牙控制这个,但Wi-Fi网页控制足够方便就没折腾了。

安信可

安信可

附件代码:01s-lamp_server.v1.3_release-0318.zip

审核编辑 黄宇

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分