Hallo zusammen,
ich habe ein Problem mit meinem ESP32 und der HX711 Waage, die ich für ein einfaches Waagenprojekt verwende. Ich versuche, den ESP32 so zu programmieren, dass er das Gewicht von der HX711 liest und an einen MQTT-Server sendet, aber ich bekomme keine Ausgabe im seriellen Monitor. Der Upload des Codes scheint jedoch erfolgreich zu sein und der ESP32 baut eine Verbindung zum WiFi auf. Dennoch bleibt der serielle Monitor leer.
Hier ist mein Code:
cpp
KopierenBearbeiten
#include <HX711.h>
#include <WiFi.h>
#include <PubSubClient.h>
// HX711 Pins
#define DOUT GPIO_NUM_4
#define CLK GPIO_NUM_5
HX711 scale;
// WiFi-Konfiguration
const char* ssid = "Padrina-IoT";
const char* password = "**************";
// MQTT-Konfiguration
const char* mqtt_server = "10.0.2.10";
const int mqtt_port = ****;
const char* mqtt_topic = "salzwaage/gewicht";
WiFiClient espClient;
PubSubClient client(espClient);
void setup_wifi() {
delay(10);
Serial.println("Verbindung zum WLAN wird hergestellt...");
WiFi.mode(WIFI_STA);
WiFi.setHostname("Bravatec");
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("\nWLAN verbunden!");
}
void reconnect() {
while (!client.connected()) {
Serial.print("Verbinde mit MQTT...");
if (client.connect("Bravatec")) {
Serial.println("Verbunden!");
} else {
Serial.print("Fehler, rc=");
Serial.print(client.state());
Serial.println(" Neuer Versuch in 5 Sekunden...");
delay(5000);
}
}
}
void setup() {
Serial.begin(115200); // Seriellen Monitor mit 115200 Baud starten
// Setup HX711
scale.begin(DOUT, CLK);
scale.set_scale(2280.f); // Kalibrierungswert (anpassen!)
// Setup WiFi und MQTT
setup_wifi();
client.setServer(mqtt_server, mqtt_port);
}
void loop() {
if (!client.connected()) {
reconnect();
}
client.loop();
// Gewicht messen
if (scale.is_ready()) {
float gewicht = scale.get_units();
Serial.print("Gewicht: ");
Serial.println(gewicht);
// Gewicht an MQTT senden
char payload[10];
dtostrf(gewicht, 1, 2, payload);
client.publish(mqtt_topic, payload);
delay(1000); // 1 Sekunde warten
} else {
Serial.println("HX711 nicht bereit.");
}
}
Problem:
- Der Code wird ohne Fehler hochgeladen.
- Der ESP32 verbindet sich mit dem WiFi.
- Der serielle Monitor zeigt jedoch keine Ausgabe – selbst die einfache Initialisierungsnachricht wie „Verbindung zum WLAN wird hergestellt…“ wird nicht angezeigt.
- Ich bekomme keine Fehlermeldungen, aber der Monitor bleibt einfach leer.
Was ich bereits versucht habe:
- Baudrate im seriellen Monitor auf 115200 eingestellt (entspricht dem
Serial.begin(115200)
im Code). - Den ESP32 an verschiedenen USB-Ports und mit verschiedenen Kabeln getestet (sicher, dass es ein Datenkabel ist).
- Einfache Testcodes verwendet, um sicherzustellen, dass der serielle Monitor funktioniert (z. B. nur
Serial.println("Test");
). - Board und Port in der Arduino IDE überprüft (ESP32 Dev Module und den richtigen COM-Port ausgewählt).
- Die Verbindung zum WiFi wird im Code etabliert (d.h. der ESP32 scheint richtig zu starten).
Fragen:
- Habt ihr Ideen, warum der serielle Monitor leer bleibt, obwohl der Upload erfolgreich war?
- Gibt es spezielle Einstellungen, die ich beachten muss, um die serielle Ausgabe korrekt zu erhalten?
- Gibt es etwas, das ich im Code oder in den Einstellungen anpassen sollte, um das Problem zu beheben?
Ich freue mich über jede Hilfe oder einen Hinweis!