【实验一】篮球计分器 【实验二】实现SIOT上mqtt消息的通讯。利用APP INVENTOR 写一个APP,在APP上控制分数的增加。
连接掌控版 通过以下3步完成掌控板在Mind+中的连接设置。 将掌控板通过数据线连接到电脑; 打开Mind+软件,选择“上传模式” 单击“扩展” ,弹出如下窗口,选择“主控板”后,单击“掌控板”。 【实验一】图形化编程代码
【实验一】C语言代码
#include <MPython.h> #include <DFRobot_Iot.h> // 静态常量 const String topics[5] = {"1/1","2/2","3/3","",""}; // 创建对象 DFRobot_Iot myIot; // 主程序开始 void setup() { mPython.begin(); display.setCursorLine(1); display.printLine("开始连接WiFi"); myIot.wifiConnect("Huang", "88888888"); while (!myIot.wifiStatus()) {yield();} display.setCursorLine(1); display.printLine("WiFi连接成功"); myIot.init("192.168.137.1","602","","iot", topics, 1883); myIot.connect(); while (!myIot.connected()) {yield();} display.setCursorLine(2); display.printLine("MQTT连接成功"); delay(1000); display.fillScreen(0); display.setCursorLine(4); display.printLine("2018A14133黄仙龙"); while (!myIot.connected()) {yield();} } void loop() { if ((touchPadP.isTouched())) { myIot.publish(topic_0, "1分"); display.setCursorLine(1); display.printLine("1分"); rgb.write(0, 0x00FF00); rgb.write(1, 0x000000); rgb.write(2, 0x000000); display.fillInLine(2, 0); display.fillInLine(3, 0); } else if ((touchPadY.isTouched())) { myIot.publish(topic_1, "2"); display.setCursorLine(2); display.printLine("2分"); rgb.write(1, 0xFFFFFF); rgb.write(0, 0x000000); rgb.write(2, 0x000000); display.fillInLine(1, 0); display.fillInLine(3, 0); } else if ((touchPadT.isTouched())) { myIot.publish(topic_2, "3"); display.setCursorLine(3); display.printLine("3分"); rgb.write(2, 0x0000FF); rgb.write(0, 0x000000); rgb.write(1, 0x000000); display.fillInLine(1, 0); display.fillInLine(2, 0); } }【实验二】图形化编程代码
【实验二】C语言代码
#include <MPython.h> #include <DFRobot_Iot.h> // 动态变量 volatile float mind_n_DeFen; // 函数声明 void whenTopic0Received0(); void whenTopic0Received1(); void whenTopic0Received2(); // 静态常量 const String topics[5] = {"1/1","2/2","3/3","",""}; // 创建对象 DFRobot_Iot myIot; // 主程序开始 void setup() { mPython.begin(); myIot.setMqttCallback(topic_0, "1", whenTopic0Received0); myIot.setMqttCallback(topic_0, "2", whenTopic0Received1); myIot.setMqttCallback(topic_0, "3", whenTopic0Received2); display.setCursorLine(1); display.printLine("开始连接WiFi"); myIot.wifiConnect("Huang", "88888888"); while (!myIot.wifiStatus()) {yield();} display.setCursorLine(1); display.printLine("WiFi连接成功"); myIot.init("192.168.137.1","602","","iot", topics, 1883); myIot.connect(); while (!myIot.connected()) {yield();} display.setCursorLine(2); display.printLine("MQTT连接成功"); display.fillScreen(0); display.setCursorLine(4); display.printLine("2018A14133黄仙龙"); mind_n_DeFen = 0; } void loop() { } // 事件回调函数 void whenTopic0Received0() { mind_n_DeFen += 1; display.setCursorLine(1); display.printLine("加1分"); rgb.write(0, 0x00FF00); display.setCursorLine(2); display.printLine((String("总得分:") + String(mind_n_DeFen))); delay(1000); rgb.write(-1, 0x000000); } void whenTopic0Received1() { mind_n_DeFen += 2; display.setCursorLine(1); display.printLine("加2分"); rgb.write(1, 0x00FF00); display.setCursorLine(2); display.printLine((String("总得分:") + String(mind_n_DeFen))); delay(1000); rgb.write(-1, 0x000000); } void whenTopic0Received2() { mind_n_DeFen += 3; display.setCursorLine(1); display.printLine("加3分"); rgb.write(2, 0x00FF00); display.setCursorLine(2); display.printLine((String("总得分:") + String(mind_n_DeFen))); delay(1000); rgb.write(-1, 0x000000); }【实验一】
掌控版篮球计分器
【实验二】SIOT篮球计分器