Close

Odpověď na: NodeMCU – měření teploty a posílání na Exosite

Úvodní stránka Fórum Vaše projekty Arduino NodeMCU – měření teploty a posílání na Exosite Odpověď na: NodeMCU – měření teploty a posílání na Exosite

#10391
johnyhol
Účastník

Ale co nechápu, že to s tou stejnou knihovnou maká v tomto kódu(posílání na Thingspeak):


#include <OneWire.h>
#include <ESP8266WiFi.h>
#include <ESP8266WebServer.h>
#include <DallasTemperature.h>

#define ONE_WIRE_BUS D7

const char* host = "api.thingspeak.com"; // Your domain  
String ApiKey = "----";
String path = "/update?key=" + ApiKey + "&field1=";  

OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature DS18B20(&oneWire);

const char* ssid = "----";
const char* pass = "----";

char temperatureString[6];

void setup(void){
  Serial.begin(9600);
  Serial.println("");
  
  WiFi.begin(ssid, pass);
  // Wait for connection
  while (WiFi.status() != WL_CONNECTED) {
    delay(100);
    Serial.print(".");
  }
  
  Serial.println("");
  Serial.print("Connected to ");
  Serial.println(ssid);
  Serial.print("IP address: ");
  Serial.println(WiFi.localIP());

  DS18B20.begin();
   

}

float getTemperature() {
  float temp;
  do {
    DS18B20.requestTemperatures(); 
    temp = DS18B20.getTempCByIndex(0);
    delay(100);
  } while (temp == 85.0 || temp == (-127.0));
  return temp;
}

void loop() {

  float temperature = getTemperature();

  dtostrf(temperature, 2, 2, temperatureString);
  // send temperature to the serial console
  Serial.println(temperatureString);

  WiFiClient client;
  const int httpPort = 80;
  if (!client.connect(host, httpPort)) {
    Serial.println("connection failed");
    return;
  }

  client.print(String("GET ") + path + temperatureString + " HTTP/1.1\r\n" +
               "Host: " + host + "\r\n" + 
               "Connection: keep-alive\r\n\r\n");
  delay(500);

}