日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
2020征文-開發(fā)板鴻蒙開發(fā)板智能家居項(xiàng)目

想了解更多內(nèi)容,請?jiān)L問:

建網(wǎng)站原本是網(wǎng)站策劃師、網(wǎng)絡(luò)程序員、網(wǎng)頁設(shè)計(jì)師等,應(yīng)用各種網(wǎng)絡(luò)程序開發(fā)技術(shù)和網(wǎng)頁設(shè)計(jì)技術(shù)配合操作的協(xié)同工作。創(chuàng)新互聯(lián)公司專業(yè)提供網(wǎng)站設(shè)計(jì)制作、網(wǎng)站制作,網(wǎng)頁設(shè)計(jì),網(wǎng)站制作(企業(yè)站、響應(yīng)式網(wǎng)站開發(fā)、電商門戶網(wǎng)站)等服務(wù),從網(wǎng)站深度策劃、搜索引擎友好度優(yōu)化到用戶體驗(yàn)的提升,我們力求做到極致!

和華為官方合作共建的鴻蒙技術(shù)社區(qū)

https://harmonyos./#zz

鴻蒙智能家居項(xiàng)目

一、系統(tǒng)介紹

本系統(tǒng)硬件采用Hispark WiFi開發(fā)板,主控芯片為Hi3861,操作系統(tǒng)為Harmony OS,軟件上支持MQTT、OneNET接入?yún)f(xié)議,驅(qū)動(dòng)開發(fā)包括按鍵驅(qū)動(dòng)、OLED驅(qū)動(dòng)、PWD驅(qū)動(dòng)開發(fā),其它功能模塊有NV數(shù)據(jù)存儲、WiFi配網(wǎng)功能。

整個(gè)系統(tǒng)框架如下:

整個(gè)系統(tǒng)主要分為3大部分:

(1)云平臺:這里我使用的是OneNET云平臺

(2)Harmony OS軟件開發(fā):在開發(fā)板上實(shí)現(xiàn)相關(guān)功能。

(3)硬件:使用到的硬件有:LED燈、OLED屏幕、按鍵。

整個(gè)鴻蒙開發(fā)板的軟件分為4層:

(1)應(yīng)用:實(shí)現(xiàn)智能家居的應(yīng)用邏輯處理部分。

(2)功能組件:包括MQTT、JSON、數(shù)據(jù)存儲、WiFi配網(wǎng)功能等,為智能家居應(yīng)用提供關(guān)鍵能力。

(3)內(nèi)核:Harmony OS內(nèi)核提供關(guān)鍵能力。

(4)驅(qū)動(dòng):包括PWM驅(qū)動(dòng)、OLED驅(qū)動(dòng)、WiFi驅(qū)動(dòng)、按鍵驅(qū)動(dòng)等,為硬件控制提供了能力。

二、功能描述

(1)家電控制功能

用戶可以通過手機(jī)APP或者網(wǎng)頁控制開發(fā)板的LED亮滅、同時(shí)可以控制LED燈的亮度。

網(wǎng)頁界面如下:

同時(shí)還能監(jiān)控家里的溫度情況。

(2)配網(wǎng)功能

鴻蒙開發(fā)板支持一鍵配網(wǎng)功能,用戶只需要按下user按鍵,即可進(jìn)入配網(wǎng)模式。

(3)數(shù)據(jù)存儲功能

支持?jǐn)?shù)據(jù)存儲功能,可以存儲配網(wǎng)設(shè)置的賬戶密碼等關(guān)鍵數(shù)據(jù)。

(4)MQTT、OneNET接入?yún)f(xié)議支持

支持MQTT協(xié)議、OneNET接入?yún)f(xié)議,可實(shí)現(xiàn)遠(yuǎn)程控制、遠(yuǎn)程監(jiān)測數(shù)據(jù)。

(5)驅(qū)動(dòng)能力

支持PWM驅(qū)動(dòng)、I2C驅(qū)動(dòng)等,可實(shí)現(xiàn)外圍硬件的驅(qū)動(dòng)能力。

三、代碼描述

(1)代碼流程

整個(gè)代碼文件目錄如下:

代碼流程圖如下:

(2)家電控制部分

對接收到得網(wǎng)絡(luò)數(shù)據(jù)進(jìn)行解析,這里我用得json數(shù)據(jù)格式。數(shù)據(jù)解析處理函數(shù)如下:

 
 
 
 
  1. void onenet_cmd_rsp_cb(uint8_t *recv_data, size_t recv_size, uint8_t **resp_data, size_t *resp_size)
  2. {
  3. cJSON *recvjson; 
  4. printf("recv data is %.*s\n", recv_size, recv_data); 
  5. //進(jìn)行json解析 
  6. recvjson = cJSON_Parse((const char *)recv_data);
  7. if(recvjson != NULL) 
  8. if(cJSON_GetObjectItem(recvjson, "ledSwitch") != NULL)
  9. if(cJSON_GetObjectItem(recvjson, "ledSwitch")->valueint == 1 ) 
  10. //GpioSetOutputVal(WIFI_IOT_IO_NAME_GPIO_9, 0); 
  11. PwmStart(WIFI_IOT_PWM_PORT_PWM0, led_pwm, 65530); 
  12. led_status = 1;
  13. }else if(cJSON_GetObjectItem(recvjson, "ledSwitch")->valueint == 0 )
  14. {
  15. //GpioSetOutputVal(WIFI_IOT_IO_NAME_GPIO_9, 1); 
  16. PwmStart(WIFI_IOT_PWM_PORT_PWM0, 65520, 65530); 
  17. led_status = 0;
  18. }
  19. }
  20. if(cJSON_GetObjectItem(recvjson, "ledLD") != NULL)
  21. {
  22. //獲取亮度
  23. led_ld = cJSON_GetObjectItem(recvjson, "ledLD")->valueint; 
  24. led_pwm = 65530 - ((led_ld * 65520) / 100); 
  25. if(led_status == 1)
  26. {
  27. PwmStart(WIFI_IOT_PWM_PORT_PWM0, led_pwm, 65530);
  28. }
  29. //
  30. printf("led_ld is %d, led_pwm is %d \r\n", led_ld, led_pwm);
  31. }
  32. cJSON_Delete(recvjson);
  33. }
  34. *resp_data = NULL;
  35. *resp_size = 0;
  36. }

 (3)OneNET初始化部分

(4)LED亮度控制

這里L(fēng)ED的亮度我采用PWM控制的方式,PWM初始化代碼如下:

控制亮度的代碼部分:

(5)數(shù)據(jù)存儲

這里我使用NV來存儲配網(wǎng)時(shí)的賬戶和密碼,代碼如下:

(6)按鍵處理

這里我使用的是中斷觸發(fā)方式來相應(yīng)按鍵。

中斷注冊:

當(dāng)用戶按下按鍵時(shí),立即啟動(dòng)配網(wǎng)功能,中斷響應(yīng)函數(shù):

?著作權(quán)歸作者和HarmonyOS技術(shù)社區(qū)共同所有,如需轉(zhuǎn)載,請注明出處,否則將追究法律責(zé)任

想了解更多內(nèi)容,請?jiān)L問:

和華為官方合作共建的鴻蒙技術(shù)社區(qū)

https://harmonyos./#zz


名稱欄目:2020征文-開發(fā)板鴻蒙開發(fā)板智能家居項(xiàng)目
URL標(biāo)題:http://www.5511xx.com/article/dpjcoss.html