案例摘要:本教学案例紧密围绕小学信息技术新课标第六章《过程与控制》,以智能家居为核心展开跨学科教学实践。通过详细阐述智能家居系统在教学中的应用,深入分析其与多学科的融合点,以及系统的教学实施过程和效果评估,旨在探索如何通过跨学科教学有效提升学生的信息素养、综合能力与创新思维,为小学信息技术教学提供具有实践指导意义的参考范例。
随着科技的飞速发展和教育理念的不断更新,小学信息技术教育面临着新的挑战与机遇。2022版小学信息技术新课标强调培养学生的信息意识、计算思维、数字化学习与创新能力以及信息社会责任。其中,第六章《过程与控制》作为关键章节,要求学生理解信息系统中过程与控制的基本概念,掌握简单的控制算法和编程实现,能够运用信息技术解决实际问题。

案例来源:智能家居作为现代科技的典型应用,融合了多种先进技术,涵盖了多学科知识领域。将其引入小学信息技术教学,不仅能够使学生直观地感受信息技术在生活中的应用,激发学生对信息技术的兴趣,还能促进信息技术与数学、物理、艺术、科学等学科的深度融合,培养学生的综合素养和跨学科解决问题的能力。通过对智能家居系统的学习与实践,学生能够更好地理解过程与控制的概念,掌握编程技能,提升创新思维和实践能力。


案例设计类型简介:
智能家居系统是一个复杂而智能的系统,主要由感知层、网络层、控制层和应用层组成。
- 1、感知层:感知层是智能家居系统的 “感觉器官”,包含各类传感器,如温度传感器、湿度传感器、光照传感器、人体红外传感器、烟雾传感器、门窗传感器等。这些传感器负责采集家居环境中的各种物理量和状态信息,如室内温度、湿度、光线强度、人员活动情况、烟雾浓度、门窗开关状态等,并将这些信息转换为电信号或数字信号,传输给网络层。
- 2、网络层:网络层是智能家居系统的 “神经系统”,负责将感知层采集的数据传输到控制层,同时将控制层的指令传输到应用层的执行设备。常见的网络传输方式有 Wi-Fi、蓝牙、ZigBee、以太网等。Wi-Fi 具有覆盖范围广、传输速度快的特点,常用于连接智能家电、智能摄像头等设备;蓝牙则适用于短距离、低功耗的设备连接,如智能手环、智能音箱等;ZigBee 以其低功耗、自组网的优势,常用于传感器网络的组建;以太网则具有稳定性高、传输速度快的特点,常用于对网络稳定性要求较高的设备连接。
- 3、控制层:控制层是智能家居系统的 “大脑”,由智能控制器、服务器或智能家居网关等设备组成。它根据预设的规则和用户指令,对感知层传输过来的数据进行分析处理,做出决策,并向应用层的执行设备发出控制信号。控制层通常运行着智能控制软件,具备数据存储、逻辑运算、智能决策等功能。例如,当温度传感器检测到室内温度过高时,控制层会根据预设的温度阈值,自动向空调发出制冷指令。
- 4、应用层:应用层是智能家居系统的 “执行机构”,由各种智能设备组成,如智能灯光、智能窗帘、智能空调、智能电视、智能扫地机器人等。这些智能设备接收控制层的指令,执行相应的操作,实现对家居环境的智能控制。例如,智能灯光可以根据环境光线强度和用户需求自动调节亮度和颜色;智能窗帘可以根据时间或光线变化自动开合。
本案例简介:
本案例分为两部分,一部分是基于行空板K10设计的环境检测与控制系统;一部分是基于K10设计的安防系统。
- 1、环境监测与控制系统:通过温度传感器、湿度传感器、空气质量传感器等设备,实时监测室内温度、湿度、空气质量等环境参数。当通过语音模块播放环境参数、参数超出预设范围时,语音控制新风系统等设备,调节室内环境,保持舒适的居住环境,例如,当室内温度过高时,主人可以通过语音控制风扇开启与关闭,当室内光线不足时,主人可以通过语音控制灯光开启与关闭。(只有将加入系统根据参数自动控制相应传感器的开启与关闭)
- 2、安全防护功能:利用二哈识图摄像头、火焰传感器等设备,实现家庭安全监控。当检测到火灾隐患等异常情况时,系统立即发出警报,并通过语音等方式通知用户。同时,摄像头可以检测家人脸部信息,实现自动开关门,为用户提供安全保障。
- 环境检测与控制系统,通过K10大屏现实的一览无余。K10自带温湿度模块,实现了温湿度的检测功能,黑龙江室内采用地热供暖,温度较高,湿度较低。
- 语音控制客厅灯光开启与关闭。(之后打算加入系统控制自动开启与关闭)
- 语音控制风扇开启与关闭。(之后打算加入系统控制开启与关闭)
- 通过使用ENS160空气质量传感器实现对室内空气质量等多个数据的检测,保证室内空气质量的安全,提供一个舒适的环境。
主控板介绍:行空板K10
行空板K10是一款专为信息科技课程中的编程学习、物联网及AI项目教学需求而开发的学习板。它集摄像头、LCD彩屏、麦克风、扬声器、WiFi蓝牙模块、RGB指示灯及多种传感器和扩展接口于一体,无需额外设备即可实现传感器控制、物联网应用、图像检测、语音识别、语音合成等AI项目。
主要传感器介绍:ENS160空气质量传感器
Fermion: ENS160 空气质量传感器,搭载了ScioSense公司新推出ENS160空气质量传感器。该传感器专为室内空气质量检测而设计,能直接输出多种IAQ(TVOC、eCO2、AQI)数据。创新的TrueVOC技术结合金属氧化物(MOX)技术使得该传感器有优越准确性、快速响应、抗干扰等特性。
ENS160空气质量传感器内置算法,直接输出TVOC、eCO2、AQI数据,环境数据更丰富、容易理解。该传感器的预热时间小于3分钟,可以更快速的获得准确数据,内置基线自动校准算法,确保了传感器的长期稳定性。
二哈识图AI摄像头
二哈识图(HuskyLens)是一款简单易用的人工智能视觉传感器,内置6种功能:人脸识别、物体追踪、物体识别、巡线追踪、颜色识别、标签识别。仅需一个按键即可完成AI训练,摆脱繁琐的训练和复杂的视觉算法,让你更加专注于项目的构思和实现。

教学目标设定
- 知识与技能目标:学生了解智能家居系统的基本构成、工作原理和主要功能;掌握传感器、控制器、执行器等硬件设备的使用方法;学会运用图形化编程软件(如 mind+)设计简单的智能家居控制程序;能够组装和调试简单的智能家居硬件系统。
- 过程与方法目标:通过小组合作探究、项目实践等方式,培养学生的自主学习能力、团队协作能力和问题解决能力;引导学生运用跨学科知识和方法,分析和解决智能家居设计中的实际问题,培养学生的综合思维能力和创新能力。
- 情感态度与价值观目标:激发学生对信息技术和智能家居的兴趣,培养学生的科学探索精神和创新意识;让学生感受科技给生活带来的便利和美好,增强学生对现代科技的认同感和责任感。
教学方法选择
- 项目驱动教学法:以智能家居项目为核心,将教学内容分解为多个子项目和任务,让学生在完成项目的过程中学习知识和技能。通过项目驱动,激发学生的学习兴趣和主动性,培养学生的实践能力和创新能力。
- 小组合作学习法:将学生分成小组,共同完成项目任务。在小组合作过程中,学生相互交流、协作,发挥各自的优势,共同解决问题。小组合作学习法有助于培养学生的团队协作能力和沟通能力。
- 情境教学法:创设真实的生活情境,如智能家居在家庭中的应用场景,让学生在情境中发现问题、解决问题。情境教学法可以增强学生的学习体验,提高学生对知识的理解和应用能力。
- 探究式教学法:引导学生自主探究智能家居系统的原理和应用,鼓励学生提出问题、做出假设、设计实验、验证假设。探究式教学法有助于培养学生的科学探究精神和创新思维能力。
步骤1 第一阶段:智能家居系统认知 展示智能家居系统的实际案例,如智能家庭样板间视频、智能家居产品介绍等,让学生直观感受智能家居的功能和应用场景,激发学生的学习兴趣。 讲解智能家居系统的基本构成,包括感知层、网络层、控制层和应用层,以及各层的主要设备和功能。通过实物展示和模型演示,让学生了解传感器、控制器、执行器等硬件设备的外观和基本工作原理。 组织学生参观学校的智能家居实验室,让学生亲身体验智能家居设备的操作和应用,增强学生的感性认识。
步骤2 第二阶段:硬件组装与基础编程 为学生提供硬件设备,以及主板等控制器,让学生分组进行硬件组装。在组装过程中,学生学习硬件设备的连接方法和电路原理,了解不同设备之间的信号传输方式。 引入图形化编程软件mind+通过简单的案例演示,让学生掌握 mind+ 的基本操作和编程方法,如指令模块使用、事件驱动编程等。 引导学生运用 mind+ 编程软件,为组装好的硬件设备编写控制程序。例如,编写一个程序,实现当光线传感器检测到温度高于设定值时,LED 灯亮起;当温度传感器检测到温度高于设定值时,风扇电机启动进行降温。通过这个过程,学生掌握传感器数据读取、条件判断和设备控制的编程方法。
步骤3 第三阶段:跨学科项目实践 布置跨学科项目任务,如设计一个智能房屋。学生以小组为单位,综合运用信息技术、数学、物理、艺术等多学科知识,完成项目的设计与实现。 在项目设计过程中,学生需要运用数学知识进行数据统计和分析,如根据一段时间内的温度和湿度数据,确定智能空调和加湿器的最佳控制参数;运用物理知识设计电路和选择电子器件,如根据智能灯具的功率需求,选择合适的电源和驱动电路;运用艺术知识进行外观设计和用户界面设计,如设计智能卧室的灯光布局和颜色搭配。 学生在小组内分工协作,共同完成硬件组装、编程调试、外观设计等任务。教师在项目实施过程中,给予学生必要的指导和帮助,引导学生解决遇到的问题。
步骤4 第四阶段:项目展示与评价 各小组展示自己的项目成果,包括项目设计方案、硬件实物展示、软件演示等。每个小组派代表进行讲解,介绍项目的设计思路、实现过程和创新点。组织学生进行项目评价,评价内容包括项目的功能实现、技术创新、跨学科融合、团队协作等方面。评价方式采用学生自评、小组互评和教师评价相结合,让学生在评价过程中相互学习、共同提高。
教学实践效果
- 学生学习兴趣显著提高:通过引入智能家居这一富有吸引力的跨学科案例,学生对信息技术课程的兴趣明显增强。在课堂上,学生积极参与讨论、实践操作和项目设计,表现出强烈的求知欲和探索精神。
- 知识与技能掌握扎实:学生通过亲身体验和实践操作,深入理解了智能家居系统的构成、工作原理和编程控制方法。在硬件组装和编程过程中,学生的动手能力和编程技能得到了有效锻炼,能够熟练运用所学知识和技能解决实际问题。
- 综合素养得到提升:跨学科教学促进了学生多学科知识的融合与应用,培养了学生的综合思维能力和创新能力。在项目实践中,学生学会了运用数学、物理、艺术等学科知识解决信息技术问题,同时也提高了自己的审美能力、团队协作能力和沟通能力。
- 创新能力得到激发:在智能家居项目设计过程中,学生充分发挥自己的想象力和创造力,提出了许多具有创新性的设计思路和解决方案。例如,有的小组设计了具有智能语音交互功能的智能厨房,用户可以通过语音指令控制厨房设备;有的小组设计了基于太阳能供电的智能花园系统,实现了节能环保。
教学反思
- 教学资源的局限性:在教学实践中,发现教学资源存在一定的局限性。例如,部分硬件设备的数量不足,导致学生在实践操作中需要轮流使用;一些高级的智能家居设备和软件工具价格昂贵,学校难以配备。针对这一问题,可以通过与企业合作、开展线上教学资源共享等方式,丰富教学资源。
- 学生个体差异的影响:学生在学习能力、兴趣爱好和知识基础等方面存在个体差异,这给教学带来了一定的挑战。部分学习能力较弱的学生在硬件组装和编程过程中遇到困难,需要教师给予更多的指导和帮助。在今后的教学中,应关注学生的个体差异,采用分层教学、个别辅导等方式,满足不同学生的学习需求。
- 跨学科融合的深度和广度有待加强:虽然在教学中尝试了将信息技术与多学科进行融合,但在融合的深度和广度上还有待进一步提高。例如,在与数学学科的融合中,对数学知识的应用还不够深入,缺乏对数学模型和算法的深入探究;在与艺术学科的融合中,更多地关注了外观设计和用户界面设计,对艺术与科技的文化内涵和价值融合探讨较少。在今后的教学中,应加强对跨学科融合的研究和实践,拓宽融合的领域和深度。
环境检测与控制系统
/*!
* MindPlus
* esp32s3bit
*
*/
#include "asr.h"
#include "unihiker_k10.h"
#include <DFRobot_ENS160.h>
#include <DFRobot_NeoPixel.h>
// 创建对象
DFRobot_ENS160_I2C ens160(&Wire, 0x53);
DFRobot_NeoPixel neoPixel_P0;
UNIHIKER_K10 k10;
uint8_t screen_dir=2;
ASR asr;
AHT20 aht20;
// 主程序开始
void setup() {
k10.begin();
ens160.begin();
k10.initScreen(screen_dir);
k10.creatCanvas();
asr.asrInit(CONTINUOUS, CN_MODE, 12000);
while(asr._asrState == 0){delay(100);}
asr.setAsrSpeed(2);
ens160.setPWRMode(ENS160_STANDARD_MODE);
neoPixel_P0.begin(P0, 8);
neoPixel_P0.setBrightness(255);
k10.canvas->canvasText("基于K10的智能家居", 10, 0, 0x0000FF, k10.canvas->eCNAndENFont24, 50, true);
k10.canvas->canvasText("当前温度:", 30, 30, 0x0000FF, k10.canvas->eCNAndENFont24, 50, true);
k10.canvas->canvasText("当前湿度:", 30, 60, 0x0000FF, k10.canvas->eCNAndENFont24, 50, true);
k10.canvas->canvasText("空气质量:", 30, 90, 0x0000FF, k10.canvas->eCNAndENFont24, 50, true);
k10.canvas->canvasText("CO2含量:", 30, 120, 0x0000FF, k10.canvas->eCNAndENFont24, 50, true);
k10.canvas->canvasText("TVOC值:", 30, 150, 0x0000FF, k10.canvas->eCNAndENFont24, 50, true);
k10.canvas->canvasText("灯光状态:", 30, 180, 0x0000FF, k10.canvas->eCNAndENFont24, 50, true);
k10.canvas->canvasText("风扇状态:", 30, 210, 0x0000FF, k10.canvas->eCNAndENFont24, 50, true);
k10.canvas->updateCanvas();
}
void loop() {
asr.addASRCommand(0+1, "ke ting kai deng");
asr.addASRCommand(1+1, "ke ting guan deng");
asr.addASRCommand(2+1, "kai feng shan");
asr.addASRCommand(3+1, "guan feng shan");
asr.addASRCommand(4+1, "du qu wen du");
asr.addASRCommand(5+1, "du qu shi du");
asr.addASRCommand(6+1, "du qu er yang hua tan nong du");
asr.addASRCommand(7+1, "du qu kong qi zhi liang");
asr.addASRCommand(8+1, "du qu zong hui fa xing you ji hua he wu ");
while (1) {
if (asr.isWakeUp()) {
k10.canvas->canvasText("等待主人的召唤", 30, 240, 0xFF0000, k10.canvas->eCNAndENFont16, 20, true);
k10.canvas->updateCanvas();
}
else {
k10.canvas->canvasText("主人,我先去休息了", 30, 270, 0xFF0000, k10.canvas->eCNAndENFont16, 20, true);
k10.canvas->canvasText("主人需要我的话,请说“你好小行”", 30, 300, 0x333333, k10.canvas->eCNAndENFont16, 20, true);
k10.canvas->updateCanvas();
}
if (asr.isDetectCmdID(0+1)) {
neoPixel_P0.setRangeColor(0, 7, 0xFFFFFF);
k10.canvas->canvasText("打开", 140, 180, 0x0000FF, k10.canvas->eCNAndENFont24, 50, true);
k10.canvas->updateCanvas();
asr.speak("已经帮你打开客厅灯光啦~");
delay(1000);
}
if (asr.isDetectCmdID(1+1)) {
neoPixel_P0.clear();
k10.canvas->updateCanvas();
k10.canvas->canvasText("关闭", 140, 180, 0x0000FF, k10.canvas->eCNAndENFont24, 50, true);
asr.speak("已经帮你关闭客厅灯光啦~");
delay(1000);
}
if (asr.isDetectCmdID(2+1)) {
digital_write(eP2, HIGH);
asr.speak("小风扇已经转起来啦");
k10.canvas->canvasText("开启", 140, 210, 0x0000FF, k10.canvas->eCNAndENFont24, 50, true);
k10.canvas->updateCanvas();
delay(1000);
}
if (asr.isDetectCmdID(3+1)) {
digital_write(eP2, LOW);
asr.speak("小风扇已经关闭咯~");
k10.canvas->canvasText("关闭", 140, 210, 0x0000FF, k10.canvas->eCNAndENFont24, 50, true);
k10.canvas->updateCanvas();
delay(1000);
}
if (asr.isDetectCmdID(4+1)) {
asr.speak((String((String(aht20.getData(AHT20::eAHT20TempC)))) + String("摄氏度")));
k10.canvas->canvasText((String(aht20.getData(AHT20::eAHT20TempC)) + String("°C")), 140, 30, 0x0000FF, k10.canvas->eCNAndENFont24, 50, true);
k10.canvas->updateCanvas();
delay(1000);
}
if (asr.isDetectCmdID(5+1)) {
asr.speak((String("相对湿度是") + String((String(aht20.getData(AHT20::eAHT20HumiRH))))));
k10.canvas->canvasText((String(aht20.getData(AHT20::eAHT20HumiRH)) + String("%rh")), 140, 60, 0x0000FF, k10.canvas->eCNAndENFont24, 50, true);
k10.canvas->updateCanvas();
delay(1000);
}
if (asr.isDetectCmdID(6+1)) {
asr.speak((String("二氧化碳浓度是") + String((String(ens160.getECO2())))));
k10.canvas->canvasText(ens160.getECO2(), 140, 120, 0x0000FF, k10.canvas->eCNAndENFont24, 50, true);
k10.canvas->updateCanvas();
delay(1000);
}
if (asr.isDetectCmdID(7+1)) {
asr.speak((String((String("空气质量指数是") + String((String(ens160.getAQI()))))) + String("级")));
k10.canvas->canvasText((String(ens160.getAQI()) + String("级")), 140, 90, 0x0000FF, k10.canvas->eCNAndENFont24, 50, true);
k10.canvas->updateCanvas();
delay(1000);
}
if (asr.isDetectCmdID(8+1)) {
asr.speak((String("挥发性有机化合物指数是") + String((String(ens160.getTVOC())))));
k10.canvas->canvasText(ens160.getTVOC(), 140, 150, 0x0000FF, k10.canvas->eCNAndENFont24, 50, true);
k10.canvas->updateCanvas();
delay(1000);
}
}
}
安防系统
/*!
* MindPlus
* esp32s3bit
*
*/
#include "asr.h"
#include <ESP32Servo.h>
#include "unihiker_k10.h"
#include <DFRobot_HuskyLens.h>
// 创建对象
DFRobot_HuskyLens huskylens;
Servo myservo_1;
int servoPin_1 = 1 ;
UNIHIKER_K10 k10;
uint8_t screen_dir=2;
ASR asr;
// 主程序开始
void setup() {
k10.begin();
ESP32PWM::allocateTimer(0);
ESP32PWM::allocateTimer(1);
ESP32PWM::allocateTimer(2);
ESP32PWM::allocateTimer(3);
myservo_1.setPeriodHertz(50);
myservo_1.attach(servoPin_1, 500, 2500);
k10.initScreen(screen_dir);
k10.creatCanvas();
asr.setAsrSpeed(2);
huskylens.beginI2CUntilSuccess();
huskylens.writeAlgorithm(ALGORITHM_FACE_RECOGNITION);
myservo_1.write(55);
k10.canvas->canvasText("基于K10家庭安防系统", 0, 0, 0x0000FF, k10.canvas->eCNAndENFont24, 50, true);
k10.canvas->canvasText("入户门状态:", 10, 30, 0x0000FF, k10.canvas->eCNAndENFont24, 50, true);
k10.canvas->canvasText("火灾状态:", 10, 90, 0x0000FF, k10.canvas->eCNAndENFont24, 50, true);
k10.canvas->updateCanvas();
}
void loop() {
huskylens.request();
if (huskylens.isLearned(1)) {
if (huskylens.isAppearDirect(HUSKYLENSResultBlock)) {
if (huskylens.isAppear(1,HUSKYLENSResultBlock)) {
k10.canvas->canvasText("打开", 140, 30, 0xFF0000, k10.canvas->eCNAndENFont24, 50, true);
k10.canvas->updateCanvas();
asr.speak("入户门已打开,欢迎主人回家");
myservo_1.write(10);
delay(3000);
myservo_1.write(55);
k10.canvas->canvasText("关闭", 140, 30, 0xFF0000, k10.canvas->eCNAndENFont24, 50, true);
k10.canvas->updateCanvas();
asr.speak("入户门已关闭");
}
}
}
if (((analogRead(P1))<2000)) {
asr.speak("火灾隐患警报,请撤离");
digital_write(eP9, HIGH);
k10.canvas->canvasText("警报", 140, 90, 0xFF0000, k10.canvas->eCNAndENFont24, 50, true);
k10.canvas->updateCanvas();
delay(1000);
}
else {
digital_write(eP9, LOW);
k10.canvas->canvasText("安全", 140, 90, 0x00FF00, k10.canvas->eCNAndENFont24, 50, true);
k10.canvas->updateCanvas();
}
}
rzyzzxw2025.02.02
很全面