This Clock Displays the Time as a QR Code That You Can Scan with Your Smartphone
Aaron Christophel built his quirky 64x64 RGB LED matrix QR code clock using an ESP32 and Espruino.
Typical barcodes, like those that you find for the UPC (Universal Product Code) on just about any product sold in a retail store, are optical means of storing a small amount of data. Data is encoded as bars and spaces of varying thickness, but traditional barcodes are one-dimensional. The height of the barcode just makes it more readable. QR (Quick Response) codes, on the other hand, are two-dimensional matrices that are capable of containing more data. Aaron Christophel built a quirky clock that utilizes that data to display the time as a QR code that you can read on your smartphone.
This is, obviously, a really inefficient way to check the time. You can’t actually tell the time just by looking at the clock, because the QR code is only readable with a smartphone or dedicated reader. If you’re going to pull out your phone anyway, you might as well just look at the clock on that. But this is still an interesting and creative project. If you hang this clock on your wall, your visitors won’t have any idea what it is until they actually scan it. Even if this doesn’t appeal to you as a clock, you can adapt the code to show other kinds of information encoded as a QR code.
Christophel has posted his code on GitHub, so you can use it or modify it as you like. An ESP32 board is used for this project, but it isn’t programmed using the Arduino IDE as is most common. Instead, it was programmed in JavaScript using Espruino. That was presumably chosen because there are easy-to-use QR code libraries available for JavaScript, which helped Christophel do all the programming in just 30 minutes. The JavaScript code running on the ESP32 pulls the current time every second and then generates a new QR code for it. That QR code is then displayed on a large 64x64 RGB LED matrix — though a monochrome LED matrix should work just as well in this case. It’s quite elegant in its simplicity, even if actually checking the time is overly complicated.