The maker culture and Arduino community embrace all open-source values and view openness and sharing as essential tools for progress. Sharing projects of all kinds is essential to the growth and sustainability of this community. Therefore, my goal for the final phase of my journey was to create a project of my own and make it available for anyone to access online.
I decided to use the last project that I completed (called Arduino Web Server LED Control from startingelectronics.org) as a starting point for this one. In this project, the Arduino and Ethernet Shield are used as a web server. Together they serve up a simple HTML page with a form that allows you to control an LED on the breadboard that is also powered by the Arduino.
I made the following modifications to this project.
Adding Styles
With my design background, I was interested in learning ways to add CSS to the web page. I learned how to add HTML and CSS files to the SD card as templates and also learned how to add styles directly to the Arduino sketch. I felt that this addition to the previous project could be very helpful for new developers who are not familiar with CSS. Styling is rarely addressed in tutorials that I have seen. The styling that I added is very minimal, but it gets newbies set up to easily add more if they would like.
Adding a second LED
To get more familiar with the code from the original project I decided to add a second LED to the breadboard and adjust the sketch accordingly. This required me to create a new LED variable, a new HTML form element, and define a new ProcessCheckbox function. After making these changes, we now have two checkboxes on the web page, which separately control the two LEDs on the breadboard.
Making a fixed IP address accessible to outside networks
Typically, when you reference the Arduino’s IP address we are just calling an internal address. This means that only devices connected to the same network will have access to the page. I started looking into fixed IP addresses and ways to access the web page outside of my local network. This requires messing with router configuration and by nature will be a different process for each person, therefore, I did not include this in my tutorial. I was, however, able to successfully get a fixed address set up for my device!
I found the following resources very helpful in getting that configured:
- Step 10 of this tutorial: http://www.instructables.com/id/Accessing-Arduino-over-internet/
- “Using a Static IP address” from the Connecting Arduino book (Hammel, 2008).
Sharing the final project
I made a tutorial for the final project and posted it on instructables.com. Instructables.com was one of the easiest sites to use and ended up being the quickest way to get a tutorial posted.
Below are screenshots of the set-up and a video of the final working product. Code and tutorial are available at https://www.instructables.com/id/Arduino-Web-Server-LEDs/
The Maker Mindset
I learned through this process that vulnerability often comes with the openness and sharing part of the maker culture. Posting my first tutorial was very scary for me, and if I had not set this requirement for myself early on I probably would not have done it. My project is quite simple, most likely not perfectly coded, and has very little real-world use as is. In the tech world that I am used to, posting something like this would immediately be criticized by other developers. However, I am slowly learning that every accomplishment is worth sharing. The act of sharing is an important part of the learning process. Makers are simultaneously playing the role of student and teacher. And I think that is one thing that makes this maker culture different than others that I have experienced in STEM.
While this project may seem quite minuscule to compared to other projects, I hope it can help a newbie like myself learn how to make adaptions to a beginner project. With each new post, I expect my confidence to grow. I also hope that this post can help others like me overcome their hesitation to share and celebrate their work, regardless of the complexity!
Sources
Hammel, B. (2008). Connecting Arduino: Programming And Networking With The Ethernet Shield. CreateSpace Publishing.
Startingelectronics. (2013). Arduino Web Server LED Control. Starting Electronics. Retrieved from https://startingelectronics.org/tutorials/arduino/ethernet-shield-web-server-tutorial/web-server-LED-control/