#include expects “FILENAME” or <FILENAME>

sau khi mình đã bỏ tên vào rồi thì nó báo lỗi như vầy
unable to find string literal operator ‘operator""TCP’ with ‘const char [16]’, ‘unsigned int’ arguments
ở case 3

case 3: sendCommand("AT+CIPSTART=0,"TCP","+ HOST +","+ PORT,15,"OK"); break;

  • making đã trả lời bài viết này.

    PhmKhnhTon Bạn viết + các chỗi bị sai. nếu trong 2 dấu ngoặc kém có dấu ngoặc kém thì dùng dấu \ để đặt ở trước nhé. ví dụ "abc\“def”

    /*this is 100% working program just change your AP name pass and things speak password*/
    #include <SoftwareSerial.h>
    #define DEBUG true
    #define RX 8
    #define TX 7
    String HOST = "api.thingspeak.com";
    String PORT = "80";
    String AP = "XXXX";//your AP name
    String PASS = "XXXX"; //your AP password
    String API = "XxxXPF**V6**OEIL";//your API
    String field = "field1";
    int countTrueCommand;
    int countTimeCommand;
    boolean found = false;
    int valSensor = 1;
    SoftwareSerial esp8266(RX, TX);
    void setup() {
      Serial.begin(9600);
      esp8266.begin(115200);
      Serial.println("AT+CWJAP=\"" + AP + "\",\"" + PASS + "\"");
      sendCommand("AT", 5, "OK");
      sendCommand("AT+CWMODE=1", 5, "OK");
      sendCommand("AT+CWJAP=\"" + AP + "\",\"" + PASS + "\"", 15, "OK");
      countTrueCommand = 0;
    }
    void loop() {
      String getData = "GET / update ? api_key = " + API + "&" + field + " = " + String(valSensor);
      switch (countTrueCommand) {
        case 0: sendCommand("AT", 5, "OK"); break;
        case 1: sendCommand("AT + RST", 10, "OK"); break;
        case 2: sendCommand("AT + CIPMUX = 1", 5, "OK"); break;
        case 3: sendCommand("AT + CIPSTART = 0, \"TCP\",\"" + HOST + "\"," + PORT, 15, "OK"); break;
        case 4: sendCommand("AT+CIPSEND=0," + String(getData.length() + 4), 4, ">"); break;
        case 5: esp8266.println(getData); delay(1500); countTrueCommand++; break;
        case 6: sendCommand("AT+CIPCLOSE=0", 5, "OK"); break;
        case 7:
          Serial.println(valSensor);
          Serial.print(getData);
          Serial.print(",");
          Serial.println(getData.length());
          valSensor = random(100000); // random value, change with sensor value if using sensor
          countTrueCommand = 0;
          delay(10000);
          break;
      }
    }
    void sendCommand(String command, int maxTime, char readReplay[]) {
      Serial.print(countTrueCommand);
      Serial.print(". at command => ");
      Serial.print(command);
      Serial.print(" ");
      while (countTimeCommand < (maxTime * 1))
      {
        esp8266.println(command);//at+cipsend
        if (esp8266.find(readReplay)) //ok
        {
          found = true;
          break;
        }
        countTimeCommand++;
      }
      if (found == true)
      {
        Serial.println("OYI");
        countTrueCommand++;
        countTimeCommand = 0;
      }
      if (found == false)
      {
        Serial.println("Fail");
        countTrueCommand = 0;
        countTimeCommand = 0;
      }
      found = false;
    }

    Có một vài chỗ trong đoạn code mình không biết điền gì để thay thế ạ
    String HOST = "api.thingspeak.com";
    String AP = "XXXX";//your AP name
    String PASS = "XXXX"; //your AP password
    String API = "XxxXPF**V6**OEIL";//your API
    String getData = "GET / update ? api_key = " + API + "&" + field + " = " + String(valSensor);
    ngoài những chỗ phải điền này ra, còn chỗ nào phải điền để thay thế không ạ, và bạn có thể nêu rõ là những chỗ này điền những gì không ạ 😍
    P/S: code mình đã nhập vào và không báo lỗi

    • making đã trả lời bài viết này.

      PhmKhnhTon AP và PASS là tên wifi và pass để ESP truy cập internet, còn API thì lúc bạn đăng ký với Thingspeak sẽ được cấp

      String HOST = "api.thingspeak.com";
      còn cái này mình điền gì ạ

      • making đã trả lời bài viết này.

        là mình lấy tên cả miền luôn ạ

        • making đã trả lời bài viết này.

          PhmKhnhTon Trong phần gửi bạn thấy dòng
          String getData = "GET / update ? api_key = " + API + "&" + field + " = " + String(valSensor);
          nên HOST bạn vẫn để là api.thingspeak.com

            making à, có nghĩa là phần
            String HOST = "api.thingspeak.com";
            mình k thay đổi gì cả đúng k ạ

            • making đã trả lời bài viết này.

              Dạ, mình kiểm tra serial monitor
              [upl-image-preview url=https://making.vn/assets/files/2020-05-17/1589715907-714041-image.png]
              bị báo lỗi là fail hết ạ

              • making đã trả lời bài viết này.

                PhmKhnhTon Bạn để board của bạn gần cục phát wifi nhà mình, kiểm tra lại xem bạn nhập tên wifi và pass có chính xác chưa, chính xác cả chữ hoa và thường nhé

                cục wifi nhà mình cách chỗ mình để mạch tầm 4m ạ, thế là có xa không ạ

                  motniemtin Tại mình sử dụng là máy tính bàn, nên k thể để mạch lại gần, còn cục wifi mình cũng cố định, khó mà di chuyển được ạ @@

                  • making đã trả lời bài viết này.

                    PhmKhnhTon 😃 bạn kiểm tra lại tên wifi và pass thử, hoặc thêm lệnh “AT+CWLAP” để coi có wifi nào mà esp có thể kết nối ko

                      making Mình thêm lệnh này bằng cách nào ạ :3

                      • making đã trả lời bài viết này.

                        PhmKhnhTon
                        Bạn KT xem nối đúng dây không,
                        #define RX 8
                        #define TX 7

                        có vẻ Arduino của bạn không nhận được dữ liệu thử Esp

                        
                        Serial.println("AT+CWMODE=1");
                          esp8266.println("AT+CWMODE=1");
                          delay(2000);
                          Serial.println("  AT+CWLAP");
                          esp8266.println("  AT+CWLAP");
                          delay(2000);
                        
                          String cmd="AT+CWJAP=\"";