Wortuhr Sketch Probleme beim kompilieren

Moin Moin zusammen,

ich habe mir ein Projekt aus dem Internet rausgesucht und habe nur Probleme mit dem Sketch.

Die Arduino IDE hat nur Fehlermeldungen raus und ich weiß nicht was ich dagegen machen kann, ich hab schon viel an dem Sketch gefummelt aber auch mehr laienhaft. (Der Sketch soll auf einen ESP8266, aber soweit kommt es erst gar nicht)

In file included from sketch\controller.cpp:4:0:
grid.h:11:35: fatal error: language/DE_DE_s1.h: No such file or directory
   #include INCLUDE_FILE (DE_DE_s1)
                                   ^
compilation terminated.
exit status 1
language/DE_DE_s1.h: No such file or directory

Das ist die Fehlermeldung.

Gibt es irgendwo eine Anleitung für Anfänger, in der Erklärt wird wie man einen fertigen Sketch kompiliert? Oder weiß einer von euch, wo mein Fehler liegt? <–Der Fehler sitzt immer vor dem Rechner :confused: oder hat der Sketch doch eine Macke.

Ich habe mir mit einem Arduino NANO schon mehrere CO2 Ampeln (Mit fertigen Sketchen) gebaut und das hat auch alles geklappt, wahrscheinlich weil es nur ein kleiner Sketch ist…

Ich bitte um Hilfe :slight_smile: habe alle Teile schon konstruiert und ausgedruckt…Die Uhr wartet nur auf ihren Sketch.

Hallo
lade mal den Skectch hier hoch.
Im IDE unter dem Tab Bearbeiten Für Forum kopieren und dann hier einfügen.

language/DE_DE_s1.h: No such file or directory

Der Compiler findet dieses File im Direktory "language" nicht.

Grüeß Uwe

Im Verzeichnis “language” gibt es (nur) eine Datei “de_DE_s1.cpp”.
Also mit anderer Groß/Kleinschreibung.

GRID_LANGUAGE wird festgelgt im Tab “user_config.h”. Wie ist das bei dir? Schau mal nach.

So sollte es sein:

#define GRID_LANGUAGE de_DE_s1
#include <ArduinoJson.h>
#include <ESP8266WiFi.h>
#include <DNSServer.h>
#include <ESP8266WebServer.h>
#include <WiFiManager.h>
#include <FastLED.h>
#include <NTPClient.h>
#include <WiFiUdp.h>
#include <FS.h>

#include "src/grid.h"
#include "src/wifi.h"
#include "src/types.h"
#include "src/color.h"
#include "src/config.h"
#include "src/dnd.h"
#include "src/led.h"
#include "src/time.h"
#include "src/httpServer.h"
#include "src/gui.h"
#include "src/controller.h"

void setup() {
  Serial.begin(115200);
  Serial.println();
  SPIFFS.begin();

  Config::load();

  Wifi::setup();
  HttpServer::setup();
  Led::setup();
  Time::setup();

  Grid::setTime(Time::hour, Time::minute);
}

void loop() {
  Time::loop();
  HttpServer::loop();
}

Das ist der Code :confused:

madde007:
Das ist der Code :confused:

Das ist der Code von "wordclock.ino".
Gefragt ist aber der Code von "user_config.h"

Falls du alles richtig heruntergeladen und geöffnet hast, sollte es in der Arduino-IDE so aussehen, da sollte es also 2 Tabs geben: wordclock und user_config.h:

tabs.png

tabs.png

/* Grid rows
 * 
 * Options
 * -------
 * 10: 10 rows
 * 11: 11 rows
 */
#define GRID_ROWS 11

/* Grid cols
 * 
 * Options
 * ------- 
 * 11: 11 cols
 */
#define GRID_COLS 11

/* Postition of first LED  
 *   
 * Options
 * -------
 * 0: top-left
 * 1: top-right
 * 2: buttom-left
 * 3: buttom-right
 */
#define GRID_FIRST 2

/* Grid language
 *  
 * Options
 * -------
 * 1: de_DE:     german
 * 2: de_DE_alt: german alternative
 * 3: de_DE_s: "Es ist" only at full and half hour
 * 4: de_DE_s1: "Es ist" only at full and half hour + Minutes in Last row (new front Plate De_de_s1)
 */
#define GRID_LANGUAGE de_DE

/* Position of single minute LEDs
 *  
 * Options
 * -------
 * 0: before
 * 1: after
 */
#define GRID_SINGLE_MINUTES 1

/* Data PIN, where the LED strip is connected to */
#define DATA_PIN D4
#define FASTLED_INTERNAL

Sorry…Anfänger. Ich glaube ich hab das Problem behoben indem ich “controller.h” in den Ordner Language kopiert habe, jedenfalls kommt die Fehlermeldung nicht mehr. Kann das so richtig sein? Hab dafür eine neue Batterie an Fehlern :frowning: Ist das Projekt doch zu hoch für mich?

C:\Users\MH\Documents\Arduino\libraries\FastLED\src/FastLED.h:363:25: note:   template argument deduction/substitution failed:
led.cpp:30:57: error: wrong number of template arguments (2, should be 1)
   FastLED.addLeds<NEOPIXEL, DATA_PIN>(Led::ids, NUM_LEDS);
                                                         ^
In file included from sketch\led.cpp:1:0:
C:\Users\MH\Documents\Arduino\libraries\FastLED\src/FastLED.h:431:25: note: template<EBlockChipsets CHIPSET, int NUM_LANES, EOrder RGB_ORDER> static CLEDController& CFastLED::addLeds(CRGB*, int, int)
  static CLEDController &addLeds(struct CRGB *data, int nLedsOrOffset, int nLedsIfOffset = 0) {
                         ^
C:\Users\MH\Documents\Arduino\libraries\FastLED\src/FastLED.h:431:25: note:   template argument deduction/substitution failed:
led.cpp:30:57: error: template argument 2 is invalid
   FastLED.addLeds<NEOPIXEL, DATA_PIN>(Led::ids, NUM_LEDS);
                                                         ^
In file included from sketch\led.cpp:1:0:
C:\Users\MH\Documents\Arduino\libraries\FastLED\src/FastLED.h:472:25: note: template<EBlockChipsets CHIPSET, int NUM_LANES> static CLEDController& CFastLED::addLeds(CRGB*, int, int)
  static CLEDController &addLeds(struct CRGB *data, int nLedsOrOffset, int nLedsIfOffset = 0) {
                         ^
C:\Users\MH\Documents\Arduino\libraries\FastLED\src/FastLED.h:472:25: note:   template argument deduction/substitution failed:
led.cpp:30:57: error: template argument 2 is invalid
   FastLED.addLeds<NEOPIXEL, DATA_PIN>(Led::ids, NUM_LEDS);
                                                         ^
exit status 1
'Controller' has not been declared

Nein, "controller.h" gehört nicht in den Ordner "language".

Das Projekt das du dir im Internet gesucht hast ist durchaus komplex, je nach Vorerfahrungen kann das eine gewisse Herausforderung sein. :slight_smile:

Schau nochmal auf die Internetseite, die du angegeben hast: GitHub - panbachi/wordclock: DIY WordClock

Du musst die Datein von dort herunterladen (Klicke auf den grünen "Code" Button und wähle "Download ZIP"). Die Zip-Datei entpacken - am besten in deinem Sketch-Ordner. Es ergeben sich mehrere Unterordner.

Auf der obigen Website sind außerdem mehrere Librarys angegeben, die du zusätzlich noch herunterladen und installieren musst (bitte mache dich schlau, wie man Libraries "installiert"), damit das Programm fehlerfrei kompiliert:

  • FastLED
  • NTPClient
  • WifiManager
  • ArduinoJson
    (Adressen siehe dort).

Dann musst du das Package für ESP8266 installieren:
In der Arduino-IDE gehe in die Voreinstellungen (Datei / Voreinstellungen).
Füge dort bei "Zusätzliche Board-Manager-URLs" folgendes hinzu:
http://arduino.esp8266.com/stable/package_esp8266com_index.json

In der Arduino-IDE gehe ins Menü "Werkzeuge", Board / Board-Manager und suche dort nach ESP8266 und installiere es.

Danach kannst du die Datei "wordclock.ino" aufmachen.
Bei den Boards wählst du Node-MCU aus und dann sollte es fehlerfrei kompilieren.
Zumindest tut es das bei mir.

Wie bereits erwähnt ist dieses Projekt nicht allzu "anfängerfreundlich". :slight_smile:

Vielen Vielen Dank!!!
Das kompilieren klappt, es lag schlicht und ergreifend daran, dass ich nicht Node-MCU eingestellt hatte...komisch.

Hochladen klappt noch nicht, denke das liegt an meinem ESP8266
Diesen habe ich:

Schonmal vielen vielen Dank für die Hilfe

Zum Hochladen müssen Pins im richtigen Moment auf GND gezogen werden, zum Beispiel mit Tastern (die der ESP den du verwendest nicht hat). Da musst du also selbst dafür sorgen.

Wenn bei der Arduino-IDE die Meldung "Hochladen" erscheint:

  • Reset auf GND ziehen und halten (Reset-Taster drücken und halten)
  • dann GPOI 0 ebenfalls auf GND ziehen und halten.
  • nach kurzer Zeit Reset loslassen und nach ca. 2 Sekunden kann auch GPOI 0 losgelassen werden.
    Der ESP empfäng nun gerne ein Firmware-Update. Nach Ende des Hochladens wieder kurz Reset auf GND ziehen, um das gerade hochgeladene Programm zu starten.

Der ESP, den du hast kann schon funktionieren, aber ich würde trotzdem dringend zu einem anfängerfreundlicheren Modell raten z.B. einem NodeMCU. Der kostet auch nur ein paar Euro, hat aber neben den beiden Tastern auch noch einen "USB-Adapter" an Board sowie einen Spannungsregler. Damit funktioniert alles viel leichter. Außerdem sind viel mehr Pins herausgeführt.

In jedem Fall musst du einen Treiber für den USB-Adapter (z.B. CH340) installieren, z.B. das Treiberpacket von Zadig:
http://zadig.akeo.ie/

Falls du dein Board dennoch verwenden willst, dann musst du im Tab "user_config.h" den Data-Pin ändern. Dort steht nämlich:
#define DATA_PIN D4
Einen Pin mit diesem Namen hat dein Board nicht. Du könntest es z.B ändern in
#define DATA_PIN 2

Ich würde mir hier einen ESP32 nodeMCU bestellen.
flashen geht automatisch und dann hat der ESP32 auch noch bluetooth mit dazu
https://www.komputer.de/zen/index.php?main_page=product_info&cPath=38_39&products_id=528&zenid=f1hobc0ebu2lbqduvrao1uer81

Amazon ist keineswegs immer der billigste Anbieter. Bei Elektronik-Komponenten findet man außerhalb von Amazon
so preiswerte Sachen das das mit Versandkosten oft immer noch billiger ist als mit einer Amazon-prime-Flatrate
Das gilt auch für gebrauchte Elektronik da ist back market oft günstiger

vgs

So es hat alles funktioniert :slight_smile: Vielen vielen Dank für die mega Hilfe. Was für ein geiles Forum.

Bleibt gesund!!

Super!
Und danke für die Rückmeldung!

This topic was automatically closed 120 days after the last reply. New replies are no longer allowed.