国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于涂鴉IoT的智能燈光控制系統(tǒng)

2022-07-21 06:10沈珊瑚
物聯(lián)網(wǎng)技術(shù) 2022年7期
關(guān)鍵詞:燈帶涂鴉燈光

鄧 超,沈珊瑚

(杭州師范大學(xué) 信息科學(xué)與技術(shù)學(xué)院,浙江 杭州 311121)

0 引 言

現(xiàn)如今,許多城市都安裝了氛圍彩燈,如寫字樓外墻的大型燈光幕墻、道路旁的節(jié)日彩燈等。這些彩燈豐富了人們的生活,但是傳統(tǒng)燈光控制系統(tǒng)的諸多缺陷也同時暴露出來,如不能實現(xiàn)遠(yuǎn)程控制,需要在現(xiàn)場對燈光設(shè)備進(jìn)行調(diào)節(jié),這些都使燈光控制系統(tǒng)不夠智能和靈活;并且大多采用的是能耗不是很理想的燈源,對能源的消耗比較大。當(dāng)前倡導(dǎo)節(jié)能減排的呼聲愈來愈高,未來的燈光控制一定會朝著更加智能和節(jié)能的方向發(fā)展?,F(xiàn)在嵌入式技術(shù)已經(jīng)極大地改變了人們的日常生活,生活中無不充斥著嵌入式開發(fā)的產(chǎn)品,小到手腕上佩戴的智能手表、運動手環(huán),大到常見的家用電器,如冰箱、空調(diào)、洗衣機(jī)等;隨著互聯(lián)網(wǎng)技術(shù)的飛速發(fā)展,云計算、大數(shù)據(jù)等新技術(shù)還可以為物聯(lián)網(wǎng)終端設(shè)備提供可靠的數(shù)據(jù)存儲和計算功能。據(jù)此,本文設(shè)計并實現(xiàn)了一個可以對燈光設(shè)備進(jìn)行遠(yuǎn)程控制的系統(tǒng)。

1 系統(tǒng)設(shè)計

本燈光控制系統(tǒng)使用涂鴉公司提供的WiFi模塊WB3S與MCU通過USART串口進(jìn)行通信,模塊可以通過WiFi將燈光的狀態(tài)數(shù)據(jù)上傳至涂鴉云平臺,當(dāng)涂鴉云平臺檢測到有數(shù)據(jù)變化時便會向綁定了此設(shè)備的手機(jī)推送燈光的狀態(tài)信息,手機(jī)上便可以顯示此時燈光的亮度和色彩等參數(shù)。需要對當(dāng)前燈光設(shè)備進(jìn)行調(diào)節(jié)時,用戶可通過手機(jī)APP將對應(yīng)的控制信號上傳至涂鴉云平臺,再由涂鴉云平臺定期推送數(shù)據(jù)到綁定的設(shè)備上,之后通過對數(shù)據(jù)幀的解析得到需要控制的變量和值,利用MCU輸出相應(yīng)的控制信號對燈帶進(jìn)行控制。系統(tǒng)總體框架如圖1所示。

圖1 系統(tǒng)框架

本系統(tǒng)所用到的模塊和資源主要包括以下幾種:

(1)燈光設(shè)備:本系統(tǒng)使用的是型號為WS2812系列的燈帶。WS2812系列LED是一種內(nèi)部集成了控制電路和發(fā)光電路且可單點外控的LED發(fā)光裝置,每個元件就是一個發(fā)光的基本單位,構(gòu)成一個像素點;其內(nèi)部集成了R、G、B三種顏色的LED燈珠,還有一個帶有數(shù)據(jù)鎖存和整形功能的控制電路。此燈帶采用單線歸零碼作為驅(qū)動信號,每位歸零碼的高低電平持續(xù)時間見表1所列。每個元件在Din信號輸入端接收控制設(shè)備發(fā)送的單線歸零碼控制信號,讀取出其中的數(shù)據(jù)后將自身的數(shù)據(jù)鎖存起來;之后將后續(xù)的信號經(jīng)過整形電路整形后從Dout信號輸出引腳發(fā)送給下一個元件,從而保證可以實現(xiàn)多個燈珠的級聯(lián)控制。

表1 WS2812B歸零碼規(guī)則

(2)WiFi模塊:本系統(tǒng)使用的是涂鴉智能公司提供的WiFi模塊,此模塊內(nèi)部集成了WiFi協(xié)議相關(guān)的庫函數(shù),使用串口與外部進(jìn)行通信,實現(xiàn)了透傳的功能。同時此模塊還提供了WiFi通信中較為常見的Smart配網(wǎng)模式和AP配網(wǎng)模式。如圖2所示,涂鴉模塊在初始化完成后會根據(jù)不同的配網(wǎng)模式做出不同行為。處于AP配網(wǎng)模式時模塊會作為一個熱點,手機(jī)可以連接這個熱點并將設(shè)備所處環(huán)境中可用的WiFi信息發(fā)送給模塊;處于Smart配網(wǎng)模式下的模塊需要不斷監(jiān)聽當(dāng)前環(huán)境中的所有數(shù)據(jù)包,這就需要手機(jī)不斷向當(dāng)前網(wǎng)絡(luò)環(huán)境中發(fā)送可用的WiFi信息。當(dāng)模塊通過以上兩種方式中的任意一種接收到WiFi信息后會通過此信息登錄此WiFi路由器,登錄成功并連接上WiFi后涂鴉模塊會自動連接涂鴉云平臺。至此涂鴉WiFi模塊的配置全部完成。

圖2 涂鴉模塊配網(wǎng)過程

(3)涂鴉云:是由涂鴉智能公司開發(fā)的云端數(shù)據(jù)平臺,有存儲數(shù)據(jù)和推送消息的功能;它不僅可以接收來自WiFi模塊的狀態(tài)信息,還可以接收來自手機(jī)的控制信息,并將對應(yīng)的信息發(fā)送給對應(yīng)的終端設(shè)備,實現(xiàn)狀態(tài)的可讀和可控,如圖3所示。

圖3 狀態(tài)和控制數(shù)據(jù)流動示意圖

2 系統(tǒng)關(guān)鍵技術(shù)

2.1 LED燈帶驅(qū)動的實現(xiàn)

本系統(tǒng)使用的WS2812B燈帶的驅(qū)動信號是單線的歸零碼信號,需要達(dá)到納秒級別的精度;經(jīng)過實驗測試發(fā)現(xiàn),采用傳統(tǒng)的I/O翻轉(zhuǎn)輸出或定時器輸出時,都會因調(diào)用系統(tǒng)資源過多導(dǎo)致時序不符合燈帶歸零碼的需求,進(jìn)而無法控制。然而,STM32芯片內(nèi)部的SPI通信功能可以達(dá)到較高的電平翻轉(zhuǎn)速度,只需對SPI發(fā)送的數(shù)據(jù)進(jìn)行一定的設(shè)計即可模擬歸零碼的波形。通過查詢STM32F103系列芯片的數(shù)據(jù)手冊得知,SPI是掛載在APB2時鐘總線上的,最高頻率為72 MHz,將其進(jìn)行八分頻,得到9 MHz,即相鄰兩位之間時間差為1/9 MHz=111.11 ns,將此頻率作為采樣頻率,設(shè)置數(shù)據(jù)寬度為8位,經(jīng)過計算發(fā)送的數(shù)據(jù)為5位1和3位0,恰好可以表示歸零碼的1碼。

設(shè)計了一個以燈帶LED燈珠個數(shù)為長度的數(shù)組,每次需要刷新數(shù)據(jù)時,先對數(shù)組中的每一個元素進(jìn)行賦值計算;準(zhǔn)備好這個數(shù)組后通過DMA的方式直接將數(shù)組中的數(shù)據(jù)搬運到SPI發(fā)送的緩沖區(qū)中,SPI便可以按照數(shù)據(jù)依次進(jìn)行發(fā)送,模擬出歸零碼的波形。

2.2 色彩空間轉(zhuǎn)換的實現(xiàn)

本系統(tǒng)采用的WS2812B燈帶的控制信號是24位的RGB數(shù)據(jù),而涂鴉模塊向接口提供的是HSV數(shù)據(jù),這就需要對兩種顏色空間的變量進(jìn)行轉(zhuǎn)換。在本系統(tǒng)中使用如下公式將HSV顏色轉(zhuǎn)換為RGB顏色,以實現(xiàn)對燈帶的控制。

2.3 燈帶遙控的實現(xiàn)

涂鴉智能公司除了提供WiFi模塊外,還提供了相應(yīng)的SDK包,內(nèi)部封裝了涂鴉模塊數(shù)據(jù)幀的封包和解包庫函數(shù),并向上層調(diào)用者提供了不同控制操作的接口。在接收到對應(yīng)的控制信號時便可以調(diào)用對應(yīng)的接口函數(shù)實現(xiàn)對應(yīng)的功能。

涂鴉SDK執(zhí)行順序如圖4所示。程序運行時需要在main函數(shù)的while(1)循環(huán)中不斷調(diào)用wifi_uart_service函數(shù),此函數(shù)會繼續(xù)調(diào)用data_handle函數(shù),在此函數(shù)中判斷接收到的串口數(shù)據(jù)幀的類型,如心跳包、產(chǎn)品信息、WiFi工作狀態(tài)、命令下發(fā)和狀態(tài)上報。如果是命令下發(fā)的數(shù)據(jù)幀便會繼續(xù)調(diào)用data_point_handle函數(shù),此函數(shù)會對一些異常條件進(jìn)行判斷。如果數(shù)據(jù)正常,則會進(jìn)入dp_download_handle函數(shù)中,此函數(shù)對具體的數(shù)據(jù)點調(diào)用了不同的處理函數(shù),如開關(guān)處理的指令就會調(diào)用dp_download_switch_led_handle函數(shù),用戶需要在這個函數(shù)中編寫自己的邏輯代碼,當(dāng)開關(guān)布爾值為0時,關(guān)閉所有燈光;布爾值為1時,打開所有燈光,并且默認(rèn)顏色為白光。

圖4 涂鴉SDK執(zhí)行順序

對于彩燈的色彩數(shù)據(jù)需要進(jìn)行一定的處理,因為模塊發(fā)送的是HSV色彩空間的色彩數(shù)據(jù),且為ASCII碼的形式。先將ASCII碼轉(zhuǎn)換為十六進(jìn)制的形式,如果為0x30至0x39之間的數(shù)據(jù),即為字符0至9,轉(zhuǎn)換為十六進(jìn)制的0x00至0x09;如果為0x41至0x46,即字符A至F,轉(zhuǎn)換為十六進(jìn)制的0x0A至0x0F;如果為0x61至0x66,即字符a至f,也轉(zhuǎn)換為十六進(jìn)制的0x0A至0x0F,忽略了數(shù)據(jù)的大小寫字符問題。涂鴉串口協(xié)議規(guī)定了HSV三個分量的范圍分別是0~360、0~1 000和0~1 000,但是轉(zhuǎn)換公式中S和V的范圍是0~1,所以需要將S和V兩個分量歸一化到0~1,分別除以1 000即可得到。得到歸一化的HSV三個分量后就可以調(diào)用HSV與RGB顏色空間的轉(zhuǎn)換函數(shù)進(jìn)行轉(zhuǎn)換,之后根據(jù)轉(zhuǎn)換后的RGB值為數(shù)組的每一位進(jìn)行賦值,再啟動SPI發(fā)送,將顏色數(shù)據(jù)發(fā)送給每一位LED燈珠。

3 系統(tǒng)性能實驗與分析

3.1 網(wǎng)絡(luò)連接測試

保證WiFi連接的高效可靠是實現(xiàn)后續(xù)控制的基礎(chǔ),也是本系統(tǒng)的核心功能,關(guān)系到之后的控制命令和狀態(tài)信息能否順利傳輸。

3.1.1 配網(wǎng)功能測試

首先需要為設(shè)備建立一個信號質(zhì)量良好的WiFi環(huán)境,同時打開手機(jī)上的涂鴉APP,打開自動搜索功能,將設(shè)備上電。此時系統(tǒng)上的LED燈會短暫閃爍,表示此時處于AP配網(wǎng)模式;接下來手機(jī)端提示已找到設(shè)備,將WiFi的賬號和口令填入對話框中,等待涂鴉模塊連接好路由器并登錄涂鴉云后,可觀察到LED燈處于常亮的狀態(tài),表示涂鴉模塊已經(jīng)完成了登錄涂鴉云的步驟,同時手機(jī)端也會顯示出控制面板。

3.1.2 斷電重連測試

涂鴉WiFi模塊內(nèi)部有存儲數(shù)據(jù)的內(nèi)存空間,可以將上次配置好的WiFi信息保存下來,在斷電后重新上電時會自動使用內(nèi)存中的WiFi信息去連接。

在模塊已經(jīng)配置好WiFi連接后斷開系統(tǒng)的電源線,等待一段時間后重新連接電源線,此時LED燈還是處于熄滅的狀態(tài),稍等片刻后LED燈會常亮,表示已經(jīng)完成了連接路由器和登錄涂鴉云的步驟,之后操控手機(jī)APP面板,也可以控制燈光設(shè)備的狀態(tài)。

3.2 燈光控制功能測試

在涂鴉模塊連接好WiFi的狀態(tài)下,點擊手機(jī)APP面板上的開關(guān),如圖5所示,燈光亮起,再次點擊開關(guān),燈光熄滅,同時手機(jī)面板上的圖標(biāo)狀態(tài)也會同步切換為關(guān)閉的樣式;點擊不同顏色的按鈕,燈光會切換為對應(yīng)的顏色,手機(jī)面板同樣會切換為對應(yīng)顏色的狀態(tài);調(diào)整燈光亮度的進(jìn)度條,燈光會隨之變亮或變暗。

圖5 手機(jī)涂鴉APP控制界面

4 結(jié) 語

本文針對當(dāng)前燈光控制設(shè)備的智能化程度不高及能耗較高問題,對現(xiàn)有燈光控制設(shè)備進(jìn)行調(diào)查分析,研究了當(dāng)前WiFi通信的實現(xiàn)方案;利用能耗相對較低的LED型光源及涂鴉智能公司推出的WiFi模塊,使用STM32F103C8T6作為主控芯片,并將控制數(shù)據(jù)和狀態(tài)數(shù)據(jù)交給涂鴉云數(shù)據(jù)平臺進(jìn)行管理和推送,從而設(shè)計了一種可以遠(yuǎn)程遙控?zé)艄庠O(shè)備的系統(tǒng)。經(jīng)過實驗測試,通信效果良好,實現(xiàn)了遠(yuǎn)程控制功能。

猜你喜歡
燈帶涂鴉燈光
水中燈光秀
電路狀態(tài)展示教具制作
今晚的燈光亮了天
創(chuàng)意涂鴉
來一場燈光派對
創(chuàng)意涂鴉
隱形燈帶點亮家的光芒
涂鴉等
奇妙光涂鴉
武义县| 山阳县| 固安县| 南通市| 玉田县| 宜宾县| 突泉县| 商丘市| 吴堡县| 翁牛特旗| 宣汉县| 冀州市| 凌源市| 安图县| 阜城县| 辛集市| 卓资县| 高碑店市| 焉耆| 安顺市| 包头市| 务川| 行唐县| 贡觉县| 宁阳县| 兴安盟| 略阳县| 南城县| 贵德县| 邵阳县| 张北县| 彭州市| 镇沅| 东丰县| 灵山县| 精河县| 吉林省| 宁波市| 鸡东县| 平定县| 澎湖县|