Lark Weather Station

大气是一个混沌系统,影响气象变化的因素数以百计。其中,风速和风向、温度、湿度、气压,这五个变量通常被认为是最重要的气象要素。为了解大气运动的状态和变化原因,我们可以通过检测风速、风向来了解大气运动的状态,检测气压、温度、湿度来了解大气的物理状态。积累相关的数据,可以准确地预测天气,并探究其背后的成因。

云雀气象仪能够测量风速、风向、温度、湿度、气压数据,可输出标准物理量数据,用户可通过I2C/UART通信接口实时获取气象5要素,兼容Arduino、Microbit、行空板等常用的开源硬件控制器,同时,气象仪内置16M存储空间,可以将采集到的数据以CSV格式存储下来,并通过Type-C接口将数据导出进行分析。在气象仪内部,预留了两个传感器扩展接口,以接入更多传感器,气象仪整体采用模块化设计,若空间不足,用户可叠加百叶扇来增加内部空间。气象仪底部,采用了1/4英制标准的螺纹口,用户可使用我们赠送的可调节桌面三角架使用,也可根据不同的使用场景,更换不同其他三角架。气象仪机身高度16cm,直径5.5cm,整体体积接近一瓶可乐罐大小,利于携带和收纳。

写给内测用户:受样品加工工艺限制,以下是内测版气象仪存在的问题,正式版本不会存在此类问题。

气象仪的风杯、风向标、盖子等塑料件会有轻微的变形和脏污感。

塑料件加工误差较大,装配位置会有晃动现象。

风杯的最终版内部结构会优化且闭合顶部,整体外形结构不变。

气象仪底部的1/4螺母为人工压嵌完成,会有不同程度的歪斜,请大家在使用时搭配可调节三脚架调节水平度。

部分气象仪会存在三脚架拧不到底的情况,拧到有明显阻塞感后请不要继续用力拧,防止三脚架损坏。

当前风速数据为未校准数据,正式版会对每个气象仪进行出厂校准。

产品参数

结构概览

注:风向标通过按压可快速插拔,拆卸时轻轻按压即可弹出,切勿用力拉扯

名称 功能
指南针 用于风向检测时辅助校北
风杯 风速检测装置,配合内部传感器检测风速
百叶箱 使空气流通,用于温湿度和气压检测
风向标 风向检测装置,配合风向转轴和内部传感器检测风向
风向转轴 由风向标带动旋转,用于风向检测
Type-C接口 用于配置气象仪或导出存储数据
Gravity接口 用于与主控I2C/UART通信
可调节三脚架 用于固定气象仪

功能说明

风向测量

侧风向时,将气象仪的Type-C口对准正北方发放置,主体保持水平。

可通过盖子上的指南针辅助校北,Type-C口对准指南针N所指方向。气象仪内有小磁铁,使用指南针时需取下盖子,距气象仪20CM外使用,注意周围电脑、手机等电子设备的磁场干扰。

配置

将气象仪与电脑通过Type-C连接,此时电脑会弹出一个16M的U盘,打开U盘中的config文件

名称 功能 可选项 默认
Communication 设置通信方式 I2C/UART(固定115200) I2C
Sample rate 设置数据采样率,单位秒 1~43200(12小时) 1秒
Record 设置存储功能是否开启 ON/OFF OFF
Radial 预留功能,勿动
Delay record 设置存储功能延时启动时间,单位秒 10~60 10秒
Light Switch 设置RGB指示灯是否开启 ON/OFF ON

数据存储和导出

将config文件中被配置为“Record :ON”,重启后等待“Delay record”设置的时间到达后,即开始存储数据。数据存储的间隔时间为“Sample rate”设置的时间。

RGB指示灯状态说明

红灯常亮:系统故障,原因有:config文件配置异常、内部传感器故障。U盘格式化重新上电会生成新的config文件,若格式化重新上电后仍然红灯常亮则说明内部传感器故障

绿灯常亮:当前通信方式为I2C

蓝灯常亮:当前通信方式为UART

红绿灯闪烁:启动了数据存储功能,且此时通信方式为I2C

红蓝灯闪烁:启动了数据存储功能,且此时通信方式为UART

固件更新

使用M2螺丝刀或SIM卡针等工具摁住固件升级按钮,然后通过Type-C接口与电脑相连,此时电脑会弹出一个名为“RPI-RP2”的U盘,此时即可松开固件升级按钮

将最新的“.uf2”固件文件复制到“RPI-RP2”U盘,等待“RPI-RP2”U盘自动消失后即完成更新

UNO使用教程

软硬件准备

接线图

代码编程

#include "DFRobot_Atmospherlum.h"
#define DEVICE_ADDR                  0x42
DFRobot_Atmospherlum_I2C atm(DEVICE_ADDR,&Wire);
//DFRobot_Atmospherlum_UART atm(&Serial1);
void setup(void){
  Serial.begin(115200);
  //Serial1.begin(115200);
  delay(1000);
  while(atm.begin()!= 0){
    Serial.println("init error");
    delay(1000);
  }
  Serial.println("init success");
  atm.setTime(2023,3,1,17,20,0);
}

void loop(void){
    Serial.println(atm.getTimeStamp());
    Serial.print(atm.getValue("speed"));
    Serial.println(atm.getUnit("speed"));
    Serial.println(atm.getValue("dir"));
    Serial.print(atm.getValue("Temp"));
    Serial.println(atm.getUnit("Temp"));
    Serial.print(atm.getValue("Humi"));
    Serial.println(atm.getUnit("Humi"));
    Serial.print(atm.getValue("Pressure"));
    Serial.println(atm.getUnit("Pressure"));
//    Serial.print(atm.getValue("Lat"));
//    Serial.print(atm.getValue("Lon"));    
    Serial.println("----------------------------");
//    Serial.println(atm.getInformation(true));
    delay(1000);
}

Mind+

加载Mind+用户库:https://gitee.com/liliang9693/ext-yunque

行空板教程

Mind+

Python编程

from DFRobot_Atmospherlum import *
from pinpong.board import Board
import time 
Board().begin()
yunque_i2c = DFRobot_Atmospherlum_I2C(0x42)
while (yunque_i2c.begin() != 0):
    print("yunque_i2c initialize failed!!")
    time.sleep(1)
print("Sensor initialize success!!")
yunque_i2c.set_local_time()
time.sleep(1)
while  True:
    print((yunque_i2c.get_time_stamp()))
    print((str((yunque_i2c.get_value("speed"))) + str((yunque_i2c.get_unit("speed")))))
    print((yunque_i2c.get_value("dir")))
    print((str((yunque_i2c.get_value("Temp"))) + str((yunque_i2c.get_unit("Temp")))))
    print((str((yunque_i2c.get_value("Humi"))) + str((yunque_i2c.get_unit("Humi")))))
    print((str((yunque_i2c.get_value("Pressure"))) + str((yunque_i2c.get_unit("Pressure")))))
    time.sleep(1)

传感器扩展

云雀气象仪内置了两个Gravity I2C扩展接口,可以连接更多的传感器来采集更加丰富的气象数据。这为用户提供了更加灵活的选项,使他们可以根据自己的需求自由选择传感器,并且轻松地将其集成到系统中。

操作方法

1.取下气象仪底部中间的两颗螺丝

2.将连接线从底端拔出,注意连接线的顶端有卡扣,直接拔无法拔出

3.取下百叶扇下方的三颗螺丝

4.将要扩展的传感器接入扩展接口

可扩展传感器清单

可扩展的传感器与Gravity: SCI采集模块中的I2C传感器相同,此处只列出跟环境相关的传感器清单,若要察看全部清单,请查看:SCI采集模块已支持产品清单

SKU 传感器 物理量 名称标签 典型数据 设备地址 版本
SEN0228 数字环境光传感器 环境光 Light Light: 125.47 lx 0x10 V1.0.0
SEN0322 氧气传感器 氧气浓度 O2 O2: 20.01 %vol 0x72
A0A1:10
V1.0.0
SEN0321 臭氧传感器 臭氧浓度 O3 O3: 1544 ppb 0x70
0x71
0x73
V1.0.0
SEN0514 空气质量传感器 空气质量
TVOC
ECO2
AQI
TVOC
ECO2
AQI: 1
TVOC: 88 ppb
ECO2: 529 ppm
0x52
0x53
V1.0.0
SEN0529 三轴地磁传感器 方向
X轴地磁
Y轴地磁
Z轴地磁
Angle_N
Mag_X
Mag_Y
Mag_Z
Angle_N: 157.38 °
Mag_X: 20 uT
Mag_Y: -48 uT
Mag_Z: -14 uT
0x13
A0A1:11
V1.0.0
SEN0364 可见光谱传感器 光谱 405-425nm
435-455nm
...
405-425nm: 11
435-455nm: 61
...
0x39 V1.0.0
SEN0460 PM2.5空气质量传感器 PM1.0
PM2.5
PM10
PM1.0
PM2.5
PM10
PM1.0: 43 ug/m³
PM2.5: 77 ug/m³
PM10: 93 ug/m³
0x19 V1.0.0
SEN0206 红外温度传感器 温度 Temp Temp: 22.41 ℃ 0x5A V1.0.0
SEN0536 二氧化碳传感器 二氧化碳浓度 CO2 CO2 :401.37 ppm 0x62 V1.0.0
TEL0157 卫星定位 纬度
经度
海拔
Lat
Lon
Altitude
Lat :dd.dddddd
Lon :dd.dddddd
Altitude:522.9 m
0x20 V1.0.0

数据获取

此处以获取SEN0322氧气浓度为例,只需要将getValue和getUnit函数中的参数写入物理量的名称标签即可

#include "DFRobot_Atmospherlum.h"
#define DEVICE_ADDR                  0x42
DFRobot_Atmospherlum_I2C atm(DEVICE_ADDR,&Wire);
//DFRobot_Atmospherlum_UART atm(&Serial1);
void setup(void){
  Serial.begin(115200);
  //Serial1.begin(115200);
  delay(1000);
  while(atm.begin()!= 0){
    Serial.println("init error");
    delay(1000);
  }
  Serial.println("init success");
  //atm.setTime(2023,3,1,17,20,0);
}

void loop(void){
    Serial.println(atm.getTimeStamp());
    Serial.print(atm.getValue("speed"));
    Serial.println(atm.getUnit("speed"));
    Serial.print(atm.getValue("O2"));
    Serial.println(atm.getUnit("O2"));  
    Serial.println("----------------------------");
    delay(1000);
}

常见问题

还没有客户对此产品有任何问题,欢迎通过QQ在线客服或者论坛联系我们!

更多问题及有趣的应用,可以 访问论坛 进行查阅或发帖。

更多

DFshopping_car1.png DFRobot商城购买链接