So zum ersten bin ich Blutiger Arduino Anfänger bitte habt Nachsicht!!!
Ich steh total an, darum hab ich mich jetzt hier angemeldet bestimmt kann mir hier wer
weiterhelfen.
Hab letztes Jahr damit begonnen mir ein Windrad zu bauen stehe nun kurz vor Fertigstellung.
Da ich es etwas entfernt von meinem Haus installieren muss und ich es jedoch immer etwas unter
Kontrolle haben möchte setze ich einen NodeMCU Esp8266 oben drauf der mir ständig die Drehzahl (halsensor)
und Temperatur (DS18B20) misst und natürlich über wlan an ThingSpeak schickt.
so kann ich jederzeit sehen was es grad treibt.
so in meinem selbst zusammengeschnippselten skech den ich selbst nur zur hälfte verstehe funktioniert
die Datenausgabe zumindest schon mal am seriellen Monitor jedoch bekomme ich sie nicht auf ThingSpeak
angezeigt.
Hab schon unzählige Stunden mit dem Sketch verbracht und rumprobiert ich bekomme es einfach nicht hin.
ich kopier jetzt mal meinen Sketch hier rein, bin gespannt was ihr dazu sagt.
ich möchte nochmal betonen ich bin blutiger Anfänger...
#include <OneWire.h>
#include <DallasTemperature.h>
#include "ThingSpeak.h"
#include "RunningMedian.h"
#include <ESP8266WiFi.h>
#define Upm D3
#define Temp D4
OneWire oneWire(Temp);
DallasTemperature DS18B20(&oneWire);
char temperaturStr[6];
uint8_t UPM_Pin = D3;
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;
/(Thingspeak Eistellungen)/
unsigned long myChannelNumber = ; // Deine ThingSpeak Kanal Nummer
const char * myWriteAPIKey = ""; // Dein ThingSpeak API Key
/(Wifi Einstellungen)/
char ssid[] = ""; // Deine Wlan SSID (name)
char pass[] = "**"; // Dein 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);
}
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 ++;
}
/(Funktion um Daten an Thingspeak zu senden)*****/
void MesswerteSenden() {
if (millis() - ThingspeakLastLogTime > ThingspeakSampleTime) {
ThingSpeak.setField(3, Upm);
ThingSpeak.setField(4, temperaturStr);
ThingSpeak.writeFields(myChannelNumber, myWriteAPIKey);
ThingspeakLastLogTime = millis();
}
}