Hallo ich habe noch nicht aufgegeben ,vieleicht möchte mir einer Helfen ,mein Windmesser auf Thinkspeak zubekommen.
#include <OneWire.h>
//#include <DallasTemperature.h>
//#include "ThingSpeak.h"
#include <ESP8266WiFi.h>
#define UPM 0
#define Temp 2
OneWire ds(2);
//DallasTemperature DS18B20(&oneWire);
char temperaturStr[6];
uint8_t Upm_Pin = 0;
const int m_time = 5; //Messzeit für Upm
float Upm;
int UPM_ct;
unsigned long ThingspeakLastLogTime = 0;
unsigned long SensorenLetzteAktualisierung; // Hilfsvariable für Zeitmessung
int ThingspeakSampleTime = 30000; // Die schnellste Sample Time ist 15s ich empfehle
// 60s zu verwenden oder 300 Sekunden
int SensorenSampleTime = 1; // Zeit in s für Aktualisierung der
WiFiClient client;
int status = WL_IDLE_STATUS;
unsigned long myChannelNumber = ; // ThingSpeak Kanal Nummer
const char * myWriteAPIKey = ""; // ThingSpeak API Key
char ssid[] = ""; // Wlan SSID (name)
char pass[] = ""; // Wlan Passwort
void setup() {
WiFi.begin(ssid, pass); // Wlan Aktivieren und mit definiertem Netzwerk verbinden
ThingSpeak.begin(client); // ThingSpeak Client starten
Serial.begin(115200);
DS18B20.begin();
}
float getTemperatur() {
float temp;
do {
DS18B20.requestTemperatures();
temp = DS18B20.getTempCByIndex(0);
delay(100);
}
while (temp == 85.0 || temp == (-127.0));
return temp;
}
void loop() {
meassure_UPM();
float temperatur = getTemperatur();
dtostrf(temperatur, 2, 2, temperaturStr);
Serial.print(" Upm: ");
Serial.print(Upm);
Serial.print(" Temp: ");
Serial.println(temperaturStr);
ThingSpeak.setField(0, Upm);
ThingSpeak.setField(2, temperaturStr);
ThingSpeak.writeFields(myChannelNumber, myWriteAPIKey);
}
void meassure_UPM() {
UPM_ct = 0;
attachInterrupt(digitalPinToInterrupt(Upm_Pin), IntCallback, RISING);
delay(1000 * m_time);
Upm = (float)UPM_ct * (float)m_time * 2.4 ;
}
void IntCallback() {
UPM_ct ++;
}