Arduino для публикации в веб-API

Я абсолютный новичок, когда дело доходит до с ++. Теперь мне нужно написать код для считывания значений с моего датчика DHT11 и отправки их на сервер через http get. Все, что я мог сделать, это посмотреть на пример кода Arduino и собрать все вместе, так что я уверен, что это не красиво. Но я надеялся, что кто-нибудь сможет помочь новичку, сказав мне, почему он не работает.

Это код

#include <ESP8266WiFi.h>
#include "DHT.h";
#include <string>
#include <iostream>

// Pin für DHT11 Sensor festlegen
#define DHTPIN 4

// Typ definieren
#define DHTTYPE DHT11

const char* ssid     = "mySSID";
const char* password = "myWiFiPW";

const char* host = "IP";
const char* myDev     = "deviceNAME";
const char* myUsr     = "me";
const char* myPwd     = "myPW";

// folgende Variabeln __nicht__ ändern
char urlHum[80];
char urlTem[80];
char str_temp[8];
char str_hum[8];

// Namen des Sensors definieren
DHT dht(DHTPIN, DHTTYPE);

void setup() {
Serial.begin(9600);
delay(10);
}void loop() {
int value = 0;
dht.begin();
delay(5000);
++value;

// Luftfeuchtigkeit auslesen und als "Luftfeuchte" speichern
float feuchte = dht.readHumidity();
dtostrf(feuchte, 2, 4, str_hum);

// Temperatur auslesen und als "Tempe" speichern
float tempe = dht.readTemperature();
dtostrf(feuchte, 2, 4, str_temp);// Verbindung mit WiFi herstellen
WiFiClient client;
const int httpPort = 80;
if (!client.connect(host, httpPort)) {
Serial.println("connection failed");
return;
}

// We now create a URI for the request
sprintf(urlHum,"http://%s:%s@%s/api/device/%s/changeHumidityTo=humidity=%s", myUsr, myPwd, host, myDev, str_hum);
sprintf(urlTem,"http://%s:%s@%s/api/device/%s/changeTemperatureTo=temperatue=%s", myUsr, myPwd, host, myDev, str_temp);//Serial.print("Requesting URL: ");
//Serial.println(urlHum);

// This will send the request to the server
client.print(String("GET ") + urlHum + " HTTP/1.1\r\n" +
// "Host: " + host + "\r\n" +
"Connection: close\r\n\r\n");
client.print(String("GET ") + urlTem + " HTTP/1.1\r\n" +
// "Host: " + host + "\r\n" +
"Connection: close\r\n\r\n");
unsigned long timeout = millis();
while (client.available() == 0) {
if (millis() - timeout > 5000) {
Serial.println(">>> Client Timeout !");
client.stop();
return;
}
}// Read all the lines of the reply from server and print them to Serial
while(client.available()){
String line = client.readStringUntil('\r');
Serial.print(line);
}

Serial.println();
Serial.println("closing connection");
}

Это просто добавит прочитанные значения к двум URL-адресам, а затем отправит их на мой сервер как HTTP GET. Однако это не так. Это только создает журнал ошибок слишком долго, чтобы вставить сюда. Заранее спасибо за помощь 🙂

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]