Histreaming APP的智慧交通燈
??51CTO和華為官方合作共建的鴻蒙技術(shù)社區(qū)??
硬件環(huán)境搭建
硬件要求:Hi3861V100核心板、擴展板,OLED板,交通燈板;硬件搭建如下圖所示。
- Hi3861V100核心板參考:??HiSpark_WiFi_IoT智能開發(fā)套件_原理圖硬件資料\原理圖\HiSpark_WiFi-IoT_Hi3861_CH340G_VER.B.pd。??
- 擴展板參考:??HiSpark_WiFi_IoT智能開發(fā)套件_原理圖硬件資料\原理圖\HiSpark_WiFi-IoT_Hi3861_CH340G_VER.B.pdf。??
- OLED板參考:??HiSpark_WiFi_IoT智能開發(fā)套件_原理圖硬件資料\原理\HiSpark_WiFi_IoT_OLED_VER.A.pdf。??
- 交通燈板硬件原理圖參考:??HiSpark_WiFi_IoT智能開發(fā)套件_原理圖硬件資料\原理圖\HiSpark_WiFi_IoT_SSL_VER.A.pdf。??
軟件介紹
1.代碼目錄結(jié)構(gòu)及相應接口功能介紹。
vendor_hisilicon/hispark_pegasus/demo/histreaming_demo
├── app_demo_config.c #
├── app_demo_config.h #
├── app_demo_get_mac_addr.c #
├── app_demo_get_mac_addr.h #
├── app_demo_gl5537_1.c #
├── app_demo_histreaming.c #
├── app_demo_i2c_oled.c #
├── app_demo_i2c_oled.h #
├── app_demo_multi_sample.c #
├── app_demo_multi_sample.h #
├── app_demo_traffic_sample.c #
├── app_demo_traffic_sample.h #
├── BUILD.gn # BUILD.gn文件由三部分內(nèi)容(目標、源文件、頭文件路徑)構(gòu)成,開發(fā)者根據(jù)需要填寫,static_library中指定業(yè)務(wù)模塊的編譯結(jié)果,為靜態(tài)庫文件led_example,開發(fā)者根據(jù)實際情況完成填寫。
| sources中指定靜態(tài)庫.a所依賴的.c文件及其路徑,若路徑中包含"http://"則表示絕對路徑(此處為代碼根路徑),若不包含"http://"則表示相對路徑。include_dirs中指定source所需要依賴的.h文件路徑。
├── hal_iot_adc.c #
├── hal_iot_gpio_ex.c #
├── histreaming.h #
├── iot_adc.h #
├── iot_gpio_ex.h #
├── ssd1306_oled.h #
├── status_code.h #
├── task_start.c #
├── wifi_connecter.c #
├── wifi_connecter.h #
├── wifi_softap.c #
├── wifi_sta.c #
├── wifi_starter.c #
└── wifi_starter.h #
2.工程編譯。
將源碼./vendor_hisilicon/hispark_pegasus/demo目錄下的histreaming_demo整個文件夾及內(nèi)容復制到源碼./applications/sample/wifi-iot/app/下。
.
└── applications
└── sample
└── wifi-iot
└── app
└──histreaming_demo
└── 代碼
修改源碼./applications/sample/wifi-iot/app/BUILD.gn文件,在features字段中增加索引,使目標模塊參與編譯。features字段指定業(yè)務(wù)模塊的路徑和目標,features字段配置如下。
import("http://build/lite/config/component/lite_component.gni")
lite_component("app") {
features = [
"histreaming_demo:appDemoTraffic",
]
}
修改.device/soc/hisilicon/hi3861v100/sdk_liteos/build/config/usr_config.mk文件。在這個配置文件中打開I2C,PWM驅(qū)動宏。搜索字段CONFIG_I2C_SUPPORT ,并打開I2C,PWM。配置如下:
# CONFIG_I2C_SUPPORT is not set
CONFIG_I2C_SUPPORT=y
# CONFIG_PWM_SUPPORT is not set
CONFIG_PWM_SUPPORT=y
工程相關(guān)配置完成后,然后編譯。
3.燒錄.
- 編譯成功后,點擊DevEco Home->配置工程->hi3861->upload_port->選擇對應串口端口號->選擇upload_protocol->選擇burn-serial->點擊save保存,在保存成功后點擊upload進行燒錄,出現(xiàn)connecting, please reset device…字樣復位開發(fā)板等待燒錄完成。
- 燒錄成功后,再次點擊Hi3861核心板上的“RST”復位鍵,此時開發(fā)板的系統(tǒng)會運行起來。
4.手機端APP安裝及使用(??histreaming APP源碼??)。
(1) 手機端安裝HistreamingAPP,手機wifi連接Hi3861主板發(fā)射出來的熱點。
(2) 打開HistreamingAPP,點擊“局域網(wǎng)”,如果打開APP后沒有馬上出現(xiàn)“已綁定設(shè)備”,請往下滑不斷刷新,直到出現(xiàn)綁定設(shè)備即可。
(3) 點擊“局域網(wǎng)”進去后,可以看到“Colorful_Light”、“Traffic_Light”等界面,點擊app界面的“Traffic_Light”,進去之后可以看到“Control_Module”、“AutoModule”等,這時點擊“Control_Module”,進去之后,連續(xù)點擊button,即可看到控制設(shè)備側(cè)的燈在切換。其他模式,用戶可自行體驗。其中點擊“Return_Menu_Module”是返回主界面。
(4)實驗結(jié)果:手機可以控制Hi3861V100實現(xiàn)三種交通燈模式切換,分別為Control Mode: 進入Traffic Light demo,初始狀態(tài)就是Control Mode,是通過右邊按鍵S2來控制紅、黃、綠燈的亮滅狀態(tài)不斷切換。按鍵按下開啟蜂鳴器,按鍵再次按下關(guān)閉;Auto Mode: 當按下左鍵S1時,會從control mode跳到Auto mode,交通燈模式,模仿交通燈,紅燈常亮5秒,然后閃爍3秒,后黃燈閃爍3秒,后綠燈常亮5秒,再是綠燈閃爍3秒,如此循環(huán),蜂鳴器開啟后會響。最后一行的R,Y,G后面的數(shù)字代表倒數(shù)的時間,動態(tài)顯示,時間的單位是秒,R代表紅燈,Y代表黃燈,G代表綠燈,B代表的是蜂鳴器,數(shù)字“1”代表蜂鳴器打開狀態(tài),數(shù)字“0”代表蜂鳴器關(guān)閉狀態(tài)。Human Mode: 當再次按下左鍵S1時,會從Auto mode跳到Human Mode模式,就是在Auto mode的基礎(chǔ)上增加了人為控制,且紅燈常亮改為30秒。模仿交通燈,紅燈常亮30秒后閃爍3秒,黃燈閃爍3秒,然后綠燈常亮5秒,綠燈閃爍3秒,如此循環(huán)。如果按下右鍵S2,紅燈立即快閃3秒,黃燈快閃3秒,進入綠燈常亮5秒,再綠燈閃爍3秒,后進入正常循環(huán)。蜂鳴器開啟后會響。此時如果再按一下左鍵S1就會跳到Return Menu界面,選擇按下Continue繼續(xù)demo循環(huán)。
??51CTO和華為官方合作共建的鴻蒙技術(shù)社區(qū)??