?

基于Linux的家庭物聯網控制系統設計與研究

2018-11-01 03:43郭澤龍周金星
機械工程與自動化 2018年5期
關鍵詞:控制板局域網電器

郭澤龍,羅 帆,周金星

(太原工業學院,山西 太原 030008)

0 引言

物聯網是通過射頻識別(RFID)、紅外感應器、全球定位系統、激光掃描器等信息傳感設備,按約定的協議,把任何物品與互聯網連接起來進行信息交換和通訊,以實現智能化識別、定位、跟蹤、監控和管理的一種網絡。

我國高度關注、重視物聯網的研究。自溫總理提出“感知中國”以來,物聯網被正式列為國家五大新興戰略性產業之一,寫入“政府工作報告”。隨著物聯網技術的升溫,家庭物聯網技術也開始受到各方面的重視,國內的一些著名廠商也推出了自己的家庭物聯網系統:如海爾的U-home平臺、美的的智慧家居系統、TCL的Mi-Home等。

現在的物聯網系統多為各大企業自己搭建,協議互不相同,其實現復雜,成本較高。本文從客戶端、控制主機和智能電器終端三個方面描述了搭建一個家庭物聯網控制系統的設計思路,該系統具有結構簡單、控制方便的特點。

1 家庭物聯網控制系統的架構

本文設計的家庭物聯網控制系統主要包括以下三個部分:①物聯網控制主機,本系統中以友善之臂Mini2440為控制主機,通過路由器鏈接到局域網,使用戶可以通過客戶端訪問該控制主機,并對其發出命令;②智能電器終端,本系統中采用LED調光調色系統作為智能家居控制的終端,通過串口通信和控制主機相連;③客戶端,利用客戶端用戶可以遠程登錄控制主機,對主機發送控制命令。

家庭物聯網控制系統結構框圖如圖1所示。整個家庭物聯網控制系統的運行過程如下:

(1) 用戶通過客戶端來登錄局域網控制主機,與控制主機交換數據,同時發送控制要求,并接收控制主機返回的智能電器的運行狀態數據。

(2) 物聯網控制主機通過RJ45線與路由器相連,進而接入局域網,當收到客戶端的控制請求后進行判斷,并將控制命令發送給相應的智能電器終端。

(3) 智能電器終端和控制主機通過串口進行通訊,接收控制主機的控制要求,判斷要求類型并做出相應的狀態改變,同時,將自己的運行狀態通過串口返回到控制主機。

圖1 家庭物聯網控制系統結構框圖

由以上的控制過程可以看出,用戶只需要通過客戶端就可以與智能電器終端連接,向其發出控制要求,改變智能電器的運行狀態,操作非常簡單,顯示出系統結構簡單、控制方便的特點。

2 家庭物聯網控制系統的具體設計

家庭物聯網控制系統主要由控制主機和智能電器構成,控制主機采用運行Linux操作系統的Mini2440開發板,其自帶RJ45網絡接口和一塊彩色的LCD屏幕,可以顯示系統的運行狀態和家電的運行狀態;智能電器終端由STM32控制,客戶通過客戶端對其顏色和亮度進行控制,達到系統的設計要求。

2.1 控制主機設計

控制主機的主要作用是接收客戶端的控制要求并發送給智能電器,同時將智能電器的運行狀態數據返回給客戶端,將客戶端和智能電器終端連接在一起。這就要求控制主機要合理地分配資源,接收客戶端的請求同時返回運行狀態,實現接入局域網和連接智能電器的功能。

2.1.1 將控制主機接入局域網

(1) 用RJ45連接線將控制主機和路由器連接起來。

(2) 配置控制主機的IP,配置IP時可以通過ifconfig命令,后面接eth0的IP和子網掩碼來修改主機的IP。但是這樣修改的IP在主機重啟后會被修改,所以需要將主機的IP設置為靜態IP。配設置方式為:首先找到網卡的配置文件eth0-setting,然后編輯文件將IP改為192.168.1.10,再重啟eth0,IP就不會被修改。

2.1.2 主機和智能電器連接

(1) 智能電器由STM32控制板來控制,所以將STM32控制板的串口通信接口和控制主機的串口通信接口相連來達到數據交換的目的。

(2) Mini2440包括3個串口,即UART0、UART1和UART2,這里使用的是UART1。將串口和控制主機連接好后,通過客戶端輸入指令“echo“50 30 150”> /dev/ttySAC1 ”就可以將期望的RGB值發送到串口,再由STM32的串口接收數據,并通過“cat /dev/ttySAC1”指令來讀取STM32返回的智能電器的運行狀態。

控制主機的運行流程如圖2所示,首先接入局域網,等待客戶端發送控制命令,如果接收到控制命令,則將控制命令發送給智能電器,同時讀取電器的狀態值,將其發送到客戶端或者LCD屏幕上來顯示智能電器的運行狀態。

2.2 智能電器終端設計

智能電器終端的功能是接收控制主機的控制命令,改變自身狀態,同時將自己的運行狀態返回給控制主機。智能電器終端以LED調光調色燈板來作為例子,該終端由STM32控制板、RGB燈板和LED燈的驅動模塊組成。RGB燈板由18個5050單顆0.5 W的燈珠組成,采用6串3并連接;LED燈的驅動模塊由PWM-RGB調光模塊將18 V~20 V的電壓轉換成12 V~20 V的PWM信號來控制RGB燈的顏色。5050燈珠里面放有紅、綠、藍三個芯片,使用IC來控制閃爍的順序以及頻率。這樣一個燈能發出紅、綠、藍、紅綠、紅藍、綠藍、紅綠藍(就是白光)一共七種顏色,還可以通過控制流過不同顏色芯片的電流大小來控制某顏色的亮度,從而使混合出來的光顏色變化。從理論上來說,采用這種控制方法一盞燈可以發出無窮多種顏色。

首先配置STM32控制板,將STM32的3個PWM輸出端口和LED燈驅動模塊的PWM輸入口連接,將驅動模塊的PWM輸出接LED燈的RGB輸入,達到通過STM32的PWM輸出信號來控制燈的顏色亮度的目的。

STM32控制的實現代碼如下:

int main ()

{

Stm32_Clock_Init(336,8,2,7);//設置時鐘,168MHz

delay_init(168);//延時初始化

uart_init(84,9600);//串口初始化為115200

LED_Init();//初始化與LED連接的硬件接口

LED_Init();//初始化LED

KEY_Init(); //按鍵初始化

while(1){

if(USART_RX_STA&0x8000)

{

LED1=~LED1;//LED1關閉

len=USART_RX_STA&0x3fff;//得到此次接收到的數據長度

if((a[0]>=0&&a[0]<=255) && (a[1]>=0&&a[1]<=255) && (a[2]>=0&&a[2]<=255))

{

temp1 = a[0]*1.0/256*9999;

temp2 = a[1]*1.0/256*9999;

temp3 = a[2]*1.0/256*9999;

TIM3->CCR2 = temp1; //輸出PWM 到 R

TIM3->CCR3 = temp2; //輸出PWM 到 G

TIM3->CCR4 = temp3; //輸出PWM 到 B

printf("OK R:%d G:%d B:%dn",a[0],a[1],a[2]);while((USART1->SR&0X40)==0);//返回RGB值

}

USART_RX_STA=0;

}

}

}

智能電器終端由STM32控制板串口和控制主機相連接,運行流程為:接收主機的控制命令,判斷命令,進行狀態改變,返回狀態值。智能電器終端運行流程如圖3所示。

圖2控制主機運行流程圖3智能電器終端運行流程圖

3 系統實際的運行狀態

運行時,用戶通過客戶端登錄控制主機(這里用Xshell來模擬客戶登錄),打開Xshell,新建會話,IP為192.168.1.10,用戶名為root,登錄主機。

為控制方便,寫了腳本語言來輸入控制值,腳本代碼如下:

echo "$1 $2 $3 "> /dev/ttySAC1 //接收輸入的3個值,發送到UART1

cat /dev/ttySAC1 //讀取UART1的返回值

LED燈的實際運行畫面如圖4所示。如圖4所示,輸入RGB值“50,30,150”,則主機將RGB值發送到串口,STM32通過串口接收該RGB值,將燈的實際RGB改為“50,30,150”,同時返回燈的運行狀態。

圖4 LED燈的實際運行畫面

LED燈的實際效果如圖5所示。

圖5 LED燈的實際效果

4 結語

本文采用基于Linux操作系統的Mini2440開發板,給出了在 Linux 環境下通過串口通信將智能控制終端和客戶端連接起來的方法,實現了用戶遠程控制智能終端的功能。如何在此系統框架的基礎上添加更多的智能設備將是進一步的研究工作。

猜你喜歡
控制板局域網電器
家中電器要“煥”新 這波惠民操作別錯過
軌道交通車-地通信無線局域網技術應用
奧田電器
基于VPN的機房局域網遠程控制系統
軌道交通AFC導向標識控制板設計
電器創新設計兩則
基于802.1Q協議的虛擬局域網技術研究與實現
一種集成腳本控制單元的設計與實現
一種全隔離的無刷直流電機的反饋制動控制板的研究
局域網性能的優化
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合