

The WS3 Weather Board, manufactured by Waveshare (Part ID: Sensor Board), is a versatile weather monitoring module designed to measure key environmental parameters such as temperature, humidity, and atmospheric pressure. This compact and reliable board is ideal for meteorological applications, environmental monitoring systems, and educational projects. Its compatibility with microcontrollers like Arduino and Raspberry Pi makes it a popular choice for hobbyists and professionals alike.








The WS3 Weather Board integrates multiple sensors to provide accurate environmental data. Below are the key technical details:
| Parameter | Value |
|---|---|
| Manufacturer | Waveshare |
| Part ID | Sensor Board |
| Operating Voltage | 3.3V / 5V |
| Communication Protocol | I2C |
| Operating Temperature | -40°C to +85°C |
| Dimensions | 65mm x 30mm |
| Sensor Type | Model | Measurement Range | Accuracy |
|---|---|---|---|
| Temperature Sensor | BME280 | -40°C to +85°C | ±1.0°C |
| Humidity Sensor | BME280 | 0% to 100% RH | ±3% RH |
| Pressure Sensor | BME280 | 300 hPa to 1100 hPa | ±1 hPa |
The WS3 Weather Board features a simple pinout for easy integration with microcontrollers. Below is the pin configuration:
| Pin Name | Description |
|---|---|
| VCC | Power supply (3.3V or 5V) |
| GND | Ground |
| SDA | I2C data line |
| SCL | I2C clock line |
The WS3 Weather Board is straightforward to use and can be easily connected to microcontrollers like the Arduino UNO. Follow the steps below to integrate and use the board in your project:
Wiring: Connect the pins of the WS3 Weather Board to the Arduino UNO as follows:
VCC to 5V on the ArduinoGND to GND on the ArduinoSDA to A4 (I2C data line on Arduino UNO)SCL to A5 (I2C clock line on Arduino UNO)Install Required Libraries:
Adafruit_BME280 and Adafruit_Sensor libraries from the Arduino Library Manager.Upload the Code: Use the following example code to read temperature, humidity, and pressure data from the WS3 Weather Board:
#include <Wire.h>
#include <Adafruit_Sensor.h>
#include <Adafruit_BME280.h>
// Create an instance of the BME280 sensor
Adafruit_BME280 bme;
void setup() {
Serial.begin(9600); // Initialize serial communication
while (!Serial); // Wait for serial port to connect
// Initialize the BME280 sensor
if (!bme.begin(0x76)) { // Check if the sensor is connected at I2C address 0x76
Serial.println("Could not find a valid BME280 sensor, check wiring!");
while (1); // Halt execution if sensor is not found
}
}
void loop() {
// Read and print temperature, humidity, and pressure
Serial.print("Temperature: ");
Serial.print(bme.readTemperature());
Serial.println(" °C");
Serial.print("Humidity: ");
Serial.print(bme.readHumidity());
Serial.println(" %");
Serial.print("Pressure: ");
Serial.print(bme.readPressure() / 100.0F); // Convert Pa to hPa
Serial.println(" hPa");
delay(2000); // Wait 2 seconds before the next reading
}
Sensor Not Detected:
Inaccurate Readings:
No Data Output:
Serial.begin(9600) matches the baud rate in your serial monitor.Q: Can the WS3 Weather Board be used with a Raspberry Pi?
A: Yes, the board is compatible with Raspberry Pi. Use the I2C pins on the Raspberry Pi and install the appropriate Python libraries (e.g., smbus and Adafruit_BME280).
Q: What is the default I2C address of the WS3 Weather Board?
A: The default I2C address is 0x76. If there is an address conflict, it can be changed to 0x77 by modifying the board's configuration (refer to the manufacturer's datasheet).
Q: Can the board measure altitude?
A: Yes, altitude can be calculated using the pressure readings and a reference sea-level pressure value.
By following this documentation, you can effectively integrate and utilize the WS3 Weather Board in your projects. For further assistance, refer to the Waveshare official documentation or community forums.