根据一些研究,稻田是温室气体(CH4 甲烷和 NOx 氮氧化物)的主要来源之一,然而,最近的一些研究表明存在误判。
Rajkishore,SK 等人。“水稻生态系统的甲烷排放:100 年的研究。” (2015 年)。
为了找出答案,我构建了一个易于部署的 CH4 监视器,以帮助稻农或其他感兴趣的公民科学家研究这个问题。因为大米是大多数亚洲国家的主要食物来源,所以我们必须准确认识这个问题并做出相应的反应。为简单起见,这次我只研究了 CH4,但我希望我的工作能够启发其他制造商也开发 NOx 监测器。由于 NOx 涉及不止一种物质,因此它们更难以测量。
我最初的计划是创建一个利用太阳能和 LoRa 传输的离网系统,但是我购买的网关和 The Things Network 并不能稳定支持 AS923-2 频率(这是我居住的标准频率)。几次尝试后,我不得不放弃,改用 WiFi 和 Blynk。
在我开始之前,我想感谢我之前的许多项目,它们为我提供了完成这个 CH4 监控项目的捷径和灵感,它们在下面的会议中列出。谢谢你们!
1. Wio终端
Wio Terminal 是一款基于 SAMD51 的微控制器,具有由 Realtek RTL8720DN 提供支持的无线连接功能,与 Arduino 和 MicroPython 兼容。目前,只有 Arduino 支持无线连接。它运行在 120MHz(加速到 200MHz)、4MB 外部闪存和 192KB RAM。它支持蓝牙和 Wi-Fi,为物联网项目提供骨干。Wio 终端本身配备了 2.4 英寸 LCD 屏幕、板载 IMU(LIS3DHTR)、麦克风、蜂鸣器、microSD 卡插槽、光传感器和红外发射器(IR 940nm)。最重要的是,它还有两个用于Grove 生态系统的多功能 Grove 端口和 40 个 Raspberry pi 兼容引脚 GPIO,用于更多附加组件。
搭建Arduino环境和上传代码,请参考Seeed Studio官网。
2. MQ4 甲烷传感器
MQ4 是一种廉价、易于使用的传感器,用于检测甲烷的浓度。这是一个很好的起点,但也有其他选项,例如 MQ214,
该传感器在 5V 电压下运行,并带有数字和模拟输出。在这个项目中,我使用模拟读数而不是数字信号来获取实际浓度,因为数字信号仅显示 CH4 是否“存在”,由用户确定的阈值判断。数字信号可用于泄漏检测,但不适用于测量。
3、SHT40温湿度传感器
传感器附带 Wio 终端开发套件,更多详细信息请参考上述 Seeed Studio 网站。开发套件还附带了其他传感器,这里我只包含了我使用的组件。
该传感器可直接插入 Wio 终端底部插座,采用 I2C 协议。
4.太阳能发电系统
太阳能发电系统由3部分组成:太阳能电池板、5V降压模块和储能。设置非常简单,我买的太阳能电池板是 12V,所以我们需要将 Wio 终端和传感器降到 5V。电力存储基本上是一个带开关的移动电源。我们所要做的就是将它们连接在一起并插入USB。
我在淘宝上买了这3个组件,不懂中文的可以在速卖通上找到。我确定您所在地区有太阳能系统的卖家,所以我不会包括供应商的详细信息
5.连接
上面解释了太阳能系统的连接。SHT40 传感器可以直接插入 Wio Terminal,而 MQ4 传感器有点困难。我们将5V、GND和模拟输出连接到相应的引脚;Wio终端背面的 40 个引脚中的pin4、pin6和pin32 。此处复制引脚排列供您参考:
有关详细信息,请向下滚动并参考下面的示意图。
6. Arduino代码
就像每个 Arduino 代码一样,它有定义、setup() 和 loop()。该代码可进一步分为 4 个部分:进行测量、在 Wio 终端屏幕上显示数字、上传到 Blynk 和校准 R0 值。
测量
error = sht4x.measureHighPrecision(temperature, humidity);
if (error) {
errorToString(error, errorMessage, 256);
Blynk.notify(errorMessage);
}
rawCH4 = analogRead(gasPin);
senVol = rawCH4 * 5 / 1023.0;
senRes = ((5.0 * 10.0) / senVol) - 10.0; //Calculate RS in fresh air
ratio = senRes / R0;
ppm_log = m * log10(ratio) + C;
前 5 行代码从 SHT40 传感器读取温度和湿度,后面部分从 MQ4 传感器读取模拟信号(电压电平),然后根据数据表中的图表将其转换为浓度。
转换的第一步是将0-5V映射到0-1023,然后根据0-1023的值计算传感器电阻。最后,将传感器电阻映射到图中的曲线上。通过基本代数公式:y = mx +c,我们可以找到“y”,即 CH4 的浓度 ppm。
R0 校准
double sensor_volt; //Define variable for sensor voltage
double RS_air; //Define variable for sensor resistance
double sensorValue; //Define variable for analog readings
for (int x = 0 ; x < 500 ; x++) //Start for loop
{
sensorValue = sensorValue + analogRead(A5); //Add analog values of sensor 500 times
}
sensorValue = analogRead(gasPin); //sensorValue / 500.0; //Take average of readings
sensor_volt = sensorValue * (5.0 / 1023.0); //Convert average to voltage
RS_air = ((5.0 * 10.0) / sensor_volt) - 10.0; //Calculate RS in fresh air
R0 = RS_air / 4.4; //Calculate R0
需要注意的一点是 R0 值,因为曲线的 y 轴实际上是 Rs/R0。R0 是通过读取新鲜空气中的传感器值,将其转换为传感器电阻并除以 4.4(数字在数据表的图 2,“空气”曲线中找到),类似于校准过程。它应该在进入测试领域之前完成。我已将校准代码作为 CH4_calib() 函数包含在内,请在需要时在 setup() 中取消注释。
Wio终端显示
对于展示的布局,我非常喜欢Salman Faris的设计,因此参考了。我只调整了矩形的宽度并增加了要显示的小数位。
上传到 Blynk
多亏了 Blynk 库,这也很容易,您只需要发送:
Blynk.virtualWrite(V0, temperature);
Blynk.virtualWrite(V1, humidity);
Blynk.virtualWrite(V2, ppm_log);
Blynk.virtualWrite(V3, R0);
7. Blynk 仪表板
只需为不同的参数添加相应的显示,例如温度的数字标签,甲烷浓度的图表。请参考下面的模板。
8. 套管
在这里,我使用了一个防水盒来放置所有东西,但Mithun Das设计了一个非常有用的外壳,我建议使用他的设计将 Wio 终端安装在盒子内。电力存储应该更小,但这就是我目前手头的东西。
我在盒子下面打了几个洞来放置传感器,一根 PVC 塑料管用作支撑杆来使盒子站立。热胶可以方便地将它们粘合到位。
9. 结果
我在家里测得的 CH4 浓度是 1.70ppm,接近全球最新的 1.80ppm 左右的值是可以接受的。R0 值大约在家里校准。30dec C 和 65% RH,我在代码中包含了两个测量值,以帮助根据数据表图表进一步微调甲烷浓度。
还需要注意的是,MQ4 传感器通常在每次通电时都会发出一个“尖峰”(大约 3-4 ppm),它需要大约 30 分钟的“预热”,然后读数才能稳定到 2 ppm 左右。
一切准备就绪后,我把我的装置带到了我所在城市为数不多的稻田之一,看看读数如何。不幸的是,现在已经是九月了,他们刚刚收获。
然而,我在附近发现了一个新的湿地公园,目前正在“建设中”(是的,一个人工湿地......这就是香港......)当它在今年晚些时候开放时,我想我会再来的地方两个站点的监测套件,看看稻田的浓度与湿地的浓度相比如何。
我知道这种简化的甲烷监测可能不够科学,但我希望这更像是一个灵感和入门级工具包,可供感兴趣的农民或公民科学家开始监测周围环境中的甲烷浓度。更多关于稻田甲烷产生的参考资料,以及如何更科学地测量,请参考以下内容,相信网上还有很多:
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
全部0条评论
快来发表一下你的评论吧 !