GithubHelp home page GithubHelp logo

manfred-hofmann / wortuhr_esp8266 Goto Github PK

View Code? Open in Web Editor NEW
61.0 12.0 14.0 94.15 MB

Wortuhr mit ESP8266 WeMos D1 mini und NeoPixel WS2812B LEDs mit mp3 Sounds, Animationen, Transitions, Events und Spiele

License: GNU General Public License v3.0

C++ 42.78% C 33.20% CSS 1.15% HTML 22.87%
wortuhr wordclock esp8266-arduino esp8266 sound mp3 spiele games animations events

wortuhr_esp8266's Introduction

Wortuhr_ESP8266

Wortuhr mit ESP8266 WeMos D1 mini (Pro) und NeoPixel WS2812B LEDs
mit mp3 Sounds, Animationen, Transitions, Events und Spiele, Webzugriff, multlingual

Bedienungsanleitung:

https://github.com/manfred-hofmann/Wortuhr_ESP8266/blob/main/Bedienungsanleitung_Wortuhr_mp3_20221222.pdf

Manual:

https://github.com/manfred-hofmann/Wortuhr_ESP8266/blob/main/Manual_Wordclock_mp3_20221222.pdf

Sonstiges:

  • Mehrsprachig: de, ch, en, fr, es, it, nl (Sprach-Layout wird in configuration.h ausgewählt)
  • Automatischer W-Lan Reconnect.
  • Mondphase wird in Abwechslung der Temp. und Datumsanzeige angezeigt.
  • Die Minuten LED können nun eine eigene Farbe haben.
  • Silvester CountDown.
  • Drei Eingabe Taster sind möglich: On/Off, Time und Mode.
  • Sonnenauf-/untergangsanimation
  • Ausführen von Adhoc Events mit http-Request:
    z.B.: http://wortuhr-ip/setEvent?text=I+love+you&color=1&audio=701&preani=HERZ&postani=HERZ
  • API Abruf vieler Parameter mit http-Request:
    http://wortuhr-ip/apidata

Temperatur und Luftdruck:

  • Als Temp. Sensor hatte ich einen BME280.
  • Aufzeichnen der Temperatur und Anzeige im Webfrontend.
  • Aufzeichnen des Luftdrucks und Anzeige im Webfrontend.
  • Wetterlage wird als Animation angezeigt.

Transitions:

  • 17 Transitions (Spirale, Matrix, Zur Mitte, u.s.w.) und diese einzeln oder per Zufall angewählt.
  • Alle Transitions sind jetzt 2 farbig.
    D.h. z.B. Übergang 'nach links': die Buchstaben der 'alten' Zeit verschwinden mit der 'alten' Farbe nach links,
    während rechts die Buchstaben der 'neuen' Zeit mit der 'neuen' Farbe reinkommen.
    (sichtbar natürlich nur wenn die neue Farbe unterschiedlich zur alten Farbe ist. z.B. neue Farbe alle 5 Minuten)

Sound:

  • Anschluss eines MP3 Moduls (https://www.az-delivery.de/products/mp3-player-modul?_pos=1&_sid=9812a53bb&_ss=r) um der Uhr das Sprechen und verschiedene Sound zu entlocken. (Sounds werden einfach auf einer SD Karte nummeriert abgespeichert)
  • Verschiedene Stunden Sounds (Gong, Kuckuck, Vicki sagt die Uhrzeit , Hans sagt die Uhrzeit, usw.) per Settings einstellbar oder pro Tag ein anderer Sound.
  • Soundlautstärke in abh. der Tages/Nachtzeit.
  • Uhr erklärt nun im AP Mode was zu tun ist.
  • zusätzliche Stundensound (Westminster, alte Uhr, Kirche, usw.)

Webfrontend:

  • Alle CSS Files sind im LittleFS des ESP abgelegt.
  • Eigenes Wortuhr Favicon eingefügt.
  • Werte auf Info Seite zur Einsicht aller wichtigen Parameter
  • Sonnenaufgangs- und Sonnenuntergangszeiten
  • Wettersymbole

Animationen:

  • Es können eigene Animationen für Deine Events erstellt werden.
    Herz
  • Über den eingebauten Animationseditor können Animationen erstellt werden
    Animationsmenue
    Animationsmenue2
  • Animationen mit bis zu 25 Frames möglich
  • Dadurch der gif2animation Konverter von kollabierer (https://www.kollabierer.de/farbe) direkt nutzbar.
  • Animationen mit Namen ZHHMM werden zur jeweiligen Stunde und Minute angezeigt (z.B. Z1200 startet eine Animation um 12 Uhr)
  • Animation mit Name ALARM wird während des Alarms angezeigt.
    Alarm
  • Alle Animationen werden im LittleFS unter dem Name ani_ANINAME.json gespeichert und können über den Dateimanager gesichert/kopiert werden.

Events:

  • Verschiedene Melodien werden passend zu den Events abgespielt.
  • Events werden über die Weboberfläche gepflegt.
    Events
  • Es können eigene Animationen für Deine Events erstellt werden.
  • Alle Events werden im LittleFS unter dem Namen events.json abgelegt und können über den Dateimanager gesichert/kopiert werden.

Spiele:

  • 7 Wortuhrspiele integriert: Snake
    Snake
    Tetris
    Tetris
    Bricks
    Bricks
    4 gewinnt
    4gewinnt
    Tier Memory / Musik Memory /ABBA Memory
    Ein Spiel für die ganze Familie!
    Es können bis zu 4 Spieler spielen
    Memory_01
    Spieler müssen sich mit der URL
    http://wortuhr-ip/spieler
    am Spiel anmelden.
    Jeder Spieler bekommt eine andere Farbe zugewiesen.
    Spieler2:
    Memory_02
    Spieler3:
    Memory_02
    Spieler4:
    Memory_04
    Ziel ist es ein passendes Sound/Musik Paar zu finden:
    Memory_05t
    Nach einem Spiel müssen die einzelnen Mitspieler jeweils nur die WebSeite refreshen um sich wieder anzumelden.
    Welche Spieler angemeldet sind erkennt man in der Hauptspielseite an den farbigen Spielerpunkten (siehe oben).

Viel Spaß mit den Spielen!

  • Sichern der Highscores im EEPROM

Settings:

  • Eingabe des Zeitservers über die Settings.
  • Systemname in Settings.
  • Hier ist der Dateimanager für LittleFS.
    LittleFS
  • Angabe der Location und Höhe über 0 in Settings (wird für die WetterAPI und Berechnung des Luftdrucks auf Meereshöhe benötigt).
  • Hier API-Key von OpenWeather eintragen!
  • Eingabe des Automodeintervall in Settings ( Intervall wie oft verschiedene Modes Wetter, Temperatur, Mondphase... angezeigt werden)
  • Highscores können hier gelöscht werden.
  • Stundensound pro Wochentag einstellbar und Testmöglichkeit der Sounds.
  • "Wochenend Lautstärke Erhöhung" wählbar. Am Wochenende zwischen 5 und 11 Uhr 2 h später lauter.
  • Sprecher Vicki oder Hans.
  • Stundenansage Vicki/Hans 12h oder 24h Format
  • definieren einer beliebigen Hintergrundfarbe
  • und vieles mehr

System:

  • Neustart mit http://<UHR-IP>/reboot
  • W-Lan Daten löschen mit http://<UHR-IP>/wifireset
  • Wortuhr-API mit http://<UHR-IP>/apidata
  • compilierbar auch ohne mp3 Player (#define AUDIO_SOUND in der Configuration kommentieren)
  • WLAN Empfangsstärke wird auf der Infoseite angezeigt
  • Anzeige der IP-Adresse im erweiterten Testmenü (nach den Sekunden nochmal die Taste Mode drücken. Hier gibt es dann : IP-Adresse, Matrixtest und Farbentests

Schaltplan:

https://github.com/manfred-hofmann/Wortuhr_ESP8266/blob/main/Platine_Plan_Wortuhr_mp3.pdf

LED-Layout:

Es können verschiedene LED Layouts verwendet werden.
In der configuration.h sind 4 voreingestellte Layouts zu finden:

Das LED Layout (Siehe in LedDriver.cpp):

#define LED_LAYOUT_HORIZONTAL_2  
//#define LED_LAYOUT_VERTICAL_1  
//#define LED_LAYOUT_VERTICAL_2  
//#define LED_LAYOUT_VERTICAL_3  

Die Layouts sind in LedDriver.cpp definiert. Hier können nach belieben auch eigene angelegt werden. Hierbei ist zu beachten:
die ersten 10 Zeilen in ledMap sind die LEDs für die Wörter. die letzte Zeile sind die Minuten LEDs angefangen links oben, rechts oben, rechts unten, links unten und die Alarm LED.
Die Zahlen entsprechen der LED-Nummer in der LED-Kette:

#ifdef LED_LAYOUT_VERTICAL_2
    uint8_t ledMap[] = {
          9,  10,  29,  30,  49,  50,  69,  70,  89,  90, 109,
          8,  11,  28,  31,  48,  51,  68,  71,  88,  91, 108,
          7,  12,  27,  32,  47,  52,  67,  72,  87,  92, 107,
          6,  13,  26,  33,  46,  53,  66,  73,  86,  93, 106,
          5,  14,  25,  34,  45,  54,  65,  74,  85,  94, 105,
          4,  15,  24,  35,  44,  55,  64,  75,  84,  95, 104,
          3,  16,  23,  36,  43,  56,  63,  76,  83,  96, 103,
          2,  17,  22,  37,  42,  57,  62,  77,  82,  97, 102,
          1,  18,  21,  38,  41,  58,  61,  78,  81,  98, 101,
          0,  19,  20,  39,  40,  59,  60,  79,  80,  99, 100,
      112,110,114,113,111
    };
#endif

Hier ein Beispiel Layout:
LED-Layout

Möchte man auf die "Alarm LED" verzichten, so muss in der configuration.h die Anzahl der LEDs angepasst werden:

#define NUMPIXELS 114 -> ohne eigen Alarm LED  
define NUMPIXELS 115 -> mit Alarm LED  

ESP:

z.B.: https://de.aliexpress.com/item/1005004547410607.html?spm=a2g0o.order_list.0.0.21ef5c5ftzOASF&gatewayAdapt=glo2deu
D1 MINI WEMOS Pro 4M

Arduino IDE Einstellungen:
Board: "LOLIN(WEMOS) D1 R2 & mini"
CPU Frequenz auf 160 MHz
Flash Size 4MB ( FS:2MB OTA~1019KB)
SLL Support Basic

besser:

D1 MINI WEMOS Pro 16M
Arduino IDE Einstellungen:
Board: "LOLIN(WEMOS) D1 pro"
CPU Frequenz auf 160 MHz
Flash Size: 16MB ( FS:14MB OTA~1019KB)
SLL Support Basic

Inbetriebnahme:

  • ESP8266 Board Version = 3.0.2 (Versionen > 3.0.2 können funktionieren, sind aber nicht getestet!)

  • folgende Libraries werden benötigt (min. Versionen) (alle zu finden unter Bibliotheken verwalten):

    • Arduino_JSON - Version 0.1.0
    • BME280 - Adafruit BME280 Version 2.1.4
    • MP3-Player - DFRobotDFPlayer Version 1.0.5
    • Adafruit Unified Sensor Version 1.1.4
    • Adafruit Neopixel: Version 1.10.6
    • SunRise: Version 2.0.2 by Cyrus Rahman
    • MP3-Player - DFRobotDFPlayer Version 1.0.5
    • ArduinoOTA 1.0.3
    • TimeLib 1.6.0 by Michael Margolis
    • Ticker 4.4.0 by Stefan Staub

optional:

  • IRremoteESP8266 2.7.4 by David Conran,..
  • DS3232RTC by Jack Christensen Version 2.0.1

OpenWeather:

SoundFiles:

  • Die mp3 Files (Sound) in den Ordner "mp3" auf die SD-Karte kopieren welche in den mp3-Player kommt. Es reicht eine 4GB Karte.

Software anpassen:

In configuration.h sind einige vordefinierte Einstellungen vorzunehmen:

  • Sprache/Layout
  • ESP-Pinbelegung
  • Mit/Ohne Audio
  • u.s.w.

Software laden:

  • Software mit Arduino IDE (min. Version 1.8.12) auf den ESP8266 laden.

  • ESP8266 starten das WiFi Zeichen auf der Uhr wird weiß. Mit dem Handy das WLAN der Wortuhr (Wortuhr) suchen und anmelden. (Passwort=12345678)

  • Dann sollte automatisch der Browser starten. Hier die WLAN Zugangsdaten eingeben.
    (Falls der Browser nicht startet, die Default IP des AP ist 192.168.4.1)

  • Danach sollte das WiFi Zeichen auf der Uhr grün werden.

  • Wenn die Verbindung mit dem W-Lan funktioniert hat wird auf der Uhr die IP-Adresse so lange angezeigt bis sich ein Browser mit dieser Adresse verbunden hat.

LittleFS:

Mit dem Browser über der Adresse der Wortuhr den Dateimanager über /fs starten:

http://<UHR-IP>/fs

  1. LittleFS ist am Anfang leer:
    LittleFS_01
  2. Vor dem Upload root:
    Alle Dateien vom data Verzeichnis auswählen und uploaden:
    LittleFS_02
  3. Upload der Files im Serial Monitor:
    LittleFS_03
  4. nach Upload root:
    LittleFS_04
  5. Dann noch das Web Verzeichnis
    web Verzeichnis anwählen:
    LittleFS_05
    Alle Dateien vom data/web Verzeichnis auswählen:
    LittleFS_06
  6. Nach Upload Web-Verzeichnis:
    LittleFS_07
  7. Upload andere Sprachen (optional):
    Falls eine andere Sprache als deutsch gewählt wurde, einfach den Inhalt des jeweiligen web Verzeichnisses (web_ch, web_en, web_es, web_fr, web_nl)
    in den LittlefS web Ordner zusätzlich übertragen. Dazu den web Ordner nochmal auswählen:
    LittleFS_08
    Und alle Dateien des jeweiligen web_xx Ordner auswählen und uploaden.

Hier nochmal wie beschrieben:
LittleFS_Film

Alternativ können mit dem LittleFS Plugin für die Arduino IDE (Version 1.8.x) https://github.com/earlephilhower/arduino-esp8266littlefs-plugin die Files des data Verzeichnis ebenfalls hochgeladen werde.

  • Danach den ESP8266 neustarten und über die Webadresse des ESP in den Menüpunkt Settings die Wortuhr anpassen.
    Hier sind folgende Punkte wichtig:
  • Systemname
  • Zeitserver
  • API-Key von OpenWeather + Standort + Höhe über Meeresspiegel.
  • Evtl. nochmal die configuration.h durchgehen und die Einstellungen den eigenen Gegebenheiten anpassen!
  • restliche Einstellungen sind auf der Settings Seite zu finden

Eine ausführliche Bedienungsanleitung ist hier zu finden:

Bedienungsanleitung:

https://github.com/manfred-hofmann/Wortuhr_ESP8266/blob/main/Bedienungsanleitung_Wortuhr_mp3_20221222.pdf

Manual (English):

https://github.com/manfred-hofmann/Wortuhr_ESP8266/blob/main/Manual_Wordclock_mp3_20221222.pdf


  • Hier mein Aufbau:


Alles weiter findet sich auf
http://diskussion.christians-bastel-laden.de/viewtopic.php?f=23&t=3846&sid=a6ac77fb774177c3168e12998a42e791
Ein Beispielvideo einer Vorvorvorversion ist hier zu sehen:
https://www.youtube.com/watch?v=rQZoOGkao-w

Viel Spaß damit!

wortuhr_esp8266's People

Contributors

manfred-hofmann avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

wortuhr_esp8266's Issues

16x16 LED Matrix support?

Hi Manfred,

erst mal vielen dank für das tolle Projekt!

Wäre es Möglich eine fertige 16x16 LED Matrix zu verwenden?

z.B. Link

Das würde das Bauen einer solchen Uhr extrem vereinfachen!

Und man könnte vielleicht die zusätzlichen Pixel für Sekunden nehmen wie z.B. bei dem Projekt:
Link

Danke und viele Grüße,

Sascha

Probleme mit der ersten LED

Hallo,

ich hab leider probleme mit der ersten LED. Diese ist bei mir eine Minuten LED. (Aus Historischen Gründen, ich hab früher eine andere Firmware drauf)

#ifdef LED_LAYOUT_HORIZONTAL_4 uint8_t ledMap[] = { 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 25, 24, 23, 22, 21, 20, 19, 18, 17, 16, 15, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 47, 46, 45, 44, 43, 42, 41, 40, 39, 38, 37, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 69, 68, 67, 66, 65, 64, 63, 62, 61, 60, 59, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 91, 90, 89, 88, 87, 86, 85, 84, 83, 82, 81, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 113, 112, 111, 110, 109, 108, 107, 106, 105, 104, 103, 2, 1, 0, 3 }; #endif

Leider geht die erste LED nur sehr sporatisch (v.a. nach der Änderung der Helligkeit in den Settings).

Hardware Defekt kann ich ausschließen, ich hab zum Testen eine andere Software (erst selbstgeschrieben, danach WLED) installiert, bei beiden funktioniert die LED einwandfrei.

Die LED 2,1, und 3 gehen einwandfrei.

Gibt es irgendeine Idee, wo ich suchen könnte.

VG
Philipp

Compilierungsfehler variable or field 'setMode' declared void

Hallo,
ich bin totaler Anfänger in der Programmierung, fand das Projekt aber super spannend zum nachbauen.

Leider scheitere ich jetzt bereits beim compilieren der SW in Arduino IDE.

Ich bekomme Compilierungsfehler immer wo "setMode()" aufgerufen wird.
Hier die Stelle an der das zum ersten Mal auftritt:
...
... Arduino\Wortuhr_esp\Wortuhr_mp3.ino:1081:7: error: 'setMode' was not declared in this scope; did you mean 'eMode'?
1081 | setMode(MODE_BLANK);
| ^~~~~~~
| eMode
...
Compilation error: variable or field 'setMode' declared void...

Kann mir hierzu vielleicht jemand einen Tipp geben? Gut möglich dass das Problem vor dem Computer sitzt in meinem Fall.
Was könnte denn das Problem sein.

Ich nutze Arduino IDE 2.0.4 hatte auch schon was gelesen, dass es special effexcts geben kann beim Compilieren je nach Version.

Ich habe am Code nichts geändert.
Lediglich im Config File die APIKEY für das Wetter auskommentiert. (ist aber irrelevant für das Problem)

Gruß Tobias

Frontplatte

Kannst du vielleicht eine Frontplattenvorlage mit hier bereitstellen?

Themes für das Frontend?

Die jetzige Gestaltung des Frontends ist nicht jedermans Geschmack. Da wären Themes ganz cool. Vor allem sollten solche Einstellungen auch nach einem Update erhalten bleiben und ggf. auch ein Backup möglich sein.
Ein Dark Theme wäre z.B. ganz gut, würde sich besonders gut auf einem Handy mit AMOLED-Display (die haben aus Energiespar-Gründen oft ein Dark Theme eingestellt) machen.

WLAN Probleme

Hallo zusammen,
Hallo Manfred,
Zuerst einmal Danke für die viele Arbeit die in diesem Projekt steckt, und dafür das es und frei zur Verfügung gestellt wird.
Ich habe da ein Problem mit der WLAN Verbindung. Ich habe die Audiofunktion sowie die IR Fernbedinung auskommentiert. Die Uhr läuft etwa 10 bis 20h wie sie soll, und dann irgendwann geht die Verbindung verloren.
Über die Website ist Sie auch nicht zu erreichen, aber es wird wieder ein WLAN zur Verfügung gestellt.
In dem Netz können aber nicht die wlandaten eingegeben werden, sondern es wird die Website unter der standart IP aufgerufen.
Da die Inet Verbindung fehlt bleibt die Uhrzeit stehen und die Wetter API ohne Inhalt.
Ich weiss leider nicht weiter. Jemand eine Idee??

OTA Update firmware

Hallo Manfred,
großartig Software! Ich habe selbst Software für eine Wortuhr entwickelt aber nicht so umfangreich. Zwei Funktionen vermisse ich.

  1. Firmware Update per OTA
  2. Wifi Connection per WPS Taste am Router

Zu OTA habe ich Code Passagen in deinem repo gesehen aber noch nicht verstanden

Gibt es die Möglichkeit schon?

Viele Grüße
Bruno

Keine Daten vom BME_280

Hallo,

ich verwende den 6 Pin (VCC, GND, SCL, SDA, CSB, SDO) BME 280 Sensor.
Diesen habe ich wie im Schaltplan angeschlossen, aber leider spuckt er keine Daten aus.
Auf der Info-Seite des ESP8266 werden es immer mehr "Error (BME): 60"

Kannst du mir hier weiterhelfen?

Problem mit Fronplatte ?

Erstmal ganz wichtig ein super Projekt 😊
Aber leider stehe ich auf dem schlauch wegen der frontplatte,
Die ich aus einem alten Project habe.

Wie bekomme ich das hin das die Buchstaben wieder passen ?
Erstmal ganz wichtig ein super Projekt 😊
Aber leider stehe ich auf dem schlauch wegen der frontplatte,
Die ich aus einem alten Project habe.

Wie bekomme ich das hin das die Buchstaben wieder passen ?

p.s. start led rechts unten

untersten symbole sind die minute

RTC Modul

Ein wirklich unglaubliches Projekt. Hast du bereits über die Integration einer RealTimeClock nachgedacht, sodass man die Uhr nur zum aufsetzten mit WiFi betreiben muss?

Bin FIle in Repo

Es wäre toll, wenn du ein .bin File immer im Git bereitstellen könntest.

Ich bin ziemlich am verzweifeln, das Projekt zu kompilieren :D ....

sketch\Events.cpp: In function 'bool loadEvents()': Events.cpp:57:56: error: ambiguous overload for 'operator=' (operand types are 'String' and 'JSONVar') 57 | events[z].text = myObject["events"][z-1]["text"]; | ^ In file included from C:\Users\Username\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.0.2\cores\esp8266/Arduino.h:286, from sketch\Events.h:6, from sketch\Events.cpp:1: C:\Users\Username\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.0.2\cores\esp8266/WString.h:101:17: note: candidate: 'String& String::operator=(const char*)' 101 | String &operator =(const char *cstr); | ^~~~~~~~ C:\Users\Username\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.0.2\cores\esp8266/WString.h:104:17: note: candidate: 'String& String::operator=(char)' 104 | String &operator =(char c) { | ^~~~~~~~ Events.cpp:61:58: error: ambiguous overload for 'operator=' (operand types are 'String' and 'JSONVar') 61 | events[z].preani=myObject["events"][z-1]["preani"]; | ^ In file included from C:\Users\Username\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.0.2\cores\esp8266/Arduino.h:286, from sketch\Events.h:6, from sketch\Events.cpp:1: C:\Users\Username\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.0.2\cores\esp8266/WString.h:101:17: note: candidate: 'String& String::operator=(const char*)' 101 | String &operator =(const char *cstr); | ^~~~~~~~ C:\Users\Username\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.0.2\cores\esp8266/WString.h:104:17: note: candidate: 'String& String::operator=(char)' 104 | String &operator =(char c) { | ^~~~~~~~ Events.cpp:63:60: error: ambiguous overload for 'operator=' (operand types are 'String' and 'JSONVar') 63 | events[z].postani=myObject["events"][z-1]["postani"]; | ^ In file included from C:\Users\Username\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.0.2\cores\esp8266/Arduino.h:286, from sketch\Events.h:6, from sketch\Events.cpp:1: C:\Users\Username\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.0.2\cores\esp8266/WString.h:101:17: note: candidate: 'String& String::operator=(const char*)' 101 | String &operator =(const char *cstr); | ^~~~~~~~ C:\Users\Username\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.0.2\cores\esp8266/WString.h:104:17: note: candidate: 'String& String::operator=(char)' 104 | String &operator =(char c) { | ^~~~~~~~ sketch\OpenWeather.cpp: In member function 'uint16_t OpenWeather::getOutdoorConditions(String, String)': OpenWeather.cpp:61:66: error: ambiguous overload for 'operator=' (operand types are 'String' and 'JSONVar') 61 | sdescription = weatherArray["weather"][z]["description"]; | ^ In file included from C:\Users\Username\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.0.2\cores\esp8266/Arduino.h:286, from C:\Users\Username\SynologyDrive\WindowsProfile\Documents\arduino\libraries\Arduino_JSON\src/JSON.h:23, from C:\Users\Username\SynologyDrive\WindowsProfile\Documents\arduino\libraries\Arduino_JSON\src/Arduino_JSON.h:23, from sketch\OpenWeather.h:8, from sketch\OpenWeather.cpp:5: C:\Users\Username\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.0.2\cores\esp8266/WString.h:101:17: note: candidate: 'String& String::operator=(const char*)' 101 | String &operator =(const char *cstr); | ^~~~~~~~ C:\Users\Username\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.0.2\cores\esp8266/WString.h:104:17: note: candidate: 'String& String::operator=(char)' 104 | String &operator =(char c) { | ^~~~~~~~ OpenWeather.cpp:66:61: error: ambiguous overload for 'operator=' (operand types are 'String' and 'JSONVar') 66 | weathericon1 = weatherArray["weather"][z]["icon"]; | ^ In file included from C:\Users\Username\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.0.2\cores\esp8266/Arduino.h:286, from C:\Users\Username\SynologyDrive\WindowsProfile\Documents\arduino\libraries\Arduino_JSON\src/JSON.h:23, from C:\Users\Username\SynologyDrive\WindowsProfile\Documents\arduino\libraries\Arduino_JSON\src/Arduino_JSON.h:23, from sketch\OpenWeather.h:8, from sketch\OpenWeather.cpp:5: C:\Users\Username\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.0.2\cores\esp8266/WString.h:101:17: note: candidate: 'String& String::operator=(const char*)' 101 | String &operator =(const char *cstr); | ^~~~~~~~ C:\Users\Username\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.0.2\cores\esp8266/WString.h:104:17: note: candidate: 'String& String::operator=(char)' 104 | String &operator =(char c) { | ^~~~~~~~ OpenWeather.cpp:71:61: error: ambiguous overload for 'operator=' (operand types are 'String' and 'JSONVar') 71 | weathericon2 = weatherArray["weather"][z]["icon"]; | ^ In file included from C:\Users\Username\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.0.2\cores\esp8266/Arduino.h:286, from C:\Users\Username\SynologyDrive\WindowsProfile\Documents\arduino\libraries\Arduino_JSON\src/JSON.h:23, from C:\Users\Username\SynologyDrive\WindowsProfile\Documents\arduino\libraries\Arduino_JSON\src/Arduino_JSON.h:23, from sketch\OpenWeather.h:8, from sketch\OpenWeather.cpp:5: C:\Users\Username\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.0.2\cores\esp8266/WString.h:101:17: note: candidate: 'String& String::operator=(const char*)' 101 | String &operator =(const char *cstr); | ^~~~~~~~ C:\Users\Username\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.0.2\cores\esp8266/WString.h:104:17: note: candidate: 'String& String::operator=(char)' 104 | String &operator =(char c) { | ^~~~~~~~ sketch\Animation.cpp: In function 'bool loadAnimation(String)': Animation.cpp:139:44: error: ambiguous overload for 'operator=' (operand types are 'String' and 'JSONVar') 139 | wert = myObject["Palette"][palidx]; | ^ In file included from C:\Users\Username\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.0.2\cores\esp8266/Arduino.h:286, from sketch\Animation.h:7, from sketch\Animation.cpp:1: C:\Users\Username\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.0.2\cores\esp8266/WString.h:101:17: note: candidate: 'String& String::operator=(const char*)' 101 | String &operator =(const char *cstr); | ^~~~~~~~ C:\Users\Username\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.0.2\cores\esp8266/WString.h:104:17: note: candidate: 'String& String::operator=(char)' 104 | String &operator =(char c) { | ^~~~~~~~ sketch\Animation.cpp: In function 'bool loadFrames(uint8_t, String)': Animation.cpp:196:40: error: ambiguous overload for 'operator=' (operand types are 'String' and 'JSONVar') 196 | farbwert = myObject[zeile_json][x]; | ^ In file included from C:\Users\Username\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.0.2\cores\esp8266/Arduino.h:286, from sketch\Animation.h:7, from sketch\Animation.cpp:1: C:\Users\Username\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.0.2\cores\esp8266/WString.h:101:17: note: candidate: 'String& String::operator=(const char*)' 101 | String &operator =(const char *cstr); | ^~~~~~~~ C:\Users\Username\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.0.2\cores\esp8266/WString.h:104:17: note: candidate: 'String& String::operator=(char)' 104 | String &operator =(char c) { | ^~~~~~~~ exit status 1 ambiguous overload for 'operator=' (operand types are 'String' and 'JSONVar')

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.