概述
SPMOD - Weather (气象站模块), 集成三轴传感器 QMC7983,与温湿度气压传感器 BME280。
SPMOD - Weather 介绍
特性:
- 采用 Sipeed-SPMOD 接口(2*4PIN 2.54mm 排针),统一 MaixPy 开发板接口
- 通过SP-MOD I2C接口连接
- 磁性传感器:QMC7983是一个内置灵敏度补偿与NTC的三轴磁性传感器,I2C接口输出(最高频率400KHz),具有出色的动态范围和精度以及超低的功耗
- 磁感应量程:±30 高斯
- 温湿度气压传感器:BME280是同时集成了温湿度与气压传感器的数字传感器
- 模块尺寸:25.0*10*2.9mm
传感器特性:
| 磁性传感器 |
QMC7983 |
| 工作电压 |
2.6V~3.6V |
| 工作电流 |
70uA |
| 休眠电流 |
<1uA |
| 磁感应量程 |
±30 高斯 |
| 精度 |
每 LSB 1mG |
| RMS 噪声 |
2 mG |
| 对外接口 |
I2C,默认地址 0x2C,可通过选择电阻调节 |
| 温湿度气压传感器 |
BME280 |
| 工作电压 |
1.71V~3.6V |
| 工作电流 |
<633uA |
| 休眠电流 |
<5uA |
| 湿度传感器的关键参数: |
--- |
| 响应时间(𝜏63%) |
1s |
| 精度公差 |
±3% 相对湿度 |
| 磁滞 |
< 2% 相对湿度 |
| 气压力传感器的关键参数: |
--- |
| RMS 噪声 |
0.2 Pa(等效 到海拔 1.7 厘米) |
| 偏移温度系数 |
±1.5 Pa/K(等效温度变化 1°C 时,达到海拔 ±12.6 cm1s) |
| 对外接口 |
I2C,默认地址 0x76, 可通过选择电阻调节 |
SPMOD_Weather 模块引脚定义:
| 引脚序号 |
引脚名称 |
类型 |
引脚说明 |
| 1 |
GND |
G |
模块电源地 |
| 2 |
NC |
NC |
悬空引脚,无功能 |
| 3 |
NC |
NC |
悬空引脚,无功能 |
| 4 |
SDA |
I/O |
模块I2C串行数据引脚 |
| 5 |
3V3 |
V |
模块电源输入正 |
| 6 |
NC |
NC |
悬空引脚,无功能 |
| 7 |
NC |
NC |
悬空引脚,无功能 |
| 8 |
SCL |
I |
模块I2C串行时钟引脚 |
接线方式
| MCU:FUN(IO) |
SP_RFID |
| I2C:SDA(IO_7) |
SDA |
| NC(IO_15) |
NC |
| NC(IO_20) |
IRQ |
| NC(IO_21) |
NC |
| GPIOHS(IO_8) |
SHT |
| I2C:SCL(IO_6) |
SCL |
| 2.8~3.5V |
3.3V |
| GND |
GND |
使用例程
- 流程
- 初始化 weather=SPWeather(i2c=i2c_bus) # create sp_weather
while 1:
time.sleep_ms(500)
print(weather.qmc_read_xyz) # QMC7983 read data
print(weather.bme_values) # BME280 read data
2. 校准(可选)
3. 读取距离(多种模式可选)
C 示例:
fpioa_set_function(Weather_SCL, FUNC_I2C0_SCLK + Weather_I2C_DEVICE * 2); // Weather_SCL: 6;
fpioa_set_function(Weather_SDA, FUNC_I2C0_SDA + Weather_I2C_DEVICE * 2); // Weather_SDA: 7;
maix_i2c_init(Weather_I2C_DEVICE, 7, 400000); // Weather_I2C_DEVICE: 0;
rslt = qmc_init(); // Magnetic sensor QMC7983 init
rslt = bme280_init(&dev); // Temperature, humidity and pressure sensors BME280 init
stream_sensor_data_normal_mode(&dev); // read and print sensor data
MaixPy 例程:
i2c_bus = I2C(I2C.I2C0, freq=100*1000, scl=6, sda=7) # scl: io_6, sda: io_7
weather=SPWeather(i2c=i2c_bus) # create sp_weather
while 1:
time.sleep_ms(500)
print(weather.qmc_read_xyz) # QMC7983 read data
print(weather.bme_values) # BME280 read data
运行环境
| 语言 |
开发板 |
SDK/固件版本 |
| C |
MaixCube |
kendryte-standalone-sdk v0.5.6 |
| MaixPy |
MaixCube |
maixpy v0.5.1 |
运行结果
C
MaixPy
参考设计
资源链接