汪冰,曾大興,李魯寧,王愷軒
(東南大學成賢學院,江蘇南京,210000)
隨著時代和科技的發展,智能產品逐漸深入我們的生活,其使設備自動化,為我們打造了高效便利的生活方式。智能產品便是利用先進的計算機技術和網絡通信技術將各種與日常生活相關的系統產品有機結合在一起,統籌管理,使我們的生活更加高效便捷,優化我們的生活方式。而智能產品在國外發達國家更為普遍,因為其經濟能力和對計算機研究能力更強勁,研究智能控制也更為久遠。國內智能產品的使用雖然較晚,不過我們國家的發展勢頭不可小覷,各種智能產品的生產廠家也逐年增加,人工智能也逐漸成為學生選擇專業的熱門選項。
智能車是目前世界車輛工程領域研究的熱點和汽車工業發展的新方向,且已經在許多工業部門獲得廣泛應用。因此智能小車也是無數大學生創新的熱門選項。本項目利用WiFi無線技術通過樹莓派控制小車以及舵機的移動,攝像頭采集圖像信息后傳輸至客戶端,傳感器采集數據信息后傳輸到云平臺的數據庫,編寫網頁連接云平臺的數據庫獲取數據,因此我們可以在網頁觀看到小車進行路面監測的結果。
舵機模塊,攝像模塊,傳感器模塊與主控模塊相連,主控模塊以樹莓派4B為核心,發布的指令通過樹莓派傳輸至舵機和小車,操控二者上下(前后)左右移動。小車使用7.4V電池進行供電。傳感器模塊分為三部分,分別為MQ-5液化氣傳感、MQ-9可燃氣傳感器以及使用DHT11溫濕度傳感器,用來收集環境中的液化氣可燃氣和溫濕度的數據。攝像頭安裝在舵機上,采集周圍圖像信息后傳輸至網頁端。數據通過WiFi模塊上傳到阿里云平臺數據庫,再編寫網頁連接云平臺數據庫獲取數據,使得小車能夠實時監控路面圖像且檢測數據,達到監控探測道路的目的。
因此主要內容有:
(1)編寫小車和舵機模塊的控制程序,使得小車完成網頁控制端通過樹莓派傳輸過去的指令,實現移動。
(2)編寫攝像頭獲取圖像流的程序,接收處理信息。
(3)編寫傳感器探測溫濕度,可燃氣及液化氣的程序,并將探測結果數據傳輸到云平臺數據庫顯示。
(4)編寫網頁,顯示攝像頭的圖像信息和傳感器的數據信息,以及操控小車和舵機的按鍵。
(5)在組裝完成后進行包裝,使產品更完整,同時具有觀賞性和實用性。

圖1 各系統模塊圖
小車采用鋁合金底盤,配備可調減震器,輪胎為麥克納姆輪,便于前后左右全方位移動,電機為JGA25-370霍爾測速電機,利用一組7.4V的電池為電機供電。且其主控模塊以樹莓派4B為核心,性能更優化,散熱性良好,通過樹莓派進行處理傳輸的指令以及信息。小車利用手機或者電腦的網頁作為控制端,小車和控制端所處的手機或電腦處于同一個WiFi下,以此實現同網段下不同IP主機的連接。WiFi模塊接收控制端發送的信號傳輸給樹莓派后分析轉化為控制指令,發送給小車和舵機,以實現小車的前進,后退,左轉,右轉,停止以及舵機的上下左右移動。
攝像頭采用USB2.0直插接口,可使用USB直接連接使用,簡單方便。攝像頭30萬像素,480P分辨率,可手動調節焦距。舵機為二自由度攝像頭云臺,可旋轉至左右180°,上下180°。將攝像頭安裝在舵機上,隨舵機移動實時收集圖像信息。

圖2 樹莓派接口圖
本模塊使用了三個傳感器,分別為MQ-5液化氣傳感、MQ-9可燃氣傳感器以及DHT11溫濕度傳感器。MQ系列氣體傳感器使用的氣敏材料是在清潔空氣中電導率較低的二氧化錫。當傳感器所處環境中存在可燃氣體時,傳感器的電導率隨空氣中可燃氣體濃度的增加而增大。MQ系列氣體傳感器對甲烷的靈敏度高,對丙烷,丁烷也有較高的靈敏度,可檢測多種氣體且成本較低。因此MQ系列氣體傳感器是檢測液化氣和可燃氣的一種選擇。DHT11數字溫濕度傳感器是一款含有已校準數字信號輸出的溫濕度復合傳感器,可一體檢測周圍溫度和濕度。溫度測量范圍為0℃~50℃,誤差不超過±2℃,濕度測量范圍為20%~90%,誤差不超過±5%。其成本低,可靠性高,穩定性強,抗干擾能力強,信號傳輸距離長。

圖3 電機圖

圖4 MQ系列傳感器圖

圖5 DHT11傳感器圖
樹莓派接入網絡,PC機遠程登錄樹莓派進行后續開發操作。小車樹莓派主板與網頁的連接均基于局域網IP鏈接,以此控制主板的GPIO口來實現控制電機和舵機的目的。利用Python語言,使用了GPIO庫,向樹莓派引腳發送高低電平可控制電機旋轉。利用角度對應的占空比定義舵機位置。網頁上每一個按鈕都已自主賦予唯一標識符,按下按鈕將對應標識符傳入主板,通過此標識符運行對應的函數代碼,即可控制電機及舵機的活動。
攝像頭在局域網內進行視頻流實時傳輸。確認攝像頭成功連接后,利用MJPG_Streamer,實現網絡監控。注意修改分辨率及幀率。Mjpg_streamer.c 主程序主要運行如下幾個部分:
input_init() 輸入相關的初始化
output_init() 輸出相關的初始化
input_run() 運行輸入函數,采集輸入數據
output_run() 輸出初函數,把數據收集起來通過網絡socket發送出去
接著成功啟動MJPG_Streamer即可,我們可以直接輸入網址http//樹莓派IP+8081即可觀看到攝像頭拍攝的圖像信息,完成實時視頻接收。

圖6 流程圖
三個傳感器分別對應插到樹莓派針腳,編寫Python程序,根據針腳編號,樹莓派讀取傳感器數據,保存本地文件。
將所測數據通過在阿里云物聯網平臺創建產品功能來顯示,創建數據庫和存放上傳數據的表后,編寫SQL轉發數據存儲在云數據庫后調試即可。
當數據傳到阿里云的數據庫之后,新建JavaScript文件,使用require引入mysql模塊,然后連接MySQL數據庫,編寫一個查詢語句SQL,以字符串形式賦值給變量sql,調用查詢方法返回即可。
用戶通過網頁控制端控制舵機和小車移動,按下小車對應行進按鍵后小車可進行前進,后退,左轉,右轉的操作。按下舵機對應移動按鍵后,舵機可以進行上下左右每次15°的移動,理論移動范圍在上下180°,左右180°,但因實際角度和給定數值非線性關系,角度范圍較小。
攝像頭固定在舵機上,隨舵機移動變換拍攝角度。攝像頭可以實時拍攝周邊情況,并進行圖像接收傳輸。直接打開網址http//樹莓派IP+8081即可觀看到攝像頭拍攝的圖像信息。

圖7 網頁控制圖
傳感器模塊中,液化氣、可燃氣、溫濕度這三個傳感器可檢測小車附近環境中液化氣、可燃氣和溫濕度的數值。但是由于檢測環境液化氣和可燃氣濃度極低,數據基本為零,所以我們利用打火機,放置在傳感器附近,便可以檢測出液化氣和可燃氣的濃度。樹莓派抓取傳感器的數據存儲,并且傳輸到阿里云平臺的數據庫,通過編寫的網頁連接數據庫,可以在網頁顯示檢測的數據信息。由此在網頁和云平臺都可以看到所測數據。

圖8 數據測試圖
本文主要介紹了基于樹莓派的交互式WiFi控制小車。用戶在手機或者電腦上通過網頁按下指令鍵,用戶發送的信號被樹莓派接收并轉化為指令傳送給小車和舵機,從而進行對應的前后(上下)左右移動。攝像頭隨舵機轉變角度,實時傳輸圖像信息,我們可輸入網址直接觀看到。同時,傳感器一直探測液化氣,可燃氣和溫濕度的數據信息,被樹莓派抓取并傳送至阿里云平臺的數據庫,網頁連接數據庫顯示探測的數據信息。用戶操控小車行進方向,在網頁端觀看到實時圖像視頻,可根據實況改變角度觀察全方位道路情況,實現小車道路監控。還可以觀察傳輸顯示的數據,實現小車道路探測。