

The ENV3 is an environmental sensor module manufactured by M5Stack. It is designed to measure key environmental parameters such as temperature, humidity, and air pressure. This module is ideal for Internet of Things (IoT) applications, enabling users to monitor and control environmental conditions in real-time. Its compact design and compatibility with popular microcontrollers make it a versatile choice for a wide range of projects.








The ENV3 module is equipped with high-precision sensors to provide reliable environmental data. Below are the key technical details:
| Parameter | Value |
|---|---|
| Manufacturer | M5Stack |
| Part ID | ENV3 |
| Sensor Type | Temperature, Humidity, Pressure |
| Communication Protocol | I2C |
| Operating Voltage | 3.3V - 5V |
| Operating Temperature | -40°C to +85°C |
| Dimensions | 24mm x 24mm x 8mm |
The ENV3 module uses a Grove-compatible connector for easy integration. The pinout is as follows:
| Pin Name | Description | Notes |
|---|---|---|
| VCC | Power Supply (3.3V-5V) | Connect to the microcontroller's power pin |
| GND | Ground | Connect to the microcontroller's ground pin |
| SCL | I2C Clock Line | Connect to the microcontroller's SCL pin |
| SDA | I2C Data Line | Connect to the microcontroller's SDA pin |
VCC pin to a 3.3V or 5V power source and the GND pin to ground.SCL and SDA pins to the corresponding I2C pins on your microcontroller.M5Stack library from the Arduino Library Manager for easy integration.Below is an example of how to use the ENV3 module with an Arduino UNO to read temperature, humidity, and pressure data:
#include <Wire.h>
#include <M5_ENV.h> // Include the M5Stack ENV library
SHT3X sht30; // Initialize the temperature and humidity sensor
QMP6988 qmp6988; // Initialize the pressure sensor
void setup() {
Serial.begin(115200); // Start serial communication at 115200 baud
Wire.begin(); // Initialize I2C communication
// Initialize the sensors
if (!sht30.begin()) {
Serial.println("Failed to initialize SHT3X sensor!");
while (1); // Halt execution if initialization fails
}
if (!qmp6988.init()) {
Serial.println("Failed to initialize QMP6988 sensor!");
while (1); // Halt execution if initialization fails
}
}
void loop() {
// Read temperature and humidity from SHT3X
float temperature = sht30.getTemperature();
float humidity = sht30.getHumidity();
// Read pressure from QMP6988
float pressure = qmp6988.calcPressure();
// Print the sensor readings to the Serial Monitor
Serial.print("Temperature: ");
Serial.print(temperature);
Serial.println(" °C");
Serial.print("Humidity: ");
Serial.print(humidity);
Serial.println(" %");
Serial.print("Pressure: ");
Serial.print(pressure);
Serial.println(" hPa");
delay(1000); // Wait for 1 second before the next reading
}
No Data from the Sensor
I2C Communication Failure
Inaccurate Readings
Q: Can the ENV3 module be used with 5V microcontrollers?
A: Yes, the ENV3 module supports both 3.3V and 5V power supplies, making it compatible with most microcontrollers.
Q: What is the default I2C address of the ENV3 module?
A: The ENV3 module uses multiple sensors, each with its own I2C address. Refer to the M5Stack documentation for specific addresses.
Q: How can I extend the I2C cable length?
A: Use shielded cables and add pull-up resistors to maintain signal integrity over longer distances.
Q: Is the ENV3 module waterproof?
A: No, the ENV3 module is not waterproof. Avoid exposing it to water or high humidity levels beyond its operating range.