techniccontroller / wordclock_esp8266

Wordclock 2.0 with ESP8266 and NTP time
https://techniccontroller.com/word-clock-with-wifi-and-neopixel/
MIT License
22 stars 17 forks source link

REQUEST #12

Closed pienmatla closed 1 year ago

pienmatla commented 2 years ago

Hi,

I was wondering if it's possible to change the minute indication to words instead of single LED's. Example:

12:00 = es ist nur zwolf uhr 12:01 = es ist zwolf uhr gewesen 12:02 = es ist zwolf uhr gewesen 12:03 = es ist beina funf nach zwolf 12:04 = es ist beina funf nach zwolf 12:05 = es ist nur funf nach zwolf

Excuse my German, haha.

Is there someone who could help me with this, it's a huge request. I know it's maybe a lot of work but I only need some instructions on how to realise this, or anything close :).

techniccontroller commented 2 years ago

Hi, Thank you for your question. Because of my variant of how I implemented the algorithm, it should be quite easy to change the time/string representation for the clock.

  1. The first step would be to find a new layout of the single letters. So adjust the position of letters so that all wished sentences can be displayed (consider here, especially the order of single words). You may use this generator if you can not find a solution by yourself: https://github.com/im-pro-at/WordClockGenerator/releases

  2. After that, you can change this line to the new layout of single letters:

https://github.com/techniccontroller/wordclock_esp8266/blob/e64c819fdf7e9a6b7734a9048579f596a7dc0707/wordclockfunctions.ino#L2

  1. The only step missing now is the adjusting of the generated sentence. If you want to have it as shown in your question following lines need to be added (I created a branch for it: beina_minutes).

https://github.com/techniccontroller/wordclock_esp8266/blob/420a35f8b17ce70e8c43ce0a399b14ad350d9074/wordclockfunctions.ino#L106-L112

https://github.com/techniccontroller/wordclock_esp8266/blob/420a35f8b17ce70e8c43ce0a399b14ad350d9074/wordclockfunctions.ino#L224-L226

Hope this helps. The hardest task is definitely the first step :)

BR techniccontroller

pienmatla commented 2 years ago

Thank you i will try tonight.

I wanna make the clockface in dutch; do i have to change anything to make the clock light up the right leds for different words than in german?

techniccontroller commented 2 years ago

Yes, but the only changes are the new clockStringGerman and the translation of the Strings in this function: https://github.com/techniccontroller/wordclock_esp8266/blob/420a35f8b17ce70e8c43ce0a399b14ad350d9074/wordclockfunctions.ino#L99

I think the order of the words will not change (Dutch <=> German), so you don't need to rearrange the code there -> just translation.

pienmatla commented 2 years ago

@techniccontroller Can you tell me how to upload this to my esp? I cant upload it in vsc with platform.io somehow. And i dont know how to work with arduino ide... I dont have any experience with programming..

techniccontroller commented 2 years ago

@pienmatla I am not using platform.io so I will try to explain how you can load the program to ESP8266 with Arduino IDE:


STEP1: Installation of Arduino IDE First, the latest version of the Arduino IDE needs to be downloaded and installed from here.

STEP2: Installation of ESP8266 Arduino Core To program the ESP8266 with the Arduino IDE, you need to install the board information first in Arduino IDE. To do that follow the following instructions:

STEP3: Upload a program to ESP8266

STEP4: Wifi-Setup and Upload of webserver files Please follow the instruction in https://techniccontroller.de/word-clock-with-wifi-and-neopixel/#quickstart to set up the WiFi-Settings and upload the files to the webserver of ESP8266


I hope this tutorial helps you to get Wordclock up and running. If you have any further questions, don't hesitate to ask.

pienmatla commented 2 years ago

Hi,

Thank you.

When uploading it says error by compiling for board nodemcu 1.0 esp12e module.

This is the board i use: image

techniccontroller commented 2 years ago

Can you post the error message (screenshot)?

I think you need to install the needed libraries:

Please download all these libraries as ZIP from GitHub, and extract them in the libraries folder of your Sketchbook location (see File -> Preferences):

https://github.com/adafruit/Adafruit-GFX-Library https://github.com/adafruit/Adafruit_NeoMatrix https://github.com/adafruit/Adafruit_NeoPixel https://github.com/Xander-Electronics/Base64 https://github.com/tzapu/WiFiManager https://github.com/esp8266/Arduino/tree/master/libraries/EEPROM

folder structure should look like this:

|MySketchbookLocation |-- libraries |---- Adafruit-GFX-Library |---- Adafruit_NeoMatrix |---- Adafruit_NeoPixel |---- Base64 |---- WiFiManager |---- EEPROM |-- wordclock_esp8266 |---- wordclock_esp8266.ino |---- (...)

pienmatla commented 2 years ago

Arduino:1.8.19 (Windows Store 1.8.57.0) (Windows 10), Board:"NodeMCU 1.0 (ESP-12E Module), 80 MHz, Flash, Disabled (new aborts on oom), Disabled, All SSL ciphers (most compatible), 32KB cache + 32KB IRAM (balanced), Use pgm_read macros for IRAM/PROGMEM, 4MB (FS:2MB OTA:~1019KB), 2, v2 Lower Memory, Disabled, None, Only Sketch, 115200"

In file included from C:\Users\pmatla\Documents\Arduino\libraries\Adafruit-GFX-Library-master\Adafruit_GrayOLED.cpp:20:

C:\Users\pmatla\Documents\Arduino\libraries\Adafruit-GFX-Library-master\Adafruit_GrayOLED.h:30:10: fatal error: Adafruit_I2CDevice.h: No such file or directory

30 | #include

  |          ^~~~~~~~~~~~~~~~~~~~~~

compilation terminated.

exit status 1

Fout bij het compileren voor board NodeMCU 1.0 (ESP-12E Module)

Ongeldige bibliotheek gevonden in C:\Users\pmatla\Documents\Arduino\libraries\LittleFS: no headers files (.h) found in C:\Users\pmatla\Documents\Arduino\libraries\LittleFS

Dit rapport zou meer informatie bevatten met "Uitgebreide uitvoer weergeven tijden compilatie" optie aan in Bestand -> Voorkeuren.

techniccontroller commented 2 years ago

Okay, seems there is one more library missing ;) Try to download/copy this one like the other ones:

https://github.com/adafruit/Adafruit_BusIO