主页 > 互联网 > 内容页

[OpenHarmony轻量系统]润和HiHope3861 UDP广播人体传感器数据②-环球新要闻

2023-05-06 15:18:18 来源:OpenHarmony开发经验


【资料图】

笔者最近拿润和HiHopePegasus(也叫做wifiiot_hispark_pegasus)开发套件进行OpenHarmony轻量系统开发,以此篇文章分享学习经验。

本文实现了用润和HiHope Pegasus 3861 UDP 广播人体红外传感器数据,样例demo下载链接:https://gitee.com/from-north-to-north/open-armony-north/tree/master/%E6%B6%A6%E5%92%8C3861%E8%BD%BB%E9%87%8F%E7%B3%BB%E7%BB%9FUDP%E5%B9%BF%E6%92%AD%E4%BA%BA%E4%BD%93%E7%BA%A2%E5%A4%96%E4%BC%A0%E6%84%9F%E5%99%A8

样例运行的OpenHarmony源码环境下载:https://gitee.com/HiSpark/hi3861_hdu_iot_application

往期回顾:[OpenHarmony轻量系统]润和HiHope 3861实现UDP广播温湿度①

通过本文您将了解:

1、HiHopePegasus 3861 连接wifi

2、HiHopePegasus 3861 人体红外传感器的使用

3、HiHopePegasus 3861 UDP广播

@toc

1. UDP广播人体红外传感器数据 样例运行效果

人体红外感应器感应到人体后,通过UDP广播 数据1(否则为0)

注意:炫彩灯板上人体红外感应传感器响应速度比较慢

样例运行效果演示视频:https://gitee.com/from-north-to-north/open-armony-north/blob/master/%E6%B6%A6%E5%92%8C3861%E8%BD%BB%E9%87%8F%E7%B3%BB%E7%BB%9FUDP%E5%B9%BF%E6%92%AD%E4%BA%BA%E4%BD%93%E7%BA%A2%E5%A4%96%E4%BC%A0%E6%84%9F%E5%99%A8/%E6%B6%A6%E5%92%8C3861%E8%BD%BB%E9%87%8F%E7%B3%BB%E7%BB%9FUDP%E5%B9%BF%E6%92%AD%E4%BA%BA%E4%BD%93%E7%BA%A2%E5%A4%96%E4%BC%A0%E6%84%9F%E5%99%A8%20%E6%95%88%E6%9E%9C%E6%BC%94%E7%A4%BA%E8%A7%86%E9%A2%91.mp4

2. 运行步骤

2.1 下载 https://gitee.com/from-north-to-north/open-armony-north/tree/master/%E6%B6%A6%E5%92%8C3861%E8%BD%BB%E9%87%8F%E7%B3%BB%E7%BB%9FUDP%E5%B9%BF%E6%92%AD%E4%BA%BA%E4%BD%93%E7%BA%A2%E5%A4%96%E4%BC%A0%E6%84%9F%E5%99%A8 ,将BUILD.gn、udp_broadcast_human_infrared_demo.c、wifi_connecter.c、wifi_connecter.c、wifi_connecter.h、文件放置在命名为 udp_broadcast_human_infrared 的文件夹下,将其放置在OpenHarmony轻量系统源码 applicationssamplewifi-iotapp目录下。2.2 在源码 applicationssamplewifi-iotappBUILD.gn文件features 字段下添加"udp_broadcast_human_infrared:udp_broadcast_human_infrared_demo",使样例demo加入编译。2.3 在样例demo的udp_broadcast_human_infrared_demo.c中设置要连接的wifi信息编译烧录后在pc端使用tcp/udp调试工具 SocketTool 创建udp group。组播地址为255.255.255.255,组播端口为8080。

3. 炫彩灯板上人体红外感应传感器与主控芯片(Pegasus)引脚的对应关系

人体红外传感器——ADC采集值反应是否有人靠近 GPIO07: ADC3查看硬件原理图可知 炫彩灯拓展板上的人体红外感应传感器型号为AS312,REL引脚查看底板硬件图可知 通过GPIO 07连接到Hi3861v100芯片。(VDD表示工作正电压,VSS表示工作负电压)

4. 样例源码解析

// 人体红外感应传感器使用到的头文件#include "hi_gpio.h"#include "hi_io.h"#include "hi_adc.h"#include "hi_errno.h"// 用hi_adc_read读取ADC通道的值        hi_u16 value = 0 ;        hi_adc_read(HI_ADC_CHANNEL_3, &value,HI_ADC_EQU_MODEL_4, HI_ADC_CUR_BAIS_AUTO, 0) ;        // (unsigned int)value 将value由hi_u16转换为unsigned int类型        printf("ADC_VALUE = %u", (unsigned int)value);        // 人体红外感应传感器检测到人体时,ADC通道的值大于950,udp广播1        char *i;        if(value > 950){             i="1";        }else{             i="0";        }        // udp发送数据        ret = sendto(sock_fd, i, strlen(i), 0, (struct sockaddr *) &broadcast_addr, broadcast_addr_len);

标签:

上一篇:动态:上市光鲜背后,叮当健康深陷亏损困局
下一篇:最后一页