IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> 基于物联网的师生呼叫系统 -> 正文阅读

[嵌入式]基于物联网的师生呼叫系统

本文系湛江市第十七中学星火创客团队参赛项目,转载请保留声明


作品所用到的软件

  1. Mind+
  2. LaserMaker
  3. App Inventor

作品所用到的硬件

  1. 掌控板
  2. 掌控I/O扩展板
  3. Speech Synthesizer Bee语音合成模块

App所需环境

  1. App Inventor广州服务器?
  2. Easy IoT物联网平台?

注:本作品使用的MQTT模块在App Inventor平台是没有集成的,需要手动添加扩展才能使用,下载链接见文末。

创作背景

在学校的日常生活中我们发现,当老师需要学生执行某些事情,例如需要学生去办公室一趟、让课代表催交作业时,总是需要一个学生充当“传话人”的身份。

因为老师事务繁多,不可能什么事情都亲力亲为,而中小学是不允许学生携带手机进入校园的,老师没有通讯方式可以联系到学生,就会造成老师与学生之间无法联系的情况。

于是我们想到,可以制作一款师生呼叫系统,开发一个教师手机App端与教室端,它们之间通过WiFi+MQTT进行通讯,当老师需要传达指令时,通过手机App发送到教室端显示。

当教室端接收到老师发出的指令后,会通过语音合成模块读出消息,学生看到消息后即可执行老师的指令。这个作品减少了不必要的麻烦,提高了效率。

演示视频

教室端

1.初始化

在这里插入图片描述
设置一个名为“时间”的变量,设为1,这个在后文再详细讲。

然后初始化语音合成模块、物联网模块并连接WiFi,都是正常操作了。

2.接收消息

在这里插入图片描述
当收到消息时,先判断消息中是否包含“紧急”,若包含则板载灯亮起,并通过语音合成模块将消息读出来,重复执行直到按下A键。

3.“声音”变量

考虑到这个作品是放在教室中使用的,如果在上课的时候收到消息并播放语音,会打断老师的讲课,所以在初始化的时候设定了一个变量“声音”为1,即声音为打开状态;

若按下B键则将“声音”设为0,即声音为关闭状态,在上文收到消息时,判断完是否为重要消息后,会判断“声音”状态是否为1,若不为1则语音合成模块不会播放消息。
在这里插入图片描述

4.外观设计

外观设计使用软件为 LaserMaker ,通过激光切割机切割椴木板将外观烧出来。
在这里插入图片描述

手机App端

1.新建项目

打开App Inventor平台,新建一个项目:
在这里插入图片描述

2.设计UI

设计好App的界面,这里不详细展开说明:
在这里插入图片描述

3.初始化

首先将消息列表清除,然后将连接状态设为未连接的开始状态。

在这里插入图片描述

4.设定变量

在这里插入图片描述
班级列表:设定八个班的名称,在初始化中设定这个变量为下拉框的元素,起到选择发送班级的作用:
在这里插入图片描述
topic:一个空变量,起到存储用户选择的班级topic的作用;

班级名称:一个空变量,起到存储用户选择的班级的作用;

5.选择班级下拉框

在这里插入图片描述
将用户选择的班级匹配成对应的topic,并将topic和班级名称相对应存入到前面提到的空变量中。

6.连接MQTT

在这里插入图片描述
当“连接”按钮被按下时,先判断“topic”变量是否为空,用户在连接前是否已选择要发送消息的班级;

如果已经选择了班级,则调用MQTT模块连接Easy Iot物联网平台:

ipAdreess是物联网平台的地址,默认填“iot.dfrobot.com.cn”即可;
port是连接的端口,填“1883”即可;
idDevice填任意9位数即可;
userName是你物联网平台上的Iot_id(user)
password是物联网平台上的Iot_pwd(password),均直接复制粘贴即可。

在这里插入图片描述
接着将“连接状态”变量设为1,判断是否成功订阅topic。

7.发送消息

在这里插入图片描述
当“发送命令”按钮被按下时,先判断连接状态是否为0(即是否为未连接状态),如值为true,则继续执行下面的代码。

判断完连接状态后,再判断用户发送的消息中是否包含屏蔽词,如果值为false,则判断文本输入框中是否有文本。

判断完上面的所有条件都为true后,则调用MQTT模块发送文本输入框中的文字到物联网平台上,再将文本输入框清空。

8.显示消息

成功发送消息后,将发送的消息显示在App下方的文本框中:
在这里插入图片描述

9.接收消息

收到消息时,将消息显示在文本框中:
在这里插入图片描述

10.其他代码

在这里插入图片描述
起到打开其他屏幕和清除消息列表的作用。

到这里,代码部分已经编写完了。


11.其他屏幕的UI设计

在这里插入图片描述
在这里插入图片描述

下载链接

MQTT模块扩展:co.com.dendritas.MqttTCP.aix

改进方向

考虑到一些学校可能没有实现网络覆盖全校,以后可以制作一款基于LoRa方案的师生呼叫系统,实现在无网络的环境下也能进行通讯。

本文系湛江市第十七中学星火创客团队参赛项目,转载请保留声明

  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章      下一篇文章      查看所有文章
加:2021-07-27 16:23:50  更:2021-07-27 16:25:18 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/25 18:38:00-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码