Introduction: Interactive Led Matrix and Whatsapp Notifier
My name is Remco. I'am a electronics student from Holland. This is my first instructable I'am writing.
This project I will talk about is a hobby of mine. I like to code and invent things. The project is development stage.
First I will talk about what made me make this project. I worked at a company wich sold cash registers. Me and a colleague were talking about ledstrip's and particularity about a led called WS2812. (I will come to this later). We were talking about all the fun things you could do with led-strips. I looked to the right and I saw this cashregister. Then it hit me. I thought about using the front of the cash register with the resistive touch panel. I thought maybe I could create a matrix of ledstrip behind this panel and make a game behind it. So the company allowed me to take a broke cash register and take the front and the resistive touch panel off it. I went to design this thing...
PLEASE NOTE THAT THIS PROJECT IS STILL IN DEVELOPMENT THE WHATSAPP NOTIFICATION DOES NOT WORK YET!
ALSO NOTE THAT SOME OF THE SOFTWARE IS A BIT CRUDE AND UGLY MADE I'AM WORKING ON A MORE CLEANED UP VERSION
SOME FUNCTIONS HAVE DESCRIPTIONS IN THE SKETCH. (NOT ALL OF THEM).
Last software update: 29-06-2017
Last instructable update: 30-06-2017
Step 1: The Matrix
The matrix I came up with is constructed from a 60 led per meter ledstrip. This led strip holds ws2812 type leds.
The ws2812 leds are RGB and are easy to program with an library.
To find out more about these leds please check this link: https://cdn-shop.adafruit.com/datasheets/WS2812.pd...
I ordered two pieces of white acrylic of the same size. One too stick the ledstrip on. The ledstrip i bought had an sticky back. And one to lay on top op the led strip to make the colors visible and relax the eye from the intensity of the leds.
I measured all the dimensions of the led strip and calculated that i could fit 13 rows of 18 leds on my acrylic panel. The dimensions were pre determined because of my front of the cash register.
The led strip is layed out like a zigzag pattern. I soldered wires one on one to the rows as you can see i the picture.
The ledstrip uses about 2 amps +, at +5 volts (be aware that 5V is the limit don't supply an higher voltages or you might break the ledstrip) when the leds are on full brightness so be sure that your power supply can deliver enough current.
I'am controlling the ledstrip with an arduino. The led strip uses only one data pin and +5V and GND
For the code i used three librarys from adafruit: Adafruit neomatrix, Adafruit neopixel and Adafruit GFX . I tested the strip using a standard program witch came with the library's it worked after I set my specific height and width of the matrix.
Step 2: The Touchscreen
The touchscreen witch came with the front end of the cashregister is an five wire resistive touchscreen. After some searching on the internet I found an controller (AR1100) http://ww1.microchip.com/downloads/en/DeviceDoc/41...
Witch had a microcontroller on it and could give me the coordinates trough USB or serial connection. I used the serial connection to get the coordinates too the arduino. This gave me a problem. Witch I could not figure out. Later I found out stupidly enough that the controller I was using uses RS232 12V logic levels and the arduino uses TTL 5V logic levels. So i used a max232 chip to convert the logic levels and it worked.
I worked on and off on this project for about a year now. Everytime I got something working and I continued to work on it until I was stuck on something. After a couple of weeks or even months I restarted work and figured out problems.
Some basic code for the touchscreen: touch_controller.ino
Step 3: Clock
When I was working on this project I got an esp8266 module. This WiFi module is easy to control with arduino. I thought about how I could implement this into my project. I thought about making a clock.
So i did.
The clock I made gets the time from the internet and sends it to the arduino. The arduino sends the time too the matrix. The clock will sync its time with the internet every 24 hours or less if you prefer.
These sketches are still under construction to make them more robust.
Arduino software: ledBoard_clock.ino
Esp8266 software: getTimeFromInternet.ino
Step 4: Make Use of the Touchscreen
To make use of the touchscreen I found a sketch that made you able to play a game called tetris on the matrix. By making use of the touchscreen one can play the game by touching left and right side of the touchscreen.
Also a snake game would be possible to make. I also found a sketch for this.
(But i have not implemented the touch part yet)
I also made an menu with scrolling text. i plan to implement this menu so that the user will be able too pick its game or to let the whatsapp notifications fly past.
Step 5: Whatsapp Notifictions
The idea I had one year ago was to make this matrix so that it could present my whatsapp messages.
This is still an ongoing project.
I'am not into making apps for android. I searched for an app witch captures notifications and sends them via TCP/IP too my esp8266. I did not find any. So I am now trying to learn how to write apps for android and to make my own app witch can do this.
I made a sketch for the esp8266 witch listens for incoming TCP messages.
Via PUTTY http://www.putty.org/ witch is a program that allows its user too send raw data too an IP. I'am able too send strings too the esp8266.
This is basically half the code i need too make my whatsapp notification.
The other half is the app witch captures notifications and sends them too the esp by TCP/IP. IF ANYONE KNOWS HOW TO DO THIS YOUR HELP WILL BE APPRECIATED
Esp8266 software: getTcpPacket.ino
ANDROID APP: WORKING ON THIS.
Step 6: My Plans for This Thing
1. Make an android app witch captures whatsapp notifications and sends the message to the esp8266
2. Clean all the code
3. Make one giant program that syncs time with internet and puts it on the matrix. And pushes my whatsapp notifications to the matrix.
4. 3D print some parts too fit the screen inside the frame
5. Create a pcb witch will fit inside the frame neatly.
6. Hang it on the wall
7. Write more and more software and functions for it.