掌控版实现抢答器功能

一、实验目的及要求

实现掌控板抢答器功能。

二、实验原理与内容

基于TinywebDB实现云数据库出题
基于掌控板实现按键抢答和判题
基于MQTT实现多端同步通讯

三、实验软硬件环境

硬件:掌控板
软件:Mind+

四、实验过程(实验步骤、记录、数据、分析)

(一)实验抢答方和裁判方准备:WI-FI连接、设置服务器参数、MQTT初始化参数、TingWebDB数据库的数据录入。

①程序
在这里插入图片描述
②配置服务器参数(网址:http://tinywebdb.appinventor.space/,连接数据库,在数据库中设置相关操作的标签以及抢答的问题。)
在这里插入图片描述
TinyWebDB详细信息:
在这里插入图片描述
数据库标签信息:其中ok标签用于裁判判断开始计时,PID标签用于计时暂停,q标签用于判断题目,q1-q5标签表示5个不同的问题。在这里插入图片描述
③初始化mqtt配置(网址为:http://iot.dfrobot.com.cn/),MQTT参数设置如下,topic_0,topic_1,topic_2分别为三个抢答方接受mqtt信息)
在这里插入图片描述
Easy IoT用户的信息以及三个topci信息在这里插入图片描述
④源码:
在这里插入图片描述
(二)裁判出题
定义一个裁判方出题的函数,负责掌控整个答题过程。裁判按下A键后,读取数据库标签所包含的内容,并从1~5题目中随机选取题目出题,出题后裁判方的掌控板上显示出题成功,按下B键则开始抢答计时。
在这里插入图片描述
源码:
在这里插入图片描述
(三)抢答方
定义一个抢答方函数,负责进行抢答,此时的裁判不参与抢题,抢答方在连接mqtt、wifi和服务器后,掌控版上会显示(待裁判出题完成后,按P刷新),刷新后,掌控板会显示当前的题目。如果抢答者将按钮A+B同时按下,则同时开始抢答,抢答开始的同时掌控板上开始计时时间,若有一位选手抢答成功,该名选手掌控板三个会亮绿灯,并且屏幕出现选项提示(触摸按键Y为是,触摸N按键为否),而其他选手的掌控板则出现“抢答失败!”提示,掌控板不亮灯。
在这里插入图片描述
源码:
在这里插入图片描述
计时器:
在这里插入图片描述
计时器源码:

void DF_JiShiQi() {
	mind_n_flag = 1;
	mind_n_my_float_variable = millis();
	while (1) {
		if ((mind_n_flag==1)) {
			mind_n_now = (millis() - mind_n_my_float_variable);
			mind_n_ms = (((int)mind_n_now) % ((int)1000));
			mind_n_s = (((int)(mind_n_now / 1000)) % ((int)60));
			mind_n_min = (floor(((mind_n_now / 1000) / 60)));
			display.setCursor(37, 22);
			display.print((String((String((String((String(mind_n_min).toInt())) + String(":"))) + String((String((String(mind_n_s).toInt())) + String(":"))))) + String((String(mind_n_ms).toInt()))));
		}

抢答、回答及等待正确与否结果(抢答成功方选择是否答案,并把回答的选择发送到MQTT后台,发送成功在掌控板上会显示回答成功并等待回答结果,有裁判方在后台判断回答的结果是否正确)
在这里插入图片描述
(四)裁判判题
待抢答成功的选手选择选项之后,该名选手的掌控板会将选项信息发送到Easy Iot工作平台,裁判可以在平台上判断选手回答是否正确并给予回复。
(1)Easy Iot显示各选手抢答时间
在这里插入图片描述
(2)抢答成功者回答问题的选项
在这里插入图片描述
(3)裁判判题并给出回复
在这里插入图片描述
(五)抢答方接受回答结果
裁判方在mqtt可以在后台接收到 topic_1、topic_2 、topic_3抢答方所回答问题的答案,若回答问题正确,则可以在后台发送“对”到指定的抢答方,接收到信息后,抢答方的掌控板全黑显示“回答正确加一分”并亮绿灯,反之显示“回答错误”亮红灯。
在这里插入图片描述
五、测试/调试及实验结果分析

①裁判方和抢答方连接wifi、mqtt、服务器成功后
在这里插入图片描述
②当裁判方按下A键出题,裁判方和抢答方掌控板均显示题目
在这里插入图片描述
③裁判方按下B键进行抢答计时
在这里插入图片描述
④抢答成功的一方掌控板上显示抢答成功,其他显示抢答失败,成功抢答的重新出现问题及选项,并且全部亮绿灯
在这里插入图片描述
⑤抢答成功的一方选择答案选项,通过mqtt传输答案到后台供裁判方判断,掌控板显示回答成功,等待正确与否。
在这里插入图片描述
⑥后台裁判放判断回答正确后,显示回答正确加一分,同时亮绿灯,失败则回答错误并亮红灯
在这里插入图片描述
在这里插入图片描述
⑦重新出题后可刷新新的题目
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值