2020征文-开发板鸿蒙开发板智能家居项目

想了解更多内容,请访问:

建网站原本是网站策划师、网络程序员、网页设计师等,应用各种网络程序开发技术和网页设计技术配合操作的协同工作。创新互联公司专业提供网站设计制作、网站制作,网页设计,网站制作(企业站、响应式网站开发、电商门户网站)等服务,从网站深度策划、搜索引擎友好度优化到用户体验的提升,我们力求做到极致!

和华为官方合作共建的鸿蒙技术社区

https://harmonyos./#zz

鸿蒙智能家居项目

一、系统介绍

本系统硬件采用Hispark WiFi开发板,主控芯片为Hi3861,操作系统为Harmony OS,软件上支持MQTT、OneNET接入协议,驱动开发包括按键驱动、OLED驱动、PWD驱动开发,其它功能模块有NV数据存储、WiFi配网功能。

整个系统框架如下:

整个系统主要分为3大部分:

(1)云平台:这里我使用的是OneNET云平台

(2)Harmony OS软件开发:在开发板上实现相关功能。

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

整个鸿蒙开发板的软件分为4层:

(1)应用:实现智能家居的应用逻辑处理部分。

(2)功能组件:包括MQTT、JSON、数据存储、WiFi配网功能等,为智能家居应用提供关键能力。

(3)内核:Harmony OS内核提供关键能力。

(4)驱动:包括PWM驱动、OLED驱动、WiFi驱动、按键驱动等,为硬件控制提供了能力。

二、功能描述

(1)家电控制功能

用户可以通过手机APP或者网页控制开发板的LED亮灭、同时可以控制LED灯的亮度。

网页界面如下:

同时还能监控家里的温度情况。

(2)配网功能

鸿蒙开发板支持一键配网功能,用户只需要按下user按键,即可进入配网模式。

(3)数据存储功能

支持数据存储功能,可以存储配网设置的账户密码等关键数据。

(4)MQTT、OneNET接入协议支持

支持MQTT协议、OneNET接入协议,可实现远程控制、远程监测数据。

(5)驱动能力

支持PWM驱动、I2C驱动等,可实现外围硬件的驱动能力。

三、代码描述

(1)代码流程

整个代码文件目录如下:

代码流程图如下:

(2)家电控制部分

对接收到得网络数据进行解析,这里我用得json数据格式。数据解析处理函数如下:

 
 
 
 
  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. //进行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亮度控制

这里LED的亮度我采用PWM控制的方式,PWM初始化代码如下:

控制亮度的代码部分:

(5)数据存储

这里我使用NV来存储配网时的账户和密码,代码如下:

(6)按键处理

这里我使用的是中断触发方式来相应按键。

中断注册:

当用户按下按键时,立即启动配网功能,中断响应函数:

©著作权归作者和HarmonyOS技术社区共同所有,如需转载,请注明出处,否则将追究法律责任

想了解更多内容,请访问:

和华为官方合作共建的鸿蒙技术社区

https://harmonyos./#zz

本文题目:2020征文-开发板鸿蒙开发板智能家居项目
本文链接:http://www.csdahua.cn/qtweb/news10/240160.html

网站建设、网络推广公司-快上网,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 快上网