K210触摸屏人脸识别开灯,温湿度,蜂鸣器,按键

基于K210芯片的人脸识别智能门禁系统 识别模式:识别模式下,通过MaixBit开发板对欲通过人员进行人脸信息的收集以及比对分析,判断是否为存储内人员的人脸信息,进而通过90614红外测温模块获取欲通过人员体温数据以及判断体温是否正常等条件,满足通过条件后闸机动作,人员通过。红外测温功能的实现:红外测温功能主要通过90614测温模块收集数据,通过把数据递交给主控芯片进行判断,如果温度超过阈值则可以触发蜂鸣器报警。该系统还可通过蓝牙模块将数据上传到电脑,实现数据的随时监测,也可通过电脑修改温度阈值等参数。录入模式:录入人脸数据使用。 阅读详情

K210触摸屏人脸识别开灯,温湿度dht22,蜂鸣器,按键

触摸屏界面
温湿度传感器用的是dht22。
在这里插入图片描述温湿度界面
在这里插入图片描述
人脸识别开灯(锁)界面
灯泡是12V的我们需要用3.3V的光耦隔离寄存器,给灯泡单独供电,D+接3.3V,D-接GND,S-接GND,S+接信号引脚,高电平点亮。COM端接正极,ON常开端接灯泡的正极。
在这里插入图片描述

这是beep蜂鸣器的代码事件。

// An highlighted block
def event_handlerr(obj,event):
    global KEY_NODE
    if event == lv.EVENT.CLICKED:
        print("I am Clicked")
        KEY_NODE = not KEY_NODE
        beep.value(KEY_NODE)
#按钮初始化
btn2 = lv.btn(lv.scr_act())
btn2.set_event_cb(event_handlerr)
btn2.align(None, lv.ALIGN.CENTER, 80, 80)
label = lv.label(btn2)
label.set_text("beep")

这是人脸识别开锁的代码

#按钮回调函数
def event_handler(obj, event):
    global KEY_NODE
    if event == lv.EVENT.CLICKED:
        print("light Clicked")
        KEY_NODE=not KEY_NODE
        a = True
        while(a):
            clock.tick()
            img = sensor.snapshot()
            code = kpu.run_yolo2(task, img) #运行yolo2网络
            #识别到人脸就画矩形表示
            if code:
                for i in code:
                    print(i)
                    b = img.draw_rectangle(i.rect())
                    LED_B.value(1)
                    utime.sleep(3)
                    LED_B.value(0)
            lcd.display(img)
            if KEY.value() == 0:
                a = False
                lcd.clear(lcd.WHITE)
                btn1 = lv.btn(lv.scr_act())
                btn1.set_event_cb(event_handler)
                btn1.align(None, lv.ALIGN.CENTER, 0, 0)
                label = lv.label(btn1)
                label.set_text("face Identify")

                btn2 = lv.btn(lv.scr_act())
                btn2.set_event_cb(event_handlerr)
                btn2.align(None, lv.ALIGN.CENTER, 80, 80)
                label = lv.label(btn2)
                label.set_text("beep")

                btn3 = lv.btn(lv.scr_act())
                btn3.set_event_cb(wenshidu)
                btn3.align(None, lv.ALIGN.CENTER, -80, -80)
                label = lv.label(btn3)
                label.set_text("Tem Hum")

#按钮初始化
btn1 = lv.btn(lv.scr_act())
btn1.set_event_cb(event_handler)
btn1.align(None, lv.ALIGN.CENTER, 0, 0)
label = lv.label(btn1)
label.set_text("face Identify")

这是dht22温湿度的代码

def wenshidu(obj,event):
    global KEY_NODE
    if event == lv.EVENT.CLICKED:
        print("wenshidu shuzhi")
        KEY_NODE = not KEY_NODE
        DHT22_IO_Register(20)
        lcd.init()
        lcd.draw_string(100, 0, "li dong", lcd.RED, lcd.BLACK)
        lcd.draw_string(50, 32, 'DHT22 SHOW~', lcd.RED, lcd.BLACK)
        utime.sleep_ms(100)
        b=True
        while(b):
            if start_DHT22():		#//是否正确读取
                temperature = GetDHT22_temperature();
                humidity = GetDHT22_humidity();
                #print(DHT22RH_Data_H,DHT22RH_Data_L,DHT22T_Data_H,DHT22T_Data_L)
                print(('温度是:%.1f°C 湿度是:%.1f%% ')%(temperature*0.1,humidity*0.1))
                lcd.draw_string(0, 64, ('T:%.1fC RH:%.1f%% ')%(temperature*0.1,humidity*0.1), lcd.RED, lcd.BLACK)
                if KEY.value() == 0:
                    b=False
                    lcd.clear(lcd.WHITE)
                    btn1 = lv.btn(lv.scr_act())
                    btn1.set_event_cb(event_handler)
                    btn1.align(None, lv.ALIGN.CENTER, 0, 0)
                    label = lv.label(btn1)
                    label.set_text("face Identify")

                    btn2 = lv.btn(lv.scr_act())
                    btn2.set_event_cb(event_handlerr)
                    btn2.align(None, lv.ALIGN.CENTER, 80, 80)
                    label = lv.label(btn2)
                    label.set_text("beep")

                    btn3 = lv.btn(lv.scr_act())
                    btn3.set_event_cb(wenshidu)
                    btn3.align(None, lv.ALIGN.CENTER, -80, -80)
                    label = lv.label(btn3)
                    label.set_text("Tem Hum")
#按钮初始化
btn3 = lv.btn(lv.scr_act())
btn3.set_event_cb(wenshidu)
btn3.align(None, lv.ALIGN.CENTER, -80, -80)
label = lv.label(btn3)
label.set_text("Tem Hum")

K210电阻屏界面代码

#将蓝灯引脚IO12配置到GPIO0,K210引脚支持任意配置
fm.register(17, fm.fpioa.GPIO0,force=False)
fm.register(15, fm.fpioa.GPIO2,force=False)
fm.register(16, fm.fpioa.GPIO1)
KEY_NODE = 1

sensor.reset()
sensor.set_pixformat(sensor.RGB565)
sensor.set_framesize(sensor.QVGA)
LED_B = GPIO(GPIO.GPIO0, GPIO.OUT,value=0) #构建LED对象
beep = GPIO(GPIO.GPIO2, GPIO.OUT,value=0)
KEY = GPIO(GPIO.GPIO1,GPIO.IN)
i2c = I2C(I2C.I2C0, freq=400000, scl=30, sda=31)
#初始化触摸屏
ts.init(i2c)
lcd.init()
#lvgl显示接口初始化
lv.init()
clock = time.clock()
task = kpu.load("/sd/facedetect.kmodel") #模型SD卡上
#模型描参数
anchor = (1.889, 2.5245, 2.9465, 3.94056, 3.99987, 5.3658, 5.155437, 6.92275, 6.718375, 9.01025)

#初始化yolo2网络
a = kpu.init_yolo2(task, 0.5, 0.3, 5, anchor)

#LCD参数配置
disp_buf1 = lv.disp_buf_t()
buf1_1 = bytearray(320*10)
lv.disp_buf_init(disp_buf1,buf1_1, None, len(buf1_1)//4)
disp_drv = lv.disp_drv_t()
lv.disp_drv_init(disp_drv)
#注册显示缓冲区
disp_drv.buffer = disp_buf1
#注册显示驱动回调
disp_drv.flush_cb = lv_h.flush

#设置屏幕的显示大小
disp_drv.hor_res = 320
disp_drv.ver_res = 240
#注册显示驱动到lvgl中
lv.disp_drv_register(disp_drv)

#触摸屏参数配置
indev_drv = lv.indev_drv_t()
lv.indev_drv_init(indev_drv)
indev_drv.type = lv.INDEV_TYPE.POINTER
indev_drv.read_cb = lv_h.read
lv.indev_drv_register(indev_drv)

完全可以实现电阻屏触摸哪一个就能实现对应的功能。如果进入界面后,要加入按键退出,清屏,初始化一下按键就可以。

 if KEY.value() == 0:
                a = False
                lcd.clear(lcd.WHITE)
                btn1 = lv.btn(lv.scr_act())
                btn1.set_event_cb(event_handler)
                btn1.align(None, lv.ALIGN.CENTER, 0, 0)
                label = lv.label(btn1)
                label.set_text("face Identify")

                btn2 = lv.btn(lv.scr_act())
                btn2.set_event_cb(event_handlerr)
                btn2.align(None, lv.ALIGN.CENTER, 80, 80)
                label = lv.label(btn2)
                label.set_text("beep")

                btn3 = lv.btn(lv.scr_act())
                btn3.set_event_cb(wenshidu)
                btn3.align(None, lv.ALIGN.CENTER, -80, -80)
                label = lv.label(btn3)
                label.set_text("Tem Hum")

借鉴的温湿度代码

源代码下载地址

《单片机串口》—将传感器获取的数值在上位机显示 之前在学蓝牙通信的时候如何将单片机获取到的传感器的数值发送到上位机遇到了不少的问题。由于数据的发送一种是字符格式一种是(hex)也就是十六进制显示。传感器获取到的数值是十进制。这样显示起来就会不太一样。后来解决了这个问题,把一些过程分享出来,仅供参考。 阅读详情

相关推荐

【K210】K210学习笔记五——串口通信

本文着重于 K210 如何进行串口通信,如果 MCU 之间无法通信,就算在 K210 上识别做的再好也没有用。我之前发过一篇K210和STM32通信、K210和OpenMV通信的博客,但我觉得那一份的代码还不够“通用”,因此我今天将串口通信的代码进行重置,希望能让大家觉得比上次那一期更好用,要是想回顾上一期代码,了解串口发送与接收,传送门如下。

adas323的博客 2万+

STM32外设集 -- 人脸识别门禁系统(K210--HEX协议版本)

人脸,指纹识别已经走进人们的生活,无疑这方便了人们的生活,也提高了安全和可靠性,所以作为未来的学习方向,我也来接触接触人脸识别(有不足之处请见谅😁)

herui的博客 7579

k210学习篇(八) sensor感光元件

sensor 传感器模块(这里特指摄像头模块),进行摄像头配置及图像抓取等,用于控制开发板摄像头完成摄像任务。

DOF526570的博客 2160

利用K210获取传感器数值

介绍 技术支持网站: Maixpy文档简介: MaixPy 文档简介 - Sipeed Wiki 01Studio社区: 01Studio社区 - Powered by Discuz! K210资料下载地址: pyAI-K210 — 01Studio资料下载站 v1.0 文档 K210社区: pyAI-K210 - 01Studio - Powered by Discuz! 硬件准备 传感器(本文以气味传感器为例) 模数转换器 K210模块(包括数据线、SD卡、LCD显示屏)

ali_nic的博客 3866

K210获取DHT11温湿度的代码

python,机器学习,dht11

K210工程人脸识别开灯,按键注册,是这个人开灯,不是蜂鸣器报警。

python,机器学习

K210(SiPEED MaixBit)MicroPython使用参考(九、温湿度传感器HTS221驱动)

以K210为主控的SiPEED MaixBit的使用参考,此部分整理了K210驱动温湿度传感器HTS221的MicroPython代码,并进行了较为深入的研究,比较了几种计算方法。

sdau2005的博客 1353

手把手教你解决USB批量传输中512字节整数倍数据丢失问题

本文详细解析了USB批量传输中512字节整数倍数据丢失问题的根源,并提供了通过零长度包(ZLP)的解决方案。文章涵盖USB协议核心机制、ZLP实现代码示例(包括Android、Linux和Windows平台)、调试技巧及性能优化建议,帮助开发者彻底解决这一常见问题。

smartcontract5的博客 261

K210开发板学习笔记(一)——K210人脸识别门禁+SD卡实现人脸数据存储(附代码解读)

K210人脸识别门禁系统 一个按键实现所有功能。 具体功能: 在线人脸录入,在线人脸删除,考勤数据统计,人脸存储,断电信息不丢失,SD卡保存人脸数据库。重复人脸添加可识别。 基于此可扩展出很多功能。语音播报,蓝牙远程控制,体温检测等等

weixin_42708147的博客 7369

电流模架构Bandgap设计与仿真

带隙基准作为集成电路中一个重要模块,被广泛应用在低压差线性稳压(LDO)、充电电池保护芯片和通信电路、射频收发器、flash存储器等多种模拟及数模混合集成电路中,并且是片上集成系统(SOC)芯片中不可或缺的部分,为整个芯片提供精确的电压参考点............

qq_50968231的博客 5万+

Vue3+Element Plus:构建现代化后台管理系统的核心布局实践

本文详细介绍了使用Vue3和Element Plus构建现代化后台管理系统的核心布局实践。从开发环境搭建到核心布局设计,再到动态菜单与路由集成,提供了完整的解决方案和优化技巧。特别适合需要快速开发高效、响应式后台系统的开发者,通过实战案例展示了如何提升开发效率和系统性能。

weixin_28309723的博客 459

K210与多个VL53L0X红外测距传感器的iic应用

前言:VL53L0X是个机灵的传感器,有使用手册,但没寄存器手册\狗头,写这篇博客记下,以防止后面再次遇坑。 使用说明 用户手册 引脚说明: IIC_SCL: IIC通信时钟线 IIC_SDA: IIC通信数据线 VCC: 3.3V/5V电源输入 GND: 地线 VL_INT: 中断输出引脚 VL_XSH: 片选使能,高有效 I2C地址:0x29(有一说法地址为:0x52,0x52=0x29*2+0x00=0x29<<1+0x00,上电后可改变此地址,但再次上电地址复原为0.

爱安敝之的博客 1897

Zemax实战:手把手教你设计一个40倍、NA0.65的显微物镜(附初始结构文件)

本文详细介绍了使用Zemax设计40倍、NA0.65显微物镜的完整流程,从初始结构搭建到优化验证,涵盖光学设计的关键技巧和实战经验。通过分阶段优化策略和公差分析,帮助工程师快速掌握高倍显微物镜的设计方法,提升光学系统性能。

weixin_42525369的博客 343

STM32F103C8T6使用DHT22获取温湿度并通过OLED显示正负浮点四位数温度数值

STM32获取DHT22温湿度显示在OLED屏幕,可显示正负浮点四位温度数值。

nnnzn的博客 3194

24、虚拟地理信息系统:技术与应用的全面解析

本文全面解析了虚拟地理信息系统(虚拟GIS)的技术架构与应用前景。文章从地理空间数据的增长出发,探讨了虚拟GIS在地形、建筑、天气等多维度数据的交互式可视化技术,重点介绍了全球层次结构、多分辨率模型、缓存分页机制及交互导航方法。系统已应用于天气分析、城市规划、应急响应等领域,并展望了未来在数据处理、模拟操作、移动可视化及智能城市、文化遗产保护等方向的发展路径与技术挑战。

v4w5x6的博客 88

DeepSeek与YOLO融合技术的微信小程序实现方案

本文介绍了一个基于微信小程序和Flask后端的智能图像检测系统。系统采用DeepSeek-7B进行自然语言理解,YOLOv8执行目标检测,并通过融合验证模块确保结果准确性。核心流程包括:用户通过小程序上传图片和文本需求,后端解析意图后执行目标检测,最后验证并返回结果。关键技术包括DeepSeek的指令理解、动态阈值调整和模型优化(ONNX、TensorRT)。系统适用于工业质检等场景,如"检测表面划痕",能自动识别目标并验证结果。部署需GPU服务器,并包含安全机制保障系统稳定运行。

老郑的博客 273

差速巡线机器人设计-良好(80+)的报告-2023

差速巡线机器人是一种能够自主巡线的机器人,其设计实验的意义在于探索机器人自主导航和控制的技术,以及应用于工业自动化、智能交通等领域。通过设计和制作差速巡线机器人,可以测试其在不同地形和环境下的巡线能力和稳定性,同时也可以探索差速驱动技术在机器人运动控制中的优势和局限性。通过对机器人的设计和实验,可以深入了解机器人的巡线原理和控制方法,进一步提高机器人的自主导航能力和巡线精度,为机器人在实际应用中的推广和应用提供技术支持。在地盘的设计中,需要考虑机器人的重心平衡和稳定性,以及机器人的结构强度和耐用性。

zhangrelay的专栏 4167

那些年我们create generate clock遇到的坑

想必大家对create_generate_clock这个命令熟悉的不能再熟悉了,然而,在真正做实际项目的时候,会出现各式各样的问题,比如在report timing时,generate clock路径不是我们预想的,source latency丢失等等,今天小编就跟大家重点聊聊source latency丢失的情况。clock时,首先我们要对一个项目的时钟结构要比较清晰,同时针对一些复杂的生成时钟,我们也要学会画波形图进行分析;接下来,我们就来看看哪些case会导致source latency丢失。

芯冰乐 136

K210学习笔记(2-sensor摄像头的使用)

1.1. 初始化单目摄像头重置并初始化单目摄像头1.1.1. 参数:·freq: 设置摄像头的时钟频率,越高,帧率越高,但是画质可能更差。默认 24MHz ,可以适当调低。· set_regs: 允许程序写摄像头寄存器,默认为 True。如果需要自定义复位序列,可以设置为 False , 然后使用 sensor._write_reg(addr, value) 函数自定义写寄存器序列。· dual_buff: 默认为False。

jiangxianfengge的博客 4553

node运行项目-Network: unavailable-没有ip地址

vscode运行vue项目后发现Network: unavailable 是什么情况呢?可能有一下三种情况:1.多个网卡原因:打开网络共享中心,把多余的网络禁用掉,只留一个2.在中配置host及public3.系统环境变量问题。

JackieDYH的博客 7539

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

K210基础实验—获取,修改像素值

K210基础实验—获取,修改像素值使用设备ZTFR开发板修改图片原理获取,修改像素值方法获取/设置像素点示例代码 使用设备 ZTFR开发板 修改图片原理 下图是一张6*5(横向有6个像素点,纵向有5个像素点)大小的图片,我们给这张图片起个名字叫做img,图片img中的每个像素点都有一组表示位置的数字(坐标点)。 像素点A的位置可以表示为img[2,1] 像素点B的位置可以表示为img[4,5] 一幅图片由多个像素点组成,修改图片的颜色,就是修改图片上像素点的颜色,对像素点颜色的修改,需要先知道像素点

咸鱼菌 3436

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

智能垃圾分类垃圾桶(K210+stm32mp157)

k210垃圾分类+语音控制+stm32mp157图像采集 UDP传输

weixin_53776127的博客 1万+

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

色标传感器(arduino和python代码)

1、代码 1.1 arduino代码 一个传感器,绿色置高,白色置低,通过引脚判别这两种颜色 int num = 0; int green_num=0; void setup(){ Serial.begin(9600); //Start serial communication boud rate at 9600 pinMode(7,INPUT); //Pin 2 as signal inpu...

两头大的博客 2496

K210基础实验—PWM

K210基础实验—PWMZTFR开发板PWM构造函数测试代码,PWM控制蜂鸣器 ZTFR开发板 PWM PWM: 脉宽调制模块, 硬件支持的PWM, 可以指定任意引脚(0到47引脚) 每个 PWM 依赖于一个定时器, 即当定时器与 PWM 功能绑定后, 不能作为普通定时器使用了。 因为有 3 个定时器, 每个定时器有 4 个通道, 即最大可以同时产生 12 路 PWM 波形 构造函数 pwm = machine.PWM(tim, freq, duty, pin,enable=True) ‘’’

咸鱼菌 1761
上一篇: Python关于KeyboardInterrupt的问题
下一篇: K210获取DHT11温湿度的代码
评论 6
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

研究代码的小白

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值