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
esp8266 led-strips neopixel ntp pong snake tetris wlan

Wordclock 2.0

Wordclock 2.0 with ESP8266 and NTP time

More details on my website: https://techniccontroller.com/word-clock-with-wifi-and-neopixel/

Languages

The Wordclock is available in German, English and Italian language. By default the language is German. To use the English or Italian language please replace the file wordclockfunctions.ino with wordclockfunctions.ino_english or wordclockfunctions.ino_italian. The code compiles only with one file named wordclockfunctions.ino. So please rename the file you want to use to wordclockfunctions.ino and replace the existing file.

Features

Pictures of clock

modes_images2

Screenshots of webserver UI

screenshots_UI

Quickstart

  1. Clone the project into the sketch folder of the Arduino IDE,
  2. Rename the file "example_secrets.h" to "secrets.h". You don't need to change anything in the file if you want to use the normal WiFi setup with WiFiManager (see section "Remark about the WiFi setup").
  3. Install the additional libraries and upload the program to the ESP8266 as usual (See section Upload program to ESP8266 below).
  4. The implemented WiFiManager helps you to set up a WiFi connection with your home WiFi -> on the first startup it will create a WiFi access point named "WordclockAP". Connect your phone to this access point and follow the steps which will be shown to you.
  5. After a successful WiFi setup, open the browser and enter the IP address of your ESP8266 to access the interface of the webserver.
  6. Here you can upload all files located in the folder "data". Please make sure all icons stay in the folder "icons" also on the webserver.
    • Open http://\<ip-address>/fs.html in a browser
    • Upload fs.html
    • Upload style.css
    • Upload index.html
    • Create a new folder icons
    • Upload all icons into this new folder icons

Install 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):

folder structure should look like this:

MySketchbookLocation 
│
└───libraries
│   └───Adafruit-GFX-Library
│   └───Adafruit_NeoMatrix
│   └───Adafruit_NeoPixel
│   └───WiFiManager
│   └───Adafruit_BusIO
│   
└───wordclock_esp8266
    │   wordclock_esp8266.ino
    │   (...)
    |
    └───data
        │   index.html
        |   (...)
        |
        └───icons 

Upload 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

Remark about the WiFi setup

Regarding the WiFi setting, I have actually implemented two variants:

  1. By default the WifiManager is activated. That is, the word clock makes the first time its own WiFi (should be called "WordclockAP"). There you connect from a cell phone to 192.168.4.1* and you can perform the configuration of the WiFi settings conveniently as with a SmartHome devices (Very elegant 😊)
  2. Another (traditional) variant is to define the wifi credentials in the code (in secrets.h).
    • For this you have to comment out lines 230 to 251 in the code of the file wordclock_esp8266.ino (add /* before and */ after)
    • and comment out lines 257 to 305 (remove /* and */) (* default IP provided by the WifiMAnager library.)

Resetting the WiFi configuration

You can clear the stored WiFi credentials and restart the WiFi setup described above with these steps:

  1. Open the settings panel in the web UI.
  2. Enable 'Reset WiFi' slider.
  3. Save settings.
  4. LED test should be performed.
  5. Disconnect and reconnect the power. WiFi credentials were removed. The setup should be restarted. Resetting the wifi credentials does not delete uploaded files.

Remark about Logging

The wordclock sends continuous log messages to the serial port and via multicast UDP. If you want to see these messages, you have to

OR

  1. Starting situation: wordclock is connected to WLAN, a computer with installed Python (https://www.python.org/downloads/) is in the same local area network (WLAN or LAN doesn't matter).
  2. Open the file multicastUDP_receiver.py in a text editor and in line 81 enter the IP address of the computer (not the wordclock!).
    # ip address of network interface
    MCAST_IF_IP = '192.168.0.7'
  3. Execute the script with following command:
python multicastUDP_receiver_analyzer.py
  1. Now you should see the log messages of the word clock (every 5 seconds a heartbeat message and the currently displayed time). If this is not the case, there could be a problem with the network settings of the computer, then recording is unfortunately not possible.

  2. If special events (failed NTP update, reboot) occur, a section of the log is saved in a file called log.txt. In principle, the events are not critical and will occur from time to time, but should not be too frequent.