最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

【筆記】寫一個(gè)情人節(jié)主題“物聯(lián)網(wǎng)心跳燈”

2023-02-15 02:38 作者:k7212519  | 我要投稿

簡介

簡單實(shí)現(xiàn)一個(gè)基于Android和ESP32的公網(wǎng)UDP通信的“心跳燈”。能實(shí)現(xiàn)任意地點(diǎn)任意人員遠(yuǎn)程用手機(jī)軟件控制燈光跳動(dòng),并且盡實(shí)現(xiàn)燈光跳動(dòng)與動(dòng)畫同步。后期理論上可實(shí)現(xiàn)手機(jī)接入心率傳感器實(shí)現(xiàn)燈光與心跳同步。這里只進(jìn)行簡單demo實(shí)現(xiàn)及技術(shù)路線記錄。

控制軟件下載地址:https://wwks.lanzouy.com/igtHa0nlnpbe

只要手機(jī)聯(lián)網(wǎng)正常,安裝后即可隨意控制實(shí)驗(yàn)板上的燈。

Demo效果

demo效果

此時(shí)手機(jī)在5G網(wǎng)絡(luò)下,并非局域網(wǎng),能看到反應(yīng)還是很快的,延遲很低,局域網(wǎng)模式下延遲會更低。LED燈為臨時(shí)用實(shí)驗(yàn)板搭建的,因?yàn)槭桥R時(shí)起意,并未進(jìn)行PCB產(chǎn)品化設(shè)計(jì)和打樣。

硬件程序設(shè)計(jì)

主控開發(fā)板使用的比較火的ESP32,身邊有一塊剛好就用了。當(dāng)然這個(gè)程序不需要這么高性能的開發(fā)板。

原本設(shè)計(jì)是使用阿里云物聯(lián)網(wǎng)平臺來當(dāng)服務(wù)器,這也是目前DIY玩家的主流做法,但是我嘗試之后發(fā)現(xiàn)Android發(fā)送指令后,到硬件有相應(yīng),延遲有1秒左右,很明顯達(dá)不到我的需求。

于是考慮到家里和辦公室都有公網(wǎng)IP,采用了把ESP32當(dāng)作UDP服務(wù)器的方案,這樣Android端發(fā)送的數(shù)據(jù)就能點(diǎn)對點(diǎn)的傳輸?shù)接布O(shè)備上。UDP的最大好處就是延遲低,無需經(jīng)過TCP的三次握手協(xié)議,一般網(wǎng)絡(luò)游戲就是通過UDP協(xié)議傳輸數(shù)據(jù)的,但是這種協(xié)議只負(fù)責(zé)發(fā)送數(shù)據(jù),不管最后到底收沒收到,所以可靠性較低??紤]到本程序和游戲一樣即使丟包也不會造成嚴(yán)重后果,所以選擇了該方案。

ESP32程序設(shè)計(jì):

整個(gè)程序使用PWM對LED進(jìn)行亮度控制,PIN5引腳作為輸出引腳,從程序里能看到PWM頻率是5000Hz。沒用DC調(diào)光主要是因?yàn)長ED的亮度變化和電壓變化并不是線性相關(guān)的,可能漸變達(dá)不到理想效果。

程序搭建了一個(gè)UDP的服務(wù)器,監(jiān)聽1234端口,接收到“1”就會對輸出引腳進(jìn)行操作。當(dāng)然這里的識別信號可以換成隨意的Key,會更加安全一點(diǎn)。再將該ESP32的1234端口映射到路由器的任意端口即可,即可實(shí)現(xiàn)從公網(wǎng)傳輸U(kuò)DP數(shù)據(jù)。

端口映射

Android端軟件設(shè)計(jì)

Android端使用Lotties框架加載了一個(gè)心跳的動(dòng)畫,這個(gè)之前有寫操作步驟,然后設(shè)置點(diǎn)擊及播放一次就行,當(dāng)然,整體速度需要和LED漸變的速度相同步,會比較好看。

點(diǎn)擊事件核心代碼:

就是點(diǎn)擊播放,然后加入了一個(gè)短暫的震動(dòng),提升點(diǎn)擊手感,最后是發(fā)送UDP數(shù)據(jù)的方法。方法具體實(shí)現(xiàn):

UDPClient是封裝好的UDP請求客戶端:

這里要記得網(wǎng)絡(luò)請求需要再非主線程進(jìn)行,否則程序會閃退。比較推薦的方案是AsyncTask異步任務(wù)類,也可以自己新建線程運(yùn)行。

【筆記】寫一個(gè)情人節(jié)主題“物聯(lián)網(wǎng)心跳燈”的評論 (共 條)

分享到微博請遵守國家法律
晋州市| 通州市| 安宁市| 安图县| 监利县| 河南省| 达拉特旗| 芦溪县| 新乐市| 建湖县| 汽车| 潞城市| 昔阳县| 五寨县| 图木舒克市| 盈江县| 赫章县| 化州市| 伊通| 岳西县| 会理县| 师宗县| 方城县| 垣曲县| 乌什县| 新竹市| 武义县| 来宾市| 佛山市| 永仁县| 阳曲县| 建德市| 红安县| 武夷山市| 织金县| 泗水县| 江陵县| 益阳市| 凤山县| 如皋市| 巴楚县|