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

密室逃脱 简单

头像 finally 2019.08.26 2504 3

步骤1 材料介绍

小型心率传感器工作原理:

project-image

小型心率传感器,采用光电容积脉搏波描记法(PhotoPlethysmoGraphy,PPG),通过测量血液中血红蛋白随心脏跳动而对氧气吸收的变化量来测量人体心率参数。该方法拥有响应性快,性能稳定,适应性强等特点。模块拥有方波和脉搏波两种信号输出模式,可以通过板载开关去自由切换输出信号。脉搏波将输出一个连续的心率波形,而方波将根据心率的变化输出对应的方波。

注意:

1.此为静态心率传感器,测量时请勿随意移动,也勿按压过紧。

2.本品并非专业医疗仪器,不能作为辅助配件参与诊断和治疗。

3.心率传感器背面的薄膜不能撕掉,撕掉后将造成无法修复的损坏!

I2C颜色传感器介绍:

project-image

TCS34725是一款低成本,高性价比的RGB全彩颜色识别传感器,传感器通过光学感应来识别物体的表面颜色。支持红、绿、蓝(RGB)三基色,支持明光感应,可以输出对应的具体数值,帮助您还原颜色本真。

为了提高精度,防止周边环境干扰,我们特意在传感器底部添加了一块红外遮光片,最大程度减小了入射光的红外频谱成份,让颜色管理更加准确。板载自带四个高亮LED,可以让传感器在低环境光的情况下依然能够正常使用,实现“补光”的功能。

模块采用I2C通信,拥有PH2.0和XH2.54(面包板)两种接口,用户可以根据自己的需求来选择接口,更加便利。

引脚说明:

project-image

IoT物联网模块及EASY IOT网站:

project-image

OBLOQ物联网模块,搭配DFRobot自有的物联网平台,大大降低了物联网的使用门槛,并且OBLOQ还能够连接 Microsoft Azure IoT和其他标准的MQTT协议的IoT。无需复杂的基础知识,就能迅速搭建出一套物联网应用。

project-image

OBLOQ是一款基于ESP8266设计的串口转WIFI物联网模块,用以接收和发送物联网信息。模块尺寸紧凑,价格低,接口简单,即插即用,适用于3.3V~5V的控制系统。

EASY IOT网站:

1、创建物联网设备 点击链接:http://iot.dfrobot.com.cn/,注册账号并登陆。

登录后,点击菜单栏的工作间,进入工作间后可点击“+”号创建物联网设备,程序中通过绑定设备的Topic来完成对特定设备的消息发送和接收。

下面演示创建一个设备Button:

进入菜单栏工作间 点击“+”号创建物联网设备,创建成功会出现一个新设备,第一次创建设备名为新设备1 将鼠标移动至设备名,会出现铅笔状小图标,点击铅笔小图标可修改设备名,修改为Button。

记录账号相关信息:Iot_id(user),Iot_pwd(password),Client ID和设备Topic,其中Iot_id和Iot_pwd可点击左侧状态栏的小眼睛图标查看。

project-image

步骤2 第一关:破解密码获得线索

背景前提:

二战进行到关键时刻,盟军和法西斯都想给对方致命一击,他们盯上了核武器。一次,盟军得到情报说德军在被占领地秘密建造了一个核基地,里面不但能生产重水,积聚核材料,还存储着重要的核武器的研究数据,基地里有大批精英人才,正在加速研制核武器,盟军决定要摧毁这个基地,可难题是,这个基地的具体位置在哪儿呢?盟军派出情报人员修斯去寻找。历尽千辛万苦,修斯找到了藏有核武器的黑匣子,上面的炸弹触目惊心,该如何打开盒子拿出地图呢修斯仔细观察,发现上面有一行小字:想要打开密码盒,需输入正确的密码,机会只有一次,否则,一旦碰触密码盒,炸弹就会开始60秒的倒计时。盒子的另一边是一张1903年8月18日的报纸,报纸的最显赫的位置上有一份死亡名单,它们分别是Eric-Jane-Dale-Helen,他仔细看了看,这正是他们被抓去做苦力的情报人员。 可疑的图片↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓


project-image

故事背景:

修斯打开了盒子,拿到了地形图,却不想触动了一个开关,房间的大门瞬间关闭,修斯困在了房间里。原来德军为了防止地形图被盗,设计了很多的机关。想要开启大们,需要打开宝箱获得线索开启大门。

裁判:家长

参赛选手:孩子

材料清单

  • micro:bit主控板 X1
  • micro:bit Boson扩展板 X1
  • 单神经元模块 X1
  • 七彩灯带 X1
  • LED灯 X1
  • 数字大按钮 X1
  • 录音模块 X1
  • 小喇叭 X1
  • IoT物联网模块 X1

电路连接:

LED——P0

单神经元or数字按钮-——P1

录音模块or小喇叭——P2

RGB灯带——P8

外观:

project-image
project-image

第一关程序:

project-image
代码
#include <Microbit_Matrix.h>
#include <DFRobot_NeoPixel.h>
#include <DFRobot_Task.h>

double mind_n_df_my_variable;

DFRobot_NeoPixel  rgb_display_8;
void df_ChengGongXiaoGuo();
void df_DaoJiShiDengGuang();

void df_ChengGongXiaoGuo()
{
	MMatrix.stopAnimation();
	digitalWrite(0, HIGH);
	for (int count = 0; count < 2; count++) {
		rgb_display_8.setRangeColor(1, 7, 0x00ff00);
		rgb_display_8.clear();
		delay(400);
		rgb_display_8.setRangeColor(1, 7, 0x00ff00);
	}
}

// 定义倒计时灯光函数
void df_DaoJiShiDengGuang()
{
	rgb_display_8.setRangeColor(1, 7, 0x33ff33);
	delay(1000);
	rgb_display_8.setRangeColor(1, 7, 0xffff00);
	delay(1000);
	rgb_display_8.setRangeColor(1, 7, 0xffcc66);
	delay(1000);
	rgb_display_8.setRangeColor(1, 7, 0xff9900);
	delay(1000);
	rgb_display_8.setRangeColor(1, 7, 0xff6666);
	delay(1000);
	rgb_display_8.setRangeColor(1, 7, 0xff6600);
	delay(1000);
	rgb_display_8.setRangeColor(1, 7, 0xff0000);
}



newTask(task2);
void task2::setup() {
	rgb_display_8.begin(8, 5, 255);
}

void task2::loop() {
	// 倒计时灯光效果
	if ((mind_n_df_my_variable == 9)) {
		df_DaoJiShiDengGuang();
	}
	// 倒计时结束
	if ((mind_n_df_my_variable == 1)) {
		// 爆炸声音
		digitalWrite(1, HIGH);
		for (int count = 0; count < 2; count++) {
			rgb_display_8.setRangeColor(1, 7, 0xff0000);
			rgb_display_8.clear();
			delay(400);
			rgb_display_8.setRangeColor(1, 7, 0xff0000);
		}
	}
	// 密码正确
	if (((digitalRead(1)) == 1)) {
		if ((mind_n_df_my_variable < 61)) {
			df_ChengGongXiaoGuo();
			MMatrix.print("No.2");
			// 请领取线索
			MMatrix.print("Please collect clues");
		}
		if ((mind_n_df_my_variable < 31)) {
			df_ChengGongXiaoGuo();
			MMatrix.print("No.1");
			MMatrix.print("Please collect clues");
		}
		if ((mind_n_df_my_variable > 120)) {
			df_ChengGongXiaoGuo();
			MMatrix.print("No.3");
			MMatrix.print("Please collect clues");
		}
	}
}

newTask(task1);
void task1::setup() {
	// 倒计时开始
	for (int count = 0; count < 59; count++) {
		delay(1000);
		mind_n_df_my_variable = mind_n_df_my_variable - 1;
		MMatrix.print(mind_n_df_my_variable);
	}
}

void task1::loop() {

}

void setup() {
	taskStart();
	rgb_display_8.begin(8, 5, 255);
	// 游戏开始
	MMatrix.print("Start the game");
	mind_n_df_my_variable = 60;
	taskStart(task1);
	// 还未到时间
	if ((mind_n_df_my_variable > 1)) {
		taskStart(task2);
	}
}

void loop() {

}

线索和第2关破解时间取决于第一关的成绩

100分-----2分钟破解时间线索:福尔摩斯(第一关在30秒内完成)

50分------1分钟破解时间线索:4869(第一关在1分钟内完成)

30分------40秒破解时间线索:侦探(第一关大于1分钟完成)

步骤3 第2关根据线索破解宝箱

选择Ardouino Uno主控板

project-image

选择心率传感器,颜色识别传感器

project-image

材料清单

  • I2C颜色传感器 X1
  • IoT物联网模块 X1

关卡1物联网答题

关卡2根据前期提示破解

电路连接:

I2C颜色识别传感器——A4 A5

IoT物联网模块——2 3




物联网答题程序:

project-image
代码
#include <UNO_Obloq.h>

String mind_s_MQTT_XiaoXi;

UNO_Obloq olq;
const String topics[5] = {"BkMH48Djf","","","",""};

void setup() {
	Serial.begin(9600);
	olq.startConnect(0, 1, "", "hidfrobot", "SJISVLvoz", "r1xUSVUwsz", topics, "192.168.", 1883);
	olq.publish(olq.topic_0, "Sherlock·Holmes Date of birth");
}

void loop() {
	if ((olq.available(olq.topic_0))) {
		mind_s_MQTT_XiaoXi = olq.getMessage(olq.topic_0);
		if ((mind_s_MQTT_XiaoXi == "1854.1.6")) {
			digitalWrite(13, HIGH);
			olq.publish(olq.topic_0, "Congratulations on your answer");
			olq.publish(olq.topic_0, "You have a chance to ask");
		}
		else {
			digitalWrite(12, HIGH);
		}
	}
}

EASY IOT端:

project-image

评论

user-avatar
  • Fish01

    Fish012022.09.01

    我很喜欢这个项目

    0
    • Fish01

      Fish012022.09.01

      我也来学习一下。

      0
      • Fish01

        Fish012022.09.01

        这个好厉害

        0