Connection from esp to influx is not working

Hi there.
I´m new to influx, but I can’ t find the problem of my code…
I want to write sensor datas of a loadcell to influx, but I can’ t get a connection. I have a load cell, HX711 (A/D-converter), Esp32. I´m using Arduino IDE.

The code is as follows:

// Inkludieren der notwendigen Bibliotheken basierend auf dem verwendeten Gerät (ESP32 oder ESP8266)
#if defined(ESP32)
  #include <WiFi.h> // WiFi-Bibliothek für ESP32
  #include <WiFiMulti.h> // Mehrfach-WiFi-Bibliothek für ESP32
  WiFiMulti wifiMulti; // WiFiMulti-Objekt für ESP32 erstellen
  #define DEVICE "ESP32" // Gerätedefinition für ESP32
#elif defined(ESP8266)
  #include <ESP8266WiFi.h> // WiFi-Bibliothek für ESP8266
  #include <ESP8266WiFiMulti.h> // Mehrfach-WiFi-Bibliothek für ESP8266
  ESP8266WiFiMulti wifiMulti; // WiFiMulti-Objekt für ESP8266 erstellen
  #define DEVICE "ESP8266" // Gerätedefinition für ESP8266
#endif

#include <HX711.h> // HX711-Bibliothek einbinden
#include <InfluxDbClient.h> // InfluxDB-Client-Bibliothek einbinden

// WiFi-Zugangsdaten
const char* ssid = "XXX"; // SSID des WLANs
const char* password = "nevershowyourpassword"; // Passwort des WLANs

// Pin-Definitionen für den HX711-Sensor
const int DOUT_PIN = 16; // Pin für Datenleitung des HX711-Sensors
const int CLK_PIN = 4; // Pin für Taktleitung des HX711-Sensors

HX711 scale; // HX711-Objekt erstellen

// InfluxDB-Konfiguration
#define INFLUXDB_URL "https://eu-central-1-1.aws.cloud2.influxdata.com" // InfluxDB-URL
#define INFLUXDB_TOKEN "Jfs3AMxqE-Mizls4zeRNBcZqN5v0aJQDhLM6_ox9qNFE-sFdkRVSKTrEvI6h7Xi6VI4A9eOy4OHmTPW3DHoH6Q==" // InfluxDB-Token
#define INFLUXDB_ORG "1c937f284dc25e64" // InfluxDB-Organisation
#define INFLUXDB_BUCKET "IntelliClamp" // InfluxDB-Bucket

// Zeitzone für Deutschland (Mitteleuropäische Zeit)
const char* TZ_INFO = "CET-1CEST,M3.5.0,M10.5.0/3";

InfluxDBClient client(INFLUXDB_URL, INFLUXDB_ORG, INFLUXDB_BUCKET, INFLUXDB_TOKEN, InfluxDbCloud2CACert); // InfluxDB-Client-Objekt erstellen

void setup() {
  Serial.begin(115200); // Serielle Kommunikation initialisieren

  // WiFi einrichten
  WiFi.mode(WIFI_STA); // WiFi-Modus auf Station-Modus setzen
  wifiMulti.addAP(ssid, password); // WiFi-Zugangsdaten hinzufügen

  Serial.print("Verbindung zum WiFi herstellen");
  int attempts = 0;
  while (wifiMulti.run() != WL_CONNECTED && attempts < 20) { // Solange Verbindung nicht hergestellt ist
    Serial.print(".");
    delay(100);
    attempts++;
  }
  Serial.println();

  if (WiFi.status() == WL_CONNECTED) {
    Serial.println("WiFi verbunden!");
  } else {
    Serial.println("WiFi Verbindung fehlgeschlagen!");
  }

  // Zeit synchronisieren
  timeSync(TZ_INFO, "pool.ntp.org", "time.nis.gov");

  // Überprüfen der Serververbindung
  if (client.validateConnection()) {
    Serial.print("Verbunden mit InfluxDB: ");
    Serial.println(client.getServerUrl());
  } else {
    Serial.print("InfluxDB-Verbindung fehlgeschlagen: ");
    Serial.println(client.getLastErrorMessage());
  }

  // HX711-Sensor konfigurieren
  scale.begin(DOUT_PIN, CLK_PIN); // HX711 initialisieren
  scale.set_scale(); // Skalierung einstellen
  scale.tare(); // Tarierung durchführen
}

void loop() {
  float weight = scale.get_units(); // Gewicht vom HX711-Sensor abrufen
  Serial.print("Gewicht: "); // Ausgabe im seriellen Monitor
  Serial.println(weight); // Ausgabe des Gewichts im seriellen Monitor

  // Datenpunkt für InfluxDB erstellen
  Point point("weight");
  point.addTag("device", "HX711");
  point.addField("value", weight);
  if (client.writePoint(point)) { // Datenpunkt in InfluxDB schreiben
    Serial.println("Schreiben erfolgreich"); // Erfolgsmeldung im seriellen Monitor
  } else {
    Serial.print("Schreiben fehlgeschlagen: "); // Fehlermeldung im seriellen Monitor
    Serial.println(client.getLastErrorMessage()); // Fehlermeldung im seriellen Monitor
  }

  delay(5000); // 5 Sekunden warten
}

In the serial Monitor it show, that the WiFi Connection is ok. I also get values from the loadcell, but it says the connection to influx is not working and the data points are not written to influxdb.
My newest error message is:
“exit status 1
‘InfluxDbCloud2CACert’ was not declared in this scope”

Can someone help me? I have no idea what`s to do…

hello @Domi,
This is what I tried a long time ago:

#if defined(ESP32)
#include <WiFiMulti.h>
WiFiMulti wifiMulti;
#define DEVICE "ESP32"
#elif defined(ESP8266)
#include <ESP8266WiFiMulti.h>
ESP8266WiFiMulti wifiMulti;
#define DEVICE "ESP8266"
#endif
#include <InfluxDbClient.h>
#include <InfluxDbCloud.h>
#include <Adafruit_Sensor.h>
#include <DHT.h>
#include <DHT_U.h>
#define WIFI_SSID "xxx"
#define WIFI_PASSWORD "xxx"
#define INFLUXDB_URL "xxx"
#define INFLUXDB_TOKEN "xxx"
#define INFLUXDB_ORG "xxx"
#define INFLUXDB_BUCKET "xxx"
#define TZ_INFO "GMT+0BST-1,M3.5.0/01:00:00,M10.5.0/02:00:00"
#define DHTPIN 12 // D7 on node mcu.  Other pins get set HIGH/LOW during boot and seem to stop the sensor working until replugged.
#define DHTTYPE DHT22
InfluxDBClient client(INFLUXDB_URL, INFLUXDB_ORG, INFLUXDB_BUCKET, INFLUXDB_TOKEN, InfluxDbCloud2CACert);
Point influx_sensor("dht22"); // Set up Influx data point for sensor
DHT_Unified dht(DHTPIN, DHTTYPE); // create dht temperature sensor
void setup() {
  Serial.begin(115200);
  while(!Serial) { };
  // Setup wifi
  WiFi.mode(WIFI_STA);
  wifiMulti.addAP(WIFI_SSID, WIFI_PASSWORD);
  Serial.print("\n\nConnecting to wifi");
  while (wifiMulti.run() != WL_CONNECTED) {
    Serial.print(".");
    delay(250);
  }
  Serial.println(F("Wifi Started"));
  Serial.print(F("IP Address: "));
  Serial.println(WiFi.localIP());
  Serial.println(F("-------------------------------------"));
  timeSync(TZ_INFO, "pool.ntp.org", "time.nis.gov");
  //client.validateConnection(); // test to see if it fires an exception
  // https://github.com/tobiasschuerg/InfluxDB-Client-for-Arduino/issues/86
  // Check server connection //  This was throwing exceptions all over the place for me
//  if (client.validateConnection()) {
//    Serial.print("Connected to InfluxDB: ");
//    Serial.println(client.getServerUrl());
//  } else {
//    Serial.print("InfluxDB connection failed: ");
//    Serial.println(client.getLastErrorMessage());
//  }
  dht.begin();
  sensor_t temp_sensor;
  dht.temperature().getSensor(&temp_sensor);
  Serial.println(F("------------------------------------"));
  Serial.println(F("Temperature Sensor"));
  Serial.print  (F("Sensor Type: ")); Serial.println(temp_sensor.name);
  Serial.print  (F("Driver Ver:  ")); Serial.println(temp_sensor.version);
  Serial.print  (F("Unique ID:   ")); Serial.println(temp_sensor.sensor_id);
  Serial.print  (F("Max Value:   ")); Serial.print(temp_sensor.max_value); Serial.println(F("°C"));
  Serial.print  (F("Min Value:   ")); Serial.print(temp_sensor.min_value); Serial.println(F("°C"));
  Serial.print  (F("Resolution:  ")); Serial.print(temp_sensor.resolution); Serial.println(F("°C"));
  Serial.println(F("------------------------------------"));
  dht.humidity().getSensor(&temp_sensor);
  Serial.println(F("Humidity Sensor"));
  Serial.print  (F("Sensor Type: ")); Serial.println(temp_sensor.name);
  Serial.print  (F("Driver Ver:  ")); Serial.println(temp_sensor.version);
  Serial.print  (F("Unique ID:   ")); Serial.println(temp_sensor.sensor_id);
  Serial.print  (F("Max Value:   ")); Serial.print(temp_sensor.max_value); Serial.println(F("%"));
  Serial.print  (F("Min Value:   ")); Serial.print(temp_sensor.min_value); Serial.println(F("%"));
  Serial.print  (F("Resolution:  ")); Serial.print(temp_sensor.resolution); Serial.println(F("%"));
  Serial.println(F("------------------------------------"));  
  influx_sensor.addTag("user", "cool_plant_lady");
}
void loop() {  
  Serial.println("Wait 10s");
  delay(10000);
  sensors_event_t event; // DHT temperature sensor
  dht.temperature().getEvent(&event);
  if(isnan(event.temperature)) {
    Serial.println(F("Error reading temperature!"));
    } else {
      Serial.print(F("Temperature: "));
      Serial.print(event.temperature);
      Serial.println(F("°C"));
      influx_sensor.addField("temperature", event.temperature); // I dont like using "temp" for temperature
    }
  dht.humidity().getEvent(&event);
  if (isnan(event.relative_humidity)) {
    Serial.println(F("Error reading humidity!"));
  }
  else {
    Serial.print(F("Humidity: "));
    Serial.print(event.relative_humidity);
    Serial.println(F("%"));
    influx_sensor.addField("humidity", event.temperature);
  }
  // Print what are we exactly writing
  Serial.print("Writing: ");
  Serial.println(influx_sensor.toLineProtocol());
  // If no Wifi signal, try to reconnect it
  if ((WiFi.RSSI() == 0) && (wifiMulti.run() != WL_CONNECTED)) {
    Serial.println("Wifi connection lost");
  }
  // Write point
  Serial.println("XX");
  if (!client.writePoint(influx_sensor)) {
    Serial.print("InfluxDB write failed: ");
    Serial.println(client.getLastErrorMessage());
  }
influx_sensor.clearFields();
}

Hi @Anaisdg,
thanks for your help. My code works now. It was as simple as stupid… I had to add
#include <InfluxDbCloud.h>

Now the certificate is running and it`s sending datas. Thanks for your help!

@Domi,
It’s not stupid its common. That’s why we’re here.