dfrobot Mind+掌控板图形化编程

dfrobot Mind+掌控板图形化编程

一、实验软硬件环境

硬件:Mind +掌控板
软件:Mind IDE(版本:15.6)

二、实验目的及要求

实验一:光控灯
实验二:声控灯
实验三:语音控制灯
实验四:用mqtt在esay iot平台上实现信息发送和接收

三、实验原理与内容

实现Mind + IDE编程。

四、实验过程

核心代码截图

1、光控灯

图形化编程:
在这里插入图片描述
实现代码:


```python
#include <MPython.h>


// 主程序开始
void setup() {
 mPython.begin();
 display.setCursorLine(1);
 display.printLine("光照强度");
}
void loop() {
 display.setCursorLine(2);
 display.printLine((light.read()));
 if (((light.read())<100)) {
  rgb.write(0, 0x0000FF);
  delay(1000);
 }
 else {
  rgb.write(0, 0x000000);
 }
}

效果图:

在这里插入图片描述

2、声控灯

图形化编程:

在这里插入图片描述
实现代码:

#include <MPython.h>


// 主程序开始
void setup() {
 mPython.begin();
 display.setCursorLine(1);
 display.printLine("光照强度");
}
void loop() {
 display.setCursorLine(2);
 display.printLine((light.read()));
 if (((light.read())<100)) {
  rgb.write(0, 0x0000FF);
  delay(1000);
 }
 else {
  rgb.write(0, 0x000000);
 }
}

效果图:

在这里插入图片描述

3、语音识别灯

图形化编程:

在这里插入图片描述

实现代码:

#include <MPython.h>
#include <MPython_ASR.h>
#include <DFRobot_Iot.h>
// 函数声明
void DF_YuYinShiBie();
void DF_wifi();
// 创建对象
MPython_ASR mpythonAsr;
String      str_mpythonAsr_result;
DFRobot_Iot myIot;


// 主程序开始
void setup() {
 mPython.begin();
 DF_wifi();
 DF_YuYinShiBie();
}
void loop() {

}

// 自定义函数
void DF_YuYinShiBie() {
 display.fillScreen(0);
 while (1) {
  if ((buttonA.isPressed())) {
   while (!(!buttonA.isPressed())) {yield();}
   str_mpythonAsr_result=mpythonAsr.getAsrResult(4);
   display.setCursorLine(1);
   display.printLine((str_mpythonAsr_result));
   if (((String(str_mpythonAsr_result).indexOf(String("开灯")) != -1))) {
    rgb.write(0, 0x0000FF);
    delay(5000);
    rgb.write(0, 0x000000);
    display.fillInLine(1, 0);
   }
  }
  yield();
 }
}
void DF_wifi() {
 myIot.wifiConnect("602iot", "18wulian");
 display.setCursorLine(1);
 display.printLine("正在连接网络");
 while (!myIot.wifiStatus()) {yield();}
 display.fillInLine(1, 0);
 display.setCursorLine(1);
 display.printLine("网络连接成功");
 display.setCursorLine(2);
 display.printLine("ip地址:");
 display.setCursorLine(3);
 display.printLine(myIot.getWiFiLocalIP());
 delay(3000);
}

效果图:

在这里插入图片描述
4、用mqtt在esay iot平台上实现信息发送和接收

图形化编程:

在这里插入图片描述
实现代码:

#include <MPython.h>
#include <DFRobot_Iot.h>
// 函数声明
void onButtonAPressed();
void obloqMqttEventT0(String& message);
// 静态常量
const String topics[5] = {"T_GCbjdGg","OklCbjdGg","","",""};
const MsgHandleCb msgHandles[5] = {obloqMqttEventT0,NULL,NULL,NULL,NULL};
// 创建对象
DFRobot_Iot myIot;


// 主程序开始
void setup() {
 mPython.begin();
 myIot.setMqttCallback(msgHandles);
 buttonA.setPressedCallback(onButtonAPressed);
 myIot.wifiConnect("HONOR 30", "12345678");
 display.setCursorLine(1);
 display.printLine("正在连接网络");
 while (!myIot.wifiStatus()) {yield();}
 display.setCursorLine(2);
 display.printLine("连接网络成功");
 display.fillScreen(0);
 delay(2000);
 myIot.init("iot.dfrobot.com.cn","q0uh-COMR","","qAX2-jOGRz",topics,1883);
 myIot.connect();
 while (!myIot.connected()) {yield();}
 display.setCursorLine(1);
 display.printLine("mqtt连接成功");
 delay(3000);
 display.fillInLine(1, 0);
}
void loop() {

}

// 事件回调函数
void onButtonAPressed() {
 while (!(!buttonA.isPressed())) {yield();}
 myIot.publish(topic_1, "卓玉婵");
 display.fillScreen(0);
 display.setCursorLine(1);
 display.printLine("发送消息成功");
 delay(3000);
 display.fillInLine(1, 0);
}
void obloqMqttEventT0(String& message) {
 display.setCursorLine(1);
 display.printLine("您有新的消息!");
 rgb.write(-1, 0x0000FF);
 display.setCursorLine(2);
 display.printLine(message);
 delay(3000);
 rgb.write(-1, 0x000000);
 display.fillScreen(0);
}

效果图:

在这里插入图片描述

五、实验结论与体会

本次实验特别有趣,难度不高容易上手。通过这次学习初步了解了图形化编程的基本操作。

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

X 、case

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

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

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

打赏作者

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

抵扣说明:

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

余额充值