t of Arduino familiarity and ease of use. Another feature is that it comes with BLE capabilities on the board and a CurieBLE library. In addition to the information links in the references section above, there is a dedicated forum for the board here.
Arduino 101 / Genuino 101
Circuit and Schematic
Schematic for the Indoor Air Quality Monitor. Click to enlarge.
The complete circuit schematic appears in the figure above. It is straightforward and uses relatively few parts. Both sensors are attached to the Arduino's I2C pins and I used 2.2K pull-up resistors on the I2C bus, which is powered by the 3.3v line that is available on the Arduino header. The 3.3v line also powers the sensors. The LCD I/O is also on the 3.3v I2C bus, but it is powered by the 5v line, which is also available on the Arduino header.
Add a few capacitors and the circuit is complete. Note that I used a 0.22 μF polarized capacitor for C1 because that's what I had on hand, but a (non-polarized) ceramic capacitor is the standard choice for power-supply decoupling.
|C1||0.22 μF polarized capacitor|
|C2||0.1 μF non-polarized capacitor|
|C3||0.01 μF non-polarized capacitor|
|U1||iAQ-Core-C sensor module|
|LCD1||RGB LCD 2 X 16 (see text)|
|Miscellaneous||circuit board, headers, sockets, jumpers|
The iAQ-Core-C sensor module is available through several online suppliers including Mouser. The HIH-6131 sensor is also available from online sources including Digi-Key. I used a convenient case to enclose the project, and I also used this extension for the case.
From the picture of the finished project (at the beginning of the article), you can see how I mounted the sensors so that they are exposed to circulating air. And to allow for easy removal, I connected the sensor pins using sockets instead of direct soldering. In retrospect, I probably should have placed the HIH-6131 in the front of the case as it runs a few degrees (F) high (as far as I can tell) likely because of heat generated from the Arduino 101 board that sits below.
Operation and BLE testing
When you power up the air quality monitor, using either USB or through the Arduino external power connection (see specifications link), the display will light in a few seconds with a green backlight. From left to right and top to bottom, the diplay will show sensor output for: RH, Temperature (F), CO2 equivalent, and TVOC equivalent values.
As mentioned, normally, the iAQ Core chip takes a few minutes to warm up. During this time, you will see a warm-up code instead of the values. Similarly, if other errors occur with either sensor, the appropriate error code will be displayed instead of a value.
If you exhale close to either sensor, you should see a jump in the RH value as well as the CO2 equivalent value. If you place the monitor in various home environments, like the kitchen when cooking, you will get an idea of the range of values.
Note also that iAQ values outside of the specified sensing range can be displayed, as is mentioned in the datasheet, and I preserved that characteristic in the software. The LCD values will refresh every two seconds, and that rate can be changed in the program code.
An easy way to test the BLE connectivity is to use nRF Connect for mobile (previously called nRF Master Control Panel). This free software is an impressive tool. Install it on your device (I used one with an Android OS), run it, and scan for BLE devices. If you have powered up the monitor you should see it in the list.
Screenshot of the nRF Connect Scan—note the "AirQuali" device
Tap on "CONNECT" and you will see the list of all of the monitor's variables that are being transmitted. Notice also that the LCD backlight has changed to blue, denoting a connection.
Screenshot showing the monitor's six transmitted characteristics
Next, tap on each of the six triple downward arrows (the first one is circled). You will see the same list of characteristics, but now you will see their values and they will update every couple of seconds.
Screenshot showing the monitor's six transmitted characteristics and their values
Those values a