黎瓊 溫泉徹 鐵新城



摘? 要: 為提高道路照明系統控制的可靠性、便捷性和靈活性,并達到節能降耗的效果,設計了一套路燈遠程監控系統。系統包括路燈控制終端和上位機軟件兩大部分。路燈智能控制終端基于AVR單片微處理器開發,集遠程手動控制、定時開關控制和光感自動開關控制于一體,增加了路燈遠程控制方式的多樣性;采用定時-光感協調控制技術,彌補了獨立的光感自動控制抗干擾(外界光源、遮擋等)能力差的不足。上位機軟件基于Visual C++ 6.0編程環境開發,具有控制模式切換、參數配置、接收信息顯示等功能。采用無線通信方式,減小了布線的難度,縮短了建設的周期。
關鍵詞: 路燈; AVR單片機; 遠程監控系統; 節能; 無線通信; 自動控制
中圖分類號:TP39? ? ? ? ? 文獻標志碼:A? ? 文章編號:1006-8228(2019)02-34-05
Design of street-lamp remote monitoring system with AVR microcontroller and VC++ 6.0
Li Qiong1, Wen Quanche2, Tie Xincheng1
(1. School of Information Engineering, Lingnan Normal University, Zhanjiang, Guangdong 524048, China;
2. School of mathematics and statistics, Lingnan Normal University)
Abstract: In order to improve the reliability, convenience and flexibility of road-lighting system, and save the electrical energy, a street-lamp remote monitoring system is designed in this paper. This system is consisted of a terminal controller and a monitoring program in host computer. The terminal controller is developed by using AVR microcontroller, and remote manual mode, timing mode and light-dependent mode are integrated, which improve the diversity of street-lamp remote controlling. Meanwhile, a coordination control method combined with the timing and light-dependent modes is presented, which overcomes the defects in resistance to interference (irradiated and sheltered conditions, etc.) of traditional light-dependent mode. The monitoring program is developed with Visual C++ 6.0. This program can switch the operating mode, set the parameters and display the receiving data. The wireless communication is adopted and as a result, the work of cabling can be saved and the construction cycle of system can be reduced.
Key words: street-lamp; AVR Microcontroller; remote monitoring system; power-saving wireless communication; automatic control
0 引言
道路照明系統是小區、學校、公園等場所的重要組成部分,對其開關時刻進行可靠、有效的控制,將有助于人們出行方便和安全,同時提高能源的有效利用率,實現節能照明。現有的路燈照明大多采用人工手動開關、定時自動開關或光感自動開關的控制方式[1-4]。手動控制方式存在電能浪費大、路燈使用壽命短、無法遠程監測和控制,人工作業量大等問題;定時自動控制存在無法適應季節變化,或者陰雨天氣對路燈開關時間的動態需求等問題;光感自動控制存在抵抗外界光源、遮擋等干擾的能力差等問題。
本文設計了一種路燈遠程監控系統。該系統由路燈智能控制終端和主機軟件兩大部分組成。其中,路燈智能控制終端的主控芯片采用了AVR單片微處理器,集成了遠程手動開關控制、定時開關控制和光感自動開關控制等功能,采用定時-光感協調控制技術,彌補了單純的光感自動控制抗干擾能力差的不足,同時提高了路燈控制的靈活性。主機軟件與控制終端之間的數據交換采用的是無線通信技術,避開了RS485總線通信方式布線難度大[5]、布線要求高,以及電力載波通信中干擾的繁雜性和不確定性等問題[6],縮短了系統的建設周期,提高了系統的穩定性和可靠性,具有更好的適用性。
1 系統構成
系統基本組成如圖1所示。主機軟件通過串口/無線信號轉換器將配置、控制、查詢等指令,以無線通信的方式發送給路燈控制終端,路燈控制終端在接收到指令信息后將做出相應的響應,在滿足開關條件或接收到主機軟件發送的實時開關指令時,智能控制終端將控制交流接觸器,做出相應的開關動作,從而實現對路燈的自動開關或遠程實時開關控制。
2 路燈控制終端的硬件設計
2.1 MCU及外圍電路
控制終端的主控制器采用ATMEL公司的AVR單片機,型號為Atmega8。Atmega8內部集成了較大容量的存儲器和豐富的硬件接口電路,并且在軟件上能有效的支持C語言及匯編語言。由于其先進的指令集以及單時鐘周期指令執行時間,Atmega8可獲得高達1MIPS/MHz的數據吞吐速率[7-9]。其主要特點如下。
⑴ 高性能、低功耗。采用先進的RISC指令集結構;有130條功能強大的指令,大多數為單周期指令;內有32個8位通用工作寄存器。
⑵ 大容量的片內存儲器,編程方便。8K字節的Flash和512個字節的EEPROM;支持在線編程ISP和在應用編程IAP。
⑶ 豐富強大的片內外設。兩個具有獨立預分頻器的8位定時器/計數器,其中一個具有比較功能;另一個具有預分頻器、比較功能和捕獲功能的16位定時器/計數器;3通道PWM;多路通道10/8位A/D轉換;面向字節的兩線接口;可編程的串行USART;可工作于主機從模式的SPI接口;具有獨立片內振蕩器的可編程看門狗定時器;片內模擬比較器。
⑷ 特殊的微控制器性能。上電復位以及可編程的掉電檢測;片內經過標定的RC振蕩器;5種休眠模式(空閑、ADC噪聲抑制、省電、掉電和Standby模式)。
Atmega8單片機的上述技術特點,使其能很好地滿足路燈控制終端的設計要求。
2.2 無線數據收發模塊
控制終端和主機軟件之間的無線通信采用SM43型低功率ISM(Industrial Scientific Medical)波段無線通信模塊。其主要特點如下:
⑴ 低發射功率。發射功率僅為150mW。
⑵ 符合ISM頻段通信標準,無需申請頻點。載頻頻率在300-365MHz,400-480MHz,800-960,2400-
2500MHz范圍內可選。
⑶ 多信道,多速率。提供多個通信信道,有1200、2400、4800、9600、19200Bit/s等11種通信速率可選。
⑷ 傳輸距離遠。天線高度大于1.5米,增益為3dBi的情況下,傳輸距離可達1500m。
⑸ 高抗干擾能力和低誤碼率。GFSK調制方式,采用高效前向糾錯信道編碼技術,提高了數據抗突發干擾和隨機干擾的能力,在信道誤碼率為10-3時,可得到10-5~10-6的實際誤碼率。
因此,該型無線通信模塊已被廣泛應用于工業遙控、無線數據采集和傳輸、政府路燈節能設備、智能家居、樓宇自動化等方面,滿足路燈控制終端的設計要求。
2.3 光感模塊設計
光敏元件采用光敏電阻器。光敏電阻是利用半導體的光電效應制成的一種電阻值隨入射光的強弱而改變的電阻器。光敏電阻器的阻值隨入射光線(可見光)的強弱變化而變化,在黑暗條件下,它的阻值(暗阻)可達1-10M歐,在強光條件(100LX)下,阻值(亮阻)僅有幾百至數千歐姆。光敏電阻器對光的敏感性(即光譜特性)與人眼對可見光的響應很接近,只要人眼可感受的光,都會引起它的阻值變化。
利用Atmega8提供的10位逐次比較的ADC實時采集光敏電阻的阻值變化,以此判斷環境亮度的變化情況。光控電路如圖2所示。
在圖2中,由于10K電阻和光敏電阻RG1串聯分壓,可得PC0端的電壓VPC0:
則轉換后的數字量為:
其中,VPC0表示選定的輸入引腳上的電壓,VAREF表示選定的參考電源的電壓(本設計選為VCC)。
2.4 繼電器驅動電路
采用固態繼電器來控制交流接觸器的開通與判斷,從而實現對路燈的遠程開關控制。繼電器型號為SSR-S203ZA[10],該型繼電器需要大于5mA的驅動電流。因此,為了提供充足的驅動力,保證繼電器的可靠工作,采用三極管驅動方式,如圖3所示。當PB0引腳輸出高電平時,繼電器輸出端閉合,從而控制交流接觸器主觸點閉合為路燈送電;反之,則斷開路燈的工作電源。
2.5 時鐘芯片電路
定時芯片為DS1302,它是美國DALLAS公司推出的一種高性能、低功耗、帶RAM的實時時鐘電路,可以對年、月、日、周日、時、分和秒進行計時,并具有閏年補償功能,工作電壓為2.5V~5.5V。DS1302與單片機之間能簡單地采用同步串行的方式進行通信,僅需用到RST(復位)、I/O(數據線)和SCLK(串行時鐘)三個引腳[11-12],分別連接到Atmega8的PD7、PD6和PD6引腳。DS1302的引腳和連接方法如圖4所示。X1和X2是振蕩源,必須外接32.768kHz晶振。VCC1為后備電源,VCC2為主電源,當VCC2大于VCC1+0.2V時,VCC2給DS1302供電;當VCC2小于VCC1時,DS1302由VCC1供電。因此,將VCC2連接系統的+5V供電電源,VCC1接3.3V鋰電池,這樣能夠保證芯片不間斷計時。
3 路燈控制終端的軟件設計
3.1 主程序架構
定時-光感協調控制模式下的主程序流程如圖5所示。
圖5中,開燈時間段1的值可設定為冬季的天黑時刻;開燈時間段2的值可設定為夏季的天黑時刻;關燈時間段1的值可設定為夏季的天黑時刻;關燈時間段2的值可設定為冬季的天黑時刻。下面舉例說明這樣設置的好處(假設開燈時間1和2分別設為17:30和19:00,關燈時間1和2分別設為5:30和7:00)。
情況1:假設自17:00起,光敏探頭被長時遮擋,此時雖然根據亮度值判斷已滿足開燈條件,但是由于時間未到開燈時間1,系統將不會做出開燈動作,直到17:30。
情況2:假設自17:00起,光敏探頭被外界光源長時照射,直到19:00,此時雖然根據亮度值判斷不滿足開燈條件,但是由于時間已到開燈時間2,系統將做出開燈動作。
從上述案例的分析可知,定時-光感協調控制模式可以有效的防止外界強光源、遮擋等干擾條件下系統的誤動作,保證系統的可靠工作。對于關燈控制的分析不再贅述。
3.2 MCU的端口及串口初始化
Atmega8有23個I/O引腳,分成3個8位的端口B、C和D,其中C口只有7位。I/O端口作為通用數字輸入/輸出口使用時,都具備真正的讀-修改-寫特性[7]。Atmega8采用方向寄存器DDRx、數據寄存器PORTx和輸入引腳寄存器PINx(x為B、C或D,分別代表B口、C口或D口)3個8位寄存器來控制I/O端口。DDRx的每一位用于控制一個I/O引腳的輸入輸出方向。當DDRx.n=1時,I/O的Pxn引腳處于輸出模式。此時,如果PORTx.n=1,I/O引腳將呈高電平,可提供20mA的輸出電流;當PORTx.n=0時,I/O引腳呈低電平,可吸收20mA的輸入電流。當DDRx.n=0時,I/O的Pxn引腳處于輸入模式。此時引腳寄存器PINx.n中的數據就是外部引腳的實際電平。此時可以通過PORTx.n的設置來控制內部的上拉電阻的使用與否。本文的Atmega8引腳初始化函數如下:
void port_init (void)
{ PORTB=0x00;
DDRB=0x01;
PORTC=0x00;
DDRC=0x00;
PORTD=0x00;
DDRD=0xE0;
}
Atmega8帶有一個全雙工通用同步/異步串行收發模塊USART,其可以分為三部分:時鐘發生器、數據發送器和接收器。USART涉及到寄存器有:
USART控制和狀態寄存器A:UCSRA
USART控制和狀態寄存器B:UCSRB
USART控制和狀態寄存器C:UCSRC
波特率寄存器:UBRRL和UBRRH
本文中,串口的配置參數為:波特率9600 bit/s,8位數據位,1位停止位。程序代碼如下:
void uart0_init(void)
{ UCSRB=0x00;
UCSRA=0x00;
UCSRC=BIT(URSEL) | 0x06;
UBRRL=0x2F;? //設置波特率為9600
UBRRH=0x00;
UCSRB=0x98;
}
3.3 無線通信程序設計
DS1302控制字節的最高有效位(位7)必須是邏輯1才能寫入數據;位6為0,則表示存取日歷時鐘數據,為1表示存取RAM數據;位5至位1指示操作單元的地址;最低有效位(位0)如為0表示要進行寫操作,若為1表示進行讀操作[11]。讀寫流程如圖6所示。
4 上位機軟件設計
上位機軟件基于Visual C++ 6.0編程環境開發[13-15]。通過上位機軟件,監控中心可以發送配置、查詢、控制等指令給路燈控制終端,并接收控制終端返回的數據信息;根據采集到的數據信息,分析路燈的實時工作狀態、配置情況等,并以良好的界面將接收到的重要參數顯示出來,并存入數據庫中,便于查詢和管理。上位機軟件界面如圖7所示。在軟件界面中,可以完成串口的參數配置,路燈控制模式(手動、定時、光控和定時/光控混合控制四種模式)的選擇和相關參數的配置(開關時間、開燈亮度值、關燈亮度值等),路燈控制終端時鐘芯片的校時,路燈實時狀態的查詢等功能;同時提供了接收信息代碼的顯示功能,便于系統的調試。
下面以定時控制為例,簡要介紹上位機軟件的操作方法:在路燈編號下拉框中選擇或填入正確的路燈控制器編號(以08為例),選中“定時”,如圖7,如果信息接收框中接收到信息,且BE位后的第1-4位依次為“08 83 01 01”(FE為前導碼,BE為起始碼,ED為結束碼,最后一個字節為和校驗碼),則表示通訊成功,此時路燈控制器即被設置為定時控制狀態;繼續在定時開關時刻編輯框中輸入相應的時間值,并選擇相應的星期值(0-6分別代表星期日-星期六,如果選擇9則表示每天都采用相同的時間配置)如圖8,點擊“設定”,如果信息接收框中接收到信息,且BE位后的第1-4位依次為“08 83 01 01”,則表示參數設置成功。
5 結束語
本文針對現有路燈控制系統存在的不足,設計了一種路燈遠程監控系統。基于AVR單片機開發了控制終端,該終端集遠程手動開關控制、定時開關控制和光感自動開關控制功能于一體,并采用定時-光感協調控制技術,彌補了單純的光感自動控制抗干擾能力差的不足。基于Visual C++ 6.0編程環境開發了上位機監控軟件。監控軟件中可以完成路燈控制模式(手動、定時、光控和定時/光控混合控制四種模式)的選擇和相關參數的配置(開關時間、開燈亮度值、關燈亮度值等),路燈控制終端時鐘芯片的校時,路燈實時狀態的查詢等功能;同時提供了接收信息代碼的顯示功能,便于系統的調試。
參考文獻(References):
[1] 崔佳民,秦會斌,羅友.無線路燈控制系統的研究[J].電子與封裝,2007.7(12):42-45
[2] 郭瓊,蔡亞輝,姚曉寧.基于Zigbee的路燈控制系統設計[J].照明工程學報,2012.23(2):86-90
[3] 黎洪生,劉蘇敏,胡冰等.基于無線通信網絡的智能路燈節能系統[J].計算機工程,2009.35(14):190-191,214
[4] 萬飛.基于FPGA的路燈控制系統[J].照明工程學報,2012.23(5):121-127
[5] 聶可富.基于RS-485總線的抄表系統設計[D].南京航空航天大學,2011.
[6] 張允霞.基于載波通訊的智能路燈控制系統研究[D].哈爾濱工業大學,2008.
[7] 馬潮等.ATmega8原理及應用手冊[M].清華大學出版社,2003.
[8] 張文泉,彭建怡,張志璐等.基于AVR單片機的檢測設備通訊系統設計[J].計算技術與自動化,2013.32(2):76-80
[9] www.atmel.com. Atmel's ATmega8 Datasheet.
[10] http://www.lt-dz.com/erji/s203za.htm.A外型固態繼電器.
[11] www.alldatasheet.com. DS1302 Datasheet.
[12] 張寧丹,金桂.基于STC89C52單片機DS1302時鐘芯片定時開關的設計與仿真[J].現代電子技術,2013.36(8):4-6
[13] 黃金明.Visual C++ 6.0 基礎與實例教程[M].中國電力出版社,2007.