传感器篇

2016-01-15 16:00:47 121点赞 651收藏 135评论

卤煮一直在纠结是先说下卤煮使用的传感器呢,还是先说下后来使用的联机方式。在第一,第二篇发出后有值友说可以直接使用1602显示数据,因为卤煮在做这玩意之前真的是一点都没摸过单片机和编程,所以在实践的过程中其实掉了很多个坑,所以也一直不太想去碰液晶屏啥的,不过昨晚受大家启发,研究了1602的代码,发觉可能不是那么的难,所以昨晚把之前那个山寨的空气检测仪给拆了,从里面扒了块1602出来,准备试试,但是更新不能断,所以就先说下传感器的那些事吧。

激光Pm2.5传感器,在之前的两篇文章里已详细介绍了攀藤科技的系列产品,同时淘宝上也有很多其他品牌的传感器可供选择,例如六度科技/诺方/SDS018等,大家可以自行搜索,但是如果对单片机编程不是很在行的话,还是建议选择大多数人的选择,这样源码排错都会比较方便。至于pm2.5传感器的使用和程序,之前一篇文章应该写的非常详细了,这儿CT就不再重复了。

传感器篇激光pm2.5传感器s.taobao.com

正如卤煮所说的,刚开始的时候只是想测个pm2.5开始的,但是后来发现关窗开净化器会导致室内pm2.5超标,于是想着既然搞了,就再加个二氧化碳传感器吧,淘宝一搜,发现二氧化碳传感器实在是贵,基本都要200+。但是所谓折腾就是不要去管花了多少钱,就图个开心不是。

市面上所卖的二氧化碳传感器基本有两种类型,一种是卤煮没有选择的以MG-811为代表的电解质感应型,另一种就是卤煮选择的红外检测二氧化碳传感器。

这方面卤煮不是很懂,也就目前看到的说下,MG-811一般都是模拟输出,然后单片机程序根据传感器输出电压来判断气体浓度,大家可以想象,要做到将电压和浓度值一一对应,是多大的工程,所以很多玩家在使用这类探头的时候,也仅仅是把输出值定几个大概范围,例如安全/危险/有害之类的。这么粗略的东西还要200多块钱,卤煮可是不能忍受啊。还有一点就是,此类探头在工作的时候会加热,如果边上有其他温度感应器的话,肯定是要被影响的,看到这,卤煮就果断放弃了此类探头。

传感器篇
图为DFRobot出品的MG811二氧化碳传感器。

接着卤煮就看二氧化碳传感器了,二氧化碳传感器的品牌和种类也很多,其中比较有名的应该就是瑞典的SenseAir和美国的GE了,卤煮在选择的时候并没有多考虑,基于荷包的厚度,第一眼相中的就是GE的T6603-5

传感器篇

传感器篇红外二氧化碳传感器s.taobao.com

其实这款传感器除了名头之外,参数非常平庸,特别是量程,只有400-2000。卤煮选择的时候因为看介绍说CO2浓度大于2000ppm的时候人可能就处于缺氧状态了,所以卤煮当时异常坚定的觉得2000的上限是足够了,谁知道买回来之后测试了一晚,发觉晚上关着门睡觉的时候,CO2浓度分分钟就上2000,早上定时的燃油取暖器开启之后,CO2读取数值分分钟上7000啊(7000已经远远超出传感器的有效量程范围,所以数值连参考意义都没有,但确实印证了燃油取暖器上写着的,使用时请通风)所以现在卤煮睡觉的时候都会把窗开一条缝。好了闲话少说,说回正题,后来发现有国产的红外二氧化碳传感器,售价比6603-5还便宜几十块,有些是可以直接替代6603-5的,有些则不同,具体使用卤煮并没有研究,还望哪位值友做了小白鼠之后分享下。
下面来说说CO2传感器的使用,和其他传感器一样,先要做的就是搜一下前人们的成果,这里再次强烈推荐

传感器篇GitHub · Where software is builtgithub.com

搜索框里直接键入T6603,马上就有结果了

传感器篇

直接打包下载使用即可,这儿先说下T6603的接线。

传感器篇
如图T6603-5是一款串口数据输出的传感器,就和卤煮之前使用的G5一样,所以只要把pin3接在arduino的+5V,pin4接GND,Pin1接arduino的TX,pin2接RX就行,记得之前说过,UNO只有一个硬串口用于和计算机通信,所以这儿还是需要做一个软串口,好在我们从github上下载的示例和库用的都是软串口,所以非常方便的,你只要打开示例文件,自己定义下使用哪两个数字口作为软串口就行,如下图使用的是数字脚10作为RX,11作为TX:

传感器篇

然后,你只要上传程序,享受串口监视器返回的传感器数据就好。这个真的是一次就能成功啊,别提当时卤煮有多兴奋了,于是立马着手把CO2传感器和PM2.5传感器的编码整合起来,然后RUN了一下,结果就悲剧了……窗口完全没反应,期间卤煮排错过程省去3000字,心头有着800头**来回狂奔的感觉。最后发现问题还是出在软串口上,大意是ARDUINO规定,使用2个或以上软串口时,读取串口信息必须用listen而不是read.虽然解释就一句话,但是github上那位洋大人的代码写法和我接触过的所有代码写法都不同,剪浆糊大法瞬间失效。无奈之下,想到了arduino不是还有个硬串口么,只要我不要连接计算机,那我就可以用那个串口了,这位洋大人的代码我改不了,但是我能改G5的代码,非常简单的,只要把上篇里面说到的mySerial改成Serial就成,然后加上乐联网的发送代码,完美通过。但是此时的问题很显然的,这块板子已经不能再添加任何其他的串口传感器了,并且,这两个库和乐联网库的叠加导致主板的动态内存使用度将近80%,实际测试时发现,程序运行的时候时不时会出错,导致上传数据可能要隔2-3分钟才能完整的让乐联网完整的收到一次准确的数据。于是卤煮就直接定了块MEGA 2560。。。这样只让CO2传感器使用软串口,其他串口传感器都直接使用硬串口。

好了,CO2传感器按上了,接着闲着也是闲着,就挂些小传感器上去吧。

温湿度传感器,最简单也是最便宜的温度传感器应该就是LM39了,只是这个传感器也是模拟输出的,并且没有湿度检测,所以卤煮后来选择了DHT22温湿度传感器,DHTXX有多种型号,常见的还有DHT11,相对于DHT22,DHT11比较便宜些,但是量程和精度与DHT22比完全不在一个档次。同类的传感器还有进口的SHT系列以及Si7021等,他们之间的区别很小,大家可以自行选择。只是选购的时候尽量选已经接好线的,这样插上杜邦线就能直接使用了

传感器篇

传感器篇温湿度传感器s.taobao.com

以上提到的几款温湿度传感器在淘宝都能非常容易的买到,使用例程有些商家也能提供,如果商家不提供的话上github和各大单片机论坛也能很方便的找到,这玩意的用法相对于上面两个来说真的是太方便了……,所以卤煮就不多说了。

下面说说气压传感器,其实开始的时候并不想加这么个玩意,因为手机自带气压计,而且这东西说实话,自己真的一点都看不懂,初中物理差不多都还给老师了,只记得1个标准大气压是76cm汞柱,买这东西纯粹是因为买其他东西的时候看着这东西便宜(7元)就顺手加了购物车,然后还神不知鬼不觉的点了2个,拿到手的时候还开心了一下,哈哈哈,商家多发了一个给我唉,然后看看已买到的宝贝,原来是自己……,然后最坑爹的是买的时候只看到了便宜,没有看到这东西针脚商家没有焊上,幸好家里工具都有……,就是手艺实在不咋的。

传感器篇

传感器篇BMP180 新款 BOSCH温度模块 气压模块 气压传感器 代替BMP085¥7天猫精选


这儿需要注意的是这个模块是I2C总线的,接线是固定接到arduino A4,A5两个接口的,SCL接A5,SDA接A4。还有就是这个感应器是卤煮用到的唯一的一个3.3V传感器,所以一定注意要接到3.3V的接口上,卤煮买的传感器扩展板上没有3.3的借口,看了半天说明找到了一个3.3的隐藏接口,但是 接上后并没有用,所以测试成功以后就直接扔在一边放了很久,直到昨晚用nano做了一个室外版分机,才把它用上用来测室外的温度和气压。


刚才说了,这东西接线固定,所以使用非常的方便,github上直接搜索BMP180就能找到一大堆库和示例,直接上传到ARDUINO就可以直接使用了,要是BMP180的示例你觉得不太适合你的要求,也可以搜索BMP085的,可以完全替代。

接下去要说说VOC的事,实际上卤煮找了一圈,并没有找到任何VOC传感器的资讯,为什么?因为压根就没有这东西。这儿先从VOC的定义开始:

传感器篇
就像百度百科所说的,VOC只是一个统称,包含了多种化合物,如果做一个传感器要把所有常见的化合物都包含进来的话,似乎是挺有难度的,为此,卤煮特别请教了做智能家居的朋友,朋友告知,他们一般是使用多个传感器同时进行采样,然后再算出一个值。好吧,多个传感器,还要在家算,听上去就有些复杂的样子,卤煮开始的想法就是算了,不要折腾了,不过后来在采购的时候发现了一个叫MQ135的传感器,官方叫有害气体检测模块,以下是介绍:

传感器篇
其中写到了氨气、芳族化合物、硫化物、苯系蒸汽等等,这些不就是作为化工区主要的污染物么,于是卤煮毫不犹豫的买了一个,现今装在户外模块里测量室外空气中有害气体的浓度。

这儿要多说下MQ135的问题,这个传感器是模拟输出,也就是基本上很难测量出一个准确的值,虽然github上有大神编写了库还能间接测CO2浓度,但是卤煮觉得这东西只能玩玩,千万别当真,而用那个库示例做出来的输出数字都很小,一般都0.001左右,没啥实用价值,所以卤煮就抛弃了库,直接读取A0数值上传(A0范围为1-1023)不过5V才能对应到1023,而传感器最高输出为4V,那么一般到1023的话就是传感器坏了。以下是代码样本:
void setup()
{
Serial.begin(9600);
}

void loop()
{
int val;
val=analogRead(0);
Serial.println(val,DEC);
delay(100);
}
目前扔在阳台,数值现在都是在5-6之间,要是某一时刻突然升高,就说明空气中来了些不速之客。

传感器篇

传感器篇MQ-135空气质量传感器模块 有害气体检测传感器报警模块¥11天猫精选


卤煮最后购入的传感器是攀藤科技的甲醛传感器,上周定的,卖家说这周发货,结果昨天问了下说这周发不了了,要下周四、五才能发,所以暂时也没有什么使用经验可以分享,等来了之后装上再和大家说说吧。

卤煮现在一边发文一边改进,昨晚用nano接了MQ135+BMP180做了个室外分机放在阳台,接了个很老的4000mah的移动电源供电,一晚上下来还有75%的电,回头降低更新频率试试看能不能再减少些耗电。现在的状态是:

传感器篇
现在上传的数据仍有一定几率的错误,但是通过串口监视器来看,数据都是正常的,所以问题可能是出在上传到乐联的过程中,回头继续调试下看看。下一篇会说将网关和传感器分开,使用ZIGBEE透传传送数据,并在传感器主机上加蓝牙模块,使得传感器可以直连手机,使用手机读取监测数据,心情好有时间的话也会在网关上加一个1602显示屏。

展开 收起
135评论

  • 精彩
  • 最新
  • 话说检测类东西不校准就是白扯,这玩意个人如何校准才关键

    校验提示文案

    提交
    所以在传感器选择上就要尽量选已标定 免校准或自动校准的

    校验提示文案

    提交
    收起所有回复
  • 我还想着做完了写呢。1602有点丑我想弄ili9431,可是SPI口还在苦苦找资料。

    校验提示文案

    提交
    1602确实丑,但是简单好用又便宜,自带示例就能出来,我也想换其他的,不过手上有块现成的,先用上,回头哪天心情好了再换,亚克力外壳也去打样了,下篇应该就能看到。

    校验提示文案

    提交
    收起所有回复
  • 我没用co2传感器,我的甲醛传感器是岚宝德源的加一个底板。我本来做了个空气净化器,只是想检测一下,然后就是攀藤的模块,然后就是温湿模块,然后就是voc模块,然后就是甲醛模块,一发不可收拾。。。。。。。

    校验提示文案

    提交
    握爪,握爪。跟我的境遇是一样的

    校验提示文案

    提交
    必须握爪!

    校验提示文案

    提交
    收起所有回复
  • 暑假给自己家里做了一个甲醛检测的,用的模块就是输出模拟电压,然后单片机做AD转换再用数码管显示,奈何不知道电压和甲醛浓度对应值,所以显示范围就是0-5V了 [大囧]

    校验提示文案

    提交
    模拟输出麻烦的地方就在这,电压和指数对应关系对于我这样的小白来说完全弄不明白该怎么写代码

    校验提示文案

    提交
    用matlab拟合出来个公式就行,或者其他软件

    校验提示文案

    提交
    还有2条回复
    收起所有回复
  • 请问MQ135读数的单位是什么?为什么我的一直在七八百范围内徘徊?开窗放外面也没降个几十。代码和楼主的一样。

    校验提示文案

    提交
    我刚买来的时候读数也是300左右 后来通电几天就变现在这样了 是不是有个电位器调灵敏度的

    校验提示文案

    提交
    收起所有回复
  • 哦忘了说了还差个气泵

    校验提示文案

    提交
    气泵是啥?

    校验提示文案

    提交
    收起所有回复
  • 好优秀啊 啥时候做个抓鸽子的工具吧

    校验提示文案

    提交
    鸽子飞太高了,抓不住啊

    校验提示文案

    提交
    什么情况

    校验提示文案

    提交
    收起所有回复
  • 想学这个 不知道门什么入

    校验提示文案

    提交
    查上一篇评论 有值友分享教程

    校验提示文案

    提交
    收起所有回复
  • 没弄个甲醛模块?

    校验提示文案

    提交
    弄了 商家缺货 等了1个星期还要一个星期

    校验提示文案

    提交
    我随便搜了一下好像都要快200了,没弄懂那个99块的甲醛检测仪是个什么情况。。。。

    校验提示文案

    提交
    还有5条回复
    收起所有回复
  • 想要显示的话可以用串口屏,直接串口打印就可以显示在屏幕上,而且屏幕可以预编程,很方便

    校验提示文案

    提交
    这个我去研究下看看

    校验提示文案

    提交

    casatift

    作者

    casatift

    作者
    看了下,真是太方便了……,定了块4.5寸的……,下一篇估计又要延期了。。。

    校验提示文案

    提交
    还有1条回复
    收起所有回复
  • 乐为物联?

    校验提示文案

    提交
    乐联 哈哈哈 你也记成乐维了

    校验提示文案

    提交
    收起所有回复
  • lz用的是哪个数据平台?这个app样式不错,比yeelink好看多了

    校验提示文案

    提交
    乐联,这个是webapp,其实就是张网页,手机开开以后点分享,发送到主屏幕就好

    校验提示文案

    提交
    收起所有回复
  • 就没个综合的传感器用,这一个一个加起来麻烦

    校验提示文案

    提交
    有二氧化碳和PM2.5集成或是PM2.5和甲醛集成的,但是成本和分开的没有差,如果损坏更换起来的话换一套成本就高了

    校验提示文案

    提交
    收起所有回复
  • 楼主室外机的数据是通过另一个W5100模块接上乐联的吗,还是与mega通讯后通过mega的w5100输出至乐联?

    校验提示文案

    提交
    我单独用mega+w5100做了个网关 然后一块mega接了主要的传感器 一个nano接了室外用的 通过zigbee透传给网关再上传服务器

    校验提示文案

    提交
    收起所有回复
  • 小城市不太关心空气质量,楼主没有研究研究通过光线传感器开关窗帘和灯吗?

    校验提示文案

    提交
    这个东西的话 博联有现成的

    校验提示文案

    提交
    收起所有回复
  • 楼主这个系列不更新了吗?等了很久啦~

    校验提示文案

    提交
    最近有一篇二氧化碳联动控制的 剩下的一直要写 不过一直没时间整合 主要是究竟做成啥样还没考虑好 外加又懒

    校验提示文案

    提交
    收起所有回复
  • 大神,如果选攀藤G5+甲醛+wifi物联网,做一个多少钱?

    校验提示文案

    提交
    G5淘宝最低8X元,攀藤甲醛140左右,如果二合一的话是200多点,其实差不多,开发板的话用arduino mega2560(扩展性多些)40元+WIFI模块40元,当然也完全可以用nodemcu,并且nodemcu似乎乐为可以免费提供,并且自带WIFI,不过那块我不熟,一直想研究也没时间去看资料。如果外加显示屏的话还要加个几十块,不过总体上大头是传感器,其他的加起来在百元上下都能搞定。

    校验提示文案

    提交
    刚搜了下,乐联网有现成的成品,是499,本站值友@bobosky 最近的新风原创里结尾的那个检测仪

    校验提示文案

    提交
    还有6条回复
    收起所有回复
  • 大神就是大神,什么都懂!!!

    校验提示文案

    提交
    不要这样 我会骄傲的 哈哈哈哈 玩笑 其实和真的大神还差得很远 只是有点兴趣罢了

    校验提示文案

    提交
    收起所有回复
  • @casatift 大神。你那个说明很详细的屏幕是什么型号呢。看了你的帖子也中毒了想折腾玩玩

    校验提示文案

    提交
    淘宝搜索Usart-GPU串口屏,这块是4.5寸的,比较贵一点

    校验提示文案

    提交
    收起所有回复
  • @casatift 可以直插你前面说的MEGA2560吗还是用线连接?

    校验提示文案

    提交
    要用线来接

    校验提示文案

    提交
    收起所有回复
提示信息

取消
确认
评论举报

相关文章推荐

更多精彩文章
更多精彩文章
最新文章 热门文章
651
扫一下,分享更方便,购买更轻松