• 404 File Not Found
Last update 6 years 6 days

MAPS-Arduino Nano

Image of PCB layout


Micro Air Pollution Sensing - MAPS

Air pollution is a hot topic in recent years, especially - Particulate Matter. Traditional sensing method, we can only depend on professional sensors/devices, with large volume, heave weight and insanity price. Thanks to the technology, now we could build our own air pollution sensing station, with micro volume, light weight and the price is affordable :). With MAPS, you can sense air pollution any where, any time by yourself, you can also give it a battery module to increase its mobility!

For more air pollution sensing project, you can visit ]]>LASS facebook]]> and ]]>LASS github]]>, we are makers who sense anything in our environment!

Hardware & Sensors

Module Description
Arduino Nano Mainboard
RTC time sync
BLE pair with smart phone
G3 (pms3003) Particalute matter (PM)
DHT22 Temperature & humidity
BMP180 Ambient pressure

PCB layout & dimensions

Image of pcb layout

(unit: mm)


  1. Upload MAPS_BLE.ino to your nano.
  2. Compile and install MAPS_ble to android phone.
  3. Choose to pair the MAPS BLE module from app.
  4. You are ready to see the sensors data on you phone.

Image of app after pairing


  • I use 3 LEDs to show the CO2 and PM level, whether its safe (green: PM2.5 <= 32 and CO2 <= 1000), warning (orange: 32 < PM2.5 <= 53) and danger (red: PM2.5 >53 or CO2 > 1000)
  • BLE module use grove universal sockets, can easily replace with your favorite module (maybe a data logger instead), just beware that the socket is connect to 5v power.
  • ESP-01 socket is preserve for esp8266 module extension, it's fine to leave it if you don't need it.


  1. IRC-A1 is a good sensor for CO2 sensing, but with great power, you also need great skill to use it. You need to add operational amplifier (OPA) in your circuit, infact, most of my circuit and components are for the IRC-A1, include TLC271cp (OPA), IRF520 (MOSFET) and several resistor & capacitor. You also need to calibrate it, with ZERO gas (0 ppm CO2) and fix-concentration target gas (for me, 1000 ppm CO2). I think the better circuit should use an external power with low-dropout (LDO) regulator as its power source, and use a crystal oscillator to trigger it (like it mention in its spec, but in this project, I use arduino PWM library to simulate the duty cycle it needs, maybe that's why I cannnot get the best result) .
  2. The polygon of GND should not be that large, because it transfers the heat, and it will affect the DHT22 accuracy.
Report a bug