一、实验目的及要求
实现掌控板抢答器功能。
二、实验原理与内容
基于TinywebDB实现云数据库出题
基于掌控板实现按键抢答和判题
基于MQTT实现多端同步通讯
三、实验软硬件环境
硬件:掌控板
软件:Mind+
四、 实验过程(实验步骤、记录、数据、分析)
- 按照实验的基本套路,我们先来把前提条件给弄好。首先呢先弄好TinyWebDB这个云数据库的问题,先打开TinywebDB的官网,首先进到官网就是这个页面,然后你就可以在这个界面进行注册或者登录一个账号的操作。
登录成功后,就会得到一些基本的配置信息,你就可以在程序代码中根据相应的提示填写就好。
登陆成功后,就可以点击登录成功页面上方的数据浏览选项,就可以给实验需要的数据提供标签。下图就是我们本次实验所需要的数据(仅供参考)。
到这里呢,云数据库方面的问题就已经弄好了。接下来就到我们的老相识MQTT了,我们这次用的是Easy iot。老规矩,我们先进去Easy iot的官网看一下。
1.先注册一个账号
进入网站点击箭头所指的地方按照步骤进行注册,就可以获得一个账号。注册成功登录后的界面如下图所示。
/
登录进去后,先点击箭头所向的按钮,获得id和密码,这对下面的实验很重要。然后点击添加新的设备,添加三个设备。
到这里,这两个部分的准备就已经妥当。接下来就到了Mind+的准备了。老规矩,我们就在Miind+的拓展里面的主控板里面添加掌控板,在网络服务里面添加TinywebDB,wifi,MQTT这几种功能。如下图所示。
然后这个实验所有的准备都已经就绪。接下来就可以正式实验了。首先先看一下出题方的代码。
然后就到抢答方的代码。
基本的已经完成,现在来看一下,两方各自的完整代码。
出题方
/*!
* MindPlus
* mpython
*
*/
#include <MPython.h>
#include <DFRobot_Iot.h>
#include <mPython_tinywebdb.h>
// 动态变量
String mind_s_QiangDaXinXi, mind_s_WenTi;
volatile float mind_n_KaiShiJiShi, mind_n_XiTongJiShi, mind_n_JingDu, mind_n_Miao,
mind_n_Fen, mind_n_YaoYiYao, mind_n_XianZhi, mind_n_JiShiZhuangTai;
// 函数声明
void DF_XianShiShiJian();
void obloqMqttEventT2(String& message);
// 静态常量
const String topics[5] = {
"c3PBcmFMR","hZYvpiFGR","MzFOpiFMR","",""};
const MsgHandleCb msgHandles[5] = {
NULL,NULL,obloqMqttEventT2,NULL,NULL};
// 创建对象
DFRobot_Iot myIot;
mPython_TinyWebDB mydb;
// 主程序开始
void setup() {
mPython.begin();
dfrobotRandomSeed();
myIot.setMqttCallback(msgHandles);
myIot.wifiConnect("MEIZU 16th", "66666666");
while (!myIot.wifiStatus()) {
yield();}
display.setCursorLine(1);
display.printLine("Wi-Fi连接成功");
myIot.init("iot.dfrobot.com.cn","Z0h15mFMg","","WA2JcmKMgz",topics,1883);
myIot.connect();
while (!myIot.connected())