回到首页 返回首页
回到顶部 回到顶部
返回上一页 返回上一页

K10测评项目之自习室环境监控系统 简单

头像 孙洪尧1985 2024.08.29 271 0

一、项目背景:

         在当下这个知识爆炸的时代,学习已经成为每个人生活中不可或缺的一部分。随着人们对自我提升的需求不断增长,自习室这一概念逐渐走进了人们的视野。随着考研、考证、职业培训等需求的持续增长,越来越多的人开始寻求一个安静、高效的学习空间。自习室以其独特的氛围和专业的管理,满足了这部分人群的需求。无论是学生还是职场人士,都可以在自习室里找到属于自己的学习节奏。但是自习室的环境也直接影响到使用者的体验效果。空气流通差、温湿度不适宜、光线不充足等等问题,会影响使用者的学校效果。

二、项目目的:

        正值蘑菇云推出K10主控板,有幸成为首批测评人。这块高度集成的主控板,摆脱了UNO板需要连接许多开源硬件实现效果的依赖。我就打算用这块主控板来实现自习室的环境监控效果。由于试用版没有集成模拟环境光线传感器,所以我就用一个光敏模块替代。同时我使用风扇模块替代空调起到制冷效果。

三、制作过程

 

步骤1 准备硬件

材料清单

步骤2 硬件连接:光敏模块接K10主控板P1引脚,风扇模块接P0硬件。

K10自习室环境监控系统连线图.png

步骤3 程序设计

(1)打开mind+ V1.8.1 RC1.0

1.png

  (2)  点击左下角扩展,选择行空板K10

2.png

(3)返回主界面,点击连接左上角连接设备,选择K10

3.png

 (4)  设计程序,测试效果。

4.png

四、实现效果

1、监测自习室内的温湿度、光线强度、噪音强度指标;

2、当温湿度大于预设值,风扇(替代空调)自动工作,降低温度湿度指标,为顾客带来舒适的温湿度环境;

3、当光线强度低于预设值,K10自带的三颗RGB灯亮起,替代室内光源,提供有效的光线;

4、当室内噪音强度大于预设值,K10自带的合成模块和喇叭,将播放警告音,要求使用者降低音量,不要影响他人。

代码
/*!
 * MindPlus
 * esp32s3bit
 *
 */
#include "asr.h"
#include "unihiker_k10.h"
// 创建对象
UNIHIKER_K10 k10;
uint8_t      screen_dir=2;
AHT20        aht20;
ASR          asr;


// 主程序开始
void setup() {
	k10.begin();
	pinMode(P0, OUTPUT);
	k10.initScreen(screen_dir);
	k10.creatCanvas();
	asr.setAsrSpeed(2);
	k10.canvas->canvasText("自习室环境监控系统", 10, 10, 0x000000, k10.canvas->eCNAndENFont24, 50, false);
	k10.canvas->canvasText("当前室内温度:", 0, 50, 0x000000, k10.canvas->eCNAndENFont24, 50, false);
	k10.canvas->canvasText("当前室内湿度:", 0, 90, 0x000000, k10.canvas->eCNAndENFont24, 50, false);
	k10.canvas->canvasText("当前室内音量:", 0, 130, 0x000000, k10.canvas->eCNAndENFont24, 50, false);
	k10.canvas->canvasText("当前室内光线:", 0, 170, 0x000000, k10.canvas->eCNAndENFont24, 50, false);
	k10.canvas->updateCanvas();
}
void loop() {
	k10.canvas->canvasText(aht20.getData(AHT20::eAHT20TempC), 160, 50, 0x000000, k10.canvas->eCNAndENFont24, 50, true);
	k10.canvas->canvasText(aht20.getData(AHT20::eAHT20HumiRH), 160, 90, 0x000000, k10.canvas->eCNAndENFont24, 50, true);
	k10.canvas->canvasText(k10.readMICData(), 160, 130, 0x000000, k10.canvas->eCNAndENFont24, 50, true);
	k10.canvas->canvasText((analogRead(P1)), 160, 170, 0x000000, k10.canvas->eCNAndENFont24, 50, true);
	k10.canvas->updateCanvas();
	delay(3000);
	if ((k10.readMICData()>100)) {
		asr.speak("请保持安静");
	}
	if (((analogRead(P1))<2000)) {
		k10.rgb->write(-1, 0xFFFFFF);
	}
	else {
		k10.rgb->write(-1, 0x000000);
	}
	if (((aht20.getData(AHT20::eAHT20TempC)>34.5) || (aht20.getData(AHT20::eAHT20HumiRH)>50))) {
		digitalWrite(P0, HIGH);
	}
	else {
		digitalWrite(P0, LOW);
	}
}

评论

user-avatar