Получение кода ошибки -1 при подключении Arduino к моей базе данных: - PullRequest
0 голосов
/ 09 ноября 2019

Я пытаюсь подключить ESP8266 на Arduino к базе данных. У меня нет домена, поэтому я использую сервер localhost, однако каждый раз, когда я запускаю код, я получаю сообщение об ошибке -1. Код загружается в файл с именем post-esp.php, который является htdocs MAMP, и, кажется, работает нормально, когда ESP не подключен. Есть предложения?

#ifdef ESP32
 #include <WiFi.h>
 #include <HTTPClient.h>
#else
 #include <ESP8266WiFi.h>
 #include <ESP8266HTTPClient.h>
 #include <WiFiClient.h>
#endif

#include <Wire.h>
#include <Adafruit_Sensor.h>
#include <Adafruit_BME280.h>

// Replace with your network credentials
const char* ssid     = "THIS IS LEFT BLANK ON PURPOSE";
const char* password = "XXX";

// REPLACE with your Domain name and URL path or IP address with path 
const char* serverName = "https://localhost:8888/post-esp-data.php";

// Keep this API Key value to be compatible with the PHP code provided in the project     page. 
// If you change the apiKeyValue value, the PHP file /post-esp-data.php also needs to have the      same key 
String apiKeyValue = "tPmAT5Ab3j7F9";

String sensorName = "BME280";
String sensorLocation = "Office";
#define SEALEVELPRESSURE_HPA (1013.25)

Adafruit_BME280 bme;  // I2C
//Adafruit_BME280 bme(BME_CS);  // hardware SPI
//Adafruit_BME280 bme(BME_CS, BME_MOSI, BME_MISO, BME_SCK);  // software SPI

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

 WiFi.begin(ssid, password);
 Serial.println("Connecting");
 while(WiFi.status() != WL_CONNECTED) { 
  delay(500);
  Serial.print(".");
 }
 Serial.println("");
 Serial.print("Connected to WiFi network with IP Address: ");
 Serial.println(WiFi.localIP());

 // (you can also pass in a Wire library object like &Wire2)
 /*  bool status = bme.begin(0x76);
 if (!status) {
  Serial.println("Could not find a valid BME280 sensor, check wiring or change I2C address!");
  while (1);
 }*/
}

void loop() {
 //Check WiFi connection status
 if(WiFi.status()== WL_CONNECTED){
  HTTPClient http;

  // Your Domain name with URL path or IP address with path
  http.begin(serverName);

  // Specify content-type header
  http.addHeader("Content-Type", "application/x-www-form-urlencoded");

  // Prepare your HTTP POST request data
  /*String httpRequestData = "api_key=" + apiKeyValue + "&sensor=" + sensorName
                      + "&location=" + sensorLocation + "&value1=" +    String(bme.readTemperature())
                      + "&value2=" + String(bme.readHumidity()) + "&value3=" + String(bme.readPressure()/100.0F) + "";
  Serial.print("httpRequestData: ");
  Serial.println(httpRequestData);*/

  // You can comment the httpRequestData variable above
  // then, use the httpRequestData variable below (for testing purposes without the BME280 sensor)
  String httpRequestData =   "api_key=tPmAT5Ab3j7F9&sensor=BME280&location=Office&value1=24.75&value2=49.54&value3=1005.14";

  // Send HTTP POST request
  int httpResponseCode = http.POST(httpRequestData);

  // If you need an HTTP request with a content type: text/plain
  //http.addHeader("Content-Type", "text/plain");
  //int httpResponseCode = http.POST("Hello, World!");
  // If you need an HTTP request with a content type: application/json, use the following:
  //http.addHeader("Content-Type", "application/json");
  //int httpResponseCode = http.POST(" {\"value1\":\"19\",\"value2\":\"67\",\"value3\":\"78\"}");

  if (httpResponseCode>0) {
    Serial.print("HTTP Response code: ");
    Serial.println(httpResponseCode);
  }
  else {
    Serial.print("Error code: ");
    Serial.println(httpResponseCode);
  }
  // Free resources
  http.end();
 }
 else {
   Serial.println("WiFi Disconnected");
 }
 //Send an HTTP POST request every 30 seconds
 delay(30000);  
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...