Difference between revisions of "Environment Sensor for Jetson Nano"

From Waveshare Wiki
Jump to: navigation, search
m (Text replace - "Service00" to "Service02")
Line 71: Line 71:

Revision as of 07:43, 17 April 2022

Environment Sensor for Jetson Nano
Environment Sensor for Jetson Nano





This environment sensors module gives Jetson Nano Developer Kit the ability to collect environment 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.3inch OLED display, for displaying environment data in real time
  • I2C bus, allows reading and displaying data by just using two wires
  • Comes with development resources and user manual (python examples)


2021-03-26 195921.png

Tailored For Jetson Nano


What's On Board



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://www.waveshare.com/w/upload/a/a2/Environment_sensor_fot_jetson_nano.7z
7z x Environment_sensor_fot_jetson_nano.7z  -r -o./Environment_sensor_fot_jetson_nano

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:



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, 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

ICM20948 is a multi-chip module with 9-axis motion tracking function, 3-axis accelerometer, 3-axis gyroscope and 3-axis magnetometer, and a built-in digital motion processing engine, which can reduce complex fusion calculation 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

Gyro features: Resolution: 16 bits

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


  • Resolution: 16 bits
  • Range: ±4900µ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, Yaw are pitch angle, yaw angle, and rotation angle respectively;
  • 3. Acceleration is acceleration (LSB, can be converted to g);
  • 4. Gyroscope is gyroscope angular velocity (LSB, 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

SI1145 is a multifunctional optical measurement module that mainly measures ultraviolet rays. The chip can directly output 100 times the integer of the UV index when measuring ultraviolet rays, and users can get a more accurate UV index value without data conversion and calibration. The chip also supports the measurement of ambient light intensity including infrared intensity and visible light intensity.
The sensor address is: 0X60.

  • 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, the infrared intensity and visible light intensity measured by this sensor are not calibrated;
  • 3. The visible light intensity is not calibrated, and the actual light intensity is subject to TSL25911;
  • 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 ICM20948.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 python SGP40.py