[经验分享] 润和HiHope3861 UDP广播人体传感器数据 原创

离北况归 显示全部楼层 发表于 2023-10-17 15:31:24

  • 通过本文您将了解: 1、HiHopePegasus 3861 连接wifi 2、HiHopePegasus 3861 人体红外传感器的使用 3、HiHopePegasus 3861 UDP广播

@toc

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

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

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

屏幕截图 20230504 220804.png

image.png

2. 运行步骤

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

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

image.png

屏幕截图 20230504 215330.png

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\n", (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);

5. 附赠: 润和3861 UDP广播可燃气体传感器样例 下载链接

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%E5%8F%AF%E7%87%83%E6%B0%94%E4%BD%93%E4%BC%A0%E6%84%9F%E5%99%A8

©著作权归作者所有,转载或内容合作请联系作者

您尚未登录,无法参与评论,登录后可以:
参与开源共建问题交流
认同或收藏高质量问答
获取积分成为开源共建先驱

Copyright   ©2023  OpenHarmony开发者论坛  京ICP备2020036654号-3 |技术支持 Discuz!

返回顶部