Smart Home Air Quality Sensor Project

Warning:  This is a project that is still in progress.

The Amphenol SM-UART-04L is a laser dust sensor designed to operate in a moderate environment and provide excellent performance and reliability. The SM-UART-04L detects dust particle concentration in air by using an optical sensing method, with a laser LED and a photo sensor. The photo sensor detects the reflected laser LED light by dust particles in air and the dust sensor can detect small particles such as cigarette smoke and distinguish small particles, such as smoke from large house dust, by the pulse pattern of the signal output.

I thought this device would be an ideal sensor to connect to an Arduino, to form the basis of a smart air quality sensor and this project aims to show how I've done this.

Design

The SM-UART-04L Laser Dust Sensor uses a bespoke connector - part number CJT A1276WVA-N-2x5P-H72. There are equivalents though and these are listed in the datasheet. The pins are 1.27mm apart and 0.6mm in diameter, so this is a very small and difficult connector to work with.

PS. The reason some of the photos show a blue sensor is because it still has a protective plastic wrapper on.

The connector only exposes 10 pins.

These are the pin designations. I'm not 100% sure which ones are required for now, so I've exposed all of the main ones initially.

The application circuit from the shows the basic connections required to connect it to an Arduino. I'm interested in the SET/SLEEP pin though as this will prolong life and save power.

Mounting

The connector is too small for my soldering skills, so I've designed a combined PCB and mount, to make it much easier to work with this sensor. The PCB exposes the required connections via a 0.1" header.

Note: My PCB with attached connector will be in the Smartisant Store once my testing is complete.

The connector arrived and it is tiny!

This is the PCB with the tiny connector mounted to it. I had to use my LED magnifying lamp to solder it on.

This is the sensor mounted to the PCB. The next job is to design and 3D print a mount, which will also hold the sensor in place and allow me to mount it with the sensor orientated vertically.

The 3D design for the mount, created using Autodesk Fusion 360.

The sensor and PCB fixed to the 3D printed mount.

Testing

Warning:  Arduino processors typically use 5V logic levels and this sensor use 3.3V logic levels. You need a level shifter or some resistors to act as voltage dividers. The same is true of the SET/SLEEP pin.

Electrical Connections

Arduino processors have built-in support for serial communication on dedicated pins (explained here). To communicate with other serial devices like this sensor, I am using the SoftwareSerial library and this lets me define the pins for the RX/TX lines.

For my initial testing, I'm using an Arduino Uno and pin 3 (RX / blue) and pin 4 (TX / green). The sensor RX & TX pins connect to the Arduino via a 1KΩ resistor and are also connected to GND via a 2KΩ resistor. This basically reduces the 5V logic level by one third, to 3.33V.

Serial Data Analysis

The sensor transmits regular chunks of serial data and this has a well defined structure. This needs to be processed to turn it into useful sensor data and my Arduino code does this.