一、项目背景 [size=16.002px]随着物联网和人工智能技术的普及,智能家居逐渐融入日常生活。本项目依托《义务教育信息科技课程标准(2022年版)》中"物联网实践与探索"、"人工智能初步"等主题,以行空板K10为核心控制器,结合语音识别、传感器与执行器技术,设计一个简易智能家居系统。通过本项目,学生能够理解物联网系统的基本架构,掌握传感器与执行器的联动逻辑,同时培养跨学科问题解决能力,体现"做中学"的课程理念。 二、项目目标[size=16.002px]依据《义务教育信息科技课程教学指南》中**"数字化学习与创新"和"计算思维"**的核心素养目标,制定以下具体目标: 信息意识:理解语音识别、物联网技术对社会生活的影响,感知技术应用中的隐私与伦理问题。 计算思维:通过模块化设计实现语音指令解析、设备控制逻辑的算法设计,完成系统调试与优化。 数字化学习与创新:利用行空板K10的图形化编程环境,实现传感器与执行器的协同控制,培养软硬件综合实践能力。 信息社会责任:在开发过程中关注语音数据的安全性,思考技术应用的合理边界。
三、项目实施
1.所需器材
行空板K10

激光切割框架、LED、舵机、风扇电机
2.实现功能
语音识别控制开关灯、开关门、打开关闭风扇。
3.程序编写

- /*!
- * MindPlus
- * esp32s3bit
- *
- */
- #include "asr.h"
- #include "unihiker_k10.h"
- #include <Microbit_Motor.h>
- // 创建对象
- UNIHIKER_K10 k10;
- uint8_t screen_dir=2;
- ASR asr;
- AHT20 aht20;
- Microbit_Motor motorbit;
-
-
- // 主程序开始
- void setup() {
- k10.begin();
- pinMode(P0, OUTPUT);
- pinMode(P1, OUTPUT);
- k10.initScreen(screen_dir);
- k10.creatCanvas();
- asr.asrInit(CONTINUOUS, CN_MODE, 6000);
- while(asr._asrState == 0){delay(100);}
- asr.setAsrSpeed(2);
- k10.setScreenBackground(0x000000);
- k10.canvas->canvasClear();
- asr.addASRCommand(0+1, "kai men");
- asr.addASRCommand(1+1, "guan men");
- asr.addASRCommand(2+1, "kai deng");
- asr.addASRCommand(3+1, "guan deng");
- asr.addASRCommand(4+1, "da kai feng shan");
- asr.addASRCommand(5+1, "guan bi feng shan");
- }
- void loop() {
- k10.canvas->canvasText((String("当前温度:") + String(aht20.getData(AHT20::eAHT20TempC))), 3, 0x0000FF);
- k10.canvas->canvasText((String("当前光强:") + String(k10.readALS())), 5, 0x0000FF);
- k10.canvas->updateCanvas();
- if (asr.isDetectCmdID(0+1)) {
- motorbit.servo(S5, 50);
- asr.speak("门已打开");
- }
- if (asr.isDetectCmdID(1+1)) {
- motorbit.servo(S5, 100);
- asr.speak("门已关闭");
- }
- if (asr.isDetectCmdID(2+1)) {
- digitalWrite(P0, HIGH);
- asr.speak("灯已打开");
- }
- if (asr.isDetectCmdID(3+1)) {
- digitalWrite(P0, LOW);
- asr.speak("灯已关闭");
- }
- if (asr.isDetectCmdID(4+1)) {
- digitalWrite(P1, HIGH);
- asr.speak("风扇已打开");
- }
- if (asr.isDetectCmdID(5+1)) {
- digitalWrite(P1, LOW);
- asr.speak("风扇已关闭");
- }
- }
复制代码
四、实现效果

|
|
|
|
|
|