I designed this project to be classroom friendly and teacher friendly. As I started thinking about what I would need to design to overcome the problems of the classroom setting I came up with a list of things I would have to try and work around. Here is my list:
No soldering: Most teachers don’t know how to solder or don’t have enough equipment to have a whole class work on soldering. Having kids solder also brings in the possibility of getting burned or ruining a piece of electronic equipment. This means I had to find a microcontroller that came with the pins attached or used female pins like an Arduino. Soldering is a great skill but it adds more complexity to this project.
No breadboards: Like soldering this adds more complexity to the project. Teaching students how a breadboard works and how to use it to make a circuit are doable but will require more time and teacher knowledge.
No custom software or drivers: Since most teachers don’t have admin rights to the classroom computers that they use with their students I didn’t want the teacher to have to spend hours of time dealing with the tech department to get software and drivers installed and then have to troubleshoot if something was not working. Also many teachers have Chromebooks in the classrooms which can program Arduinos through the browser but can require some troubleshooting as well.
Keep it cheap, use common hardware: Most schools are not awash with money right now so the goal was to keep it cheap so that the school could afford it or that the teacher could write a small grant to cover it. $500 could build ten of these that can be used every year with no reoccurring costs. Since it runs off usb power you can power it with a cell phone charger or battery booster that a lot of students already own.
It needs to work right away: Kids need pretty quick gratification to find a project interesting. The goal is to get it working right away and then let the learning occur in the modifying/personalization process.
Instant data feedback: Instead of storing the data remotely and then retrieving it later for analysis I wanted them to see the air quality in real time. An LCD screen would be great but that ups the complexity quite a bit for the novice. An LED turned out to be the cheapest and best way. Since the data is also sent to the web it is cool to watch both the LED and the data change together.
Easy code,no libraries: Since most of these kids will have never coded before I wanted the code to be short and understandable. I also wanted it to be clean enough that someone could try and modify the code to see what happens. This is where the LED makes for a nice bit of hardware coding that has immediate effects.
Accuracy: I knew a $15 dollar sensor was not going to match a $5,000 dollar air sampler but if they could be close enough the data would be mostly reliable/usable. This is where the LED also helps. It breaks the data into intervals and reports how the air is by interval. It is just giving the student an idea based on low, medium, high readings. (but the numerical data is surprisingly accurate depending on the type of PM2.5)
KNOWN ISSUES: The one thing I could not really overcome that hampered me most of the year was using the device on the school’s WiFi. Schools have lots of firewall protection which can make it hard to get your Photon on the school’s WiFi. This will require the tech departments help if it doesn’t connect automatically. This is also why I created the code that allows it to run even if it can’t get on the WiFi. This means you only need WiFi once to get the code on the Photon. The way you can work around this issue while you are building them is to use yours or a student’s cell phone as a WiFi hotspot. Have the photons connect to that phone for its internet connection while you load code on it.