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);
}
效果图:
五、实验结论与体会
本次实验特别有趣,难度不高容易上手。通过这次学习初步了解了图形化编程的基本操作。