Day8:一款无线抢答系统的实现过程
基于LoRa+蓝牙+掌控板+AppInventor方案实现的一款无线抢答系统,通过手机App下达答题命令到裁判端,再由裁判端分发命令并捕捉抢答信息。
演示视频详见:《基于LoRa与蓝牙技术的无线抢答器》http://www.bilibili.com/video/BV1jw41197UH
设计思路详见 Day7:一款无线抢答系统的设计思路
目标实现
主持人App端可以通过蓝牙与掌控板通讯;
主持人掌控板端可以通过LoRa发出指令;
两个选手端可以通过LoRa发送消息确定抢答方;
选手端自动判断选手回答正确与否;
选手端自动统计选手得分;
消息定义因为使用了LoRa与蓝牙进行通讯,所以我们需要定义消息,用来判断程序该做什么:
蓝牙接收s(115)开始抢答 发送C
t(116)下一题 发送D
A(65) 发送正确选项 发送A
B(66) 发送正确选项 发送B
LoRa接收1(49)选手回答正确
0(48)选手回答错误
a(97)选手1抢答成功
b(98)选手2抢答成功
主持人App端UI设计
程序编写连接蓝牙其中唯一编号为:00001101-0000-1000-8000-00 ...
Day7:一款无线抢答系统的设计思路
主要探讨了有关设计一款无线抢答器的基本思路,通过不同的通讯方式之间比较出适合本作品的最优方案。实现过程请见:Day8:一个无线抢答系统的实现过程。
基本思路这套系统分为三个端,分别为主持人App端、主持人掌控板端与选手端。
其中主持人App端负责发出正确选项、开始抢答、下一题等指令。
主持人掌控板端负责将主持人App端发出的消息转发给下方的选手端。
选手端负责判断选手的抢答与否,并自动给分。
通讯方式前面谈到,主持人App端需要发送指令给主持人App端并转发给选手端,其中的通讯方式我们有以下几种方案:
方案一所有平台端联网,使用WiFi+MQTT方案:
优点1.连接方便,无需主持人掌控板端转发消息;
2.无需其他模块,使用板载WiFi即可;
3.可连接平台端数量多;
缺点 1.不稳定,延迟受网速影响,无法做到同步抢答;
2.需要网络支持,环境受限;
3.WiFi距离有限;
总结此方案虽然行得通,但是不稳定性太高,容易出现错误,pass.
方案二所有平台端使用掌控板蓝牙:
手机作为客户端只能连接一个蓝牙服务端,而选手端肯定不止一个,pass.
方案三所有平台端使用LoRa通讯:
...
Day6:LoRa模块的使用
本文介绍了LoRa模块的组网通讯方式以及组网跳级,详细说明了LoRa模块间互相通讯的步骤和方法。同时提供了继电器连接的电路图和程序。
模块设置完全对等的透明组网模式设置方法模块类型一致并都为主模块类型,用户接口模式一致并都为透明模式。 在此种组网模式下,每个模块串口接收到数据,都透明的广播发送到其它的模块,模块接收到别的模块发送的数据为纯透明的应用数据。用户设备只能发广播数据,不需要管理其它模块的通讯短地址。
步骤1.按1、2、3顺序读取当前模块的参数配置。2.红色的参数设置成一样,蓝色圈选的信道和网络ID同一小组的设置成一样;绿色圈选的模块地址各人都不一样。3.点写配置。配置成功时软件发送框和接收框会分别显示下图信息↓
测试通讯1、官方配置和测试工具(只能收发16进制):2、可使用Xcom、sscom等串口调试软件,原理与官方工具相同,这里不作演示。
发送程序
接收程序其实就是普通的串口收发程序,与前两天的蓝牙接收程序大同小异。
模块介绍组网跳级介绍
MESH 多径路由MESH 路由协议会综合多种选择算法进行路由的筛选,包括距离矢量、信号质量(链路状态)和节点剩余电量。
1、ME ...
Day5:蓝牙5.0模块与AppInventor通讯
蓝牙5.0模块与AppInventor通讯蓝牙配对过程配对过程详见昨天的教程:Day4:蓝牙4.0与5.0模块的使用
掌控接收代码没什么好说的,就是简单的串口接收程序:
如果手机端发送a,在掌控板端即收到a的ASCII码97,这时开灯;如果手机端发送b,在掌控板端即收到b的ASCII码98,这时关灯。
App发送程序首先打开蓝牙调试器App,查看蓝牙模式的UUID:我们可以获取到以下两个UUID:0000fff0-0000-1000-8000-00805f9b34fb0000fff2-0000-1000-8000-00805f9b34fb(上面软件显示的第二个UUID是错误的)
接着我们去到App Inventor的开发平台 https://app.wxbit.com/
新建一个项目,然后在左边组件面板点击通信连接,然后将BluetoothLE这个组件拖到中间的手机屏幕中,添加这个组件接着我们去到编程界面,将上面找到的UUID相对应填入其中:
服务UUID对应的是软件中的透传服务UUID特征UUID对应的是软件中的透传TX特征的UUID其他部分大同小异,这里不作阐述,只放出完整代码作参 ...
Day4:蓝牙4.0与5.0模块的使用
蓝牙4.0无线通讯模块配对过程1、使用arduino.exe、Mind+或sscom等串口通讯软件打开蓝牙串口,配置成波特率115200,不要输出结束符,然后发送+++进入AT模式。
2、AT+VERSION=? 可以查询下固件版本(非必须步骤)一定要确认下方的结束符发送部分改成了发送“NL和CR”(即自动在命令后加上换行和回车一起发送过去),以下的AT命令部分也都需要确认这个设置。Arduino界面:Mind+界面:3、AT+ROLE=? 查询当前BLE芯片的主从机状态(默认值为ROLE_PERIPHERAL,从机角色)。需要将两块蓝牙修改为一主一从才能互相收发。主模式是ROLE_CENTRAL4、使用AT+ROLE=ROLE_CENTRAL 将一块蓝牙模块设置工作在主机状态下(另一块设置为从机角色)5、再次使用AT+ROLE=?确认修改主机角色成功。6、使用AT+NAME=xxxxxx 修改蓝牙设备名字。
推荐快速设定方法从机设定:AT+SETTING=DEFPERIPHERAL 恢复成从机模式的初始设定AT+NAME=xxxxxx 改成你自定义的名字AT+MAC=? 查询当前B ...
Day3:控制MP3模块
手势音乐盒按钮控制模式
手势控制模式
主程序
Day2:党史问答系统
党史问答系统今年是中国共产党成立100周年,开展党史学习教育活动作为庆祝活动中的一项贯穿全年的重要活动,正在全国广大党员和群众中火热地进行着。教育活动形式多样,有参观教育基地、社区宣讲等。作为创客,我们有没有创新的方式进行学习呢?于是,我们想到了制作一个简易的党史知识答题系统。
该系统具有随机出题的功能,带有语音识别功能。这个项目使用的都是开源软硬件资源,便于广大创客朋友们学习制作。而且,由于可自行编程,题库可按需更换,功能也可以进行不断地升级。
此系统分为两种方式实现主要功能,分别为在线方式与离线方式,在线模式需WiFi支持,而离线模式则无需网络支持即可使用。
数据库首先需要实现随机抽题,就需要一个题库,这里使用TinyWebDB服务器
将题目和对应的答案添加进数据库:
演示视频https://www.bilibili.com/video/BV1z64y1z7Ug/
在线方案实现过程首先打开Mind+,进入扩展,点击用户库,搜索wifi,即会出现WiFi语音识别,点击加载即可。
接着设定一个随机数,从数据库中抽取对应编号的题目以及选项答案,并将其显示出来:
显示题目与答案后,用 ...
Day1:智能问答对话程序与智能灯系列
测试网络连接打开cmd,输入以下指令:
1ping 4.2.2.2
以上为谷歌的DNS服务器,延迟较高,可以尝试使用以下国内的DNS服务器:
1ping 223.5.5.5
1ping 223.6.6.6
当小黑窗显示内容为下图时,即证明网络连接是正常的:
智能问答对话程序机器API智能机器人API: https://www.sojson.com/api/semantic.html
接口地址:http://api.qingyunke.com/api.php?key=free&appid=0&msg=关键词
key 固定参数free
appid 设置为0,表示智能识别,可忽略此参数
msg 关键词,请参考下方参数示例,该参数可智能识别,该值请经过 urlencode 处理后再提交
返回结果:{"result":0,"content":"内容"}
result 状态,0表示正常,其它数字表示错误
content 信息内容
API De ...
阿里云IoT:读取掌控板环境数值
前言之前讲过了如何使用阿里云控制板载灯亮灭的实现过程,原理十分简单,仅仅是使用一个布尔值控制开关,属于云平台发送指令到硬件端执行。
今天来讲讲如何在硬件端发送数据至云平台,实现一个读取掌控板环境数值的程序,例如每隔半个小时发送一次声音光照强度及温湿度数值。
准备工作云平台关于阿里云的注册问题,已在阿里云IoT:控制掌控板板载灯亮灭中详细讲过,这里不再重复,不会的同学请自行重新学习一遍。
软件部分使用Mind+ V1.7.0 RC3.0版本;
在扩展部分选择网络服务中的“MQTT”及“Wi-Fi”;
在用户库中搜索json,添加json解析。
这些东西都会在后面使用到。
创建产品1.新建一个名为“DHT11”的产品进入控制台 https://iot.console.aliyun.com/product ;
点击左上角新建产品,
新建一个名为 “DHT11” 的产品,节点类型为直连设备:
产品创建完成后,将自动出现在产品列表中。
2.进行功能定义点击【查看】进行功能定义:
这里一共使用四个功能,分别对应着湿度、温度、声音分贝值、光照强度。
在填入功能名称时会真的匹配模板,选择合 ...
SIoT:App Inventor控制掌控板
简介SIoT简介 SIoT为一个为中小学STEM教育定制的跨平台的开源MQTT服务器程序,S指科学(Science)、简单(Simple)的意思。SIoT支持Win10、Win7、Mac、Linux等操作系统,支持虚谷号、树莓派等迷你电脑,一键启动,无需注册和设置即可使用。SIoT重点关注物联网数据的收集和导出,是采集科学数据的最好选择之一。
物联网 物联网(Internet of Things,缩写IoT)是互联网的一个延伸,互联网的终端是计算机(PC、服务器),而物联网的终端是硬件设备,无论是家电、工业设备、汽车、监测仪器,所有这些终端都可以互联,可以总结为万物互联。
MQTTMQTT(Message Queuing Telemetry Transport,消息队列遥测传输协议)是一个基于客户端-服务器的消息发布/订阅传输协议。MQTT协议是轻量、简单、开放和易于实现的,这些特点使它适用范围非常广泛。
前言DFRobot的论坛上已经有很多关于EasyIoT与App Inventor通讯的教程,而其他物联网平台例如OneNet和阿里云的也有不少和安卓端通讯的案例 ...