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

共16条 2/2 1 2 跳转至
高工
2016-01-06 21:35:46     打赏
11楼
现在所有与雾霾有关的都是新潮,,,

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

书节上文》》


六、开工

       在某宝上搜了半天,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     打赏
13楼
还可以做甲醛测试仪等等仪器

菜鸟
2016-01-12 11:07:57     打赏
14楼
想法非常不错,期待中……

菜鸟
2016-01-12 14:10:29     打赏
15楼
方案很不错

专家
2024-06-20 09:05:08     打赏
16楼

没看到你的PM2.5传感器


共16条 2/2 1 2 跳转至

回复

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