这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » DIY与开源设计 » 电子DIY » 用单片机制作(小e)PM2.5测试仪

共4条 1/1 1 跳转至

用单片机制作(小e)PM2.5测试仪

菜鸟
2016-01-05 14:54:38     打赏

一、背景

最近又是雾霾席卷大江南北,咱大成都也未能幸免于难。突发奇想,咱是程序猿,咱能不能自己做一个,现在不是流行什么云啊,什么智能连接什么的,不用怎么操作,自己就乖乖的把PM2.5传回来。而且邻居问我是做啥工作的,我一脸自豪的说咱是程序猿,一脸羡慕嫉妒恨,回家就把败家子臭骂一顿:你看人家xx,程序猿啊,多牛x。“败家子”顶回一句程序猿是干啥的,会猴戏吗???邻居当场口吐白沫、直翻白眼。e同志,先出来爆个照,据说这玩意儿在众筹,有兴趣的可以去看看: http://z.elecfans.com/3?yitongwz

二、需求定义

上面说到自己做PM2.5传感器,可不简单,要不然,人家能卖到1000?先上某宝看了下PM2.5传感器,挺便宜2030一大堆(虽然咱天天骂某宝把勤俭持家的老婆整成败家娘们,但是在此咱必须感谢一下),这玩意都是电压输出,看来要找个带adc的控制器,转一下,转成数字输出。

接下来就是重量级的控制主板选型,要咱这种程序猿一般来说看看硬件电路图啥的没问题,可让自己设计电路,那不是耗子上吊——猫逼的,这控制器选择的基本要求是啥呢?

首先第一:价格适中,缺银子啊,便宜了也不行,便宜无好货。

第二要够简单,要够快,对咱程序猿来说,只要花两天时间,码几行代码就能够数清楚到底PM2.5有几多。

(这玩意不就是传说中的需求定义——码农都懂的,只是需求也太简单了吧??!)

三、艰辛选型路

上网搜吧,我飕飕的搜,结果真TM,传说的选型,这东东不好干,搜了几天,没合心意的,要么开发太复杂、价格贵、功能高大上,这玩意对我来说没啥用啊;功能太简单,价格便宜的你自己得搭建adc电路,你说咱程序猿也不是万能不是。想想心里凉了半截,难道这个想法要流产吗??

未完,明天再说。。。




关键词: 开发快     PM2.5     自制     小e    

菜鸟
2016-01-06 11:17:38     打赏
2楼

书接上文。。。

四、小e——正合我意

最近几个程序猿哥们在一起吸雾霾,那酸爽甭提了。有人聊到了智能豆浆机,程序猿同志们都露出了特有的不屑的表情——同行相轻,别人的都是垃圾。

哥们说是豆浆机中的智能机,集成了别人的智能连接模块,可以通过手机远程控制和查看豆浆机,这玩意一下就高大上了,啥云啊,智能连接啊,豆浆机也可以玩得这么任性


咱对豆浆机一点都不感兴趣,对智能连接模块来了劲,赶紧追问。Wifi模块、有云服务、支持外网查询与控制,最牛x的是尽然还可以用微信控制和查询,有内置ADC,还有oled显示。想想我的PM2.5测试仪:在外用微信查看家里PM2.5,显示在OLED上。关键是还在众筹,一块钱可以搞一台,我x,这么便宜,就这么定了,就它了:小e——正和我意。来张众筹购买图,29号下单:


五、测试

感谢不辞辛劳的快递哥,元旦后4号就收到了,快递爆个照

看起来挺不错,就是壳子有点山寨,咱迫不及待的想要测试下了。

怎么玩呢,这玩意是个问题啊,上网搜了下这个讲得挺详细,啥都有了:http://bbs.elecfans.com/jishu_536930_1_1.html


照着步骤做:

微信加开发快关注,看了下开发快的概念,这玩意儿想法不错,可以让程序猿没那么苦逼,这个我喜欢

1、配置绑定开发板:




2、OLED显示:开发快


3、微信查温度


4、打印ADC值


Rgb、音频啥的都可以远程控制,就不想说了,有兴趣的可以去看看。测试完成,确实不错,接下来就是重磅——PM2.5测试制作,敬请期待。。。




菜鸟
2016-01-07 11:20:51     打赏
3楼

书节上文》》


六、开工

       在某宝上搜了半天,PM2.5传感器输出0-5v左右的模拟电压,再瞅瞅咱的小e的ADC输入,我的神那,0~1V的输入,要电压转换,降低5倍的输出。前文说到,咱程序猿不会设计电路啊,且降5倍输出,那精度不是也要低5倍。本来想好的adc的,结果是乐嘉的蛋——碎了。

      继续某宝,搜到一款夏普的串口ttl电平输出PM2.5,查看小e开发板,有ttl电平串口。参数:



传感器爆个照


只要三根线就OK,地、电源和TXD。忒简单鸟。分别接在小e的GND、VCC和UART0的RXD上,不用额外设计任何电路,不用硬件工程师,一个程序猿招干不误:




根据小e开发手册,搭建好各种平台,下面开始编码:

1、初始话小e串口,这个在哪个平台都要做的事:波特率、数据位、校验位、停止位、流控否、是否使用中断等。小e已经干了这些事了;

2、监控串口、计算pm2.5浓度。

上代码

int incomeByte[6];

int data;

int z=0;

int sum;

unsigned long error;

 

void setup()

{

Serial.begin(2400);

}

 

void loop()

while (Serial.available()>0){

data=Serial.read();

if(data == 170){

z=0;

                incomeByte[z]=data;

             }

            else{

                z++;

                incomeByte[z]=data;

              } 

              if(z==6)

              {

                sum=incomeByte[1]+ incomeByte[2]+ incomeByte[3] + incomeByte[4];

       

              if(incomeByte[5]==sum && incomeByte[6]==255 )

              {

         

                //  Serial.print("Data OK! |");

               for(int k=0;k<7;k++)

                {

                  Serial.print(incomeByte[k]);

                  Serial.print("|");

               } 

       

                Serial.print("  Vo=");

               float vo=(incomeByte[1]*256.0+incomeByte[2])/1024.0*5.00;

                Serial.print(vo,3);

              Serial.print("v  | ");

                float c=vo*700;

                Serial.print(" PM2.5 = ");

                Serial.print(c,2);

                Serial.print("ug/m3 ");

                Serial.println();

              }

              else{

                z=0;

               Serial.flush();

                data='/0';

               for(int m=0;m<7;m++){

                  incomeByte[m]=0;

                }

                /* 

                 error++;

                 Serial.print(" ### This is ");

                 Serial.print(error);

                 Serial.println(" Error ###");

                 */

              }

              z=0;

            }

         }



有兴趣的可以改下代码,改成小e能识别的,当然前提是要有小e开发板。



菜鸟
2016-01-11 11:44:24     打赏
4楼
还可以做甲醛测试仪等等仪器

共4条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]