Začal jsem si hrát s WIFI modulem a chtěl bych posílat data z teplotního čidla dallas na server thingspek.
Bohužel nemůžu donutit čidlo aby mě ukázalo reálnou teplotu pořád mě vypisuje -127°C
Mohl by mě někdo omrknout kod? Zda mě tam něco nechybí?
Předem děkuji za pomoc
Kód: Vybrat vše
// ESP8266 Thingspeak ukázka
// připojení potřebné knihovny
#include <ESP8266WiFi.h>
#include <OneWire.h>
#include <DallasTemperature.h>
#define ONE_WIRE_BUS 2 // teplota doma DS18B20 na pinu GPIO2
// vytvoření proměnné s naším API klíčem z Thingspeak - viz návod
String apiKlic = "1SSW3RBGLO8PYO8I";
// vytvoření proměnných s názvem WiFi sítě a heslem
const char* nazevWifi = "davevo";
const char* hesloWifi = "123456";
// vytvoření proměnné s názvem serveru Thingspeaku
const char* server = "api.thingspeak.com";
// inicializace WiFi v módu klienta
WiFiClient client;
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
void setup() {
// zahájení komunikace po sériové lince
Serial.begin(9600);
// zahájení bezdrátové WiFi komunikace s připojením
// na router skrze zadané přihl. údaje
WiFi.begin(nazevWifi, hesloWifi);
// čekání na úspěšné připojení k routeru,
// v průběhu čekání se vytiskne každých
// 500 milisekund tečka po sériové lince
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("");
Serial.print("Pripojeno k WiFi siti ");
Serial.println(nazevWifi);
Serial.print("IP adresa: ");
Serial.println(WiFi.localIP());
sensors.begin();
}
void loop() {
// vytvoření proměnných pro načtení hodnoty
sensors.requestTemperatures();
int temp = sensors.getTempCByIndex(0);
// připojení na server Thingspeak pro odeslání dat
if (client.connect(server,80)) {
// vytvoření zprávy, která bude odeslána na Thingspeak
// každé pole je označeno jako "field" + pořadí pole,
// je nutné každý údaj převést na String
String zprava = apiKlic;
zprava +="&field1=";
zprava += String(temp);
zprava += "\r\n\r\n";
// po vytvoření celé zprávy ji odešleme na server Thingspeak
// včetně našeho API klíče
client.print("POST /update HTTP/1.1\n");
client.print("Host: api.thingspeak.com\n");
client.print("Connection: close\n");
client.print("X-THINGSPEAKAPIKEY: "+apiKlic+"\n");
client.print("Content-Type: application/x-www-form-urlencoded\n");
client.print("Content-Length: ");
client.print(zprava.length());
client.print("\n\n");
client.print(zprava);
// vytištění informací po sériové lince o odeslání na Thingspeak
sensors.requestTemperatures();
Serial.print("Teplota doma: ");
Serial.print(temp);
Serial.println("°C");
Serial.println("Udaje odeslany na Thingspeak.");
}
// ukončení spojení se serverem Thingspeak
client.stop();
// nyní musíme vyčkat minimálně 15 vteřin do dalšího odeslání dat,
// 15 vteřin je omezení Thingspeaku, v tomto příkladu je nastaven
// interval 30 vteřin
Serial.println("Pauza pred dalsim odeslanim dat.");
delay(15000);
}