成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

【OpenHarmony Canary】手機操控的智能燈

系統
很多物聯網設備沒有人機界面,這些設備可以通過手機,手表,平板,電腦等來進行顯示和操控,能夠提升操作的便捷性和設備的智能化水平。手頭有鴻蒙開發版,我的榮耀手機也剛升級了鴻蒙系統,剛好可以做一個手機控制的智能燈實驗。

[[423896]]

想了解更多內容,請訪問:

51CTO和華為官方合作共建的鴻蒙技術社區

https://harmonyos.51cto.com

很多物聯網設備沒有人機界面,這些設備可以通過手機,手表,平板,電腦等來進行顯示和操控,能夠提升操作的便捷性和設備的智能化水平。手頭有鴻蒙開發版,我的榮耀手機也剛升級了鴻蒙系統,剛好可以做一個手機控制的智能燈實驗。

一、環境準備

Windows10

設備開發: DevEco Device Tool 2.2 Beta2

應用開發: DevEco Studio 2.2 Beta1

源碼:OpenHarmony 2.0 Canary 下載

Windows開發環境準備官網

OpenHarmony 2.0 Canary源碼開發Hi3861,首先在device/hisilicon/hispark_pegasus/sdk_liteos/build/config/usr_config.mk中打開I2C和PWM開關,在base\iot_hardware\peripheral\interfaces\kits增加和完善Adc,I2C,Gpio的功能和接口。

二、材料準備

1.小熊派 BEARPI-HM Nano Hi3861 主板

2.小熊派 E53_SC1擴展板

3.裝配好如圖

三、簡介

E53_SC1擴展板的BH1750傳感器采集光照強度,通過I2C傳給Hi3861,Hi3861作為TCP服務器,將光強和燈狀態信息定時打包發給手機TCP客戶端,手機接收后在屏幕顯示,手機端開燈\關燈操作命令,通過TCP發送給服務端HI3861,解碼后控制Gpio 7點亮或關閉LED燈。

四、設備端Hi3861代碼

1.IO口初始化

  1. static void E53_SC1_INT_IO_Init(void) 
  2. {   
  3.     IoTGpioInit(7); 
  4.     IoTGpioSetFunc(7,IOT_GPIO_FUNC_GPIO_7_GPIO); 
  5.     IoTGpioSetDir(7, IOT_GPIO_DIR_OUT);//設置GPIO_7為輸出模式 
  6.  
  7.     IoTGpioInit(0); 
  8.     IoTGpioSetFunc(0, IOT_GPIO_FUNC_GPIO_0_I2C1_SDA);   // GPIO_0復用為I2C1_SDA 
  9.     IoTGpioInit(1); 
  10.     IoTGpioSetFunc(1, IOT_GPIO_FUNC_GPIO_1_I2C1_SCL);   // GPIO_1復用為I2C1_SCL 
  11.     IoTI2cInit(IOT_I2C_IDX_1, 400000); /* baudrate: 400kbps */ 
  12.  
  13.     IoTGpioInit(11); 
  14.     IoTGpioSetFunc(11,IOT_GPIO_FUNC_GPIO_11_GPIO); 
  15.     IoTGpioSetDir(11, IOT_GPIO_DIR_IN);              //設置GPIO_11為輸入模式,按鍵F1本地開燈 
  16.     IoTGpioSetPull(11, IOT_GPIO_PULL_UP); 
  17.     IoTGpioRegisterIsrFunc(11, IOT_INT_TYPE_EDGE, IOT_GPIO_EDGE_FALL_LEVEL_LOW, F1_Pressed, NULL); 
  18.  
  19.     IoTGpioInit(12); 
  20.     IoTGpioSetFunc(12,IOT_GPIO_FUNC_GPIO_12_GPIO); 
  21.     IoTGpioSetDir(12, IOT_GPIO_DIR_IN);             //設置GPIO_12為輸入模式,按鍵F2本地關燈 
  22.     IoTGpioSetPull(12, IOT_GPIO_PULL_UP); 
  23.     IoTGpioRegisterIsrFunc(12, IOT_INT_TYPE_EDGE, IOT_GPIO_EDGE_FALL_LEVEL_LOW, F2_Pressed, NULL); 

2.BH1750驅動采用小熊派官方驅動

3.數據打包上報

  1. static void deal_report_msg(report_t *report) 
  2.     char *msg; 
  3.     uint8_t ret; 
  4.     profile_service_t    service; 
  5.     profile_kv_t         lux; 
  6.     profile_kv_t         light; 
  7.     //配置要發送的數據 
  8.     service.event_time = NULL
  9.     service.service_id = "Smart_Light"
  10.     service.service_property = &lux; 
  11.     service.nxt = NULL
  12.     lux.key = "Lux"
  13.     lux.value = &report->lux; 
  14.     lux.type = PROFILE_VALUE_INT; 
  15.     lux.nxt =  &light; 
  16.     light.key = "Light"
  17.     light.value = light_status ? "ON" : "OFF"
  18.     light.type = PROFILE_VALUE_STRING; 
  19.     light.nxt = NULL
  20.     msg = profile_package_propertyreport(&service); 
  21.     if (send(new_fd, msg, strlen(msg), 0) < 0) 
  22.     { 
  23.         printf("send error\r\n"); 
  24.         close(new_fd); 
  25.     } 
  26.     return

4.接收命令處理

  1. int deal_command_task(void) 
  2.     ssize_t ret; 
  3.     struct sockaddr_in client_sock; 
  4.     int sin_size; 
  5.     while (1) 
  6.     { 
  7.         printf("start accept\n"); 
  8.         sin_size = sizeof(struct sockaddr_in); 
  9.         if ((new_fd = accept(sock_fd, (struct sockaddr *)&client_sock, (socklen_t *)&sin_size)) == -1) 
  10.         { 
  11.             perror("accept"); 
  12.         } 
  13.         printf("accept succeed\n"); 
  14.         is_accepted = 1; 
  15.         while (1) 
  16.         { 
  17.             bzero(recvbuf, sizeof(recvbuf)); 
  18.             if (recv(new_fd, recvbuf, sizeof(recvbuf), 0) < 0) 
  19.             { 
  20.                 printf("recv error\r\n"); 
  21.                 close(new_fd); 
  22.                 is_accepted = 0; 
  23.                 break; 
  24.             } 
  25.             else 
  26.             {   
  27.                 if (NULL != strstr(recvbuf, "Light")) 
  28.                 { 
  29.                     //開啟燈 
  30.                     if (NULL != strstr(recvbuf, "ON")) 
  31.                     { 
  32.                         Light_StatusSet(ON); 
  33.                         light_status = 1; 
  34.                         printf("Light On!\r\n"); 
  35.                     } 
  36.                     //關閉燈 
  37.                     else if (NULL != strstr(recvbuf, "OFF")) 
  38.                     { 
  39.                         Light_StatusSet(OFF); 
  40.                         light_status = 0; 
  41.                         printf("Light Off!\r\n");      
  42.                     } 
  43.                 } 
  44.             } 
  45.         } 
  46.     } 

五、手機代碼

1.下載小熊派開源社區源碼

2.DevEco Studio打開后,修改應用代碼配置文件 entry\src\main\config.json 中的 bundleName,為AppGallery Connect 應用中配置的應用包名。

3.修改 entry\src\main\js\default\pages.index\index.js 中的 bundleName,保持和config.json 中一致。

4.定義src/main/js/default/pages/index/index.js文件

  1. data: { 
  2.         title: '鴻聯-智能燈'
  3.         ipaddress:'192.168.'
  4.         port:"5678"
  5.         send_value:0, 
  6.         startflag: false
  7.         client_statu: false
  8.         subscribe_statu: false
  9.         property:[ 
  10.             { 
  11.                 "name":"光照"
  12.                 "propertyName":"Lux"
  13.                 "unit":" lux" 
  14.             } 
  15.         ], 
  16.         command:[ 
  17.             { 
  18.                 "name":"庭院燈"
  19.                 "paraName":"Light"
  20.                 "type":"string" 
  21.             } 
  22.         ], 
  23.         properties:{ 
  24.             "Lux":0, 
  25.             "Light":"" 
  26.         } 
  27.     }, 

5.自動簽名后,下載到手機

六、使用

1.開發版編譯下載后,重啟,會自動連接到WiFi,并建立TCP服務器,等待手機客戶端接入

 【OpenHarmony  Canary】    手機操控的智能燈-鴻蒙HarmonyOS技術社區

2.手機連接相同 WiFi,查看開發板 IP 為 192.168.43.239,打開手機端的智能燈 APP,點擊右上角的加號按鈕,輸入開發板的 IP 192.168.43.239 和端口5678,點擊OK 后會自動連接開發板。

 【OpenHarmony  Canary】    手機操控的智能燈-鴻蒙HarmonyOS技術社區

3.開發板將采集的光照數據傳送到手機上顯示,手機開關燈,開發板LED燈按指令亮和滅。

 【OpenHarmony  Canary】    手機操控的智能燈-鴻蒙HarmonyOS技術社區

實驗完成,后續將不斷改進。

想了解更多內容,請訪問:

51CTO和華為官方合作共建的鴻蒙技術社區

https://harmonyos.51cto.com

 

責任編輯:jianghua 來源: 鴻蒙社區
相關推薦

2021-07-02 14:16:04

鴻蒙HarmonyOS應用

2021-06-28 09:38:50

鴻蒙HarmonyOS應用

2021-09-16 15:04:28

鴻蒙HarmonyOS應用

2021-06-11 14:16:21

Windows 10WSL OpenHarmon

2023-05-08 15:48:13

智能音箱鴻蒙

2024-03-04 15:06:38

鴻蒙智能教室應用開發

2023-01-13 16:54:38

2024-09-02 14:00:00

2023-09-06 15:35:14

2024-08-14 15:00:00

模型數據

2018-04-09 11:11:03

RGB臺式機主機

2022-04-11 11:30:33

智能交通燈操作系統鴻蒙

2019-09-04 09:18:08

2022-10-08 16:19:40

智能喂食器鴻蒙

2023-04-17 16:21:58

操作系統鴻蒙

2022-09-29 15:24:11

物聯網MQTT

2022-08-05 19:37:59

鴻蒙Api框架

2022-01-07 09:56:16

鴻蒙HarmonyOS應用

2024-03-04 14:59:51

鴻蒙CPU信息C++

2020-02-27 16:34:34

人工智能算法數據
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产精品爱久久久久久久 | a级片在线观看 | 国产精品久久久久久久久久免费看 | 91在线视频观看 | 99视频在线 | 日韩欧美在线观看 | 欧美精品久久 | 久久精品91 | 久久久精品影院 | 波多野结衣亚洲 | 亚洲高清在线 | 欧美成人一区二区三区片免费 | av一二三区 | 91精品国产一区二区三区动漫 | 成人免费片 | 久久国产精品视频 | 免费人成在线观看网站 | 伊人网综合在线 | 成人av播放 | 免费视频一区 | 国产精品久久久久久久久久三级 | 亚洲国产一区二区三区在线观看 | 成人免费在线视频 | 欧美日韩国产一区二区 | 久久99精品久久久久婷婷 | 翔田千里一区二区 | 国产91丝袜在线熟 | 中文字幕日本一区二区 | 国产精品一区一区 | www狠狠干| 琪琪午夜伦伦电影福利片 | 日韩av电影院| 久久久久久久久久久久久91 | 天天操网| 国产在线视频一区二区 | 久久久久久久电影 | 91精品国产自产在线老师啪 | 九九九视频在线观看 | 国产免费一区二区三区网站免费 | 一区二区伦理电影 | 欧美精品二区三区 |