Connessione ad un WiFi con ESP8266

Il progetto che sto svolgendo è composto da un ESP8266, da un TMP256 (Rilevatore per la temperatura) e da un Web Service.
Quello che devo fare è: prendere il dato che mi restituisce il sensore e inviarlo tramite metodo GET ad un API.

#include <ESP8266WiFi.h>

#define TMPPin A0
String temperatureString = "";

const char* ssid     = "xxxxxxxxxxxx";
const char* password = "xxxxxxxxxxxxx";

const char* host = "192.168.0.106";
const uint16_t port = 443;

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

  Serial.println();
  Serial.println();
  Serial.print("Connecting to ");
  Serial.println(ssid);

  WiFi.mode(WIFI_STA);
  WiFi.begin(ssid, password);

  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }

  Serial.println("");
  Serial.println("WiFi connected");
  Serial.println("IP address: ");
  Serial.println(WiFi.localIP());
}

void loop() {
  Serial.print("connecting to ");
  Serial.print(host);
  Serial.print(':');
  Serial.println(port);

  WiFiClientSecure c;
  if (!c.connect(host, port)) {
    Serial.println("connection failed");
    delay(5000);
    return;
  }

  Serial.println("sending data to server");
  if (c.connected()) {
    //ONLY FOR TEST
    //float temp = 0;
    int id_d = 16;
    
    int tmpValue = analogRead(A0);
    float voltage = tmpValue * 3.3;
    voltage /= 1024.0;
    float temperatureC = (voltage - 0.5) * 100 ;
    float temperatureF = (temperatureC * 9.0 / 5.0) + 32.0;
    temperatureString = " " + String(temperatureC) + " C  " +
                              String(temperatureF) + " F ";
    Serial.println(temperatureString);
    //TEST
    String queryString = "temp=" + String(temperatureC) + "&id_d=" + String(id_d);
    String url = "GET /ProjectESP8266/insert_data.php?" + queryString + " HTTP/1.1";
    
    c.println(url);
    c.println("Host: as_proj_ESP8266");
    c.println("Access-Control-Allow-Origin: *");
    c.println("Connection: close");
    c.println();
  }

  unsigned long timeout = millis();
  while (c.available() == 0) {
    if (millis() - timeout > 5000) {
      Serial.println(">>> Client Timeout !");
      c.stop();
      delay(60000);
      return;
    }
  }

  Serial.println("receiving from remote server");
  while (c.available()) {
    char ch = static_cast<char>(c.read());
    Serial.print(ch);
  }

  Serial.println();
  Serial.println("closing connection");
  c.stop();

  delay(300000);
}

Nel monitor seriale però mi dice che non la connessione con l'IP del mio PC è fallita (in poche parole non si collega nemmeno). Ho provato a mettere pure come indirizzo IP 127.0.0.1

P.S: Sto lavorando in locale, sia il database che l'API sono in localhost

Buongiorno,

essendo il tuo primo post, nel rispetto del regolamento della sezione Italiana del forum (… punto 13, primo capoverso), ti chiedo cortesemente di presentarti IN QUESTO THREAD (spiegando bene quali conoscenze hai di elettronica e di programmazione ... possibilmente evitando di scrivere solo una riga di saluto) e di leggere con molta attenzione tutto il succitato REGOLAMENTO ... Grazie. :slight_smile:

Guglielmo

P.S.: Ti ricordo che, purtroppo, fino a quando non sarà fatta la presentazione nell’apposito thread, nel rispetto del suddetto regolamento nessuno ti risponderà (eventuali risposte verrebbero cancellate), quindi ti consiglio di farla al più presto. :wink:

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.