以下作品由安信可社區(qū)用戶
KevinLi制作
01簡介
使用2個不同功率的Led通過GPIO的PWM通道+三極管控制亮度
●供電:5V或3V
●控制:用網(wǎng)頁http單向控制,這是一個web_server的簡單實例。
●管理界面:瀏覽器地址欄"設(shè)備ip/LAMP/",比如"http://192.168.0.127/LAMP"
視頻演示
https://www.bilibili.com/video/BV1MpX7YiEyd/?
點擊查看如何使用網(wǎng)頁控制2個led
02個人目的
這次項目是想嘗試DIY裝飾燈、測試三極管硬件電路、測試和學(xué)習(xí)web_server和html的API解析過程。
效果:實際使用時,利用WB2-01s凸出來的卡座,卡到桌板縫隙或者掛起來,兩面都有燈,負(fù)責(zé)不同區(qū)域照明。
03直接驅(qū)動LED方式有DAC、PWM
DAC(數(shù)字信號轉(zhuǎn)為模擬信號,直接進行DC電壓調(diào)整,但01S沒有這個通道)
PWM(開關(guān)電源,電壓不變,調(diào)節(jié)占空比方式,頻率足夠高人眼就感覺不出來)
"臺燈應(yīng)該是 3125Hz 以上無危害"
這兩個方式和手機OLED調(diào)光方式有點關(guān)系,比如2khz的PWM調(diào)光已經(jīng)被稱為高頻護眼了。
04項目部署
build out留了項目同名的bin,是默認(rèn)at-think的wifi,可以改手機熱點直接使用;
(還有幾個編譯好的,我也忘了是不是自動亮度循環(huán)測試的了)
壓縮包解壓到SDK的get-started,修改wifi信息,make -j6編譯,燒錄 即可。
(WB2或者博流的SDK都行,僅使用了httpd和pwm項目,預(yù)留了UDP方法)
05硬件介紹
WB2-01S僅有3個可用IO,引腳定義如下:
名稱功能說明
ADC是讀取輸入用,沒DAC很可惜,PWM任選2個就好,這里選擇了IO4和RX來驅(qū)動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;目標(biāo)是3KHhz以上,項目目前是4KHz;我測試的500~1M都正常可用,5MHz不正常,不清楚為什么;
WB2-01S燒錄方法
根據(jù)安信可論壇大佬業(yè)余菜狗提示,WB2系列模組上電瞬間會進入boot模式,這次外置燒錄器沒成功;使用ESP-01S的燒錄器,只接5個引腳,串口的4個;ESP-01S燒錄器接到WB2-01S的en, 然后按WB2-01S燒錄器的rst按鍵就可以燒錄了;(ESP-01s燒錄器的按鍵是拉低rst;WB2-01S的en內(nèi)上拉所以懸空有效,rst是NC無效)
其他:
WB2-01S和WB2-01F的FLASH都是2MB,項目的HTML數(shù)組用const,注意大小;01S和01F都是3v3供電,ASM1117 5v-3v3的外圍電路、靜電保護、過流保護、二極管要注意,后者沒加。
06代碼介紹
網(wǎng)頁部分:
寫完web轉(zhuǎn)為數(shù)組存起來,實現(xiàn)了滑塊和數(shù)字框同步;
圖片元素僅供參考,個人學(xué)習(xí)用;
黃色部分為指示顏色用,不過還是有點小小問題;
手機UA 顯示這個網(wǎng)頁,框框不能自動縮放,忽略!
httpd:
-參考SDK,設(shè)計了3個GET的API路徑,字符串匹配路徑(最笨的方法),返回給瀏覽器頁面(body等內(nèi)容);
- web設(shè)置亮度的思路是,瀏覽器發(fā)送GET請求"setLED",36行的"getState"還沒實現(xiàn);
- 另外:esp32的web_server的api面向?qū)ο蠓椒ǎㄔO(shè)置url和web的回調(diào))很好用。
PWM和UDP:
參考SDK,后者此項目沒用上。
07待改進
web前端:代碼未整理,有多處冗余部分,刷新網(wǎng)頁沒有獲取當(dāng)前值;
httpd:還沒實現(xiàn) 普通API 返回給前端JSON信息與前端處理;
電路板:這是這個項目第一次打板,我是業(yè)余的,尺寸和5v電源供電 有偏移和錯誤,但功能正常;串口引出了但沒用上;
選型:這次選WB2-01S是因為我不會燒錄WB2-01F,不過很遺憾吧ADC看成DAC了,只能用PWM方式調(diào)光了;
供電方式:電路板的5v引腳畫錯了,現(xiàn)在是直連USB線取5V,沒接電池和升壓電路;
08個人建議
問題:正常來說,接入外網(wǎng)MQTT、聯(lián)動手機語音什么的會很方便,而這個項目需要訪問內(nèi)網(wǎng)網(wǎng)址才能訪問;
解決辦法1.1:獲取網(wǎng)址方式(串口查看ip的log,路由器管理界面去看)
解決辦法1.2:路由器進行MAC/ip綁定,設(shè)置快捷方式就好了。
進一步:
不使用MQTT實現(xiàn)遠(yuǎn)程訪問:端口映射、公網(wǎng)ip+DDNS 或 內(nèi)網(wǎng)穿透;
易用性:nfc錄入網(wǎng)址/域名快捷方式,就可以一碰就訪問啦;
我傾向于WEB的最大原因是,可以遠(yuǎn)程訪問(如上配置端口映射)且簡單網(wǎng)頁可以輕易轉(zhuǎn)為快捷方式的app,不必進行安卓開發(fā)。
09總結(jié)
這個帖子寫了3.5H,希望http的思路部分可以幫到別人,注釋很亂求忽略,冗余測試代碼沒刪干凈;
這個項目的http和UDP部分是學(xué)習(xí)(web->udp)WOL后做出來的,畢竟只需要新增GET API綁定PWM設(shè)置就好,但畫電路板學(xué)習(xí)計算基極電阻Rb的時間占大頭;
原本還想做的是,同時可用藍(lán)牙控制這個,但Wi-Fi網(wǎng)頁控制足夠方便就沒折騰了。
附件代碼:01s-lamp_server.v1.3_release-0318.zip
審核編輯 黃宇
-
三極管
+關(guān)注
關(guān)注
145文章
3654瀏覽量
124006 -
PWM
+關(guān)注
關(guān)注
116文章
5391瀏覽量
218156 -
WIFI
+關(guān)注
關(guān)注
81文章
5374瀏覽量
207468 -
安信可
+關(guān)注
關(guān)注
0文章
184瀏覽量
4369
發(fā)布評論請先 登錄
功德+1,用小安派-Eyes-S1做一個電子木魚

用WB2系列模組做一個433遙控網(wǎng)關(guān)

低價不貴!安信可WiFi+BLE模組Ai-WB2系列

安信可Ai-WB2系列的優(yōu)勢是?一秒讀懂!
用Ai-WB2開發(fā)板做智能家居全彩LED小夜燈

外設(shè)移植 安信可Ai-WB2+FPM383C指紋

外設(shè)移植 安信可Ai-WB2-32S開發(fā)板+TM1637 NTP時鐘

不到10塊錢,用Ai-M61-32S如何自制一個開機棒?


如何用安信可Ai-M61-32S做一個智能臺燈?

安信可Ai-WB2系列模組/開發(fā)板連接AWS亞馬遜云方法

評論