PurpleAir sensors are an "Internet of things" (IOT) air quality sensor or particulate sensor consisting of a network of elements
Laser Particle Counter:
PurpleAir uses PMS5003 and PMS1003 laser particle counters. These sensors count suspended particles in sizes of 0.3, 0.5, 1.0, 2.5, 5.0, and 10um. These particle counts are processed by the sensor using a complex algorithm to calculate the PM1.0, PM2.5, and PM10 mass concentration in ug/m3. PMS5003 and PMS1003 sensors come factory calibrated.
Before deploying any devices, we verify that they are giving out readings that are consistent from sensor to sensor during tests in a smoke chamber. So far, all sensors we tested have produced consistent output using laser particle counters.
ESP8266 and Arduino:
PurpleAir sensors use an ESP8266 chip to talk to the particle counter and provide all functionality, including connecting to a WiFi network and uploading data to the cloud. This ESP8266 chip runs code developed using Arduino. PurpleAir firmware has remote update features, meaning we can modify the software and the Arduino air quality sensor device will download the new version and update itself. Each Arduino air quality sensor device checks for updates from time to time.
Using services from Google makes for a robust, reliable, and secure system. Google maps provides the map interface for sensor registration. Google App Engine provides the processing power to place the sensor icons on the PurpleAir map and create the graphs and other elements to display sensor data on the PurpleAir map.
Mapbox provides the PurpleAir map interface.
Each PurpleAir sensor includes a BME280 pressure, temperature, and humidity sensor. Where these are present, there will be graphs for these values.
The temperature values may be elevated due to the case and other factors that do not provide ideal temperature sensing. These values are provided as is and are just for interest.
PurpleAir sensors are powered by a 5v USB power source.