Hallo zusammen,
ich bin noch total neu in Sachen Mikrocontroller und deren Programmierung - deswegen sage ich auch gleich, dass ich mir den Code zusammengeklaut habe und versucht habe, auf meine Bedürfnisse anzupassen. Das ist auch mein erster Post in diesem Forum - damit auch gleich ein herzliches HALLO.
Der Bot auf Telegram funktioniert, aber als Werte kommen lediglich "nan" an.
Verbunden sind am D1 Mini mit dem DHT22-Shield jeweils die Pins 3V3, GND und D4.
Wo ist der Fehler?
Könnt ihr mir da weiterhelfen?
VIELEN DANK.
/*
Die Temperatur und Luftfeuchtigkeit abfragen mit Telegram - polluxlabs.net
*/
//Bibliotheken
#include <ESP8266WiFi.h>
#include <WiFiClientSecure.h>
#include <UniversalTelegramBot.h>
#include <Wire.h>
#include <DHT.h>
#define DHTTYPE DHT22 // DHT 22
// DHT Sensor
// PIN mit dem "Data" des DHT22 verbunden ist
// uint8_t DHTPin = D4;
uint8_t DHTPin = 2;
// Initialize DHT sensor.
DHT dht(DHTPin, DHTTYPE);
// Deine WLAN-Zugangsdaten
const char* ssid = "mein-Internetzugang";
const char* password = "und das Passwort dazu";
// Den Telegram-Bot initialisieren
#define botToken "meine-Bot-ID" // den Bot-Token bekommst du vom Botfather)
//Deine UserID
#define userID "meine-ID"
WiFiClientSecure client;
UniversalTelegramBot bot(botToken, client);
//Variable für die Temperatur
float Temperature;
//Variable für die Luftfeuchtigkeit
float Humidity;
//Variable für die Anzahl der Anfragen
int numNewRequests;
//Variable für den Text der Anfrage, die du sendest
String text = "";
//UserID des Absenders
String chat_id = "";
//Name des Absenders
String from_name = "";
//Variable für die Willkommensnachricht
String welcome = "";
//Funktion fürs Verarbeiten neuer Anfragen
void handleNewRequests(int numNewRequests) {
for (int i = 0; i < numNewRequests; i++) { //loopt durch die neuen Anfragen
//Checkt, ob du die Anfrage gesendet hast oder jemand anderes
chat_id = String(bot.messages[i].chat_id);
if (chat_id != userID) {
bot.sendMessage(chat_id, "Du bist nicht autorisiert!", "");
continue;
}
// Anfragetext speichern
text = bot.messages[i].text;
Serial.println(text);
from_name = bot.messages[i].from_name;
if (text == "/start") {
welcome = "Willkommen, " + from_name + ".\n";
welcome += "Mit folgendem Befehl fragst du die aktuelle Temperatur ab: \n\n";
welcome += "/messen \n";
bot.sendMessage(chat_id, welcome, "");
bot.sendMessage(chat_id, "http://gph.is/2aLXZ8H", "");
}
if (text == "/messen") {
Temperature = dht.readTemperature();
Humidity = dht.readHumidity();
bot.sendMessage(chat_id, "Temperatur: " + String(Temperature) + " ºC", "");
bot.sendMessage(chat_id, "Luftfeuchtigkeit: " + String(Humidity) + " %", "");
}
}
}
void setup() {
Serial.begin(115200);
client.setInsecure();
//Verbindung zum WLAN
Serial.print("Verbinde mich mit: ");
Serial.println(ssid);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
Serial.print(".");
delay(300);
}
Serial.println("");
Serial.println("Verbunden!");
}
void loop() {
//checkt, ob eine neue Anfrage reinkam
int numNewRequests = bot.getUpdates(bot.last_message_received + 1);
while (numNewRequests) { //wird ausgeführt, wenn numNewRequests == 1
Serial.println("Anfrage erhalten");
handleNewRequests(numNewRequests);
numNewRequests = bot.getUpdates(bot.last_message_received + 1);
}
delay(1000);
}