遠距離圖傳廠家基于無線模塊設計的聯網LED照明燈方案,智能家居是指通過物聯網技術將各種設備連接到一起,物聯網技術的迅速發展促進了智能家居的發展;設計了一種基于Android的可組網的LED照明燈,該LED照明燈以基于Android的智能電子設備為控制終端,通過socket通信的方法實現與LED照明燈之間的通信,達到對照明燈的開關以及亮度調節的目的;LED照明燈采用S微處理器作為控制芯片,選用高效率、高性能的T作為大功率LED的驅動,并采用遠距離圖傳廠家CV5200作為WIFI通信模塊;LED照明燈的亮度通過微處理器輸出的PWM信號進行調節,不僅可以實現亮度從0-1的線性調節,而且解決了普通照明燈在開燈和關燈時,瞬間點亮和瞬間熄滅,對人眼的沖擊問題;采用該方法設計的照明燈實用性強,具有較好的推廣價值。
智能家居是指通過物聯網技術將家庭中的音視頻設備、照明系統、數字影院系統、網絡家電等各種設備通過無線的方式連接到一起,提供家用電器的遠程智能控制。與普通家居相比,智能家居不僅具有傳統的居住功能,還兼備網絡通信、信息家電、設備自動化,提供全方位的信息交互功能。當前,高效、節能、環保和使用壽命長的LED照明燈已大范圍替代效率低、對環境污染大以及使用壽命短的白熾燈和熒光燈。LED照明燈主要采用大功率LED燈珠作為發光光源,大功率LED燈珠屬于電流型半導體器件,具有二極管的特性,通過調節其流經的電流即可調節其發光亮度,因此,通過微控制器和帶亮度調節功能的專用的LED驅動芯片,即可方便的調節燈光的亮度。另外,基于An-droid系統的智能電子設備,如智能手機、PAD等隨處可見,成為人們生活中必不可少的一部分。因此,將基于An-droid系統的智能電子設備和帶無線通信功能的可調光LED照明燈結合,將會打開產生一個新的應用空間。
本文闡述了一種帶微處理器和遠距離圖傳廠家
LED WIFI通信功能的可調光、可組網的LED照明燈,并提出了將多個該LED照明燈組成一個分布式的可調光的智能照明控制的方案。
由Android終端以及分布在家居空間的LED照明燈組成。AP為無線接入點,是網絡的中心節點,在智能家居中,可以采用家庭或辦公室常用的無線路由器作為AP。Android終端和其他LED照明燈為STA站點,所有的STA都以AP作為無線網絡的中心,STA之間的相互通信都通過AP轉發完成。AP通過WLAN與外網連接,外網的服務終端可以通過AP訪問到內部各個STA站點。Android終端作為TCPServer,其余的LED照明燈作為TCPClient,作為TCPClient的LED照明燈上電后,其內部的無線模塊WIFI模塊會主動連接指定IP地址和端口的An-droid終端,連接成功后,Android終端和LED照明燈之間就可以進行通信了。LED照明燈內部的處理器就會定時發送LED照明燈的狀態信息,如開、關狀態以及亮度比例等。安裝在Android終端的APP運行后,會通過WIFI網絡接收到各個LED燈上傳的數據,并顯示各個照明燈的狀態。同時用戶通過APP的操作,通過socket通信的方式,按照自定的通信協議來控制各個燈的開、關以及調節各個照明燈的亮度。在LED照明燈的電路組成中,遠距離圖傳廠家WIFI電路構成MCU與Android終端的通信橋梁,MCU是單個LED照明的控制中心,負責解析并執行Android終端發出的控制指令,MCU選用帶有PWM控制器的微處理器,這樣很方便與帶PWM調光功能接口的LED驅動芯片無縫對接。
LED驅動電路T系列器件是內部集成了290mΩ低電阻N溝道金屬氧化物半導體場效應晶體管(MOSFET)的緊湊型單片開關穩壓器,該系列開關穩壓器利用恒定關斷時間和峰值電流控制功能來運行,工作原理簡單可靠。該系列器件輸出高達2A的恒定平均電流,具有多種調光方法,適用于注重高效率、高帶寬、PWM模擬調光以及小尺寸的高亮度LED照明應用場景,例如汽車照明、工業照明、農業、航海和重工業照明等領域。TPS92515系列器件具有很寬的輸入電壓范圍,其中TPS92515x的輸入電壓范圍為5.5V至42V,TPS92515HVx的輸入電壓范圍為5.5V至65V。
在LED照明燈中,采用T作為大功率LED的驅動電路。EN信號用于控制P型MOS管U1(IRF6216)的導通與截止,從而控制T的電源輸入,達到通過EN信號控制LED照明燈的開和關的目的。T的第9引腳為PWM調光信號輸入引腳,標準的PWM信號的頻率范圍為100Hz至2kHz,該引腳與微處理器可輸出PWM信號的特殊引腳連接,通過固件程序改變輸出PWM信號的占空比,來調節LED照明燈的亮度。WIFI電路WIFI電路作為LED照明燈與Android終端通信的橋梁,WIFI電路采用遠距離圖傳廠家云望聯網技術有限公司的WIFI模塊CV5200,模組是一款一體化的802.11b/g/n模組,通過該模組,傳統的串口設備或MCU控制的設備可以很方便的接入WIFI無線網絡,從而實現物聯網絡控制與管理。由于模塊內部完成協議轉換,因此,對于用戶來說,無需關心內部具體細節,通過簡單設置即可實現串口與無線模塊WIFI之間數據的雙向透傳。
微處理器智能家居調光系統的LED照明燈的微處理器采用S,S是S32F系列微控制器中,成本很低的一種32位ARM處理器,主頻48MHz,其內核是Cortex-M0,傳承了STM32系列的重要特性,特別適合成本敏感型應用,該芯片集成定時器Timer,UART等多種外設功能,這些外設功能的存在,非常有利于簡化電路的設計工作和降低產品的成本。S處理器內部有1個定時器TIM1,通用定時器TIM3、TIM14、TIM15、TIM16、TIM17和基本定時器TIM6、TIM7,一共8個定時器,除了TIM6和TIM7以外,其他的定時器都可以用來配置產生PWM信號,其中定時器TIM1可以同時產生6通道的PWM輸出,而通用時器也能同時產生多達4路的PWM輸出。PWM(脈沖寬度調制)是利用微處理器的數字輸出來對模擬電路進行控制的一種非常有效的技術。在本設計中,我們將S的第18引腳PA10與LED驅動電路的PWM控制引腳相連接,通過底層軟件配置,將TIM1的CH3產生一路1kHz的PWM輸出,用于調節LED的亮度。STM32F030F4P6的第17引腳PA9與LED驅動電路的EN信號相連接,用于控制驅動電路的供電。STM32F030F4P6的第8引腳PA2(USART1_TX)和第9引腳PA3(USART1_RX)分別與USR-WIFI232-B2的第4和第3引腳連接,用于與WIFI模塊進行串行通信。
在本設計中,我們將STM32F030F4P6的第18引腳PA10與LED驅動電路的PWM控制引腳相連接,通過底層軟件配置,將TIM1的CH3產生一路1kHz的PWM輸出,用于調節LED的亮度。STM32F030F4P6的第17引腳PA9與LED驅動電路的EN信號相連接,用于控制驅動電路的供電。STM32F030F4P6的第8引腳PA2(USART1_TX)和第9引腳PA3(USART1_RX)分別與USR-WIFI的第4和第3引腳連接,用于與無線WIFI模塊進行串行通信。
Android軟件設計ToggleButton是Android中一個具有選中和未選中兩種狀態的按鈕,并可為不同的狀態設置不同的顯示文本,常用于表示開、關場景中。在Android終端的APP軟件設計中,LED照明燈的開和關用ToggleButton來實現。在xml布局文件中設置ToggleButton,然后在Activity文件中初始化用于控制照明燈開關的ToggleBuuton控件,并設置控件的OnCheckedChangeListener監聽器和重寫監聽器的onCheckedChanged()方法,通過該方法的傳入參數isCh-ecked,判斷控件的狀態。如果控件壓下,則發送開燈指令,如果控件彈起,則發送關燈指令。具體實現代碼如下。LED_Lightting.setOnCheckedChangeListener(newOnChecked-ChangeListener(){@OverridepublicvoidonCheckedChanged(CompoundButtonbuttonView,booleanisChecked){if(!buttonView.isPressed()){return;}else{if(isChecked){//發送開燈指令printWriter.print("$$o##");printWriter.flush();}else{printWriter.print("$$p##");printWriter.flush();}}}});在Android系統中,SeekBar繼承于ProgressBar,是增加了滑動塊的擴展ProgressBar。SeekBar的目的是讓用戶可以自主拖動,用來調節進度,比如通過拖動進度條來改變音樂和視頻的播放進度,這里我們也用SeekBar來調節LED照明燈的亮度。其具體實現代碼如下。privateSeekBarmseekBarBrightness;mseekBarBrightness.setOnSeekBarChangeListener(newOn-SeekBarChangeListener(){@OverridepublicvoidonStopTrackingTouch(SeekBarseekBar){//移動后放開事件}@OverridepublicvoidonStartTrackingTouch(SeekBarseekBar){//TODOAuto-generatedmethodstub}@OverridepublicvoidonProgressChanged(SeekBarseekBar,intprogress,booleanfromUser){//TODOAuto-generatedmethodstub//取得當前亮度intBrightness=seekBar.getProgress();//當進度小于5時,設置成0,關閉LED照明燈if(Brightness<5){Brightness=0;}//根據當前進度改變亮度StringorderStr="";orderStr=String.valueOf(Brightness);try{printWriter.print(orderStr);printWriter.flush();}catch(Exceptionex){ex.printStackTrace();}}});Android終端的APP中,通過ToggleButton來打開和關閉LED照明燈,通過SeekBar來調節LED照明燈的亮度是外在的,處于應用層,而內在的通信,即Android終端與LED照明燈之間通信指令的傳輸則是通過Socket來實現的。Socket即為套接字,用于描述IP地址和端口,是支持TCP/IP協議的網絡通信的基本操作單元,也是應用層與TCP/IP協議族通信的中間軟件抽象層,表現為一個封裝了TCP/IP協議族的編程接口(API),主要解決數據如何在網絡中傳輸。對我們用戶來說,在Andorid平臺上進行TCP/IP協議開發,只需調用Socket按照指定的協議,向網絡發出請求或者應答網絡請求,即可實現通信,內部具體實現則無需關心。在本設計中,采用基于TCP的Socket實現客戶端與服務器間的雙向可靠連接的實時通信,是一種C/S模型的通信方式。Android終端為服務端,LED照明燈為客戶端,由于LED照明燈采用的是具有透明傳輸功能的遠距離圖傳廠家無線模塊WIFI模塊,內部集成了Socket通信功能,在使用時,只要對模塊進行配置成客戶端,并綁定服務器的IP地址和端口號即可,而服務器端的程序則要另行開發。服務器與客戶端通信前,需要創建服務器端的Socket,綁定端口號并開始監聽端口,等待建立基于TCP面向連接的端對端的傳輸。具體實現代碼如下。publicclassLightServer{publicstaticArrayList<Socket>socketList=newArrayList<Socket>();publicstaticvoidmain(String[]args)throwsIOException{//創建8899端口的服務端ServerSocketsocket=newServerSocket(8899);while(true){//等待連接Socketnew_socket=socket.accept();socketList.add(new_socket);//為新加入的連接創建線程newThread(newServerThread(new_socket)).start();}}}服務器與客戶端一旦創建連接后,就可以通過getIn-putStream和getOutputStream來接收和發送數據。getIn-putStream用于獲得讀Socket的輸入流,getOutputStream用于獲得寫Socket的輸出流。通過getInputStream和getOutputStream,實現LED照明燈亮度調節指令的發送和LED照明燈狀態的收集,特別是APP軟件中途退出重新啟動時,APP根據收集LED照明燈狀態調整顯示信息,確保APP顯示的狀態與實際的狀態一致。
固件程序設計固件程序運行于S,主要有兩個功能,一是用于從串口1接收Android終端通過遠距離圖傳廠家WIFI模塊發送的控制指令,打開和關閉LED照明燈和調節亮度,二是將照明燈的狀態信息,例如當時的實際亮度比和開、關狀態等信息,通過WIFI模塊定時上傳到Android終端,使An-droid終端的顯示狀態與實際的一致。固件程序中,S的USART1的收發數據均采用DMA的方式來完成,其中數據發送采用DMA1的通道4,數據接收采用DMA1的通道5,并通過空閑中斷的方式來響應接收到的指令,這樣可以大大提高CPU對外設的響應速度。通用定時器TIM3用來設置上傳信息的2秒時間間隔,每隔2秒,LED照明燈上傳當前的狀態信息,APP如果超時未收到照明燈發送的信息,則認為LED照明燈故障或者失聯,并給出提示信息。用于調光的PWM信號是通過配置S的TIM1來產生1kHz的PWM信號,并通過庫函數TIM_SetCompare3(TIM1,Duty)或者通過修改寄存器的值TIM1->CCR3=Duty來修改PWM信號的占空比,達到調節亮度的目的。Duty為占空比,取值范圍為0~100。為了解決普通照明燈開燈和關燈時,照明燈瞬間點亮和瞬間熄滅,對人眼的沖擊,固件程序在接收到開燈指令時,并不會將亮度直接調節到指定值,而是先將LED驅動電路的電源關閉,將輸出的PWM信號的占空比調節到小,然后打開LED驅動電路的電源,再將輸出PWM信號的占空比逐步增大,使亮度慢慢增加。在接收到關燈的指令時,先將PWM信號的占空比逐步減小,使亮度慢慢降低,達到小值后再關閉LED驅動電路的電源。
根據設計,制作了原理樣機,并在功能和指標上做了測試。在功能上,各個LED照明燈上電后,默認均處于關燈狀態,并每隔2秒發送狀態信息,用于連接Android終端。打開運行在Android手機上的APP后,LED照明燈與An-droid終端能很快建立連接。建立連接前,APP上LED照明燈的狀態是灰色,建立連接后,狀態變為綠色,表示連接成功。連接成功后,通過APP上的控件可以對LED照明燈進行開燈和關燈操作,通過拖動進度條可以很靈敏地調節對應照明燈的亮度,并且在開、關燈的時候,亮度有明顯的變化,對人眼沒有明顯的刺激。另外,對樣機進行了高溫環境下的老化測試,樣機能連續較長時間穩定工作。在指標上,主要測試了實際輸出電流與PWM信號占空比的關系。通過對PWM信號的占空比與輸出電流的監測,得出LED驅動電路的輸出電流與PWM信號占空比。從實驗結果來看,在功能上,樣機能很好地滿足設計的要求,達到了預期的目的,另外,由于采用市面成熟的遠距離圖傳廠家WIFI模塊、性價比非常高的微處理器和專用LED驅動電路,簡化了電路和軟件的設計,提高了照明燈的可靠性。在指標上,專用LED驅動芯片的引入,輸出電流能很好地線性跟隨PWM信號的占空,達到良好的調光效果。另外還測試了樣機LED驅動的效率,其高效率高達92%。效率高的原因是由于T內部開關管的內阻很低,僅為290mΩ,而外部電路則采用了高品質的電感和低ESR的濾波電容,而這些因素恰恰是影響BUCK電路效率的因素。
遠距離圖傳廠家基于無線模塊Android系統的可聯網LED照明燈的設計,給出了關鍵部分的硬件電路和軟件實現方法,并對樣機進行了測試,測試的結果表明樣機很好地滿足設計的要求,達到了預計的目的。由于照明燈的控制是采用無線控制,通過組網,可以形成一個物聯網照明系統,不僅在局域網范圍內,還可以通過廣域網,對部署的照明燈進行控制。該系統具有部署簡單、實用性強的特點,具有較好的推廣價值和市場前景。