This is the first project I made for The Flatiron School science fair. I wanted to learn how to integrate microcontroller hardware with a web application.
How it works
From a user experience standpoint:
Log into the Morse Bot application and send a message to a user. When the user receiving the message logs into his or her account they can see the message, but before they can read it they have to decrypt it by pressing the "MORSE IT" button. When this button is pushed the Morse Bot encrypts the sent message into morse code, Flashing its LED eyes and beeping using its piezoelectric speaker. Once the morse code is complete the application reveals the message text to the user receiving the message.
From a technical standpoint:
The web application is built using rails and is ran locally on the clients machine. The clients machine is then connected to a wireless router. The Morse bot has an Arduino microcontroller that connects to this same wireless router using a Ti CC3000 wireless antenna, effectively making the Morse Bot a simplified web server. When the sending users message is directed to the Morse Bots unique IP address the Bot parses the message string and assigns designated pins HI or LOW depending on the letter. Once the string is parsed and each letter is executed in morse code, the Morse Bot sends json to the application indicating that the process is complete. At that time the user can then view the message in its original format.
Challenges I ran into
Establishing an initial connection was quite a challenge. After much troubleshooting I found out that the Texas Instruments CC3000 cannot communicate with 801.11c routers, and had to resort to 801.11a/b. This resulted in lower performance. It didn't help that I used a very inexpensive router ($30) which caused drop off at unpredictable times.
Accomplishments that I'm proud of
Actually writing in C to parse and assign string command for the Morse code. Making the whole system work fairly reliably with the tools I was given. Demonstrating the whole system without much confusion to people who were curious about the application.
What I learned
I learned about network connections, simple web servers, microcontroller hardware, wireless router specs, json parsing, RESTFUL convention using a rails application, to name a few.
What's next for Morse Bot
I could easily expand this project into a learning tool for morse code, but we don't live in the 1800's. It was just a great fun first project that I wanted to use as a platform for learning hardware and software integration for the interwebz.