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

高分系列卫星轨道、传感器参数等信息

遥感卫星数据简介-高分系列

中遥科 3309

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

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

weixin_42708147的博客 7369

海豚调度器(dolphinscheduler)再次使用,添加钉钉预警

1,首先我们部署是海豚调度器 1.3.8版本,由于页面只有邮件预警,所以在了解源码的同时,需要添加钉钉预警 2,说明,这一块是同事搞的,不是我搞的,新版本的dolphinscheduler已经有了钉钉模块,只是新版本还没有发布 3,我们现在只是添加简单的钉钉预警,任务成功或者失败会发送邮件+钉钉 4,具体操作 找到最新的源码devhttps://github1s.com/apache/dolphinscheduler/blob/dev/dolphinscheduler-alert/src/ma...

qq_31866793的博客 3083

【魔兽世界插件】魔兽世界插件实战笔记从入门到放弃的心理历程 第一节 lua框架的建立

魔兽世界插件实战笔记从入门到放弃的心理历程 第二节 lua框架的建立 找到魔兽世界的安装目录,找到插件的默认位置:\World of Warcraft\_retail_\Interface\AddOns,在这里建立一个文件夹,魔兽的插件都是用一个文件夹来区分的,第一课吗,就用Lesson_one吧。 下面建立的三个文件,第一个点toc文件是最重要的一个,它是魔兽客户端识别插件的一个标识符。 魔兽版本号有一个函数可以查询在WoWLua下面运行:print("当前游戏版本号:",(select(4,GetBui

qq_33075391的博客 6450

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

量化策略分享之首板低开

这个量化策略的核心是选择在低位、首次涨停后次日低开的股票,开盘时买入,上午有盈利就卖出,没有就拿到尾盘在卖出;策略优点在于选择的股票在低位,风险较低,并且刚启动首板,有大资金介入,第二天能快速跑路。

qq_29301281的博客 1466

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

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

nnnzn的博客 3194

开发框架Furion之WebApi+SqlSugar (一)

MyFurion.Model项目中,通过Nuget添加Furion、Furion.Extras.DatabaseAccessor.SqlSugar、Furion.Extras.ObjectMapper.Mapster、SqlSugarCore,同时添加对项目MyFurion.Unility的引用。在MyFurion.Start项目中,通过Nuget添加 AspNetCoreRateLimit、System.Linq.Dynamic.Core,同时添加对项目MyFurion.Application的引用。

liwan09的博客 1万+

智能解决装箱问题:使用优化算法实现高效包装

装箱问题(Bin Packing Problem)是组合优化领域中的一个经典问题,主要涉及如何将一系列对象高效地装入有限数量的容器(或“箱”)中,同时满足特定的约束条件。这个问题的目标是最小化所需使用的箱子数量或者最大化箱子的装载效率,以减少空间或资源的浪费。

MindOpt_003的博客 5546

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

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

zhangrelay的专栏 4167

EMC设计技巧及经验总结3:TVS的使用

Way back in undergrad circuits class(回到本科时的电路课程), our TA(助教) loved to give uslittle “black box” circuits. We’d measure the voltage and current characteristics, then have to determine what compone

snmplink的博客 2411

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

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

jiangxianfengge的博客 4553

Scale-up,scale-out技术概述

本文系统分析了Scale-up与Scale-out两种扩展技术在现代计算中的应用与发展。Scale-up通过增强单节点性能,适用于高耦合任务,而Scale-out通过横向扩展节点,实现高可用性和无限扩展。在芯片层面,Chiplet技术推动Scale-up发展;在数据中心层面,二者协同工作构建强大集群。光模块在长距离高带宽传输中发挥关键作用。文章对比了NVIDIA、AMD和Broadcom三家公司的技术路线,指出NVIDIA采用封闭生态,AMD选择开放标准,Broadcom则主导底层连接技术。未来发展方向将聚

元直的博客 1446

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

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

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

咸鱼菌 3436

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

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

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

weixin_53776127的博客 1万+

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

色标传感器(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、付费专栏及课程。

余额充值