于掌控板实现简单的抢答器系统

本文介绍如何利用掌控板和TinywebDB、MQTT实现一个简单的抢答器系统。系统包括云数据库出题、按键抢答、多端同步通讯等功能,详细讲解了实验原理、软硬件环境和实验过程,包括主持人和选手端的代码实现。
摘要由CSDN通过智能技术生成

基于掌控板实现简单的抢答器系统/手动判断正误,随机发送题目

一、实验目的及要求
实现掌控板抢答器功能。
二、实验原理与内容
基于TinywebDB实现云数据库出题
基于掌控板实现按键抢答和判题
基于MQTT实现多端同步通讯
三、实验软硬件环境**
硬件:掌控板
软件:Mind+
四、实验过程
本项目是一个抢答器,它可以利用TinywebDB实现云数据库出题,通过MQTT(siot)实现多端同步通讯,同时还可以自动判断题目的正确

mqtt之中的设备:
1:选手接收来自客户端的题目
2:抢答编号发送
3:判断是哪个选手抢到
4:判断题目是否正确
5:答案选项

在这里插入图片描述
TinywebDB中的数据:
在这里插入图片描述
抢答器的工作流程:
准备工作:

数据库中插入一定数量的题目,插入后需要在控制端代码随机选择题目函数中修改随机数的范围与数目相等
至少有一个控制端一个选手端,可以有多个选手端

主持人按掌控板A键从TinywebDB利用随机数随机抽取题目,按B键确认发送给选手,避免题目出现重复的情况
在这里插入图片描述
主持人按B后选手接收到题目。
在这里插入图片描述
选手开始按A+B键抢答,抢到成功显示掌控板A或B回答,失败显示抢答失败。
抢答过程利用topic_1,当一个选手抢答成功立刻先主持人端和另一个选手端发送一条信息,主持人和另一个选手就知道了抢答情况。另一端选手收到这样一条信息就会显示抢答失败。在这里插入图片描述
在这里插入图片描述
显示回答的答案,由主持人判断对错
在这里插入图片描述

当选手回答完问题后,主持人端显示触摸P为正确,Y为错误。能够主观判断题目对错
在这里插入图片描述
当主持人触摸P键或者Y键选手端就能看到结果
在这里插入图片描述
主持人按下A,选手端清屏,显示等待主持人出题后抢答,进入新的一轮循环。

核心代码
在这里插入图片描述
发送题目代码
在这里插入图片描述
判断哪位选手抢答的代码
在这里插入图片描述
判断对错的代码
在这里插入图片描述
选手端
抢答代码
在这里插入图片描述
答题代码
在这里插入图片描述
图形化实现
主持人代码
在这里插入图片描述
选手1端代码
在这里插入图片描述
选手2端代码在这里插入图片描述
c代码
主持人端

#include <MPython.h>
#include <DFRobot_Iot.h>
#include <mPython_tinywebdb.h>

// 动态变量
String mind_s_qustion, mind_s_XuanShou1;
// 函数声明
void onButtonAPressed();
void obloqMqttEventT1(String& message);
void obloqMqttEventT4(String& message);
void pin27TouchCallback();
void onButtonBPressed();
void pin14TouchCallback();
// 静态常量
const String topics[5] = {
   "1/1","2/2","3/3","4/4","5/5"};
const MsgHandleCb msgHandles[5] = {
   NULL,obloqMqttEventT1,NULL,NULL,obloqMqttEventT4};
// 创建对象
DFRobot_Iot       myIot;
mPython_TinyWebDB mydb;


// 主程序开始

```c
void setup() {
   
	mPython.begin();
	dfrobotRandomSeed();
	myIot.setMqttCallback(msgHandles);
	buttonA.setPressedCallback(onButtonAPressed);
	touchPadP.setTouchedCallback(pin27TouchCallback);
	buttonB.setPressedCallback(onButtonBPressed);
	touchPadY.setTouchedCallback(pin14TouchCallback);
	myIot.wifiConnect("biao", "1234567890");
	while (!myIot.
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

梨花落-

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值