我编了一段代码,如下:
- /*!
- * MindPlus
- * mpython
- *
- */
- #include <MPython.h>
- #include <DFRobot_Iot.h>
- #include <DFRobot_NFC0231.h>
- #include <MPython_NtpTime.h>
-
- // 动态变量
- String mind_s_my_string_variable;
- // 函数声明
- void obloqMqttEventT0(String& message);
- void obloqMqttEventT1(String& message);
- // 静态常量
- const String topics[5] = {"3e2n6Qv4R","TfSME_DVR","","",""};
- const MsgHandleCb msgHandles[5] = {obloqMqttEventT0,obloqMqttEventT1,NULL,NULL,NULL};
- // 创建对象
- DFRobot_PN532_IIC nfc;
- DFRobot_Iot myIot;
- MPython_NtpTime ntptime;
-
-
- // 主程序开始
- void setup() {
- mPython.begin();
- myIot.setMqttCallback(msgHandles);
- nfc.begin();
- rgb.brightness(round(1));
- myIot.wifiConnect("CU_kr33", "enhtm6p2");
- delay(5000);
- for (int index = 0; index < 10; index++) {
- delay(1000);
- if (myIot.wifiStatus()) {
- rgb.write(1, 0x00FF00);
- delay(1000);
- rgb.write(1, 0x000000);
- display.setCursorLine(1);
- display.printLine("WiFi连接成功");
- myIot.init("iot.dfrobot.com.cn","RxXMewvVR","","RxXM6QD4gz",topics,1883);
- ntptime.setNtpTime(ntptime.UTCEast8_t, "ntp.ntsc.ac.cn");
- while (1) {
- display.setCursorLine(2);
- display.printLine((String((String((String(ntptime.localTime(ntptime.Year)) + String((String("\") + String(ntptime.localTime(ntptime.Month)))))) + String((String((String("\") + String(ntptime.localTime(ntptime.Date)))) + String("\"))))) + String((String(ntptime.localTime(ntptime.Hour)) + String((String("\") + String((String(ntptime.localTime(ntptime.Minute)) + String((String("\") + String(ntptime.localTime(ntptime.Second))))))))))));
- if (nfc.scan()) {
- display.setCursorLine(3);
- display.printLine(nfc.readUid());
- }
- if ((touchPadP.isTouched())) {
- display.fillScreen(0);
- display.setCursor(42, 22);
- display.print("MQTT");
- myIot.connect();
- while (!myIot.connected()) {
- display.setCursor(42, 40);
- display.print("连接中.");
- delay(1000);
- display.setCursor(42, 40);
- display.print("连接中..");
- delay(1000);
- display.setCursor(42, 40);
- display.print("连接中...");
- yield();
- }
- display.fillScreen(0);
- display.setCursorLine(1);
- display.printLine("MQTT连接成功");
- while (1) {
- if ((touchPadP.isTouched())) {
- display.setCursorLine(2);
- display.printLine("确定发送:成功");
- while (!((buttonA.isPressed()) || (buttonB.isPressed()))) {yield();}
- delay(100);
- if ((buttonA.isPressed())) {
- myIot.publish(topic_0, "成功");
- display.fillInLine(2, 0);
- }
- if ((buttonB.isPressed())) {
- display.fillInLine(2, 0);
- }
- }
- else if ((touchPadY.isTouched())) {
- display.setCursorLine(2);
- display.printLine("Mind+");
- }
- else if ((touchPadT.isTouched())) {
- display.setCursorLine(2);
- display.printLine("Mind+");
- }
- else if ((touchPadH.isTouched())) {
- display.setCursorLine(2);
- display.printLine("Mind+");
- }
- else if ((touchPadO.isTouched())) {
- display.setCursorLine(2);
- display.printLine("Mind+");
- }
- else if ((touchPadN.isTouched())) {
- display.fillScreen(1);
- }
- else {
- display.fillInLine(2, 0);
- }
- yield();
- }
- }
- yield();
- }
- }
- yield();
- }
- if ((!myIot.wifiStatus())) {
- rgb.write(1, 0xFF0000);
- display.setCursorLine(1);
- display.printLine("错误");
- delay(1000);
- rgb.write(1, 0x000000);
- while (1) {
- if (nfc.scan()) {
- display.setCursorLine(2);
- display.printLine(nfc.readUid());
- }
- yield();
- }
- }
- }
- void loop() {
-
- }
-
- // 事件回调函数
- void obloqMqttEventT0(String& message) {
- mind_s_my_string_variable = (String("0:") + String(message));
- for (int index = 0; index < 5; index++) {
- delay(1000);
- display.setCursorLine(3);
- display.printLine(mind_s_my_string_variable);
- yield();
- }
- while (!(buttonA.isPressed())) {yield();}
- display.fillInLine(4, 0);
- mind_s_my_string_variable = "N";
- }
- void obloqMqttEventT1(String& message) {
- mind_s_my_string_variable = (String("1:") + String(message));
- for (int index = 0; index < 5; index++) {
- delay(1000);
- display.setCursorLine(3);
- display.printLine(mind_s_my_string_variable);
- yield();
- }
- }
复制代码
在编辑并上传后使用MQTT网页发送消息,主控板有反应,但显示参差不齐,有遗漏,重复5次,次次差的不一样。
各位大神能帮我看看是什么问题吗?
|