智能交通燈上報(bào)功能
??想了解更多內(nèi)容,請(qǐng)?jiān)L問(wèn):??
??51CTO和華為官方合作共建的鴻蒙技術(shù)社區(qū)??
硬件環(huán)境搭建
硬件要求:Hi3861V100核心板、擴(kuò)展板,OLED板,交通燈板;硬件搭建及組網(wǎng)圖如下圖所示。
Hi3861V100核心板參考:??HiSpark_WiFi_IoT智能開(kāi)發(fā)套件_原理圖硬件資料\原理圖\HiSpark_WiFi-IoT_Hi3861_CH340G_VER.B.pdf??。
擴(kuò)展板參考:??HiSpark_WiFi_IoT智能開(kāi)發(fā)套件_原理圖硬件資料\原理圖\HiSpark_WiFi-IoT_Hi3861_CH340G_VER.B.pdf??。
OLED板參考:??HiSpark_WiFi_IoT智能開(kāi)發(fā)套件_原理圖硬件資料\原理圖\HiSpark_WiFi_IoT_OLED_VER.A.pdf??。
交通燈板硬件原理圖參考:??HiSpark_WiFi_IoT智能開(kāi)發(fā)套件_原理圖硬件資料\原理圖\HiSpark_WiFi_IoT_SSL_VER.A.pdf??。
軟件介紹
1、代碼目錄結(jié)構(gòu)及相應(yīng)接口功能介紹
vendor_hisilicon/hispark_pegasus/demo/oc_demo
├── app_demo_config.c #
├── app_demo_config.h #
├── app_demo_gl5537_1.c #
├── app_demo_i2c_oled.c #
├── app_demo_i2c_oled.h #
├── BUILD.gn # BUILD.gn文件由三部分內(nèi)容(目標(biāo)、源文件、頭文件路徑)構(gòu)成,開(kāi)發(fā)者根據(jù)需要填寫(xiě),static_library中指定業(yè)務(wù)模塊的編譯結(jié)果,為靜態(tài)庫(kù)文件led_example,開(kāi)發(fā)者根據(jù)實(shí)際情況完成填寫(xiě)。
| sources中指定靜態(tài)庫(kù).a所依賴的.c文件及其路徑,若路徑中包含"http://"則表示絕對(duì)路徑(此處為代碼根路徑),若不包含"http://"則表示相對(duì)路徑。include_dirs中指定source所需要依賴的.h文件路徑。
├── cjson_init.c #
├── app_demo_multi_sample.c #
├── app_demo_multi_sample.h #
├── app_demo_traffic_sample.c #
├── app_demo_traffic_sample.h #
├── hal_iot_adc.c #
├── hal_iot_gpio_ex.c #
├── iot_config.h #
├── iot_adc.h #
├── iot_gpio_ex.h #
├── ssd1306_oled.h #
├── iot_hmac.c #
├── iot_hmac.h #
├── iot_log.c #
├── iot_log.h #
├── iot_main.c #
├── iot_main.h #
├── iot_profile.c #
├── iot_profile.h #
├── task_start.c #
├── iot_sta.c #
├── wifi_connecter.c #
└── wifi_connecter.h #
2、華為云配置
(1) 注冊(cè)華為云賬號(hào),打開(kāi)華為云網(wǎng)址,點(diǎn)擊注冊(cè)后登陸。網(wǎng)址如下:https://www.huaweicloud.com/product/iothub.html。
(2) 登陸后,在搜索框中輸入“IOTDA”,在彈出選項(xiàng)中選擇“設(shè)備接入IOTDA”點(diǎn)擊進(jìn)去,再點(diǎn)擊“立即使用或者免費(fèi)試用”。
(3)創(chuàng)建產(chǎn)品及相關(guān)屬性,點(diǎn)擊左邊任務(wù)欄的“產(chǎn)品”同時(shí)選擇控制臺(tái)地址為“北京四”,然后點(diǎn)擊最右上角的“創(chuàng)建產(chǎn)品”(產(chǎn)品名稱可自定義)。注意:創(chuàng)建產(chǎn)品時(shí)如果所屬空間為NULL,請(qǐng)先實(shí)名注冊(cè)。
(4) 創(chuàng)建成功后,點(diǎn)擊查看詳情,點(diǎn)擊“自定義模型”創(chuàng)建用戶自己的模型:
(5) 用戶根據(jù)自己需要自己定義,如為模型添加服務(wù):“TrafficLight”,服務(wù)類(lèi)型:“TrafficLight”,服務(wù)描述:“交通燈”,點(diǎn)擊確定;新增屬性為屬性名稱:“ControlModule”,數(shù)據(jù)類(lèi)型:“String”,訪問(wèn)權(quán)限:“可讀,可寫(xiě)”,長(zhǎng)度:“255”,點(diǎn)擊確定;新增命令為命令名稱:“ControlModule”,新增參數(shù):“TrafficLight”,數(shù)據(jù)類(lèi)型:“String”,長(zhǎng)度:“255”。
(6) 點(diǎn)擊左邊任務(wù)欄的“設(shè)備”,然后注冊(cè)設(shè)備圖,注冊(cè)創(chuàng)建的產(chǎn)品,用戶根據(jù)自己需要隨意填寫(xiě),填寫(xiě)完成后,可以看到設(shè)備狀態(tài)顯示為未注冊(cè)。
(7) 華為云端的配置基本已經(jīng)完成了,進(jìn)入到設(shè)備查看信息。
3、板端配置及編譯
將源碼./vendor_hisilicon/hispark_pegasus/demo目錄下的oc_demo整個(gè)文件夾及內(nèi)容復(fù)制到源碼./applications/sample/wifi-iot/app/下。
.
└── applications
└── sample
└── wifi-iot
└── app
└──oc_demo
└── 代碼
修改./applications/sample/wifi-iot/app/oc_demo/iot_config.h中CONFIG_AP_SSID,CONFIG_AP_PWD為WiFi名稱和WiFi以及CONFIG_DEVICE_ID和CONFIG_DEVICE_PWD。
#define CONFIG_AP_SSID "xxx" // WIFI SSID
#define CONFIG_AP_PWD "xxxxxx" // WIFI PWD
#define CONFIG_DEVICE_ID "xxxxx" //華為云上注冊(cè)的設(shè)備ID
#define CONFIG_DEVICE_PWD "xxxxx" //華為云上注冊(cè)設(shè)備時(shí)密鑰
需要將2.6節(jié)創(chuàng)建模型屬性及服務(wù)與./applications/sample/wifi-iot/app/oc_demo/app_demo_iot.c中下列字段參數(shù)保持一致。
#define TRAFFIC_LIGHT_CMD_CONTROL_MODE "ControlModule" //屬性
#define TRAFFIC_LIGHT_YELLOW_ON_PAYLOAD "YELLOW_LED_ON" //添加命令參數(shù)
修改源碼./applications/sample/wifi-iot/app下的BUILD.gn文件,在features字段中增加索引,使目標(biāo)模塊參與編譯。features字段指定業(yè)務(wù)模塊的路徑和目標(biāo),features字段配置如下。
import("http://build/lite/config/component/lite_component.gni")
lite_component("app") {
features = [
"oc_demo:appDemoIot",
]
}
修改.device/soc/hisilicon/hi3861v100/sdk_liteos/build/config/usr_config.mk文件。在這個(gè)配置文件中打開(kāi)I2C,PWM驅(qū)動(dòng)宏。搜索字段CONFIG_I2C_SUPPORT ,并打開(kāi)I2C,PWM。配置如下:
# CONFIG_I2C_SUPPORT is not set
CONFIG_I2C_SUPPORT=y
# CONFIG_PWM_SUPPORT is not set
CONFIG_PWM_SUPPORT=y
工程相關(guān)配置完成后,然后編譯。
4、燒錄
- 編譯成功后,點(diǎn)擊DevEco Home->配置工程->hi3861->upload_port->選擇對(duì)應(yīng)串口端口號(hào)->選擇upload_protocol->選擇burn-serial->點(diǎn)擊save保存,在保存成功后點(diǎn)擊upload進(jìn)行燒錄,出現(xiàn)connecting, please reset device…字樣復(fù)位開(kāi)發(fā)板等待燒錄完成。
- 燒錄成功后,再次點(diǎn)擊Hi3861核心板上的“RST”復(fù)位鍵,等待開(kāi)發(fā)板的連接上wifi,連接成功后,華為云設(shè)備狀態(tài)變成在線,設(shè)備開(kāi)始向華為云上上報(bào)最新數(shù)據(jù)欄,同時(shí)串口會(huì)有如下打印。如下圖所示。
設(shè)備->命令欄->同步命令下發(fā)->選擇創(chuàng)建的命令屬性->填入?yún)?shù),這里下發(fā)“YELLOW_LED_ON”為例,下發(fā)成功后,板端會(huì)從紅燈變?yōu)榫G燈,設(shè)備同時(shí)串口會(huì)有如下打印。如下圖所示。
??想了解更多內(nèi)容,請(qǐng)?jiān)L問(wèn):??
??51CTO和華為官方合作共建的鴻蒙技術(shù)社區(qū)??