Regis Boudinot combines IoT, C, Python, Rails, NodeJS, Linux, a VPS, API’s, Webhooks, four Arduino Yuns, and a Raspberry Pi to help students see where they needed to be and when at the Turing School. via medium.com
A personal project at the Turing School of Software and Design
It all started with a simple idea. Output relevant data to an LCD screen based on the information found on a website to inform students where they need to be.
At turing there are four classrooms. Classroom A, B, C, and the Big Workspace. All students can check a website that we all call “today” (today.turing.io) and figure out where they need to be.
Sometime “today” gets updated at the last minute, or multiple times throughout the day.
In Module 3 (The third module of four), we have a 2 week sprint to work on a personal project that involves a certain level of complexity. I decided to use an Arduino Yun (a wifi ready Arduino with a tiny linux computer and a microcontroller) and output which cohort/teacher need to be in a certain classroom at 9:00AM.
First came the true test, how do I scrape the webpage?
The answer was simple at first. I decided to use nokogiri (a ruby tool that scrapes websites and pulls down the information for parsing) and some ruby logic. Turns out that “today” has no divs. This means I have no way of finding the parent, children, or sibling elements. I essentially had to build order out of chaos.
Once the I was able to make some order out of this data, I then had to organize/reject the data based on what kind of information it contained. This proved to be strange. I had to program ruby in a functional way for this to work. Having a functional rails app is a new concept to me and I find it to be awesome.
I then moved on to creating tables for each classroom, creating API endpoints that serve JSON and XML, and pushing my app to Digital Ocean.
Each Friday is PiDay here at Adafruit! Be sure to check out our posts, tutorials and new Raspberry Pi related products. Adafruit has the largest and best selection of Raspberry Pi accessories and all the code & tutorials to get you up and running in no time!