What developers do when they are bored
I know… this is not the coolest hardware project in the world 🙂 Or the mightiest of all challenges Phosworks will work on.
I did it to learn Arduino and implement some basics of IoT (Internet of things).
This is basically a remote control with only one big red button.
Its purpose is somewhat to fool around with the expression “Lets push the button” when talking about making a major software release.
What happens is that when you push the red button, the device will call a web service on our build server that trigger a build and publish a new version of a customer website.
So at the end of a development sprint, when Martin (my project manager) comes to me and say “The customer says they are ready for launch. Can we push the button?” I can confidently say “YES!”
The components used in this project is:
- 1 arduino board with wifi support (Node MCU – esp12)
- 1 black plastic case
- 1 red led
- 1 momentary push button (red off course)
- 1 micro usb cable
- 2 resistors
Some cables, and some not so complicated software
After welding the electronics together (schemes were included in the Arduino examples), programming was done in the Arduino IDE that anyone can download from the Arduino website.
I did the programing by combining three of the Arduino example projects to make my own software.
The software does the following:
- Initiate the wifi hardware (led flashing fast)
- Connecting to the wifi network (led flashing slow)
- When connected, led turns on (if not it will go dark, and wait 5 seconds before lightening up and retry connection)
- The program will then wait for digital input from the pushbutton (button being pushed)
- When button is pushed, an http request is made to an endpoint on our Jenkins build server that does its magic (building the website and publishes it to the live webserver)
And. That. Is. It!
So the outcome of this project is a quite useless product 😉 but it was fun to create it and I learned some things about how to program Arduino boards.
Since the device communicates by wifi over internet, it can call any web service or web api anywhere, so the implementations are almost endless. So if someone comes up with an idea of a real life implementation it’s quite easy to do something more meaningful with a project like this.