Close
0%
0%

Open Source Gas Detector

Building a relatively cheaper and configurable Gas Detector with the addition of detection modules

Similar projects worth following
New to playing with Arduino's I've decided for my first project I will ambitiously attempt to build a multi gas detector for under $200 to provide similar functionality to ones currently on the market but cost upwards of $2800 AUD for a multi gas detector (MSA Altair 5X).

I don't initially expect it to have quite the same resolution as the $2800+ counterpart but thought this would be an interesting start, and may be useful for the hobbyist and those within particular industries.

Overview

I am undertaking this project to expand my understanding of Arduino microprocessors and to build something that I feel is important and often overlooked, especially as a volunteer firefighter.

Aim

I hope to achieve a functional gas detector which can sense and accurately ascertain the PPM and/or % concentration of a substance within the atmosphere for under $200 AUD.


Considerations

I am trying to keep my project as open source as possible and as low cost as possible without too many compromises, keeping in mind that this is also a learning project, I also welcome all constructive criticisms and will try to provide as much rationale and context around why I made certain design choices.

I have based the raw functionality/price point to a MSA Altair 5x this is approx. $2800 AUD from the cheapest price I briefly saw online. My initial price was based off the Altair 4x, but since I am trying to match the functionality of the 5x, then I should compare apples with apples.

Known Challenges

For this to really be a functional gas detector I believe I will have to overcome the following challenges:

  • Calibration - I don't believe I have done enough research yet into this area, however this project is still in the incipient phase.
  • Intrinsically Safe - Not sure about what standards are involved and how to test this non-destructively, again more research is required.
  • Power Consumption - Ideally I would like at least a 14 hour battery life, however more considerations have to be given to what technology, charging circuits and capacity.
  • Testing - I would need to source various toxic substances or potentially attempt to monitor the atmosphere at an incident which may require some form of approval through my brigade or higher.

Altair5X_Gas_Resolution.PNG

Contains resolution of MSA Altair 5X multi gas detector

Portable Network Graphics (PNG) - 82.59 kB - 10/10/2016 at 06:43

Preview
Download

  • 1 × Arduino Leonardo
  • 1 × MQ2 Gas Sensor
  • 1 × PCD8544 - LCD Screen
  • 4 × 10k Resistors
  • 1 × 330R Resistor

View all 7 components

  • Getting started with the Arduino and LCD

    Josh Wright10/10/2016 at 06:04 0 comments

    Well I started off with the Arduino and got myself set up to start sketching to it from my Macbook. It didn't take long and I had got the onboard LED on pin 13 flashing (my 'Hello World' to Arduino).

    From there I sought to get started with the LCD. I followed a tutorial online (below) to get the LCD module working with my arduino, I then used that code as the basis to suit to my needs.

    LCD hookup Guide

    This will form part of the display output when I finally get my hands on the Gas Sensor module which should hopefully be by midweek.

    To get the LCD to work I had to do the following in the LCDWrite() function which I found in the comments section:

      SPI.transfer(data); //shiftOut(sdinPin, sclkPin, MSBFIRST, data);
    to

      shiftOut(sdinPin, sclkPin, MSBFIRST, data);
    I also changed the code to the following within the lcdBegin() function

    LCDWrite(LCD_COMMAND, 0x21); //Tell LCD extended commands follow
    LCDWrite(LCD_COMMAND, 0xc8); //Set LCD Vop (Contrast)
    LCDWrite(LCD_COMMAND, 0x12); //LCD bias mode 1:48 (try 0x13)
    LCDWrite(LCD_COMMAND, 0x20); //chip is active, horizontal addressing, use basic instruction set
    //We must send 0x20 before modifying the display control mode
    LCDWrite(LCD_COMMAND, 0x09); //temperature control
    LCDWrite(LCD_COMMAND, 0x0C); //Set display control, normal mode.

    Once completed success:

View project log

Enjoy this project?

Share

Discussions

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates