Particle Sniffer

40,985

227

37

Introduction: Particle Sniffer

While working with the prior projects on PM2.5 assessment I noticed the drawback of being unable to locate the point sources of small particle pollution. Most sampling done by the municipalities and satellite imagery collect wide sources that don't really tell you on a personal level where this is coming from and how to eliminate it. The Honeywell device has its own blower and input and output windows all I needed was a way of channeling the airflow specifically to those areas--and of course I already had a 3D printed/designed dogs nose to put on the end so the rest was just to design a gun sampling unit with trigger that would allow me to carefully explore where my killers were coming from.

Step 1: Gather Your Materials

I used the Honeywell HPMA because of its reliability and cheap price. The combo of the ESP32 and the 8266 charger/booster form factor is also used again.

1. HONEYWELL HPMA115S0-TIR PM2.5 Particle Sensor laser pm2.5 air quality detection sensor module Super dust sensor PMS5003 $18

2.ESP32 MINI KIT Module WiFi+Bluetooth Internet Development Board D1 MINI Upgraded based ESP8266 Fully functional $6 (AliExpress)

3. MH-ET LIVE Battery Shield for ESP32 MINI KIT D1 MINI single lithium battery charging & boost $1 (AliExpress)

4. 18650 Battery with wires $4

5. IZOKEE 0.96'' I2C IIC 12864 128X64 Pixel OLED $4

6. Rugged Metal On/Off Switch with Green LED Ring - 16mm Green On/Off $5 (Adafruit)

7. Generic 3D printer (Ender 3)

8. Antrader KW4-3Z-3 Micro Switch KW4 Limit $1.00

9. NeoPixel Ring - 12 x 5050 RGB LED with Integrated Drivers $7.50

Step 2: Design and 3D Print

The sniffer is designed so that the built in blowers in the HoneyWell sensor are aligned and encapsulated within the housing of the sniffer such that the nostrils in the open end connect directly with the input ports on the sensor and the output vent goes through the housing and out through multiple holes in the back cowling. (Jeez sounds like a patent application....bad) The substantial handle allow a large capacity battery and the rest of the electronics to connect. The charging port is aligned at the bottom of the handle housing. The Neopixel ring lighting around the nose is designed to shine through the case at the top. The build is done so that the top part of the main housing is done in clear PLA and then switched to Grey PLA for the handle and finally clear PLA for the handle base to allow the color of the charging lights to be seen. The trigger mechanism is laid up with an operating pin hinge that is printed as one piece but hopefully moves freely.

All files are done with standard settings on Cura for ender 3. No supports were used for any of the parts.

Step 3: Wire It

The wiring diagram is essentially the same as the wiring for: https://www.instructables.com/id/Bike-Analog-Pollution-Meter/ except there is no servo and that output is used for the data line for the Neopixel ring. In this case the power button controls power from the battery to the power booster/charger only. The 5 volt line from the booster is controlled by the limit switch in the handle that is operated like a trigger. It connects power from the booster to both the Sensor, ESP32 and the Neopixels powering them on simultaneously. The I2C screen is powered off of the 3 volts from the ESP32. Most of the wiring must be done while the handle is under construction in the next section as you must feed the wires through a variety of openings. Make sure you breadboard it first!

Step 4: Build It

The Neopixel ring is first glued into the nose housing making sure it lies flat and doesn't compromise its tight connection to the main body. Route the three wires through the side port on the main body and down into the handle. The Neopixels should point into the main clear housing. The Air Sensor is then placed into its housing with the small multiple input vents facing toward the nostril openings and the fan core facing back toward the wire output feed. Feed the wires out the back and down into the handle core where they will be soldered to the ESP32. The I2C screen is attached to the front section and its exit wires go through the slot opening through the handle and are wired to the main board. The round cowling is then glued in place over the screen. All glue is usually E6000 although superGlue LocTight can also be used. The front nostril nose cone is also glued in place. The limit switch is wired in and glued into position as well as the main on/off switch. The main ESP board is fitted in and the 18650 battery is installed. The boost board is glued securely to the base plate of the unit making sure that the charging port is aligned carefully with the opening. Glue on the base plate when everything is operating correctly. The trigger switch is glued over the limit switch metal bar in a fashion that it easily clicks it in the down position. Careful not to get glue into the limit switch mechanism.

Step 5: Program It

The software utilizes the serial port for importing the information from the sensor. It is one of the problematic issues with this sensor that it doesn't use I2C with libraries to make it more convenient. Instead of a servo as output as in the bike sniffer this instrument uses the SSD1306 output through I2C. The Neopixel display is controlled by the Adafruit Neopixel Library in a rather conventional light display that just breaths 3 different colored lights for the level of PM2.5 in the nostrils. If the level is less than 25 it flashes blue, green if between 25 and 80 and red if over 80. These preset levels can be reset in the program. They are controlled as output in a case statement in the brighten function at the bottom of the program. Fonts for the output of the screen and screen sizes can also be switched. The Sensor takes a reading once per second.

Step 6: Using It

So being in the middle of this quarantine its a little hard to get out much and use this device so I was stuck doing youTube videos around the house to see how bad it gets inside. (Normally I would be out shoving this down the nearest neighbors diesel truck exhaust hole or downwind of the coffee roasting plant -- yea I know your screwing with my lung function!) The device boots up nicely within 4 seconds of pushing the trigger. It gets an erroneous high reading and then slowly over 5 seconds stabilizes. Most reading correspond well with the National Sampler about a 1/2 mile down the block. The usual shock of toaster output I have put up on the web for you. The other video is making Granola --yow--it leaked 50 ppm for over an hour after coming out of the oven. The nostrils tend to hold on to the high level scent for a while so you might blow them out to take another reading immediately. Two months ago PPM2.5 was a serious concern now no one remembers it. Global warming--that was so many worries ago.

3D Printed Contest

Second Prize in the
3D Printed Contest

Be the First to Share

    Recommendations

    • Game Design: Student Design Challenge

      Game Design: Student Design Challenge
    • For the Home Contest

      For the Home Contest
    • Big and Small Contest

      Big and Small Contest

    37 Comments

    0
    BirdmanMC
    BirdmanMC

    2 years ago

    Hi could you please upload a circuit / wiring diagram as I find photographs very confusing would love to be able to complete project as I have all components now.
    Thanks

    0
    Meglymoo87
    Meglymoo87

    2 years ago

    This is too funny! I JUST watched Richie Rich (the 1994 film) with my kids the other day and this reminds me of when the dad pulls out a Smellmaster 9000 which converts what it "smells" into words. This totally reminded me of it (though yours does a different function). Good job :)

    0
    benjbart22
    benjbart22

    Question 2 years ago

    I have an error message that keeps coming up on line 40 and I figure out how to fix it. it keeps coming up with:
    \sniffer-master (1)\sniffer-master\FinalSniffer\FinalSniffer.ino: In function 'void setup()':
    FinalSniffer:39:45: error: invalid conversion from 'int' to 'SerialMode' [-fpermissive]
    HPMA115S0.begin(9600, SERIAL_8N1, RXD2, TXD2);
    ^
    In file included from \Documents\ArduinoData\packages\esp8266\hardware\esp8266\2.7.1\cores\esp8266/Arduino.h:245:0,
    from \AppData\Local\Temp\arduino_build_444380\sketch\FinalSniffer.ino.cpp:1:
    \Documents\ArduinoData\packages\esp8266\hardware\esp8266\2.7.1\cores\esp8266/HardwareSerial.h:87:10: error: initializing argument 3 of 'void HardwareSerial::begin(long unsigned int, SerialConfig, SerialMode, uint8_t)' [-fpermissive]
    void begin(unsigned long baud, SerialConfig config, SerialMode mode, uint8_t tx_pin).
    ^
    exit status 1
    invalid conversion from 'int' to 'SerialMode' [-fpermissive]
    ***End of the error message***
    Any solutions? I used the github code by the way.
    0
    robversteden
    robversteden

    2 years ago

    It's a smart design, and that nosy outfit charmed even my wife. But what is this line 69 doing here?(Serial.println("MQTT published HPMA115S0.") Shouldn't the nose be node-red?

    0
    benjbart22
    benjbart22

    Question 2 years ago on Step 1

    Does this project require that specific board or could I just use an Arduino nano and adjust the cad files to fit it?

    1
    rabbitcreek
    rabbitcreek

    Answer 2 years ago

    As long as it has a UART serial port to communicate with the HoneyWell unit your good--The Nano would fit fine in the handle without any modifications

    0
    benjbart22
    benjbart22

    Reply 2 years ago

    Actually I have found out that the rewriting the code is the biggest blockade in using a different board with the project. learn from my mistakes people, if you're going to make this, use the board listed, download the board library, and then open the .ino file from the zip folder.
    P.S. I never finished rewriting the code, I couldn't figure why I kept getting the error for the hardware serial. I even tried rewriting it as a software serial instead.

    0
    Dillon1337
    Dillon1337

    2 years ago

    Can you share the source files for the 3D printed enclosure? I have a similar trigger design in mind for a project and it would really help to see how you made yours. Thanks!

    0
    rabbitcreek
    rabbitcreek

    Reply 2 years ago

    I just put it up for you with the other stl files--good luck!

    0
    Dillon1337
    Dillon1337

    Reply 2 years ago

    Fantastic Thank you!

    0
    tonydevito
    tonydevito

    2 years ago

    Shouldn't this measurement be ug/M3 rather than ppm?

    0
    hugheswho
    hugheswho

    2 years ago

    I feel sure you must know this, but there have been studies that suggest a dog's sense of smell is not just down to the sensors in the nose, but the shape of its nostrils and cavities.
    These allow the dog to make very quick and accurate samples through sniffing. I am not sure your device benefits from this because it is doing one long sniff. But a great looking product anyway!
    "Biomimetic Sniffing Improves the Detection Performance of a 3D Printed Nose of a Dog and a Commercial Trace Vapor Detector:
    https://www.nature.com/articles/srep36876

    0
    JosephC246
    JosephC246

    2 years ago

    where did you source that sensor? I can't find it for less than $50.

    0
    JosephC246
    JosephC246

    Reply 2 years ago

    Thank you!

    0
    stern.jayl
    stern.jayl

    2 years ago

    South Coast Air Quality Management District has Rule 445. Their aim is to stop people from buring wood in their fireplaces and use natural gas instead. They use the PM2.5 standard except now they are trying to tighten it to PM2.0. What's wrong with that? Isn't it wonderful that the self-important bureaucrats want to protect our health? Um. No. Consider that the research on which their stupid rule is based specified that the damage to health comes from submicron particles. That woud be 1μm or smaller. All this agency does is stifle commerce and giggle when they can fine someone out of everything they have worked for. All the while, brush and forest fires and tire residue is lofted into the air in higher concentration than anything these idiots are messing with. But then, you can't fine a forest fire, can you?

    0
    ANDRELAS
    ANDRELAS

    2 years ago

    Some time ago I considered how to make a sniffer to detect the methane from termites, but at that time none of the sniffer modules were in any way accessible financially, but maybe those could also identify the detected subsatnce. If this little doodad could sniff out termites that would be fantastic. Maybe if it can identify propane from a Bernzomatic torch it would do the termite methane also. A gas range has methane, but also some odor additives. That might be close enough regardless. You could just go around the walls and get a base reading, and any spikes would be a signal to look closer.

    0
    stern.jayl
    stern.jayl

    Reply 2 years ago

    Commercial gas detectors (about $100) are already available and have been for years. They do exactly what you are asking for.