Windmesser über Thinkspeak auslesen

#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 ++;
}