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
7.2.2017 v 13:21
#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);
}