【2024 DigiKey 创意大赛】二月柳絮大作战项目-05获取传感器SPS30传感器数据
本帖最后由 Maker_kun 于 2024-11-3 21:07 编辑<p>SPS30传感器是Sensirion公司推出的一款光学颗粒物(PM)传感器,代表了该领域的一项技术突破。其测量原理基于激光散射,并结合了Sensirion的创新抗污染技术,确保了从首次使用到超过八年使用寿命期间的准确测量。</p>
<p> </p>
<p>SPS30传感器具有以下特点:</p>
<p><strong>高精度和长期稳定性:</strong>SPS30传感器利用先进的算法和抗污染技术,使其在长期使用过程中保持高精度和稳定性。 多接口支持:该传感器提供UART和I2C两种通信接口,适用于不同的应用场景。对于超过20厘米的连接电缆,建议使用UART接口以增强抗电磁干扰能力。</p>
<div style="text-align: left;"></div>
<p><strong>小型化设计:</strong>SPS30传感器体积小巧,尺寸仅为41 x 41 x 12 mm³,适合用于空间受限的应用场景,如壁挂式或紧凑型空气质量检测设备。</p>
<p><strong>应用广泛:</strong>SPS30传感器被广泛应用于空气净化器、暖通空调设备、需求控制通风系统、空调、空气质量和环境监测器以及智能家居和物联网设备等领域。</p>
<p><strong>认证与环保:</strong>SPS30传感器通过了MCERTS认证,并符合欧盟最新的环保标准,如ROHS和REACH指令,确保其绿色环保无污染。</p>
<p>SPS30传感器凭借其卓越的测量性能、长期稳定性、灵活的接口选择和广泛的应用领域,成为空气质量监测和控制领域的重要工具。</p>
<p> </p>
<p><strong>PM2.5即细颗粒物</strong>,是指空气动力学当量直径小于或等于2.5微米的颗粒物。这种颗粒物能够较长时间悬浮在空气中,并对空气质量及能见度产生重要影响。PM2.5的来源可以分为自然源和人为源。自然源包括风扬尘土、火山灰、森林火灾和海盐等;人为源则包括一次颗粒物(如燃煤烟尘、工业排放)和二次颗粒物(通过气体前体物的化学反应形成)。 PM2.5的化学成分复杂,主要包括可溶性粒子(如F-, Cl-, Br-, NH4+, Na+, K+等)、无机元素(如自然尘、金属元素)以及含碳物质(如有机碳OC、元素碳EC和多环芳香烃等)。这些成分使得PM2.5具有较高的毒性,长期暴露于高浓度PM2.5环境中会增加呼吸道疾病、心血管疾病和肺癌的风险。 在测量PM2.5时,常用的方法有重量法、β射线吸收法、微量振荡天平法和光散射法。其中,光散射法因其测量速度快、灵敏度高而被广泛应用。 PM2.5对健康的影响主要体现在其能够深入肺部并进入血液系统,从而影响呼吸系统和心血管系统。它还可能吸附有机污染物和重金属,增加致癌和基因突变的风险。因此,控制PM2.5的浓度对于改善空气质量及保护公众健康至关重要。</p>
<p></p>
<p> </p>
<p>SPS30颗粒物激光散射检测工作原理:</p>
<p> </p>
<p> </p>
<p> </p>
<p>将不同颗粒转换不同电信号:</p>
<p> </p>
<p>一致性超级强:</p>
<p> </p>
<p> </p>
<p>不同PM2.5的特性:</p>
<p> </p>
<p>空气质量与PM2.5颗粒物的关系:<br />
欧洲标准:</p>
<div style="text-align: left;"></div>
<p> </p>
<p>美国标准:</p>
<div style="text-align: left;"></div>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p>官方库使用wire IIC通道,但是如果使用wire会占用LCD屏幕驱动</p>
<pre>
<code>void sensirion_i2c_init()
{
Wire.begin();
}
void sensirion_i2c_release(void)
{
}
int8_t sensirion_i2c_read(uint8_t address, uint8_t *data, uint8_t count) {
uint8_t readData;
uint8_t rxByteCount = 0;
// 2 bytes RH, 1 CRC, 2 bytes T, 1 CRC
Wire.requestFrom(address, count);
while (Wire.available()) {// wait till all arrive
readData = Wire.read();
if (rxByteCount >= count)
break;
}
memcpy(data, readData, count);
return 0;
}
int8_t sensirion_i2c_write(uint8_t address, const uint8_t *data,
uint8_t count) {
Wire.beginTransmission(address);
Wire.write(data, count);
Wire.endTransmission();
return 0;
}
#endif /* SPS30_USE_ALT_I2C */</code></pre>
<p> </p>
<p>需要进一步修改官方库,进行wire1通道,修改官方库确实需要很多精力和时间</p>
<p>需要将wire更换成wire1即可</p>
<p> </p>
<p> </p>
<p>获取传感器数据:</p>
<p> </p>
<p> </p>
<p>参考文献:</p>
<p><a href="https://news.eeworld.com.cn/medical_electronics/2018/ic-news08168920.html" target="_blank">https://news.eeworld.com.cn/medical_electronics/2018/ic-news08168920.html</a></p>
<p><a href="https://ehs.uci.edu/enviro/air-quality/current-air-quality.php" target="_blank">https://ehs.uci.edu/enviro/air-quality/current-air-quality.php</a></p>
<p><a href="https://www.zhihu.com/question/20173158/answer/2001770330?utm_campaign=shareopn&utm_content=group2_Answer&utm_medium=social&utm_psn=1832705139284262913&utm_source=wechat_session" target="_blank">https://www.zhihu.com/question/20173158/answer/2001770330?utm_campaign=shareopn&utm_content=group2_Answer&utm_medium=social&utm_psn=1832705139284262913&utm_source=wechat_session</a></p>
<p> </p>
页:
[1]