ESP32 WifiClientSecure нет ответа - PullRequest
       13

ESP32 WifiClientSecure нет ответа

0 голосов
/ 27 февраля 2020

Я работаю над проектом, использующим скрипт Google для публикации sh изображений из ESP32-CAM на диске Google. Я получаю сообщение об ошибке «нет ответа», независимо от того, как долго я установил peroid ожидания. Я попытался использовать http и https (wificlient и wificlientsecure), но это не работает, несмотря ни на что. В чем может быть проблема?

     WiFiClientSecure clienthttps;


  Serial.println("Connect to " + String(myDomain));


  if (clienthttps.connect(myDomain, 443)) {
    Serial.println("Connection successful");

    camera_fb_t * fb = NULL;
    fb = esp_camera_fb_get();
    if (!fb) {
      Serial.println("Camera capture failed");
      delay(1000);
      ESP.restart();
      return;
    }

    char *input = (char *)fb->buf;
    char output[base64_enc_len(3)];
    String imageFile = "";
    for (int i = 0; i < fb->len; i++) {
      base64_encode(output, (input++), 3);
      if (i % 3 == 0) imageFile += urlencode(String(output));
    }
    String Data = myFilename + mimeType + myImage;

    esp_camera_fb_return(fb);

    Serial.println("Send a captured image to Google Drive.");

    Serial.println("POST " + myScript + " HTTP/1.1");
    Serial.println("Host: " + String(myDomain));
    Serial.println("Content-Length: " + String(Data.length() + imageFile.length()));
    Serial.println("Content-Type: application/x-www-form-urlencoded");
    Serial.println(Data);
    Serial.println();

    clienthttps.println("POST " + myScript + " HTTP/1.1");
    clienthttps.println("Host: " + String(myDomain));
    clienthttps.println("Content-Length: " + String(Data.length() + imageFile.length()));
    clienthttps.println("Content-Type: application/x-www-form-urlencoded");
    clienthttps.println();

    clienthttps.print(Data);
    int Index;
    for (Index = 0; Index < imageFile.length(); Index = Index + 1000) {
      clienthttps.print(imageFile.substring(Index, Index + 1000));
    }

    Serial.println("Waiting for response.");
    long int StartTime = millis();
    while (!clienthttps.available()) {
      Serial.print(".");
      delay(100);
      if ((StartTime + waitingTime) < millis()) {
        Serial.println();
        Serial.println("No response.");
        //If you have no response, maybe need a greater value of waitingTime
        break;
      }
    }
    Serial.println();
    while (clienthttps.available()) {
      Serial.print(char(clienthttps.read()));
    }
  } else {
    Serial.println("Connected to " + String(myDomain) + " failed.");
  }
  clienthttps.stop();
...