如何设计一种基于PSOC6的人体交互式智能家居系统呢?

2024-04-30  

本项目是基于PSOC6 进行开发,它具有以下特性
Psoc6-evaluationkit-062S2 是 RT-Thread 联合英飞凌推出的一款集成 32 位双核 CPU 子系统( ARM Cortex-M4 和 ARM Cortex-M0)的开发板,其具有单周期乘法的150-MHz Arm Cortex-M4F CPU (浮点和存储器保护单元),100-MHz Cortex M0+ CPU,带单周期乘法和 MPU,可以充分发挥 PSoC6 双核芯片性能。


基本概况:

具体功能实现有 当前时间的设置与查看,温湿度数据的实时显示,屋内关照强度的实时显示,当前屋内的亮明状态的提醒,打开室内灯,关闭室内灯。小程序上可实时查看室内温湿度的情况,远程控制室内的灯光。

硬件部分:

使用了板载的RTC,SLIDER,I2C,ADC,GPIO,串口通信模块。SSD1306显示屏,DHT11温湿度传感器,光敏传感器,ESP8266模块,MG995舵机,RGB灯光。

功能介绍:

首先是第一部分,是一个实时显示的时间界面,包括了年份,月份,当前时间,左上角显示的是页数 右上角显示的是PSOC的一个触摸滑条数值,用来去查看滑条值。

然后我们可以通过滑动触摸滑条,进行翻页操作。第二部分是一个实时的温湿度监控页面,在该页面,可以查看当前的屋内的温湿度情况,并且设置了阈值,当湿度超过65%的时候,会点亮LED灯(白黄灯),当湿度低于65%,LED灯熄灭。

第三部分是我们的一个屋内亮明情况,通过光敏传感器实时监测当前的屋内明亮程度,当关照强度低于设置的阈值时,显示屏会提示,当前屋内过暗(DARK),需要开灯,我们可以点击滑条触摸模块,点亮LED灯(亮绿灯),如果当前关照强度是大于阈值的,那么显示屏会提示当前明暗状态是有关照的(LIGHT),这时就会自动关闭LED灯。

如果在黑暗状态下的话,开启了LED灯,需要关闭的话就需要,去到第一部分,然后轻触中间滑条,即可关闭LED灯。PS:在第一界面时,会亮蓝灯。

功能详细介绍

第一部分:

第一界面:是由当前时区的时钟,与页面数PART1和滑条值组成的
通过LCD显示屏,实时显示了当前的时间和年月日的元素。可以进行一个当前时间查看的功能。并且位于第一界面的时候,LED灯会亮蓝灯,进行一个提示的工作。而右上角的111数值,则是代表了当前滑块所在的数值。

第二部分:

第二界面是由温度数据和湿度数据共同显示,外加指示灯的状态显示。

通过收集DHT11的温湿度传感器采集的数据,然后通过ESP8266和PSOC6进行一个串口通信的传输,PSOC6将传递过来的数据进行一个处理后,显示在LCD显示屏上。

另外还设定了湿度的阈值,在当前的室内湿度达到65%以上的时候,LED状态灯会亮起,当低于65以下的时候,LED状态灯会熄灭。从而实现了一个对屋内干湿度状态的监测。

第三部分:

第三界面是由当前照明状态和工作强度两个指标数据进行显示。

在该界面,用户可以实时查看当前的关照强度状态与LED灯指示的状态
光敏传感器:光照越强数值越低,反之相反。

通过光敏传感器监测外部的关照强度,设定阈值,当超过2030时,就代表外界关照强度较暗。显示屏LIGHT:显示DRAK,在黑暗情况下,用户可以点击触摸滑条,来点亮LED灯(绿灯)。

如果LED灯点亮的情况下的话,当外界光照强度小于2030时候,LED灯会自动熄灭。在黑暗环境下,如果点亮了以后想去关闭这个LED灯也可以去到第一界面,然后轻触滑条即可关闭。

小程序部分:通过接收云平台的数据,然后上传至小程序中,用户可以在小程序对设备进行一个管控。

通过点击开灯滑块,会发送指令给设备,能够让舵机去执行开灯或者关灯的操作。
并且在小程序界面,我们还能实时查看室内的温湿度数据。
(还有其它功能有待开发)

1.jpg

界面的切换:通过判断手指起始触摸的位置,然后在一定时间内滑过的数据量,通过设定一个阈值,通过起始位置和终止位置做差,判断是否超过阈值,如果在阈值以内则进行界面切换的操作。


文章来源于:电子工程世界    原文链接
本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。