Arduino错误预期在')'令牌之前的主要表达式

时间:2019-11-25 17:18:51

标签: arduino arduino-ide nodemcu adafruit ifttt

我在nodemcu板上运行此代码,但不断收到错误消息

//Google Assistant Home Automation
#include < ESP8266WiFi.h >
#include "Adafruit_MQTT.h"
#include "Adafruit_MQTT_Client.h"

#define Relay1            D1
#define Relay2            D2
#define Relay3            D3
#define Relay4            D4

#define WLAN_SSID       "   ----   "             // Your SSID
#define WLAN_PASS       "  ----  "        // Your password

/************************* Adafruit.io Setup
*********************************/

#define AIO_SERVER      "io.adafruit.com" //Adafruit Server
#define AIO_SERVERPORT  1883
#define AIO_USERNAME    "   -----   "            // Username
#define AIO_KEY         "      ------------      "   // Auth Key

//WIFI CLIENT WiFiClient client;

Adafruit_MQTT_Client mqtt(& client, AIO_SERVER, AIO_SERVERPORT,
    AIO_USERNAME, AIO_KEY);

Adafruit_MQTT_Subscribe Light1 = Adafruit_MQTT_Subscribe(& mqtt,
    AIO_USERNAME"/feeds/Relay1"); // Feeds name should be same everywhere
Adafruit_MQTT_Subscribe Light2 = Adafruit_MQTT_Subscribe(& mqtt,
    AIO_USERNAME "/feeds/Relay2"); Adafruit_MQTT_Subscribe Light3 =
        Adafruit_MQTT_Subscribe(& mqtt, AIO_USERNAME "/feeds/Relay3");
Adafruit_MQTT_Subscribe Light4 = Adafruit_MQTT_Subscribe(& mqtt,
    AIO_USERNAME "/feeds/Relay4");

void MQTT_connect();

void setup() {
    Serial.begin(115200);

    pinMode(Relay1, OUTPUT); pinMode(Relay2, OUTPUT);
    pinMode(Relay3, OUTPUT); pinMode(Relay4, OUTPUT);
    // Connect to WiFi access point.   Serial.println(); Serial.println();   Serial.print("Connecting to ");  
    Serial.println(WLAN_SSID);

    WiFi.begin(WLAN_SSID, WLAN_PASS); while (WiFi.status() !=
        WL_CONNECTED) {
        delay(500);
        Serial.print(".");
    } Serial.println();

    Serial.println("WiFi connected"); Serial.println("IP address: ");
    Serial.println(WiFi.localIP());
    mqtt.subscribe(& Light1); mqtt.subscribe(& Light3); mqtt.subscribe(& Light2); mqtt.subscribe(& Light4);
}

void loop() {
    MQTT_connect();


    Adafruit_MQTT_Subscribe * subscription; while ((subscription =
        mqtt.readSubscription(20000))) {
        if (subscription == & Light1) {
            Serial.print(F("Got: "));
            Serial.println((char *)Light1.lastread);
            int Light1_State = atoi((char *)Light1.lastread);
            digitalWrite(Relay1, Light1_State);

        }
        if (subscription == & Light2) {
            Serial.print(F("Got: "));
            Serial.println((char *)Light2.lastread);
            int Light2_State = atoi((char *)Light2.lastread);
            digitalWrite(Relay2, Light2_State);
        }
        if (subscription == & Light3) {
            Serial.print(F("Got: "));
            Serial.println((char *)Light3.lastread);
            int Light3_State = atoi((char *)Light3.lastread);
            digitalWrite(Relay3, Light3_State);
        }
        if (subscription == & Light4) {
            Serial.print(F("Got: "));
            Serial.println((char *)Light4.lastread);
            int Light4_State = atoi((char *)Light4.lastread);
            digitalWrite(Relay4, Light4_State);

        }
    }

}

void MQTT_connect() {
    int8_t ret;

    if (mqtt.connected()) {
        return;
    }

    Serial.print("Connecting to MQTT... ");

    uint8_t retries = 3;
    while ((ret = mqtt.connect()) != 0) {
        Serial.println(mqtt.connectErrorString(ret));
        Serial.println("Retrying MQTT connection in 5 seconds...");
        mqtt.disconnect();
        delay(5000);
        retries--;
        if (retries == 0) {
            while (1);
        }
    } Serial.println("MQTT Connected!");
}

它在前几行中也弹出了一个错误#define Relay1 D1

  

https://i.stack.imgur.com/yyfqP.png

删除了D1,D2,D3和D4后,我得到了错误

  

在')'令牌错误之前预期的主要表达式

此行

  

digitalWrite(Relay4,Light4_State);

0 个答案:

没有答案