都飛翔 楊靜 史健芳
摘 要: 針對目前智能交通發(fā)展迅速,功能擴展要求較高,一般框架搭建的智能交通控制平臺功能較為單一,提出基于Flask框架的智能交通控制平臺。Flask是隨著Python興起的一種小型可擴展框架,功能可根據(jù)相應(yīng)的擴展包進行擴展,從而構(gòu)建B/S模式智能交通控制系統(tǒng)。該控制系統(tǒng)可以通過IPv4或IPv4映射后的IPv6地址進行Web訪問登錄,并進行方案選擇,數(shù)據(jù)查詢與控制進行多線程獨立分開,互不影響,從而更加便捷地實現(xiàn)雙協(xié)議遠(yuǎn)程控制。
關(guān)鍵詞: Flask; 智能交通; 樹莓派; B/S; 遠(yuǎn)程控制; 多線程
中圖分類號: TN876?34; TP39 文獻標(biāo)識碼: A 文章編號: 1004?373X(2018)13?0088?04
Abstract: With the rapid development of intelligent transportation, the higher requirement is proposed for functional expansion, but the function of the generally?established intelligent traffic control platform is relatively single. Aiming at this problem, an intelligent traffic control platform based on Flask framework is proposed. Flask is a small scalable framework, which is developed with Python. The function of the framework can be extended according to the corresponding extension package, so as to construct the B/S mode intelligent traffic control platform. The Web access and login, and scheme selection are performed for the control system through IPv4 address or IPv6 address after IPv4 mapping. The data query and control are independently separated for multithreading, and mutually affected, which can realize the dual?protocol remote control conveniently.
Keywords: Flask; intelligent traffic; Raspberry Pi; B/S; remote control; multithreading
當(dāng)前我國城市和城市交通的發(fā)展處于挑戰(zhàn)和機遇并存的關(guān)鍵歷史階段[1]。一方面,隨著城鎮(zhèn)化、機動化的持續(xù)快速發(fā)展,城市交通擁堵加劇、事故頻發(fā),面臨著嚴(yán)峻挑戰(zhàn);另一方面,我國城市處在老城改造、新城建設(shè)的城市大發(fā)展時期,是實現(xiàn)智能交通的最佳時機。智能交通的主要特點是將先進的信息技術(shù)、數(shù)據(jù)通信傳輸技術(shù)、電子控制技術(shù)、傳感器技術(shù)以及計算機處理技術(shù)等有效的綜合用于整個交通系統(tǒng),從而建立起一種在大范圍內(nèi)、全方位發(fā)揮作用的實時、準(zhǔn)確、高效的智能交通綜合管理系統(tǒng)。其目的是使人、車、路密切配合、和諧統(tǒng)一,極大地提高交通運輸效率,保障交通安全,緩解交通問題,改善環(huán)境質(zhì)量和提高能源利用率。
樹莓派Raspberry Pi支持多語言編程[2],功能強大,便于攜帶且性價比高。樹莓派的靈巧和其強大的擴展性,使它可以應(yīng)用在多個領(lǐng)域。基于樹莓派的智能交通控制平臺,就是樹莓派在智能交通上的新應(yīng)用。同時,樹莓派官方強調(diào)最適合的編程語言是Python,所以這里將基于Python的Flask框架與樹莓派相結(jié)合[3],F(xiàn)lask是一種微小框架[4],它具有極強的可擴展性,從而使開發(fā)變得簡單易行且無冗余功能。本文所提及的智能交通信號燈控制系統(tǒng)使用了基于Raspberry Pi硬件平臺,通過Web服務(wù)展現(xiàn)給用戶,該平臺采用Web服務(wù)器[5?6]、控制系統(tǒng)、數(shù)據(jù)庫于一體的控制體系,通過在服務(wù)端構(gòu)建Flask環(huán)境,形成B/S工作模式,客戶可以通過瀏覽器就可以遠(yuǎn)程控制系統(tǒng)。
Flask是基于Python的框架,編程語言使用Python,需要搭建一個Python集成開發(fā)環(huán)境,本文直接使用樹莓派官方自帶的Python 3.5進行開發(fā)。安裝Flask最便捷的方式是使用虛擬環(huán)境。虛擬環(huán)境是Python解釋器的一個私有副本,這個環(huán)境安裝的擴展包不會與全局的解釋器相互影響。安裝及配置如下[7?8]:
$ python?m venv myvenv
$ source venv/bin/activate
$(venv)$ pip install flask
第一行為創(chuàng)建虛擬環(huán)境,第二行為激活虛擬環(huán)境,第三行為在虛擬環(huán)境中安裝Flask。
同時需要將主要的擴展包進行安裝[9]:
$(venv)$ pip install flask?bootstrap
$(venv)$ pip install flask?sqlalchemy
$(venv)$ pip install flask?mail
這三行代碼主要將網(wǎng)頁框架、數(shù)據(jù)庫管理、郵件擴展包進行安裝。