Hallo,
Wie haben ja schon mehrfach Fragen zu unserem CO2-Ampel-Projekt gestellt. Zuletzt hatte der Code dann auch einwandfrei funktioniert. Als wir jedoch versucht haben das Programm wieder in Betrieb zunehmen bekamen wir eine ziemlich lange Fehlermeldung:
Arduino: 1.8.19 (Windows Store 1.8.57.0) (Windows 10), Board: "ESP32 Dev Module, Disabled, Default 4MB with spiffs (1.2MB APP/1.5MB SPIFFS), 240MHz (WiFi/BT), QIO, 80MHz, 4MB (32Mb), 921600, Core 1, Core 1, None"
c:/users/schueler/documents/arduinodata/packages/esp32/tools/xtensa-esp32-elf-gcc/gcc8_4_0-esp-2021r2/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld.exe: sketch\ohne_Wlan.ino.cpp.o:(.literal._Z5setupv+0x1c): undefined reference to `SoftwareSerial::begin(unsigned int, SoftwareSerialConfig, signed char, signed char, bool, int, int)'
c:/users/schueler/documents/arduinodata/packages/esp32/tools/xtensa-esp32-elf-gcc/gcc8_4_0-esp-2021r2/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld.exe: sketch\ohne_Wlan.ino.cpp.o:(.literal._Z5setupv+0x20): undefined reference to `MHZ19::begin(Stream&)'
c:/users/schueler/documents/arduinodata/packages/esp32/tools/xtensa-esp32-elf-gcc/gcc8_4_0-esp-2021r2/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld.exe: sketch\ohne_Wlan.ino.cpp.o:(.literal._Z5setupv+0x24): undefined reference to `MHZ19::autoCalibration(bool, unsigned char)'
c:/users/schueler/documents/arduinodata/packages/esp32/tools/xtensa-esp32-elf-gcc/gcc8_4_0-esp-2021r2/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld.exe: sketch\ohne_Wlan.ino.cpp.o:(.literal._Z4loopv+0xc): undefined reference to `MHZ19::getCO2(bool, bool)'
c:/users/schueler/documents/arduinodata/packages/esp32/tools/xtensa-esp32-elf-gcc/gcc8_4_0-esp-2021r2/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld.exe: sketch\ohne_Wlan.ino.cpp.o:(.literal.startup._GLOBAL__sub_I_myMHZ19+0x8): undefined reference to `SoftwareSerial::SoftwareSerial(signed char, signed char, bool)'
c:/users/schueler/documents/arduinodata/packages/esp32/tools/xtensa-esp32-elf-gcc/gcc8_4_0-esp-2021r2/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld.exe: sketch\ohne_Wlan.ino.cpp.o:(.literal.exit._GLOBAL__sub_D_myMHZ19+0x0): undefined reference to `SoftwareSerial::~SoftwareSerial()'
c:/users/schueler/documents/arduinodata/packages/esp32/tools/xtensa-esp32-elf-gcc/gcc8_4_0-esp-2021r2/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld.exe: sketch\ohne_Wlan.ino.cpp.o: in function `SoftwareSerial::begin(unsigned int, SoftwareSerialConfig)':
S:\Elektro\2.AJ (=3.LJ) 2021-22\Jonathan Haan\Co2-Messgerät\Programme\ohne_Wlan/SoftwareSerial.h:119: undefined reference to `SoftwareSerial::begin(unsigned int, SoftwareSerialConfig, signed char, signed char, bool, int, int)'
c:/users/schueler/documents/arduinodata/packages/esp32/tools/xtensa-esp32-elf-gcc/gcc8_4_0-esp-2021r2/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld.exe: sketch\ohne_Wlan.ino.cpp.o: in function `setup()':
S:\Elektro\2.AJ (=3.LJ) 2021-22\Jonathan Haan\Co2-Messgerät\Programme\ohne_Wlan/ohne_Wlan.ino:25: undefined reference to `MHZ19::begin(Stream&)'
c:/users/schueler/documents/arduinodata/packages/esp32/tools/xtensa-esp32-elf-gcc/gcc8_4_0-esp-2021r2/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld.exe: S:\Elektro\2.AJ (=3.LJ) 2021-22\Jonathan Haan\Co2-Messgerät\Programme\ohne_Wlan/ohne_Wlan.ino:25: undefined reference to `MHZ19::autoCalibration(bool, unsigned char)'
c:/users/schueler/documents/arduinodata/packages/esp32/tools/xtensa-esp32-elf-gcc/gcc8_4_0-esp-2021r2/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld.exe: sketch\ohne_Wlan.ino.cpp.o: in function `loop()':
S:\Elektro\2.AJ (=3.LJ) 2021-22\Jonathan Haan\Co2-Messgerät\Programme\ohne_Wlan/ohne_Wlan.ino:44: undefined reference to `MHZ19::getCO2(bool, bool)'
c:/users/schueler/documents/arduinodata/packages/esp32/tools/xtensa-esp32-elf-gcc/gcc8_4_0-esp-2021r2/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld.exe: S:\Elektro\2.AJ (=3.LJ) 2021-22\Jonathan Haan\Co2-Messgerät\Programme\ohne_Wlan/ohne_Wlan.ino:46: undefined reference to `MHZ19::getCO2(bool, bool)'
c:/users/schueler/documents/arduinodata/packages/esp32/tools/xtensa-esp32-elf-gcc/gcc8_4_0-esp-2021r2/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld.exe: S:\Elektro\2.AJ (=3.LJ) 2021-22\Jonathan Haan\Co2-Messgerät\Programme\ohne_Wlan/ohne_Wlan.ino:53: undefined reference to `MHZ19::getCO2(bool, bool)'
c:/users/schueler/documents/arduinodata/packages/esp32/tools/xtensa-esp32-elf-gcc/gcc8_4_0-esp-2021r2/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld.exe: S:\Elektro\2.AJ (=3.LJ) 2021-22\Jonathan Haan\Co2-Messgerät\Programme\ohne_Wlan/ohne_Wlan.ino:55: undefined reference to `MHZ19::getCO2(bool, bool)'
c:/users/schueler/documents/arduinodata/packages/esp32/tools/xtensa-esp32-elf-gcc/gcc8_4_0-esp-2021r2/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld.exe: S:\Elektro\2.AJ (=3.LJ) 2021-22\Jonathan Haan\Co2-Messgerät\Programme\ohne_Wlan/ohne_Wlan.ino:79: undefined reference to `MHZ19::getCO2(bool, bool)'
c:/users/schueler/documents/arduinodata/packages/esp32/tools/xtensa-esp32-elf-gcc/gcc8_4_0-esp-2021r2/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld.exe: sketch\ohne_Wlan.ino.cpp.o:S:\Elektro\2.AJ (=3.LJ) 2021-22\Jonathan Haan\Co2-Messgerät\Programme\ohne_Wlan/ohne_Wlan.ino:84: more undefined references to `MHZ19::getCO2(bool, bool)' follow
c:/users/schueler/documents/arduinodata/packages/esp32/tools/xtensa-esp32-elf-gcc/gcc8_4_0-esp-2021r2/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld.exe: sketch\ohne_Wlan.ino.cpp.o: in function `_GLOBAL__sub_I_myMHZ19':
S:\Elektro\2.AJ (=3.LJ) 2021-22\Jonathan Haan\Co2-Messgerät\Programme\ohne_Wlan/ohne_Wlan.ino:15: undefined reference to `SoftwareSerial::SoftwareSerial(signed char, signed char, bool)'
c:/users/schueler/documents/arduinodata/packages/esp32/tools/xtensa-esp32-elf-gcc/gcc8_4_0-esp-2021r2/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld.exe: sketch\ohne_Wlan.ino.cpp.o: in function `_GLOBAL__sub_D_myMHZ19':
S:\Elektro\2.AJ (=3.LJ) 2021-22\Jonathan Haan\Co2-Messgerät\Programme\ohne_Wlan/ohne_Wlan.ino:15: undefined reference to `SoftwareSerial::~SoftwareSerial()'
collect2.exe: error: ld returned 1 exit status
exit status 1
Fehler beim Kompilieren für das Board ESP32 Dev Module.
Dieser Bericht wäre detaillierter, wenn die Option
"Ausführliche Ausgabe während der Kompilierung"
in Datei -> Voreinstellungen aktiviert wäre.
Da scheint irgendwas mit den Header-Datein nicht zustimmen. Aber wir kommen leider nicht drauf, was kaputt ist...
Liebe Grüße und schonmal danke für die Hilfe!
#include "MHZ19.h"
#include "SoftwareSerial.h"
#define RX_PIN 33 // Rx pin which the MHZ19 Tx pin is attached tozh
#define TX_PIN 32 // Tx pin which the MHZ19 Rx pin is attached to
#define BAUDRATE 9600 // Device to MH-Z19 Serial baudrate (should not be changed)
#define LED_gruen 21
#define LED_gelb 19
#define LED_rot 18
#define dhtPin 4 // verbunden mit Data-Pin des DHT22
MHZ19 myMHZ19; // Constructor for library
SoftwareSerial mySerial(RX_PIN, TX_PIN); // create device to MH-Z19 serialh
void setup()
{
Serial.begin(115200); // Datenrate serieller Monitor
mySerial.begin(BAUDRATE); // (Uno example) device to MH-Z19 serial start
myMHZ19.begin(mySerial); // *Serial(Stream) refence must be passed to library begin().
myMHZ19.autoCalibration(true); // Turn auto calibration ON (OFF autoCalibration(false))
//Ausgänge definieren
pinMode(LED_gruen,OUTPUT );
pinMode(LED_gelb,OUTPUT );
pinMode(LED_rot,OUTPUT );
}
unsigned long getDataTimer = 0;
void loop()
{
if (millis() - getDataTimer >= 1000)
{
int CO2 = myMHZ19.getCO2(); // Request CO2 (as ppm)
Serial.print("CO2 (ppm): ");
Serial.println(CO2);Serial.println("\t");
getDataTimer = millis();
}
if (myMHZ19.getCO2() > 2000 ) // unter 1000 ppm
{
digitalWrite(LED_rot, HIGH);
delay(50);
digitalWrite(LED_rot, LOW);
delay(500);
}
else if ( myMHZ19.getCO2() >= 1000 && myMHZ19.getCO2() < 2000) //über 1000 ppm
{
digitalWrite(LED_rot, HIGH);
}
else {
digitalWrite(LED_rot, LOW);
}
if (800 <= myMHZ19.getCO2() && 1000 > myMHZ19.getCO2() ) // über 800 ppm
{
digitalWrite(LED_gelb, HIGH);
}
else {
digitalWrite(LED_gelb, LOW);
}
if (myMHZ19.getCO2() < 800 ) // unter 800 ppm
{
digitalWrite(LED_gruen, HIGH);
}
else {
digitalWrite(LED_gruen, LOW);
}
}