【掌控未来制造营】
课程名称:IOT对讲机
教师姓名:陈厚节
年级:初三及以上的学生。
课时安排:2课时,每课时45分钟。
一、学生分析:
物联网是21世纪最具有前景,最火爆的研究领域之一,‘万物互联’是未来的趋势,因此很有必要让学生提前了解这个一热门领域,所以我们利用掌控板制作了一个可以利用IOT进行通信的对讲机。
二、教学目标:
知识与技能
1. 了解MQTT、及其通信机制;
2. 了解常见物联网平台以及账号申请;
3. 了解计算机中断的概念;
4. 学习掌控中板中MQTT的使用及编程方式;
5. 学习掌控中板中语音识别的使用及编程方式;
6. 学习掌控板上连接wifi、按键和OLED的使用和编程方式;
7. 学习掌控版上触摸按键、蜂鸣器的使用和编程方式;
8. 学习编程语句一直重复执行与如果执行的区别和使用方式;
过程与方法
1. 通过学生制作IOT对接机的过程,让学生体会、熟悉MQTT的通信机制;
2. 项目设计中实现多学科交叉融合。
情感态度与价值观
1. 培养学生发现问题、解决问题的能力;
2. 培养学生自主探究学习能力、动手实践能力。
三、重难点:
教学重点
1. MQTT 发布-订阅消息传递模式;
2. 掌控板中发布、订阅主题的使用方法;
3. 掌控版中语音识别模块的使用方法;
教学难点
1. MQTT 发布-订阅消息传递模式;
2. 掌控板中订阅主题的使用方法;
四、课前准备:
硬件
掌控板、数据线。
软件
Mpython: :https://steamaker.oss-cn-shenzhen.aliyuncs.com/autoUpdate/mpython-pro/mPython%20Setup%200.3.10.exe
教学过程:
1. 时间管理
本课程共分为两个课时,每课时45分钟。第一节课:项目引入、物联网平台账号申请以及基本使用方法。第二节课:使用掌控板实现IOT对讲机项目。
2. 课程导入
(1) MQTT
MQTT是一种基于发布 - 订阅的“轻量级”消息传递协议,用于在TCP / IP协议之上使用,它适用于需要“小代码占用”或网络带宽有限的远程位置的连接。 能实现一对多通信(人们称之为发布或订阅型)的协议。它由3 种功能构成,分别是中介(broker)、发布者(publisher)和订阅者(subscriber)。
(2) MQTT的通信方式
中介承担着转发MQTT 通信的服务器的作用。相对而言,发布者和订阅者则起着客户端的作用。发布者是负责发送消息的客户端,而订阅 者是负责接收消息的客户端。MQTT 交换的消息都附带“主题”地址,各个客户端把这个“主题”视为收信地址,对其执行传输消息的操作。 形象地比喻一下,跟现实生活中的房地产中介是一样的。业主(发送者)将房屋上架高新区二手房板块(主题),然后二手房app(中介)会自动将信息推送给关注了高新区二手方的买家(订阅者)。这就是 MQTT 的发布订阅模型。
(3) 物联网平台介绍
OneNet 中国移动物联网平台:https://open.iot.10086.cn/
优点:支持多种通讯协议,如MQTT,HTTP等;可编辑应用功能,可制作数据显示和开关控件的页面UI。
缺点:平台操作较为复杂、与官方的MQTT稍有不同,对入门者比较不好理解。
DFRobot Easy IoT 物联网平台:https://iot.dfrobot.com.cn/index.html
优点:操作简单,适合入门者学习。
缺点:不能自定义topic;缺少应用端的UI界面编辑,无法呈现数据。
Adafruit IO 物联网平台:https://io.adafruit.com/
优点:操作简单,适合MQTT教学;有丰富的dashboard编辑功能,可以很好的呈现数据;支持IFTTT,可关联很多的互联网服务,玩法多样。
缺点:国外服务器,连接不稳定,经常连接不上
(4) DFRobot Easy IoT 申请与配置
①注册账号
输入手机号,获取验证码,输入验证码,初始密码即可。
②添加新主题
点击添加新设备即可生成新的主题;可以通过点击发送消息,直接给主题发送消息;查看该主题消息记录可以通过查看详情来实现。
③ IOT关键信息
可以通过点击这个按钮,显示Iot的两个关键信息-用户名和密码。
(5) MQTT的简单应用-MQTT对接机
图中为传统的对讲机,这种对讲机依靠无线电来传输信号,实现短距离传输。不能进行超远距离传输,前面我们一起学习了一些物联网的基础知识,加上人工智能领域的语音识别-能够自动将语音转换为文字的技术,来完成一个能够实现超远传输的IOT对讲机。
3. 获取新知识
(1) 如果执行与一直重复执行
如果执行是选择结构,用于判断给定的条件,根据判断的结果来控制程序的流程。常见的有单分支选择结构、双分支选择结构、多分支选择结构以及嵌套的分支结构,形式比较灵活多变。
一直重复执行代码块内部的程序
(2) 文本拼接;
功能:将两个文本进行拼接在一起。
(3) 变量的声明和使用;
功能:声明一个变量,用来存储数据。
(4) 触摸按键;
功能:当触摸按键被触摸/释放时,执行何种操作。触摸按键可以触发中断,中断是指计算机运行过程中,出现某些意外情况需主机干预时,机器能自动停止正在运行的程序并转入处理新情况的程序,处理完毕后又返回原被暂停的程序继续运行 。
(5) OLED显示使用;
功能:控制OLED屏幕显示相应内容
(6) 播放音调使用;
功能:控制掌控板输出某种音调的音乐,P6引脚就是掌控板上面蜂鸣器正极接的管脚。
(7) 语音识别;
功能:语音识别,生成文字。
(8) 连接wifi;
功能:输入wifi名称,密码。
功能:可以判断是否连接WiFi
(9) 设置连接MQTT;
功能:Easy IoT的基本配置
(10) MQTT发送信息至某主题;
功能:向指定主题发送消息。
(11) MQTT订阅某主题接收消息;
功能:等待主题消息,当接受到消息,执行某种操作
4. 程序实现(Mixly)
项目目标:制作能够发送、接受消息的IOT对讲机。
(1) 连接wifi、MQTT服务器,连接成功后给予操作提示;
(2) 设置订阅主题,接收到消息后,鸣笛并且显示内容;
(3) 当P键被触摸后,开始语音识别,并且显示转换结果;
(4) 当N键被触摸后,发送语音识别结果,并且显示发送状态;
完整流程图、程序:
注意事项:上程序是对讲机A的程序;对讲机B的程序只需要将MQTT配置的client ID 做一个修改,将订阅主题 与 发送信息的主题对换。这样就不会出现,对讲机接收到自己消息的情况了。
五、演示视频:
点赞