198|0

29

帖子

4

TA的资源

一粒金砂(中级)

楼主
 

【2024 DigiKey 创意大赛】智能空调感应器 [复制链接]

 

智能空调感应器

作者:奇迹12

 

一、作品简介

本项目主要实现了一个智能空调感应器,当摄像头检测到房间内有人时会自动打开空调,同时该设备还支持远程网页控制。

 


二、系统框图

本项目主要实现当摄像头检测到房间内有人时会自动打开空调,还支持远程网页控制,两大主要功能,设计思路如下:

人体识别:该部分使用openMV完成,运行神经网络模型,识别环境中是否有人,当发现环境中有人时,产生一个信号发送给esp32进行处理。

网页控制:该部分由esp32完成,esp32实现上网功能,作为一个服务器对外开发,实现一个内置网页,当发现有手机连入该服务器,并访问服务器的网页时,将该网页返回给手机端,用户可以通过手机上的网页对设备进行控制。

控制核心:由esp32完成,负责接收openMV和网页传来的控制信号,当满足空调打开条件时打开空调,本文中使用LED点亮作为演示。

  

使用的板卡是以下两个:

 

OpenMV摄像头是一款小巧,低功耗,低成本的电路板,它帮助你很轻松的完成机器视觉(machine vision)应用。你可以通过高级语言Python脚本(准确的说是 MicroPython ),而不是C/C++。Python的高级数据结构使你很容易在机器视觉算法中处理复杂的输出。但是,你仍然可以完全控制OpenMV。你可以很容易的使用外部终端触发拍摄或者或者执行算法,也可以把算法的结果用来控制IO引脚。

  • STM32H743VI ARM Cortex M7 处理器,480 MHz ,1MB RAM,2 MB flash. 所有的 I/O 引脚输出 3.3V 并且 5V 耐受。这个处理器有以下的IO接口。
  • 全速 USB (12Mbs) 接口,连接到电脑。当插入OpenMV摄像头后,你的电脑会出现一个虚拟COM端口和一个“U盘”。
  • μSD卡槽拥有100Mbs读写,这允许你的OpenMV摄像头录制视频,和把机器视觉的素材从SD卡提取出来。
  • 一个SPI总线高达54Mbs速度,允许你简单的把图像流数据传给LCD扩展板,WiFi扩展板,或者其他控制器。
  • 一个 I2C总线,CAN总线, 和两个异步串口总线 (TX/RX) ,用来链接其他控制器或者传感器。
  • 一个12-bit ADC 和一个12-bit DAC。
  • 3个 I/O 引脚用于舵机控制.
  • 所有的IO口都可以用于,中断和PWM(板子上有10个I/O引脚)。
  • 一个RGB LED(三色), 两个高亮的 850nm IR LED(红外).
  • 可拆卸的摄像头模块系统,允许OpenMV Cam H7与不同的感光元件模组连接:
  • OpenMV4 H7默认配置的MT9M114 感光元件处理640×480 8-bit 灰度图或者640×480 16-bit RGB565彩色图像可以达到40 FPS;当分辨率低于320×240可以达到80FPS。大多数简单的算法可以运行40~80FPS以上。你的 OpenMV 摄像头有一个2.8mm焦距镜头在一个标准M12镜头底座上。如果你想使用更多的特殊的镜头,你可以很容易的安装。
  • 对于专业的机器视觉应用,你可以购买我们的全局快门摄像头模组mt9V034。
  • 对于红外热成像机器视觉应用,您可以购买我们的FLIR Lepton 红外热成像模组。
  • 3.7V 锂离子电池接口,用于业余爱好者机器人应用。

ESP32-C6-DevKitC-1 是一款入门级开发板,使用带有 8 MB SPI flash 的通用型模组 ESP32-C6-WROOM-1(U)。该款开发板具备完整的 Wi-Fi、低功耗蓝牙、Zigbee 及 Thread 功能。

板上模组大部分管脚均已引出至两侧排针,开发人员可根据实际需求,轻松通过跳线连接多种外围设备,同时也可将开发板插在面包板上使用。

 

代码部分:

人体识别

while True:
    clock.tick()
    img = sensor.snapshot()
    flag = 0
    for i, detection_list in enumerate(
        net.detect(img, thresholds=[(math.ceil(min_confidence * 255), 255)])
    ):
        if i == 0:
            continue  # background class
        if len(detection_list) == 0:
            continue  # no detections for this class?

        print("********** %s **********" % labels[i])
        flag = 1
        for d in detection_list:
            [x, y, w, h] = d.rect()
            center_x = math.floor(x + (w / 2))
            center_y = math.floor(y + (h / 2))
            print(f"x {center_x}\ty {center_y}")
            img.draw_circle((center_x, center_y, 12), color=colors[i], thickness=2)
    if flag == 1:
        p_out.high()#设置p_out引脚为高
    else:
        p_out.low()#设置p_out引脚为低
    print(clock.fps(), "fps", end="\n")

 

esp32处理部分:

void loop() {
  dnsServer.processNextRequest();  // 处理 DNS 请求
  server.handleClient();           // 处理来自客户端的 HTTP 请求
  if(LOW == digitalRead(0) && count > 100){
    identify_flag = 0;
  }
  else if(HIGH == digitalRead(0)){
    identify_flag = 1;
    count = 0;
  }
  count++;
  if(control_flag == 1 || identify_flag == 1)
    rgbLedWrite(RGB_BUILTIN, 0, 0, RGB_BRIGHTNESS);
  else
    rgbLedWrite(RGB_BUILTIN, 0, 0, 0);
}


三、各部分功能说明
openmv识别人体

 

控制网页

 

人体识别控制

 手机网页控制  
四、作品源码
download.eeworld.com.cn/detail/奇迹12/634849
五、作品功能演示视频

【2024 DigiKey 创意大赛】智能空调感应器

六、项目总结

很高兴能参加这个活动,我收获了很多新的知识,也完整完成了一个小项目,很开心。

 

【2024 DigiKey 创意大赛】智能空调感应器.doc (2.67 MB, 下载次数: 3)
点赞 关注
 
 

回复
举报
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表