Environment Sensor for Jetson Nano

From Waveshare Wiki
Jump to: navigation, search
Environment Sensor for Jetson Nano
Environment Sensor for Jetson Nano






This environment sensors module gives Jetson Nano Developer Kit the ability to collect environmental data like temperature & humidity, air pressure, ambient light intensity, VOC, IR ray, UV ray, etc. It can also be used to build a robot that can detect motion and orientation.


  • Onboard TSL25911FN digital ambient light sensor, for measuring IR and visible light.
  • Onboard BME280 sensor, for measuring temperature, humidity, and air pressure.
  • Onboard ICM20948 motion sensor, accelerometer, gyroscope, and magnetometer.
  • Onboard Si1145 sensor, for measuring IR/UV rays.
  • Onboard SGP40 sensor, for detecting ambient VOC.
  • Onboard 1.3-inch OLED display, for displaying environment data in real-time.
  • I2C bus, allows reading and displaying data by just using two wires.
  • Comes with online development resources and user manuals (python examples).



I2C address


Effective range



I2C address


Temperature detection

-40 ~ 85℃ (0.01℃ resolution, ±1℃ accuracy)

Humidity detection

0~100%RH (0.008%RH resolution, ±3%RH accuracy, 1s response time, ≤2%RH delay)

Air pressure detection

300~1100hPa (0.18Pa resolution, ±1hPa accuracy)


I2C address


Accelerometer resolution


Accelerometer range (configurable)

±2, ±4, ±8, ±16g

Gyroscope resolution


Gyroscope range (configurable)

±250, ±500, ±1000, ±2000°/sec

Magnetometer resolution


Magnetometer range



I2C address


Response wavelength

300nm ~ 350nm


I2C address


Measuring range

0 ~ 1,000 ppm ethanol equivalent

Limit condition

< 0.05 ppm ethanol equivalent OR < 10 % preset concentration point (the larger one should prevail)

Response time

< 10 s (tau 63 %)

Start time

< 60 s

On-chip humidity compensation support


I2C address


Driver IC




Display color


Tailored For Jetson Nano


What's On Board


  1. TSL25911FN
    Digital ambient light sensor, for measuring IR and visible light.
  2. LTR390-UV-1
    IR/UV sensor.
  3. SGP40
    VOC sensor.
  4. ICM20948
    3-axis accelerometer, 3-axis gyroscope, 3-axis magnetometer.
  5. BME280
    Temperature, humidity, and air pressure sensor.
  6. Voltage level translator
    5V to 3.3V.
  7. 1.3inch OLED
    128x64 resolution.

Outline Dimensions


How to use

Install the library

Enter the following commands to install the library:

sudo apt-get install python-smbus
sudo -H apt-get install python-pil
sudo apt-get install i2c-tools

Download the demo

Enter the following commands to install the demo:

sudo apt-get install p7zip-full
wget https://files.waveshare.com/upload/f/f5/Environment_sensor_fot_jetson_nano_rev3.zip
unzip Environment_sensor_fot_jetson_nano_rev3.zip

Check the effect

Enter the following commands:

cd Environment_sensor_fot_jetson_nano
sudo python test.py

And then the OLED of the sensor will display the values related to the current environment:

Note: If the above demo does not display properly, please scroll down and download the V4 and V5 versions of the demo on this page to test it.


Here we introduce the use of each sensor:

Ambient light Sensor

TSL2591 is a light-intensity digital converter based on IIC bus communication. The sensor combines a broadband photodiode (visible light and infrared light) and an infrared-responsive photodiode on a single CMOS integrated circuit that can provide a low-beam adaptive response within an effective 16-bit dynamic range (16-bit resolution). Two integrating ADCs convert the photodiode current into a digital output. This digital output can be fed to the microprocessor, where an empirical formula is used to derive the illuminance (ambient light level) in lux to approximate the human eye response.
The sensor address is: 0X29.

  • 1. The interrupt is turned on by default, if you don't need it, you can comment out the corresponding code;
  • 2. The range of the default routine is small, if the light changes greatly, please increase the range;
  • 3. It is different from the light intensity readers on the market which have the lenses;

If you need to run this sensor separately, please enter the following command:

sudo python TSL2591.py


This is a demonstration effect, the actual directory should according to your directory.

Temperature and Humidity Sensor

The BME280 can perceive environmental temperature, humidity, and atmospheric pressure, which is low power consumption, high precision, and has high stability, and is suitable for environmental monitoring, weather forecasting, altitude monitoring, and IoT application.
The sensor address is: 0X76.
Measurement range:

  • Temperature range: 40~85°C (resolution 0.01°C, error ±1°C)
  • Humidity range: 0~100%RH (resolution 0.008%RH, ±3% RH)
  • Pressure range: 300~1100 hPa (resolution 0.18Pa, error ±1 hPa)


  • 1. The measurement range should not exceed the range, otherwise, the measurement may be inaccurate;
  • 2. The measured air pressure is atmospheric pressure, which will fluctuate up and down at standard atmospheric pressure (1.013x 10^5 = 1013hPa);
  • 3. The measured temperature may be affected by the heat dissipation of the jetson nano. In this case, you can add a fan to avoid this situation during use;
  • 4. The higher the temperature, the lower the air pressure, because the higher the temperature, the heat and expansion of the air near the ground will increase, resulting in a drop in air density and a drop in air pressure. On the contrary, the air pressure will rise;
  • 5. The atmospheric pressure decreases with the increase in altitude, but there is no proportional relationship. The higher the altitude, the slower the decrease;
  • 6. The relationship between atmospheric pressure and altitude is: the altitude increases, and the atmospheric pressure decreases. In the theoretical situation, within the range of 3000M, for every 12M increase, the atmospheric pressure decreases by 1mmHg, about 133Pa;

If you need to run this sensor separately, please enter the following command:

sudo python BME280.py


This is a demonstration effect, the actual directory should according to your directory.

9-AXIS Sensor

The MPU9250 is a multi-chip module with 9-axis motion tracking, 3-axis acceleration, 3-axis gyroscope, and 3-axis magnetometer, and a built-in digital motion processing engine to reduce complex fusion algorithm data and reduce the load on the processor .
The sensor address is: 0X68.

  • Resolution: 16 bits
  • Range (optional): ±2, ±4, ±8, ±16g
  • Working current: 68.9uA


  • Resolution: 16 bits
  • Range (optional): ±250, ±500, ±1000, ±2000°/sec
  • Working current: 1.23mA


  • Resolution: 16 bits
  • Range: ±4800µT
  • Working current: 90uA


  • 1. Roll, Pitch, and Yaw are Euler angles. It is a three-dimensional vector whose value represents the rotation angle of the object around the three axes of the coordinate system (x, y, z axis);
  • 2. Roll, Pitch, and Yaw are pitch angle, yaw angle, and rotation angle respectively;
  • 3. Acceleration is acceleration (LSB, which can be converted to g);
  • 4. Gyroscope is gyroscope angular velocity (LSB, which can be converted to °/sec);
  • 5. Magnetic is the electronic compass inclination (°);

If you need to run this sensor separately, please enter the following command:

sudo python ICM20948.py


This is a demonstration effect, the actual directory should according to your directory.

IR/UV Sensor

LTR390-UV-1 UV sensor for measuring UV, light intensity. The sensor address is: 0X53.

  • 1. The working principle is using a Pair diode, one is sensitive to normal light, and the other is sensitive to infrared, the result obtained by the calculation of the two;
  • 2. The read ultraviolet value has been calibrated, but the infrared intensity and visible light intensity measured by this sensor are not calibrated;
  • 3. Visible light intensity is non-calibrated;
  • 4. The detection range is within 50cm for the best effect (described in the manual);

If you need to run this sensor separately, please enter the following command:

sudo python LTR390.py


This is a demonstration effect, the actual directory should according to your directory.

VOC Sensor

SGP40 is a digital VOC (volatile organic compound) sensor newly launched by Sensirion, which can be easily integrated into air treatment equipment and air quality monitors. It has a temperature-controlled mini-heating plate and a humidity-compensated indoor air quality signal. Provide a complete sensor system on a single chip.
The sensor address is: 0X59.

  • 1. The output of the Python demo is the algorithm value that hasn't been processed by VOC. In fact, Sensirion has its own C algorithm, which is more accurate after conversion;
  • 2. The sensor needs to be stabilized within 1 minute because the interior is slowly heating;
  • 3. It can feedback to SGP40 by measuring the current temperature and humidity so that the accuracy will be higher;
  • 4. The measuring range of the sensor is 0 to 1,000 ppm ethanol equivalent;

If you need to run this sensor separately, please enter the following command:

sudo python3 SGP40.py




Related Resources



Technical Support

If you need technical support or have any feedback/review, please click the Submit Now button to submit a ticket, Our support team will check and reply to you within 1 to 2 working days. Please be patient as we make every effort to help you to resolve the issue.
Working Time: 9 AM - 6 PM GMT+8 (Monday to Friday)