{"id":219,"date":"2020-01-15T19:24:36","date_gmt":"2020-01-15T09:54:36","guid":{"rendered":"https:\/\/sighmon.com\/says\/?p=219"},"modified":"2020-01-15T19:29:02","modified_gmt":"2020-01-15T09:59:02","slug":"air-quality-sensor-network","status":"publish","type":"post","link":"https:\/\/sighmon.com\/says\/air-quality-sensor-network\/","title":{"rendered":"Air quality sensor network"},"content":{"rendered":"\n<p>A few years ago <a href=\"https:\/\/github.com\/33d\">Damien<\/a> and I were curious about the quality of the air we were breathing while cycling around Adelaide, so we designed and built a small modular PCB and 3D printed box for some cheap sensors. The project is on <a href=\"https:\/\/github.com\/sighmon\/bike_air_quality_sensors\/tree\/redbear-duo-serial\">GitHub<\/a>.<\/p>\n\n\n\n<p>Here was our hardware list:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li> <a href=\"https:\/\/github.com\/redbear\/Duo\">Redbear Duo<\/a> (Bluetooth Arduino board)<\/li><li> <a href=\"https:\/\/www.sparkfun.com\/products\/9403\">MQ-7 Carbon Monoxide sensor<\/a><\/li><li> <a href=\"https:\/\/www.sparkfun.com\/products\/9689\">GP2Y10 Dust Particle sensor<\/a><\/li><li> <a href=\"https:\/\/www.sparkfun.com\/products\/10167\">DHT-22 Temperature\/Humidity sensor<\/a> <\/li><\/ul>\n\n\n\n<p>And this is what the project ended up looking like:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"767\" src=\"https:\/\/sighmon.com\/says\/wp-content\/uploads\/2020\/01\/BC298CFA-F81F-419B-8ED2-9C1E1C01E761-1024x767.jpg\" alt=\"Arduino Bluetooth air quality sensors. The hole at the front lets in the air to the dust particle sensor, the grey round sensor is the MQ-7 carbon monoxide sensor, and the white rectangular sensor reads the temperature\/humidity.\" class=\"wp-image-224\" srcset=\"https:\/\/sighmon.com\/says\/wp-content\/uploads\/2020\/01\/BC298CFA-F81F-419B-8ED2-9C1E1C01E761-1024x767.jpg 1024w, https:\/\/sighmon.com\/says\/wp-content\/uploads\/2020\/01\/BC298CFA-F81F-419B-8ED2-9C1E1C01E761-300x225.jpg 300w, https:\/\/sighmon.com\/says\/wp-content\/uploads\/2020\/01\/BC298CFA-F81F-419B-8ED2-9C1E1C01E761-768x575.jpg 768w, https:\/\/sighmon.com\/says\/wp-content\/uploads\/2020\/01\/BC298CFA-F81F-419B-8ED2-9C1E1C01E761-1536x1151.jpg 1536w, https:\/\/sighmon.com\/says\/wp-content\/uploads\/2020\/01\/BC298CFA-F81F-419B-8ED2-9C1E1C01E761-2048x1534.jpg 2048w, https:\/\/sighmon.com\/says\/wp-content\/uploads\/2020\/01\/BC298CFA-F81F-419B-8ED2-9C1E1C01E761-1568x1175.jpg 1568w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"678\" src=\"https:\/\/sighmon.com\/says\/wp-content\/uploads\/2020\/01\/sensors-redbearduo-v0.1-1-1024x678.jpg\" alt=\"Arduino Bluetooth air quality sensors - inside the 3D printed case lives our PCB.\" class=\"wp-image-222\" srcset=\"https:\/\/sighmon.com\/says\/wp-content\/uploads\/2020\/01\/sensors-redbearduo-v0.1-1-1024x678.jpg 1024w, https:\/\/sighmon.com\/says\/wp-content\/uploads\/2020\/01\/sensors-redbearduo-v0.1-1-300x199.jpg 300w, https:\/\/sighmon.com\/says\/wp-content\/uploads\/2020\/01\/sensors-redbearduo-v0.1-1-768x509.jpg 768w, https:\/\/sighmon.com\/says\/wp-content\/uploads\/2020\/01\/sensors-redbearduo-v0.1-1-1536x1017.jpg 1536w, https:\/\/sighmon.com\/says\/wp-content\/uploads\/2020\/01\/sensors-redbearduo-v0.1-1-2048x1356.jpg 2048w, https:\/\/sighmon.com\/says\/wp-content\/uploads\/2020\/01\/sensors-redbearduo-v0.1-1-1568x1038.jpg 1568w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption>Arduino Bluetooth air quality sensors &#8211; inside the 3D printed case lives our PCB.<\/figcaption><\/figure>\n\n\n\n<p>It also had an <a href=\"https:\/\/github.com\/sighmon\/BikeAirQualitySensorsiOS\">iOS<\/a> &amp; <a href=\"https:\/\/github.com\/33d\/bike-air-sensor-logger\">Android<\/a> app that went along with it to log the data &amp; location, and pass it onto a <a href=\"https:\/\/github.com\/sighmon\/bikelab\">web server<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Bushfire season<\/h2>\n\n\n\n<p>Fast-forward four years, and we&#8217;re starting to see the effects of a changing climate on our bushfire season. I now live in Melbourne, and it&#8217;s the third day living with air quality that the <a href=\"https:\/\/www.epa.vic.gov.au\/EPAAirWatch\">EPA<\/a> classes as hazardous, thanks to smoke drifting over our city from the bushfires that have engulfed our country.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"625\" src=\"https:\/\/sighmon.com\/says\/wp-content\/uploads\/2020\/01\/Screen-Shot-2020-01-15-at-8.03.33-pm-1024x625.png\" alt=\"EPA air quality data 15th January 2020 for the last 48 hours. Hazardous!\" class=\"wp-image-220\" srcset=\"https:\/\/sighmon.com\/says\/wp-content\/uploads\/2020\/01\/Screen-Shot-2020-01-15-at-8.03.33-pm-1024x625.png 1024w, https:\/\/sighmon.com\/says\/wp-content\/uploads\/2020\/01\/Screen-Shot-2020-01-15-at-8.03.33-pm-300x183.png 300w, https:\/\/sighmon.com\/says\/wp-content\/uploads\/2020\/01\/Screen-Shot-2020-01-15-at-8.03.33-pm-768x469.png 768w, https:\/\/sighmon.com\/says\/wp-content\/uploads\/2020\/01\/Screen-Shot-2020-01-15-at-8.03.33-pm-1536x938.png 1536w, https:\/\/sighmon.com\/says\/wp-content\/uploads\/2020\/01\/Screen-Shot-2020-01-15-at-8.03.33-pm-2048x1251.png 2048w, https:\/\/sighmon.com\/says\/wp-content\/uploads\/2020\/01\/Screen-Shot-2020-01-15-at-8.03.33-pm-1568x958.png 1568w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>The EPA air quality website is fantastic, but my friend <a href=\"https:\/\/www.csi.edu.au\/about-csi\/our-people\/cobi-calyx\/\">Cobi<\/a> was wondering if we could extend this public data by providing small modular air quality monitoring devices to roll out to public spaces indoor and outdoors, to help provide more information about the air we are all breathing while at work and play.<\/p>\n\n\n\n<p>Cobi pointed me to this <a href=\"https:\/\/www.wildlabs.net\/community\/thread\/825\">Wild Labs<\/a> (conservation technology network) thread, that had already started planning out the work via a <a href=\"https:\/\/join.slack.com\/t\/wildlabs-bushfires\/shared_invite\/enQtODk1OTA4Njk4ODAwLWJlNmUwYzdiNDQwMDUzNTExZDNjYTYwYzg2YzUzY2E5OWZmOGJjOTUxNTc1ZTk1MWJjOGRjYWVkMTczY2EwZDY\">Slack group<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Air quality prototype #2<\/h2>\n\n\n\n<p>Learning from the previous air quality sensors we built, I&#8217;m keen to provide some time to plan and deploy a prototype of some new hardware, and here&#8217;s where I need your help to fund the initial build.<\/p>\n\n\n\n<p><strong>Why<\/strong>: to provide more open data in more locations to help people understand the quality of the air they&#8217;re breathing. This can help backup policy making, and also provide early warnings in remote areas not usually covered.<\/p>\n\n\n\n<p><strong>When<\/strong>: I&#8217;ll deliver a functional prototype in March 2020.<\/p>\n\n\n\n<p><strong>How much<\/strong>: $250 for the parts to build the first WiFi prototype.<\/p>\n\n\n\n<p><strong>How<\/strong>: Here&#8217;s what I&#8217;m thinking. Please jump on the slack channel above or comments below to help shape the hardware. But for now here&#8217;s what I&#8217;d like to build:<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Hardware<\/h3>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"425\" src=\"https:\/\/sighmon.com\/says\/wp-content\/uploads\/2020\/01\/enviro-plus-and-luftdaten-air-quality-station-3.jpg\" alt=\"Enviro+ Raspberry Pi Zero air quality sensors.\" class=\"wp-image-229\" srcset=\"https:\/\/sighmon.com\/says\/wp-content\/uploads\/2020\/01\/enviro-plus-and-luftdaten-air-quality-station-3.jpg 800w, https:\/\/sighmon.com\/says\/wp-content\/uploads\/2020\/01\/enviro-plus-and-luftdaten-air-quality-station-3-300x159.jpg 300w, https:\/\/sighmon.com\/says\/wp-content\/uploads\/2020\/01\/enviro-plus-and-luftdaten-air-quality-station-3-768x408.jpg 768w\" sizes=\"auto, (max-width: 800px) 100vw, 800px\" \/><figcaption>Enviro+ Raspberry Pi Zero air quality sensors.<\/figcaption><\/figure>\n\n\n\n<ul class=\"wp-block-list\"><li><a href=\"https:\/\/core-electronics.com.au\/raspberry-pi-zero-wh-essentials-kit.html\">Raspberry Pi Zero W<\/a> &#8211; $35.50<\/li><li><a href=\"https:\/\/core-electronics.com.au\/pimoroni-enviro-air-quality-for-raspberry-pi.html\">Pimoroni Enviro+ Air Quality hat<\/a> &#8211; $88.50<\/li><li><a href=\"https:\/\/core-electronics.com.au\/pm2-5-air-quality-sensor-and-breadboard-adapter-kit-pms5003.html\">PM2.5 Air Quality Sensor PMS5003<\/a> &#8211; $81.96<\/li><li><a href=\"https:\/\/core-electronics.com.au\/raspberry-pi-3-power-supply.html\">Power supply<\/a> &amp; <a href=\"https:\/\/core-electronics.com.au\/16gb-microsd-card-with-noobs-for-all-raspberry-pi-boards.html\">SD card<\/a> &#8211; $35.95<\/li><\/ul>\n\n\n\n<p>This will provide the following sensor data to the internet via WiFi:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>BME280 temperature, pressure, humidity<\/li><li>LTR-559 light and proximity sensor<\/li><li>MICS6814 analog gas sensor<\/li><li>MEMS microphone for noise pollution<\/li><li>PM1.0, PM2.5 and PM10.0 concentration<\/li><\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Software<\/h3>\n\n\n\n<p>Pimoroni have a great tutorial on <a href=\"https:\/\/learn.pimoroni.com\/tutorial\/sandyj\/enviro-plus-and-luftdaten-air-quality-station\">building an outdoor air quality station with Enviro+ and Luftdaten<\/a> &#8211; so I&#8217;d like to base the software on their code. (clearly they need <a href=\"https:\/\/united-kingdom.maps.sensor.community\/#5\/-27.562\/132.393\">more Australian data<\/a>!)<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"651\" src=\"https:\/\/sighmon.com\/says\/wp-content\/uploads\/2020\/01\/Screen-Shot-2020-01-15-at-8.46.04-pm-1024x651.png\" alt=\"There aren't currently many Luftdaten data points in Australia. Let's help fix that.\" class=\"wp-image-227\" srcset=\"https:\/\/sighmon.com\/says\/wp-content\/uploads\/2020\/01\/Screen-Shot-2020-01-15-at-8.46.04-pm-1024x651.png 1024w, https:\/\/sighmon.com\/says\/wp-content\/uploads\/2020\/01\/Screen-Shot-2020-01-15-at-8.46.04-pm-300x191.png 300w, https:\/\/sighmon.com\/says\/wp-content\/uploads\/2020\/01\/Screen-Shot-2020-01-15-at-8.46.04-pm-768x488.png 768w, https:\/\/sighmon.com\/says\/wp-content\/uploads\/2020\/01\/Screen-Shot-2020-01-15-at-8.46.04-pm-1536x976.png 1536w, https:\/\/sighmon.com\/says\/wp-content\/uploads\/2020\/01\/Screen-Shot-2020-01-15-at-8.46.04-pm-2048x1302.png 2048w, https:\/\/sighmon.com\/says\/wp-content\/uploads\/2020\/01\/Screen-Shot-2020-01-15-at-8.46.04-pm-1568x997.png 1568w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>But to make it so that we can roll out hundreds of these and update them remotely, I&#8217;d like to build a Docker container image to deploy with <a href=\"https:\/\/www.balena.io\">Balena<\/a>.<\/p>\n\n\n\n<p>To make it as universally hackable as possible, it might also be worth installing a <a href=\"https:\/\/github.com\/prometheus\/client_python\">Prometheus exporter<\/a> on each sensor device so that the data can be scraped by other services. That way we can also build some pretty <a href=\"https:\/\/grafana.com\">Grafana dashboards<\/a> to show off the data.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Next steps<\/h2>\n\n\n\n<p>Next up I&#8217;d like to raise a little bit of money to build the first prototypes, and see how the software roll out works in practice.<\/p>\n\n\n\n<p>Then after a mains powered version is finished I&#8217;d really like to play with a <a href=\"https:\/\/www.dragino.com\/products\/lora\/item\/106-lora-gps-hat.html\">LoRa\/GPS board<\/a> and see if we can get it to run in a low power state between readings to be powered off of recycled mobile phone batteries.<\/p>\n\n\n\n<p>Who&#8217;s in?<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Learning from the previous air quality sensors we built, I&#8217;m keen to provide some time to plan and deploy a prototype of some new hardware, and here&#8217;s where I need your help to fund the initial build.<\/p>\n","protected":false},"author":1,"featured_media":222,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[54,9],"tags":[49,11,51,53,13,50,52,14],"class_list":["post-219","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-raspberry-pi","category-sensors","tag-air","tag-arduino","tag-citizen","tag-open-source","tag-quality","tag-raspberry-pi","tag-science","tag-sensors","entry"],"_links":{"self":[{"href":"https:\/\/sighmon.com\/says\/wp-json\/wp\/v2\/posts\/219","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/sighmon.com\/says\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/sighmon.com\/says\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/sighmon.com\/says\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/sighmon.com\/says\/wp-json\/wp\/v2\/comments?post=219"}],"version-history":[{"count":6,"href":"https:\/\/sighmon.com\/says\/wp-json\/wp\/v2\/posts\/219\/revisions"}],"predecessor-version":[{"id":231,"href":"https:\/\/sighmon.com\/says\/wp-json\/wp\/v2\/posts\/219\/revisions\/231"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/sighmon.com\/says\/wp-json\/wp\/v2\/media\/222"}],"wp:attachment":[{"href":"https:\/\/sighmon.com\/says\/wp-json\/wp\/v2\/media?parent=219"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/sighmon.com\/says\/wp-json\/wp\/v2\/categories?post=219"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/sighmon.com\/says\/wp-json\/wp\/v2\/tags?post=219"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}