{"id":5347,"date":"2020-10-28T12:56:13","date_gmt":"2020-10-28T19:56:13","guid":{"rendered":"http:\/\/technarrativelab.org\/?p=5347"},"modified":"2024-01-29T17:35:47","modified_gmt":"2024-01-30T01:35:47","slug":"aqsd-hardware-party","status":"publish","type":"post","link":"https:\/\/nostatic.com\/lab\/2020\/10\/28\/aqsd-hardware-party\/","title":{"rendered":"AQSD Hardware Party"},"content":{"rendered":"\n<p>The Air Quality and Sustainable Distancing sprint is exploring ways to make physical distancing sustainable, and understand applications\/implications. The Sensor Platform effort is prototyping a collection of different sensor capabilities \u2013 CO2 levels, motion sensing, object recognition, atmospheric data. The goal is to look at different capabilities and experiment with ways to get actionable data.&nbsp;<\/p>\n\n\n\n<p>Our hardware approaches:<\/p>\n\n\n\n<ol class=\"wp-block-list\" type=\"1\"><li>Arduino based \u201cMix &amp; Match\u201d sensor modules<\/li><li>Computer vision\/ object recognition&nbsp;<\/li><\/ol>\n\n\n\n<p>For instrumenting and monitoring the two elements of interest (Air Quality\u2014Sustainable Distancing), we knew we would need some suite of sensors, but we didn\u2019t know exactly what approaches would work yet. With this in mind, we started with a low-cost, open-source prototyping board that would allow us to buy a selection of sensors and \u201cmix &amp; match\u201d them as we experiment. We chose an Arduino based platform for its wide userbase, support and ecosystem of compatible devices. With many Arduino boards and third-party variants on the market, we identified one board that fit the design criteria for this project\u2014the Arduino MKR 1010 features:<\/p>\n\n\n\n<ol class=\"wp-block-list\" type=\"1\"><li>Wifi\/ Bluetooth \/BLE enabled out-of-the-box<\/li><li>Small form factor<\/li><li>Compatible with many types of sensors &amp; devices (Grove ecosystem)<\/li><li>Battery port<\/li><li>SD card shield<\/li><\/ol>\n\n\n\n<p>The Grove ecosystem is a collection of \u201cplug and play\u201d devices designed to interface with Arduino through an attachable shield that remaps the pins to standardized 4-wire connectors, eliminating the need for breadboards.&nbsp;<\/p>\n\n\n\n<p>Basic sensors and devices we thought could be useful:&nbsp;<\/p>\n\n\n\n<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-PIR (infrared) motion sensor&nbsp;<\/p>\n\n\n\n<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-Ultrasonic (distance) sensor&nbsp;<\/p>\n\n\n\n<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-RFID\/NFC reader&nbsp;<\/p>\n\n\n\n<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-RGB LEDs&nbsp;<\/p>\n\n\n\n<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-LCD screen<\/p>\n\n\n\n<p>&#8211; Analog Microphone<\/p>\n\n\n\n<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-Speaker&nbsp;<\/p>\n\n\n\n<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-CO2, temperature &amp; humidity<\/p>\n\n\n\n<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-PM2.5 particulate matter<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"974\" height=\"525\" src=\"https:\/\/nostatic.com\/lab\/wp-content\/uploads\/2020\/10\/tnl-aqsd1.png\" alt=\"\" class=\"wp-image-5350\" srcset=\"https:\/\/nostatic.com\/lab\/wp-content\/uploads\/2020\/10\/tnl-aqsd1.png 974w, https:\/\/nostatic.com\/lab\/wp-content\/uploads\/2020\/10\/tnl-aqsd1-300x162.png 300w, https:\/\/nostatic.com\/lab\/wp-content\/uploads\/2020\/10\/tnl-aqsd1-768x414.png 768w\" sizes=\"auto, (max-width: 974px) 100vw, 974px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"974\" height=\"729\" src=\"https:\/\/nostatic.com\/lab\/wp-content\/uploads\/2020\/10\/tnl-aqsd2.png\" alt=\"\" class=\"wp-image-5351\" srcset=\"https:\/\/nostatic.com\/lab\/wp-content\/uploads\/2020\/10\/tnl-aqsd2.png 974w, https:\/\/nostatic.com\/lab\/wp-content\/uploads\/2020\/10\/tnl-aqsd2-300x225.png 300w, https:\/\/nostatic.com\/lab\/wp-content\/uploads\/2020\/10\/tnl-aqsd2-768x575.png 768w\" sizes=\"auto, (max-width: 974px) 100vw, 974px\" \/><\/figure>\n\n\n\n<p>Air Quality<\/p>\n\n\n\n<p>Covid-19 is spread through aerosols, but there is no commercial sensor (yet) for directly measuring those airborne viral particles. So, we need something else able to measure indoor air quality and the associated risk of Covid-19 transmission. We decided to work from the assumption that since exhaled breath contains CO2, measuring CO2 concentrations in a room would give us an approximation of the amount of exhaled breath from occupants and by proxy, the risk of exposure. This assumption has not been rigorously validated, but&nbsp;<a href=\"https:\/\/www.medrxiv.org\/content\/10.1101\/2020.09.09.20191676v1.full.pdf\">CO2 looks promising as a low-cost solution.&nbsp;<\/a>In addition to CO2, we would measure temperature, humidity and PM2.5 (particulate matter 2.5 micrometers or smaller). In previous work done by the TNL as part of the Hyper-Local Air Quality project, we used commercial Purple Air devices to track outdoor particulate matter levels. For this project, we took the Plantower PM2.5 sensors used by Purple Air and created an open-source version using Arduino. Although we were unable to establish a serial communication between the Plantower PM2.5 and the MKR 1010 board due to processor architecture incompatibility, we were successful with an Arduino Uno.&nbsp;&nbsp;<\/p>\n\n\n\n<p>Plantower PM2.5\u2014Arduino Uno schematic:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"974\" height=\"729\" src=\"https:\/\/nostatic.com\/lab\/wp-content\/uploads\/2020\/10\/tnl-aqsd3.png\" alt=\"\" class=\"wp-image-5352\" srcset=\"https:\/\/nostatic.com\/lab\/wp-content\/uploads\/2020\/10\/tnl-aqsd3.png 974w, https:\/\/nostatic.com\/lab\/wp-content\/uploads\/2020\/10\/tnl-aqsd3-300x225.png 300w, https:\/\/nostatic.com\/lab\/wp-content\/uploads\/2020\/10\/tnl-aqsd3-768x575.png 768w\" sizes=\"auto, (max-width: 974px) 100vw, 974px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"974\" height=\"729\" src=\"https:\/\/nostatic.com\/lab\/wp-content\/uploads\/2020\/10\/tnl-aqsd4.png\" alt=\"\" class=\"wp-image-5353\" srcset=\"https:\/\/nostatic.com\/lab\/wp-content\/uploads\/2020\/10\/tnl-aqsd4.png 974w, https:\/\/nostatic.com\/lab\/wp-content\/uploads\/2020\/10\/tnl-aqsd4-300x225.png 300w, https:\/\/nostatic.com\/lab\/wp-content\/uploads\/2020\/10\/tnl-aqsd4-768x575.png 768w, https:\/\/nostatic.com\/lab\/wp-content\/uploads\/2020\/10\/tnl-aqsd4-600x449.png 600w\" sizes=\"auto, (max-width: 974px) 100vw, 974px\" \/><\/figure>\n\n\n\n<p>Tabletop CO2 Monitor<\/p>\n\n\n\n<p>We prototyped a tabletop CO2 monitor that would signal the occupants of a room when the concentration of breath, and by proxy risk, exceeded predetermined threshold. To accomplish this, we used the MKR 1010 with a CO2 sensor, motion detector, LED, and LCD Display and a single-cell 3.7V LiPo battery. The motion sensor is used to set a baseline CO2 level, when people have not been in the room for some time. At baseline the LED will indicate blue. Once it detects motion the LED will change to green, indicating lower risk. As CO2 levels climb and exceed set thresholds, the LED will change to yellow and then red, indicating moderate and elevated risk respectively.&nbsp;<\/p>\n\n\n\n<p>V1 Prototype:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"637\" height=\"479\" src=\"https:\/\/nostatic.com\/lab\/wp-content\/uploads\/2020\/10\/tnl-aqsd5.png\" alt=\"\" class=\"wp-image-5354\" srcset=\"https:\/\/nostatic.com\/lab\/wp-content\/uploads\/2020\/10\/tnl-aqsd5.png 637w, https:\/\/nostatic.com\/lab\/wp-content\/uploads\/2020\/10\/tnl-aqsd5-300x226.png 300w\" sizes=\"auto, (max-width: 637px) 100vw, 637px\" \/><\/figure>\n\n\n\n<p>Experimental Results:<\/p>\n\n\n\n<p>Using this prototype and a $15 anemometer to measure HVAC airflow, we ran some experiments.&nbsp;<\/p>\n\n\n\n<p>Dinner Experiment #1:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>4 occupants<\/li><li>41m^3 room volume&nbsp;<\/li><li>2 hour experiment (1 hour meeting)<\/li><li>Poor ventilation&#8211;HVAC off, windows closed<\/li><\/ul>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"974\" height=\"622\" src=\"https:\/\/nostatic.com\/lab\/wp-content\/uploads\/2020\/10\/tnl-aqsd6.png\" alt=\"\" class=\"wp-image-5355\" srcset=\"https:\/\/nostatic.com\/lab\/wp-content\/uploads\/2020\/10\/tnl-aqsd6.png 974w, https:\/\/nostatic.com\/lab\/wp-content\/uploads\/2020\/10\/tnl-aqsd6-300x192.png 300w, https:\/\/nostatic.com\/lab\/wp-content\/uploads\/2020\/10\/tnl-aqsd6-768x490.png 768w\" sizes=\"auto, (max-width: 974px) 100vw, 974px\" \/><\/figure>\n\n\n\n<p>Dinner Experiment #2:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Same 4 occupants and room<\/li><li>1.75 hour experiment (1.5 hour meeting)<\/li><li>Better ventilation&#8211;HVAC on, windows closed<\/li><\/ul>\n\n\n\n<p>-9.5 air changes \/ hour<\/p>\n\n\n\n<p>-Standard range for business conference 8-12 ACH<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"974\" height=\"625\" src=\"https:\/\/nostatic.com\/lab\/wp-content\/uploads\/2020\/10\/tnl-aqsd7.png\" alt=\"\" class=\"wp-image-5356\" srcset=\"https:\/\/nostatic.com\/lab\/wp-content\/uploads\/2020\/10\/tnl-aqsd7.png 974w, https:\/\/nostatic.com\/lab\/wp-content\/uploads\/2020\/10\/tnl-aqsd7-300x193.png 300w, https:\/\/nostatic.com\/lab\/wp-content\/uploads\/2020\/10\/tnl-aqsd7-768x493.png 768w\" sizes=\"auto, (max-width: 974px) 100vw, 974px\" \/><\/figure>\n\n\n\n<p>Night Experiment #1:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>2 occupants&nbsp;<\/li><li>Smaller room&#8211;35m^3 volume<\/li><li>11.5 hours<\/li><li>Poor ventilation<\/li><\/ul>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"974\" height=\"629\" src=\"https:\/\/nostatic.com\/lab\/wp-content\/uploads\/2020\/10\/tnl-aqsd8.png\" alt=\"\" class=\"wp-image-5357\" srcset=\"https:\/\/nostatic.com\/lab\/wp-content\/uploads\/2020\/10\/tnl-aqsd8.png 974w, https:\/\/nostatic.com\/lab\/wp-content\/uploads\/2020\/10\/tnl-aqsd8-300x194.png 300w, https:\/\/nostatic.com\/lab\/wp-content\/uploads\/2020\/10\/tnl-aqsd8-768x496.png 768w\" sizes=\"auto, (max-width: 974px) 100vw, 974px\" \/><\/figure>\n\n\n\n<p>Night Experiment #2:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Same 2 occupants&nbsp;<\/li><li>9 hours<\/li><li>Good ventilation<\/li><\/ul>\n\n\n\n<p>-33.5 air changes \/ hour<\/p>\n\n\n\n<p>-Standard for bedroom is 5-6 ACH<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"974\" height=\"604\" src=\"https:\/\/nostatic.com\/lab\/wp-content\/uploads\/2020\/10\/tnl-aqsd9.png\" alt=\"\" class=\"wp-image-5359\" srcset=\"https:\/\/nostatic.com\/lab\/wp-content\/uploads\/2020\/10\/tnl-aqsd9.png 974w, https:\/\/nostatic.com\/lab\/wp-content\/uploads\/2020\/10\/tnl-aqsd9-300x186.png 300w, https:\/\/nostatic.com\/lab\/wp-content\/uploads\/2020\/10\/tnl-aqsd9-768x476.png 768w\" sizes=\"auto, (max-width: 974px) 100vw, 974px\" \/><\/figure>\n\n\n\n<p>V2 Prototype<\/p>\n\n\n\n<p>Further development on the tabletop CO2 device included additional motion sensors for panoramic field of view and a custom 3D printed case. In prototyping the new case, we saw the need for a smaller version designed to house individual sensors. Both versions feature sliding polycarbonate panels for easy access to the Arduino boards. They also have swappable lids, meaning different sensor configurations can be selected from by simply swapping out the top.&nbsp;<\/p>\n\n\n\n<p>Initial whiteboard sketches&nbsp;<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"729\" height=\"972\" src=\"https:\/\/nostatic.com\/lab\/wp-content\/uploads\/2020\/10\/tnl-aqsd10.png\" alt=\"\" class=\"wp-image-5360\" srcset=\"https:\/\/nostatic.com\/lab\/wp-content\/uploads\/2020\/10\/tnl-aqsd10.png 729w, https:\/\/nostatic.com\/lab\/wp-content\/uploads\/2020\/10\/tnl-aqsd10-225x300.png 225w\" sizes=\"auto, (max-width: 729px) 100vw, 729px\" \/><\/figure>\n\n\n\n<p>3D CAD models<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"972\" height=\"712\" src=\"https:\/\/nostatic.com\/lab\/wp-content\/uploads\/2020\/10\/tnl-aqsd-11.png\" alt=\"\" class=\"wp-image-5361\" srcset=\"https:\/\/nostatic.com\/lab\/wp-content\/uploads\/2020\/10\/tnl-aqsd-11.png 972w, https:\/\/nostatic.com\/lab\/wp-content\/uploads\/2020\/10\/tnl-aqsd-11-300x220.png 300w, https:\/\/nostatic.com\/lab\/wp-content\/uploads\/2020\/10\/tnl-aqsd-11-768x563.png 768w\" sizes=\"auto, (max-width: 972px) 100vw, 972px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"958\" height=\"656\" src=\"https:\/\/nostatic.com\/lab\/wp-content\/uploads\/2020\/10\/tnl-aqsd12.png\" alt=\"\" class=\"wp-image-5362\" srcset=\"https:\/\/nostatic.com\/lab\/wp-content\/uploads\/2020\/10\/tnl-aqsd12.png 958w, https:\/\/nostatic.com\/lab\/wp-content\/uploads\/2020\/10\/tnl-aqsd12-300x205.png 300w, https:\/\/nostatic.com\/lab\/wp-content\/uploads\/2020\/10\/tnl-aqsd12-768x526.png 768w\" sizes=\"auto, (max-width: 958px) 100vw, 958px\" \/><\/figure>\n\n\n\n<p>Testing the space constraints \/ layout&nbsp;<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"729\" height=\"972\" src=\"https:\/\/nostatic.com\/lab\/wp-content\/uploads\/2020\/10\/tnl-aqsd-13.png\" alt=\"\" class=\"wp-image-5363\" srcset=\"https:\/\/nostatic.com\/lab\/wp-content\/uploads\/2020\/10\/tnl-aqsd-13.png 729w, https:\/\/nostatic.com\/lab\/wp-content\/uploads\/2020\/10\/tnl-aqsd-13-225x300.png 225w\" sizes=\"auto, (max-width: 729px) 100vw, 729px\" \/><\/figure>\n\n\n\n<p>Successful print<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"729\" height=\"972\" src=\"https:\/\/nostatic.com\/lab\/wp-content\/uploads\/2020\/10\/tnl-aqsd-14.png\" alt=\"\" class=\"wp-image-5364\" srcset=\"https:\/\/nostatic.com\/lab\/wp-content\/uploads\/2020\/10\/tnl-aqsd-14.png 729w, https:\/\/nostatic.com\/lab\/wp-content\/uploads\/2020\/10\/tnl-aqsd-14-225x300.png 225w\" sizes=\"auto, (max-width: 729px) 100vw, 729px\" \/><\/figure>\n\n\n\n<p>Failed prints and various iterations<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"729\" height=\"972\" src=\"https:\/\/nostatic.com\/lab\/wp-content\/uploads\/2020\/10\/tnl-aqsd-15.png\" alt=\"\" class=\"wp-image-5365\" srcset=\"https:\/\/nostatic.com\/lab\/wp-content\/uploads\/2020\/10\/tnl-aqsd-15.png 729w, https:\/\/nostatic.com\/lab\/wp-content\/uploads\/2020\/10\/tnl-aqsd-15-225x300.png 225w\" sizes=\"auto, (max-width: 729px) 100vw, 729px\" \/><\/figure>\n\n\n\n<p>Final Products&nbsp;<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"974\" height=\"729\" src=\"https:\/\/nostatic.com\/lab\/wp-content\/uploads\/2020\/10\/tnl-aqsd-16.png\" alt=\"\" class=\"wp-image-5366\" srcset=\"https:\/\/nostatic.com\/lab\/wp-content\/uploads\/2020\/10\/tnl-aqsd-16.png 974w, https:\/\/nostatic.com\/lab\/wp-content\/uploads\/2020\/10\/tnl-aqsd-16-300x225.png 300w, https:\/\/nostatic.com\/lab\/wp-content\/uploads\/2020\/10\/tnl-aqsd-16-768x575.png 768w, https:\/\/nostatic.com\/lab\/wp-content\/uploads\/2020\/10\/tnl-aqsd-16-600x449.png 600w\" sizes=\"auto, (max-width: 974px) 100vw, 974px\" \/><\/figure>\n\n\n\n<p>Sustainable Distancing&nbsp;<\/p>\n\n\n\n<p>For monitoring physical distancing, we have two different computer vision approaches:<\/p>\n\n\n\n<ol class=\"wp-block-list\" type=\"1\"><li>\u201cOccupi\u201d Occupany Counter using Object Recognition&nbsp;<\/li><\/ol>\n\n\n\n<p>-Raspberry Pi + Pi Camera + TensorFlow lite&nbsp;<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Occupant Distance Detection using Depth Camera&nbsp;<\/li><\/ul>\n\n\n\n<p>-Nvidia Jetson Nano + Intel Realsense D435&nbsp;<\/p>\n\n\n\n<p>Raspberry Pi + Pi Camera&nbsp;<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"729\" height=\"972\" src=\"https:\/\/nostatic.com\/lab\/wp-content\/uploads\/2020\/10\/tnl-aqsd-17.png\" alt=\"\" class=\"wp-image-5367\" srcset=\"https:\/\/nostatic.com\/lab\/wp-content\/uploads\/2020\/10\/tnl-aqsd-17.png 729w, https:\/\/nostatic.com\/lab\/wp-content\/uploads\/2020\/10\/tnl-aqsd-17-225x300.png 225w\" sizes=\"auto, (max-width: 729px) 100vw, 729px\" \/><\/figure>\n\n\n\n<p>Occupi detecting Eddie Lopez&nbsp;<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"525\" height=\"456\" src=\"https:\/\/nostatic.com\/lab\/wp-content\/uploads\/2020\/10\/tnl-aqsd-18.png\" alt=\"\" class=\"wp-image-5369\" srcset=\"https:\/\/nostatic.com\/lab\/wp-content\/uploads\/2020\/10\/tnl-aqsd-18.png 525w, https:\/\/nostatic.com\/lab\/wp-content\/uploads\/2020\/10\/tnl-aqsd-18-300x261.png 300w\" sizes=\"auto, (max-width: 525px) 100vw, 525px\" \/><\/figure>\n\n\n\n<p>Nvidia Jetson Nano + Realsense D435 Depth Camera<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"972\" height=\"729\" src=\"https:\/\/nostatic.com\/lab\/wp-content\/uploads\/2020\/10\/tnl-aqsd-19.png\" alt=\"\" class=\"wp-image-5370\" srcset=\"https:\/\/nostatic.com\/lab\/wp-content\/uploads\/2020\/10\/tnl-aqsd-19.png 972w, https:\/\/nostatic.com\/lab\/wp-content\/uploads\/2020\/10\/tnl-aqsd-19-300x225.png 300w, https:\/\/nostatic.com\/lab\/wp-content\/uploads\/2020\/10\/tnl-aqsd-19-768x576.png 768w\" sizes=\"auto, (max-width: 972px) 100vw, 972px\" \/><\/figure>\n\n\n\n<p>Depth Camera Feed. Blue is closest to camera, red is furthest.&nbsp;<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"729\" height=\"972\" src=\"https:\/\/nostatic.com\/lab\/wp-content\/uploads\/2020\/10\/tnl-aqsd-20.png\" alt=\"\" class=\"wp-image-5371\" srcset=\"https:\/\/nostatic.com\/lab\/wp-content\/uploads\/2020\/10\/tnl-aqsd-20.png 729w, https:\/\/nostatic.com\/lab\/wp-content\/uploads\/2020\/10\/tnl-aqsd-20-225x300.png 225w\" sizes=\"auto, (max-width: 729px) 100vw, 729px\" \/><\/figure>\n\n\n\n<p>The TensorFlow Library is pretrained on several dozen common objects, including people. In our testing, it was able to consistently identify us (as \u201cperson\u201d) with a high degree of certainty, even with masks or hoods on. We wrote a Python script that runs on the Raspi which counts the number of objects identified as \u201cperson\u201d above a certain threshold of certainty. We can then upload this count to the cloud to be used by other sensors or to inform decision making. For example, we networked the Occupi to an Arduino with an LED so that when the occupancy limit is exceeded, the LED changes from green to red. A use case for this would be to signal those outside a room or confined area when it is safe or not to enter.&nbsp;<\/p>\n\n\n\n<p>The Occupi can determine how many people are in a room, but it does not tell you anything about their distancing behavior. The depth camera gives us information about each person\u2019s relative position in space and could be used to track physical distancing within a room. We have yet to implement this functionality.&nbsp;<\/p>\n\n\n\n<p>AWS<\/p>\n\n\n\n<p>Configure AWS Data Pipeline:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Got RAND AWS Access\u200b<\/li><li>Registered MKRWIFI, Raspberry Pi on AWS IoT\u200b<\/li><li>Set certificates \/ rules \/ policies to establish communication\u200b<\/li><li>Can publish \/ receive messages to \/ from IoT connected devices<\/li><\/ul>\n\n\n\n<p>To Do:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Set up DynamoDB database using Amazon Lambda function&nbsp;\u200b<\/li><li>Transmit data from device COM port to AWS in JSON or .xls\u200b<\/li><\/ul>\n\n\n\n<p>Next Steps&nbsp;<\/p>\n\n\n\n<p>Continuing this work, we will streamline our AWS pipeline and fully instrument a conference room and\/or open workspace within PRGS. There is still further development that can be done on the AQ sensors by integrating the CO2 and PM sensors, as well as with the depth camera rig.&nbsp;<\/p>\n\n\n\n<p><em>TNL disclaimer: this work represents experimental, exploratory, and often in-progress or preliminary efforts. One goal of the TNL is to get interesting approaches, topics, and concepts discussed and presented quickly. This work has not been peer-reviewed and is not an official RAND publication. No warranties implied or expressed, your mileage may vary, enter as often as you like.<\/em><\/p>\n","protected":false},"excerpt":{"rendered":"<p>The Air Quality and Sustainable Distancing sprint is exploring ways to make physical distancing sustainable, and understand applications\/implications. The Sensor Platform effort is prototyping a collection of different sensor capabilities \u2013 CO2 levels, motion sensing, object recognition, atmospheric data. The goal is to look at different capabilities and experiment with ways to get actionable data.&nbsp;&hellip;<\/p>\n","protected":false},"author":1,"featured_media":5353,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[9,18,19],"tags":[41,65],"class_list":["post-5347","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-data-science","category-health","category-iot","tag-eddie-lopez","tag-tech-stream-portfolio"],"acf":[],"_links":{"self":[{"href":"https:\/\/nostatic.com\/lab\/wp-json\/wp\/v2\/posts\/5347","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/nostatic.com\/lab\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/nostatic.com\/lab\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/nostatic.com\/lab\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/nostatic.com\/lab\/wp-json\/wp\/v2\/comments?post=5347"}],"version-history":[{"count":1,"href":"https:\/\/nostatic.com\/lab\/wp-json\/wp\/v2\/posts\/5347\/revisions"}],"predecessor-version":[{"id":6568,"href":"https:\/\/nostatic.com\/lab\/wp-json\/wp\/v2\/posts\/5347\/revisions\/6568"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/nostatic.com\/lab\/wp-json\/wp\/v2\/media\/5353"}],"wp:attachment":[{"href":"https:\/\/nostatic.com\/lab\/wp-json\/wp\/v2\/media?parent=5347"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/nostatic.com\/lab\/wp-json\/wp\/v2\/categories?post=5347"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/nostatic.com\/lab\/wp-json\/wp\/v2\/tags?post=5347"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}