Moin,
ich versuche derzeit, den TelegramBot in mein Programm einzubinden, scheitere jedoch bereits daran, die Bibliothek hinzuzufügen. Sobald ich die Bibliothek hinzufüge, treten zahlreiche Fehlermeldungen auf. Ich habe hier mal einen kleinen Teil der Fehlermeldungen beigefügt, da diese sehr umfangreich sind.
Fehlermeldung:
In file included from /home/builder/opt/libraries/arduinojson_7_0_2/src/ArduinoJson.hpp:33:0,
from /home/builder/opt/libraries/arduinojson_7_0_2/src/ArduinoJson.h:9,
from /home/builder/Arduino/libraries/universaltelegrambot_1_3_0/src/UniversalTelegramBot.h:29,
from /tmp/3347242213/Pflanzensensor_apr19a/Pflanzensensor_apr19a.ino:6:
/home/builder/opt/libraries/arduinojson_7_0_2/src/ArduinoJson/Document/JsonDocument.hpp: In constructor 'ArduinoJson::V702PB2::JsonDocument::JsonDocument(ArduinoJson::V702PB2::JsonDocument&&)':
/home/builder/opt/libraries/arduinojson_7_0_2/src/ArduinoJson/Document/JsonDocument.hpp:33:51: error: no matching function for call to 'ArduinoJson::V702PB2::JsonDocument::JsonDocument()'
JsonDocument(JsonDocument&& src) : JsonDocument() {
Ich habe versucht, ChatGPT mit diesen Fehlermeldungen zu füttern (shame on me), und dabei kam heraus, dass es Probleme mit der ArduinoJson-Bibliothek gibt, bzw. dass der TelegramBot nicht mit der ArduinoJson-Bibliothek Version 7.0.2 kompatibel ist. Ich habe auch schon die ArduinoJson-Bibliothek in der Version 6.14.2 ausprobiert, jedoch ebenfalls ohne Erfolg. Was meint ihr, was ich noch versuchen kann?
Anmerkung:
Ich arbeite mit der IOT Cloud von Arduino und nutze die IOT Remote App.
Mit freundlichen Grüßen
Das Programm ist folgendes:
#include "WiFiUdp.h"
#include "NTPClient.h"
#include "thingProperties.h"
#include "DHT.h"
#include <UniversalTelegramBot.h>
#define DHTpin 2 // Pin für Temperatur und Luftfeuchtesensor
#define DHTTYPE DHT21 // Modelltyp des Sensors
// Zeitverschiebung UTC MEZ (Winterzeit) = 3600 Sekunden (1 Stunde)
// Zeitverschiebung UTC MEZ (Sommerzeit) = 7200 Sekunden (2 Stunden)
const long utcOffsetInSeconds = 3600; // Sommer oder Winterzeit
WiFiUDP ntpUDP;
NTPClient timeClient(ntpUDP, "pool.ntp.org", utcOffsetInSeconds); // Server für die Abfrage der Uhrzeit
int beleuchtungStartHour; // Uhrzeit, wann die Beleuchtung angeht
int beleuchtungsmodus;
int lueftermodus;
int abluftfeuchtigkeit;
int abluftvpd;
DHT dht(DHTpin, DHTTYPE);
int sensor = A0; // Pin für den Bodenfeuchtesensor
extern float feuchtigkeit;
extern float temperatur;
void setup() {
pinMode(4, OUTPUT); // Pin für die Abluft
pinMode(0, OUTPUT); // Pin für die Beleuchtung
Serial.begin(9600);
delay(1500);
initProperties();
ArduinoCloud.begin(ArduinoIoTPreferredConnection);
setDebugMessageLevel(2);
ArduinoCloud.printDebugInfo();
timeClient.begin();
}
void loop() {
timeClient.update();
ArduinoCloud.update();
feuchtigkeit = dht.readHumidity();
temperatur = dht.readTemperature();
bodenfeuchtigkeit = (100 - (analogRead(sensor) * 100 / 800));
int currentHour = timeClient.getHours();
if (beleuchtungsmodus == 0) {
digitalWrite(0, HIGH);
} else {
digitalWrite(0, LOW);
}
if (beleuchtungsmodus == 1) {
digitalWrite(0, LOW);
} else {
digitalWrite(0, HIGH);
}
if (beleuchtungsmodus == 2) {
if ((currentHour >= beleuchtungStartHour && currentHour < (beleuchtungStartHour + 18) % 24)) {
digitalWrite(0, LOW);
} else {
digitalWrite(0, HIGH);
}
}
if (beleuchtungsmodus == 3) {
if ((currentHour >= beleuchtungStartHour && currentHour < (beleuchtungStartHour + 12) % 24)) {
digitalWrite(0, LOW);
} else {
digitalWrite(0, HIGH);
}
}
if (lueftermodus == 0) {
digitalWrite(4, HIGH);
} else {
digitalWrite(4, LOW);
}
if (lueftermodus == 1) {
digitalWrite(4, LOW);
} else {
digitalWrite(4, HIGH);
}
if (lueftermodus == 2) {
if (digitalRead(0) == LOW) {
digitalWrite(4, LOW);
} else {
digitalWrite(4, HIGH);
}
}
if (lueftermodus == 3) {
if (feuchtigkeit > abluftfeuchtigkeit + 5) {
digitalWrite(4, LOW);
} if (feuchtigkeit < abluftfeuchtigkeit) {
digitalWrite(4, HIGH);
}
}
if (lueftermodus == 4) {
float svp = getSVP(temperatur);
float targetHumidity = 0;
if (abluftvpd == 1) {
targetHumidity = (100 - (((0.55 * 1000) / svp) * 100));
} else if (abluftvpd == 2) {
targetHumidity = (100 - (((0.825 * 1000) / svp) * 100));
} else if (abluftvpd == 3) {
targetHumidity = (100 - (((1.15 * 1000) / svp) * 100));
}
float lowerLimit = targetHumidity - 2.5;
float upperLimit = targetHumidity + 2.5;
if (feuchtigkeit > upperLimit) {
digitalWrite(4, LOW);
} else if (feuchtigkeit < lowerLimit) {
digitalWrite(4, HIGH);
}
}
}
float getSVP(float temp) {
if (temp <= 1) return 657;
if (temp <= 2) return 706;
if (temp <= 3) return 758;
if (temp <= 4) return 813;
if (temp <= 5) return 872;
if (temp <= 6) return 935;
if (temp <= 7) return 1002;
if (temp <= 8) return 1073;
if (temp <= 9) return 1148;
if (temp <= 10) return 1228;
if (temp <= 11) return 1312;
if (temp <= 12) return 1402;
if (temp <= 13) return 1497;
if (temp <= 14) return 1598;
if (temp <= 15) return 1705;
if (temp <= 16) return 1818;
if (temp <= 17) return 1937;
if (temp <= 18) return 2064;
if (temp <= 19) return 2197;
if (temp <= 20) return 2338;
if (temp <= 21) return 2486;
if (temp <= 22) return 2643;
if (temp <= 23) return 2809;
if (temp <= 24) return 2983;
if (temp <= 25) return 3167;
if (temp <= 26) return 3361;
if (temp <= 27) return 3565;
if (temp <= 28) return 3779;
if (temp <= 29) return 4005;
if (temp <= 30) return 4242;
return 4242; // Rückfallwert für Temperaturen über 30 °C
}
void onBeleuchtungChange() {
if (beleuchtung == 0) {
beleuchtungsmodus = 0;
}
if (beleuchtung == 1) {
beleuchtungsmodus = 1;
}
if (beleuchtung == 2) {
beleuchtungsmodus = 2;
}
if (beleuchtung == 3) {
beleuchtungsmodus = 3;
}
}
void onAbluftChange() {
if (abluft == 1) {
lueftermodus = 1;
}
if (abluft == 0) {
lueftermodus = 0;
}
if (abluft == 2) {
lueftermodus = 2;
}
if (abluft == 3) {
lueftermodus = 3;
}
if (abluft == 4) {
lueftermodus = 4;
}
}
void onBeleuchtungStartChange() {
if (beleuchtungStart == 1) {
beleuchtungStartHour = 1;
}
if (beleuchtungStart == 2) {
beleuchtungStartHour = 2;
}
if (beleuchtungStart == 3) {
beleuchtungStartHour = 3;
}
if (beleuchtungStart == 4) {
beleuchtungStartHour = 4;
}
if (beleuchtungStart == 5) {
beleuchtungStartHour = 5;
}
if (beleuchtungStart == 6) {
beleuchtungStartHour = 6;
}
if (beleuchtungStart == 7) {
beleuchtungStartHour = 7;
}
if (beleuchtungStart == 8) {
beleuchtungStartHour = 8;
}
if (beleuchtungStart == 9) {
beleuchtungStartHour = 9;
}
if (beleuchtungStart == 10) {
beleuchtungStartHour = 10;
}
if (beleuchtungStart == 11) {
beleuchtungStartHour = 11;
}
if (beleuchtungStart == 12) {
beleuchtungStartHour = 12;
}
if (beleuchtungStart == 13) {
beleuchtungStartHour = 13;
}
if (beleuchtungStart == 14) {
beleuchtungStartHour = 14;
}
if (beleuchtungStart == 15) {
beleuchtungStartHour = 15;
}
if (beleuchtungStart == 16) {
beleuchtungStartHour = 16;
}
if (beleuchtungStart == 17) {
beleuchtungStartHour = 17;
}
if (beleuchtungStart == 18) {
beleuchtungStartHour = 18;
}
if (beleuchtungStart == 19) {
beleuchtungStartHour = 19;
}
if (beleuchtungStart == 20) {
beleuchtungStartHour = 20;
}
if (beleuchtungStart == 21) {
beleuchtungStartHour = 21;
}
if (beleuchtungStart == 22) {
beleuchtungStartHour = 22;
}
if (beleuchtungStart == 23) {
beleuchtungStartHour = 23;
}
if (beleuchtungStart == 24) {
beleuchtungStartHour = 24;
}
}
void onAbluftLuftfeuchtigkeitChange() {
if (abluftLuftfeuchtigkeit == 30) {
abluftfeuchtigkeit = 30;
}
if (abluftLuftfeuchtigkeit == 35) {
abluftfeuchtigkeit = 35;
}
if (abluftLuftfeuchtigkeit == 40) {
abluftfeuchtigkeit = 40;
}
if (abluftLuftfeuchtigkeit == 45) {
abluftfeuchtigkeit = 45;
}
if (abluftLuftfeuchtigkeit == 50) {
abluftfeuchtigkeit = 50;
}
if (abluftLuftfeuchtigkeit == 55) {
abluftfeuchtigkeit = 55;
}
if (abluftLuftfeuchtigkeit == 60) {
abluftfeuchtigkeit = 60;
}
if (abluftLuftfeuchtigkeit == 65) {
abluftfeuchtigkeit = 65;
}
}
void onAbluftVPDChange() {
if (abluftVPD == 1) {
abluftvpd = 1;
}
if (abluftVPD == 2) {
abluftvpd = 2;
}
if (abluftVPD == 3) {
abluftvpd = 3;
}
}