What is it?



2:
3:
4:
5:
6:
| # | Values | Sensor(s) | Period | Indoor/Outdoor | Location |
|---|---|---|---|---|---|
| 1 | Temperature, Relative Humidity and Virtual channels. | Sensirion SHT75 | Day | Indoor | Saint-basile-le-grand, Qc, Canada |
| 2 | Temperature, Relative Humidity and Virtual channels. | Sensirion SHT75 | Week | Indoor | Saint-basile-le-grand, Qc, Canada |
| 3 | Atmospheric pressure | MPX4115AP | Day | Indoor | Saint-basile-le-grand, Qc, Canada |
| 4 | Atmospheric pressure | MPX4115AP | Week | Indoor | Saint-basile-le-grand, Qc, Canada |
| 5 | Temperature | MCP9803 | Day | Inside a standalone air conditioner, air output | A server room in Montreal, Qc, Canada |
| 6 | Temperature | MCP9803 | Day | In front of an air duct (Building's air conditionner) | A server room in Montreal, Qc, Canada |
| TSL2568/TSL2569 | ||
|---|---|---|
| No diagram. | Type: Light and Infra-red | Interface: I2C |
| Firmware: tsl2568.hex | Version: 1.8 | |
| Accuracy: 16 Bit ADC | ||
| Comments: An interesting sensor manufactured by Taos providing two channels (Infra-red only, Infra-red + Visible) with selectable gain. It is approximately 4x more sensitive than the TSL2560/1 and therefore saturates more easily when used in very bright lighting conditions. Again, illumination in lux can be calculated using the formula provided by the manufacturer (implemented in usbtenkiget and qtenki). Standard I2C wiring. The firmware expects all address pins to be wired to GND. You will need to supply 3.3 volt to this sensor and add 4.7k pull-up resistors to 3.3 volt. | ||
| TSL2560/TSL2561 | ||
|---|---|---|
| No diagram. | Type: Light and Infra-red | Interface: I2C |
| Firmware: tsl2561.hex | Version: 1.8 | |
| Accuracy: 16 Bit ADC | ||
| Comments: An interesting sensor manufactured by Taos providing two channels (Infra-red only, Infra-red + Visible) with selectable gain. Illumination in lux can be calculated using the formula provided by the manufacturer (implemented in usbtenkiget and qtenki). Standard I2C wiring. The firmware expects all address pins to be wired to GND. You will need to supply 3.3 volt to this sensor and add 4.7k pull-up resistors to 3.3 volt. | ||
| ADT7410 | ||
|---|---|---|
| No diagram. | Type: Temperature | Interface: I2C |
| Firmware: adt7410.hex | Version: 1.8 | |
| Accuracy: ±0.5°C from -40°C to +105°C | ||
| Comments: Highly accurate temperature sensor manufactured by Analog devices. Wire it as you would any I2C sensor (SCL and SDA, appropriate decoupling and supply). The firmware will auto-detect the I2C address so wire the address pin according to your preference. | ||
| SE95 | ||
|---|---|---|
| No diagram. | Type: Temperature | Interface: I2C |
| Firmware: se95.hex | Version: 1.8 | |
| Accuracy: ±1°C from -20°C to +100°C | ||
| Comments: A fairly accurate I2C Temperature sensor manufactured by NXP Semiconductors. Wire it as you would any I2C sensor (SCL and SDA, appropriate decoupling and supply). The firmware will auto-detect the I2C address so wire the address pin according to your preference. | ||
| SHT75 | ||
|---|---|---|
Wiring diagram:![]() |
Type: Temperature and Relative Humidity | Interface: Serial (similar to I2C, but not compatible) |
| Firmware: sensirion.hex | Version: 1.1 | |
| Accuracy: ±0.3°C @ 25°C and ±1.8% RH | ||
| Comments: This is a very precise two-in-one sensor manufactured by sensirion which outputs 14 bits of temperature data and 12 bits of relative humidity data. It is so sensitive that using the sensor more than 10% of the time will raise it's temperature by 0.1°C. Note that sensirion's temperature/humidity sensors all use the same protocol so this firmware can be used with other sensors such as the SHT11. | ||
| SHT75 | ||
|---|---|---|
Wiring diagram:![]() |
Type: Temperature and Relative Humidity | Interface: Serial (similar to I2C, but not compatible) |
| Firmware: sensirion_pc23.hex | Version: 1.8 | |
| Accuracy: ±0.3°C @ 25°C and ±1.8% RH | ||
| Comments: Same as above, but this firmware uses PORTC pins 2 and 3 instead 4 and 5. Useful if you need to use real I2C sensors at the same time or need PC4/PC5 for something else. | ||
| MCP9801/9803 | ||
|---|---|---|
Wiring diagram:![]() |
Type: Temperature | Interface: I2C |
| Firmware: mcp9800.hex | Version: 1.1 | |
| Accuracy: ±0.5°C (typ.) at +25°C, ±1°C (max.) from -10°C to +85°C, ±2°C (max.) from -10°C to +125°C, ±3°C (max.) from -55°C to +125°C | ||
| Comments: A good temperature sensor with 12 bit output. It's accuracy is much better than the LM75. In order to be detected by the firmware (without modifications), all 3 address pins must be connected to VCC. This allows for easier wiring. Installing a small capacitor near the sensor is a good idea. | ||
| LM75 (and compatibles) | ||
|---|---|---|
Wiring diagram:![]() |
Type: Temperature | Interface: I2C |
| Firmware: lm75.hex | Version: 1.1 | |
| Accuracy: ±2°C (max) from -25°C to +100°C, ±3°C (max) from -55°C to +125°C | ||
| Comments: This is a standard and easy to find sensor. In fact, many sensors are compatible with the LM75 but support additional functionalities and/or resolution (for instance, the MCP980x sensors). The standard LM75 reports temperature using 9 bits. In order to be detected by the firmware (without modifications), all 3 address pins must be connected to VCC. This allows for easier wiring. Installing a small capacitor near the sensor is a good idea. | ||
| MPX4115AP | ||
|---|---|---|
Wiring diagram:![]() |
Type: Absolute Pressure, 15 to 115 kPa | Interface: Analogic |
| Firmware: Any, configure ADC channel | Version: 1.2 | |
| Accuracy: ±1.5% error from 0° to 85°, Temperature compensated from -40°C to +125°C | ||
| Comments: This sensor is for measuring the air pressure. Connect it to one of the ADC channels on the Atmel and configure the corresponding ADC channel with chip id 0x90. Because of the wide sensitivity range of the sensor and the Atmega8's analog to digital converter which cannot take samples using more than 10 bits, the accuracy is not so good and noise is visible on graphs. Nevertheless, it's sufficient to get a good idea of the current tendency. (Pressure rising or falling). | ||
| ADC inputs | ||
|---|---|---|
| No diagram. | Type: 0 volts to VCC (approx 5 volts) | Interface: Analogic |
| Firmware: adc.hex | Version: 1.6 | |
| Accuracy: 10 bits | ||
| Comments: Used to measure the voltage present on the Atmega8's ADC inputs (ADC0 to ADC5). For the moment, the reference is always VCC. It is thus important to take into account the fact that the voltage may not be exactly 5 volts. Also, care must be taken not to exceed VCC. | ||
# ./usbtenkisetup -s 'XXXXXX' setadcchip 0 0x90For details about how to program an AVR, please visit my AVR programming page.
| File(s) | Date | Description |
|---|---|---|
| usbtenki-2.0.4.tar.gz (849 KB) | May 15, 2013 |
|
| usbtenki-2.0.3.tar.gz (644.7 KB) qtenki-2.0.3.zip (7.8 MB) | March 18, 2013 |
|
| usbtenki-1.9.6.tar.gz (503.2 KB) qtenki-1.9.6.zip (7.6 MB) | November 1, 2012 |
|
| usbtenki-1.9.5.tar.gz (502.3 KB) qtenki-1.9.5.zip (7.6 MB) | July 22, 2012 |
|
| usbtenki-1.9.4.tar.gz (502.1 KB) qtenki-1.9.4.zip (7.6 MB) | July 1, 2012 |
|
| usbtenki-1.9.3.tar.gz (499.3 KB) qtenki-1.9.3.zip (7.6 MB) | May 30, 2012 | Corrected a virtual channel bug introduced in version 1.9.2. |
| usbtenki-1.9.2.tar.gz (490.9 KB) qtenki-1.9.2.zip (7.5 MB) | February 2012 | General changes:
|
| usbtenki-1.9.1.tar.gz (447 KB) | February 2012 | General changes:
|
| usbtenki-1.8.tar.gz (440.7 KB) | December 2011 | New features and changes:
|
| usbtenki-1.7.tar.gz (310.5 KB) | August 2010 | New features and fixes:
|
| usbtenki-1.6.tar.gz (303.4 KB) | September 2007 | New features:
|
| usbtenki-1.4.tar.gz (320.8 KB) | May 2007 | Version 1.4 is the first public version. Tested on Linux and Mac OS X |
| usbtenki_munin.tar.gz (1.4 KB) | munin plugin script. |
# ./usbtenkiget -l
Found: 'USBTenki', Serial: 'B10004', Version 1.2, Channels: 11
Channel 0: Sensirion SHT1x/7x Temperature [Temperature]
Channel 1: Sensirion SHT1x/7x Relative Humidity [Relative Humidity]
Channel 2: MPX4115 Absolute air pressure sensor [Pressure]
Virtual Channel 256: Dew point [Dew point]
Virtual Channel 257: Humidex [Humidex]
Virtual Channel 258: Heat index [Heat index]
As you can see in the output above, there is a concept of channel and
virtual channel. A channel reports real data from the physical sensor (or data
computed by the firmware). Virtual channels are channels whose value
is computed locally using the real channels.
(More info about virtual channels)# ./usbtenkiget -i 0,1,256 22.46, 39.55, 8.02The ouput above is easy to parse. But if you want a prettier output, use the -p switch:
# ./usbtenkiget -i a -p Temperature: 22.26 °C Relative Humidity: 40.03 % Pressure: 102.89 kPa Dew point: 8.02 °C Humidex: 22.67 °C Heat index: 24.98 °CIf the degree ° sign shows as garbage on your terminal, change your encoding to iso8859-1 or try the -7 switch to disable such fancy characters.
# ./usbtenkiget -i 0,2 -p -T f -P hPa Temperature: 70.61 °F Pressure: 1022.45 hPa
| Channel # | Name | Dependencies | Comments |
|---|---|---|---|
| 256 | Dew point | Temperature and Relative Humidity | "The "dew point" or "dewpoint" of a given parcel of air is the temperature to which the parcel must be cooled, at constant barometric pressure, for water vapor to condense into water, called dew." - source: Wikipedia. This value is calculated using a formula from a sensirion application note named Dewpoint Calculation Humidity Sensor |
| 257 | Humidex | Dew point (virtual) and Temperature | "The humidex is an index (a computed value as opposed to something measured) devised to describe how hot or humid weather feels to the average person." - Source: Meteorological Service of Canada FAQ. Visit their FAQ for information about how Humidex is calculated. |
| 258 | Heat index | Temperature and Relative Humidity | "The Heat index (HI) is an index that combines air temperature and relative humidity to determine an apparent temperature - how hot it actually feels." - Source: Wikipedia. |

No regulator is requied so the only components that must be installed on
the back side are the two voltage selection resistors. Install
them as they are on the picture on the right. If you dont have
0 ohm resistors, you may use small pieces of wire or do solder bridges.