How I got my jumpstart in Raspberry Pi and the Internet of Things
by Joy Lopez Cervera
Starting a new project can be daunting--especially when the project uses unfamiliar tools. Such was my experience when I reached out to Dan Hendricks, CEO of the maker hub Open Source Maker Labs, about letting me in on a new project, just for the experience. Enthusiastically, Dan welcomed me into the lab and encouraged me to take part in an internet of things demonstration for the upcoming North County Mini Maker Faire. He handed me a small packet of background information on Wireless Sensor Networks (WSN) and Internet of Things (IoT) and sent me on my way to pore over it.
WSN and IoT are topics so buzzy and so new that, previous to this experience, I have only heard them in passing at job fairs and snippets on my favorite YouTube videos. What I learned from that packet of information was that Wireless Sensor Networks were groups of strategically placed sensors, called nodes. These nodes can measure temperature, sound, pulse, motion, light, or any other quality of living worth measuring (in a person, a room, a town, the globe, or outer space) and talk to each other wirelessly--bluetooth, wi-fi, radio come to mind--and are monitored by a central node.
There are many WSN already in place in daily life. For example, many households already have sets of electronic locks in different doors throughout their homes that they can monitor wirelessly, and control wirelessly on their phones. Additionally, cities in the US are moving to equip solar powered streetlights with heat, sound, and light sensors to aid in firefighting, peacekeeping, and night safety efforts while remaining relatively low cost. This network of sensors will send its data wirelessly, using wireless internet--that’s where the Internet of Things comes in. More and more tools in our daily lives are becoming internet capable for our ease, and that idea--that we can have the world at our fingertips through the internet--is the internet of things. Fueled by my newfound understanding of WSN and IoT, I got right to work.
Our project goal was to set up at least three Raspberry Pi boards with temperature, humidity, and light sensors and place them strategically in different locations where the measurements would be of interest. We used the wireless internet capability of the Pis to access the sensed data remotely in a user friendly dashboard interface. The project sounded simple enough to me but despite the literature that Dan was so gracious in gifting me, I had a pretty tough time finding my game plan for approaching our project. Firstly, I had no first hand experience with Pis before, all of my interactions were proxied by friends of mine. Secondly, I didn’t know how to handle the data from the sensors in a way that resulted with a crisp user interface. Thirdly, our deadline was 4 days away and the idea of not having something to display in time terrified me!
Unsurprisingly, the first challenge I had with this project, the unfamiliarity, took the most effort to overcome. Theo, my project partner, and I spent a large portion of the first three 10 hour days learning how to install node-RED (the visual programming software we used) properly onto our Raspberry Pis. We learned that the versions of the software we were installing (via unix command-line, mind you) were quite outdated and there were nuanced unix command combinations and steps that were very specific to the packages and dependencies we needed to install. For example, portions of the software would not work unless they were installed in the proper directories and subdirectories.
The unfamiliarity took another inevitable form in that open source programs, packages, and libraries are changing on a daily basis. Internet contributing programmers frequently update their work, their repositories, and the addresses where they keep their repositories. Code that was useful a week ago might not behave properly today because the required libraries may be newly corrupt, or extinct, or outdated--as was the case with many snippets of code that we tried and failed to get to work. As a result of our efforts to iterate and reiterate steps in installation and programming, we became more familiar of what not to do in our project and consequently learned how to tackle problems related to the project.
I overcame the second challenge as a result of overcoming the first challenge. I found most answers while digging deep in the plentiful knowledge offered by the internet. Theo actually came up with a phrase he kept handy whenever I asked something neither of us could answer: he would say the answer was “just a Google search away!” And even then, once we found answers to methodical issues, we encountered many an operational limit. Once, one board was processing commands very slowly, and when we tried to close pages labeled as “unresponsive” to speed up the process, we got a pop-up saying our unresponsive page was unresponsive!
In the end, we set up three wireless sensors: one placed near the industrial door that is exposed to outdoor conditions, the second one placed inside the office, and the third by the frequently warm laser-cutter. We did manage to use the IBM Watson Internet of Things cloud through Bluemix to visualize the sensors real-time.
Operational and methodical hurdles aside, I would attribute our timely completion of our project to our unrelenting efforts: 8-10 hour workdays, pair programming, frequent communication, and switching tasks when we hit a wall on a particular task for too long. Additionally, we had loads of troubleshooting, sanity check, motivation, tools, materials, and comestible help from Dan, his wife Mary Alice, his son Bryan, and other members at the Lab. In addition to opening the Lab space for us and supplying us with equipment, Dan was exceptionally helpful in helping us see the big picture and offering his wealth of industry experience. Mary Alice encouraged us frequently and made sure we weren’t hungry. Bryan was a godsend in helping us discard our failing plans of attack and finding new sensible ones. It’s help from the community that helps us do awesome projects like these. All in all, this was a positive and valuable experience to me and I hope you check out my tutorial in replicating our work. Visit https://github.com/Joyalegre/OSML-IoT-WNS to take it on yourself!
Shameless Plug: My next project with the OSML is a series of High Altitude Balloon launches with unique payloads and data acquisition setups. This project is part of an initiative to raise funds for College Scholarships for kids who participate in maker projects. For more information, go to the OSML Indiegogo campaign. If you would like to contribute engagement in more projects like these, please consider donating to the cause.