虫虫首页| 资源下载| 资源专辑| 精品软件
登录| 注册

PM2.5空气质量<b>检测系统</b>

  • flex 流程编缉器,可以自己根据需要加入数据库或流程代码即可。可以在BS系统下正常使用

    flex 流程编缉器,可以自己根据需要加入数据库或流程代码即可。可以在B\S系统下正常使用

    标签: flex 流程 数据库 代码

    上传时间: 2013-12-18

    上传用户:1109003457

  • 针对数字信号处理器(DSP)系统集成度高、速度快、适合大量数据实时处理的特点,分析微弱 信号的双相位相干检测原理,从应用的角度研究基于DSP实现的双相位检波模式的优点。利用DSP产生 精确的相干波

    针对数字信号处理器(DSP)系统集成度高、速度快、适合大量数据实时处理的特点,分析微弱 信号的双相位相干检测原理,从应用的角度研究基于DSP实现的双相位检波模式的优点。利用DSP产生 精确的相干波,从而使谐波的抑制能力可以达到-120dB。随机噪声中的信号幅值误差可以达到0.45 ,相 位误差0.228 。构建了一个以DSP为核心高精度的微弱信号检测系统。

    标签: DSP 数字信号处理器 实时处理

    上传时间: 2013-12-26

    上传用户:dancnc

  • 12345

    /****************temic*********t5557***********************************/    #include   <at892051.h>     #include   <string.h>    #include   <intrins.h>     #include   <stdio.h>     #define    uchar    unsigned char     #define    uint     unsigned int     #define    ulong    unsigned long     //STC12C2051AD的SFR定义     sfr  WDT_CONTR = 0xe1;//stc2051的看门狗??????     /**********全局常量************/    //写卡的命令     #define    write_command0       0//写密码     #define    write_command1       1//写配置字     #define    write_command2       2//密码写数据     #define    write_command3       3//唤醒     #define    write_command4       4//停止命令     #define    TRUE       1     #define    FALSE      0     #define    OK         0     #define    ERROR      255     //读卡的时间参数us     #define ts_min          250//270*11.0592/12=249//取近似的整数     #define ts_max          304//330*11.0592/12=304     #define t1_min          73//90*11.0592/12=83:-10调整     #define t1_max          156//180*11.0592/12=166     #define t2_min          184//210*11.0592/12=194     #define t2_max          267//300*11.0592/12=276     //***********不采用中断处理:采用查询的方法读卡时关所有中断****************/     sbit p_U2270B_Standby = P3^5;//p_U2270B_Standby PIN=13     sbit p_U2270B_CFE = P3^3;//p_U2270B_CFE     PIN=6     sbit p_U2270B_OutPut = P3^7;//p_U2270B_OutPut  PIN=2     sbit wtd_sck = P1^7;//SPI总线     sbit wtd_si = P1^3;    sbit wtd_so = P1^2;    sbit iic_data = P1^2;//lcd IIC     sbit iic_clk = P1^7;    sbit led_light = P1^6;//测试绿灯     sbit led_light1 = P1^5;//测试红灯     sbit led_light_ok  = P1^1;//读卡成功标志     sbit fengmingqi = P1^5;    /***********全局变量************************************/       uchar data Nkey_a[4] = {0xA0, 0xA1, 0xA2, 0xA3};//初始密码             //uchar idata card_snr[4];   //配置字     uchar data bankdata[28] = {1,2,3,4,5,6,7,1,2,3,4,5,6,7,1,2,3,4,5,6,7,1,2,3,4,5,6,7};     //存储卡上用户数据(1-7)7*4=28     uchar data cominceptbuff[6] = {1,2,3,4,5,6};//串口接收数组ram     uchar command; //第一个命令     uchar command1;//     //uint  temp;     uchar j,i;    uchar myaddr = 8;    //uchar ywqz_count,time_count;             //ywqz jishu:     uchar bdata DATA;    sbit BIT0 = DATA^0;    sbit BIT1 = DATA^1;    sbit BIT2 = DATA^2;    sbit BIT3 = DATA^3;    sbit BIT4 = DATA^4;    sbit BIT5 = DATA^5;    sbit BIT6 = DATA^6;    sbit BIT7 = DATA^7;    uchar bdata DATA1;    sbit BIT10 = DATA1^0;    sbit BIT11 = DATA1^1;    sbit BIT12 = DATA1^2;    sbit BIT13 = DATA1^3;    sbit BIT14 = DATA1^4;    sbit BIT15 = DATA1^5;    sbit BIT16 = DATA1^6;    sbit BIT17 = DATA1^7;    bit i_CurrentLevel;//i_CurrentLevel  BIT 00H(Saves current level of OutPut pin of U2270B)     bit timer1_end;    bit read_ok = 0;    //缓存定时值,因用同一个定时器     union HLint { uint W;    struct   {    uchar H;uchar L;   }   B; };//union HLint idata a     union HLint data a;    //缓存定时值,因用同一个定时器     union HLint0 { uint W;    struct {   uchar H;   uchar L; } B; };//union HLint idata a     union HLint0 data b;    /**********************函数原型*****************/    //读写操作     void f_readcard(void);//全部读出1~7 AOR唤醒     void f_writecard(uchar x);//根据命令写不同的内容和操作     void f_clearpassword(void);//清除密码     void f_changepassword(void);//修改密码     //功能子函数     void write_password(uchar data *data p);//写初始密码或数据     void write_block(uchar x,uchar data *data p);//不能用通用指针     void write_bit(bit x);//写位     /*子函数区*****************************************************/    void delay_2(uint x)    //延时,时间x*10us@12mhz,最小20us@12mhz     {    x--; x--;    while(x)    {      _nop_();      _nop_();      x--;    }    _nop_();//WDT_CONTR=0X3C;不能频繁的复位     _nop_();    }    /////////////////////////////////////////////////////////////////////     void initial(void)    {    SCON = 0x50; //串口方式1,允许接收     //SCON  =0x50;     //01010000B:10位异步收发,波特率可变,SM2=0不用接收到有效停止位才RI=1,     //REN=1允许接收     TMOD = 0x21; //定时器1 定时方式2(8位),定时器0 定时方式1(16位)     TCON = 0x40; //设定时器1 允许开始计时(IT1=1)     TH1 = 0xfD;  //FB 18.432MHz 9600 波特率     TL1 = 0xfD;  //fd 11.0592 9600     IE = 0X90;     //EA=ES=1     TR1 = 1;     //启动定时器     WDT_CONTR = 0x3c;//使能看门狗     p_U2270B_Standby = 0;//单电源     PCON = 0x00;    IP = 0x10;//uart you xian XXXPS PT1 PX1 PT0 PX0     led_light1 = 1;    led_light = 0;    p_U2270B_OutPut = 1;    }    /************************************************/    void f_readcard()//读卡     {    EA = 0;//全关,防止影响跳变的定时器计时     WDT_CONTR = 0X3C;//喂狗     p_U2270B_CFE = 1;//      delay_2(232);  //>2.5ms            /*   //   aor    用唤醒功能来防碰撞   p_U2270B_CFE = 0; delay_2(18);//start gap>150us   write_bit(1);//10=操作码读0页   write_bit(0);       write_password(&bankdata[24]);//密码block7   p_U2270B_CFE =1 ;//    delay_2(516);//编程及确认时间5.6ms   */    WDT_CONTR = 0X3C;//喂狗     led_light = 0;    b.W = 0;    while(!(read_ok == 1))    {             //while(p_U2270B_OutPut);//等一个稳定的低电平?超时判断?              while(!p_U2270B_OutPut);//等待上升沿的到来同步信号检测1       TR0 = 1;      //deng xia jiang       while(p_U2270B_OutPut);//等待下降沿       TR0 = 0;   a.B.H = TH0;   a.B.L = TL0;   TH0 = TL0 = 0;   TR0 = 1;//定时器晚启动10个周期       //同步头       if((324 < a.W) && (a.W < 353)) ;//检测同步信号1                  else     {     TR0 = 0;     TH0 = TL0 = 0;     goto read_error;    }      //等待上升沿        while(!p_U2270B_OutPut);   TR0 = 0;   a.B.H = TH0;   a.B.L = TL0;   TH0 = TL0 = 0;   TR0 = 1;//b.N1<<=8;            if(a.B.L < 195);//0.5p       else     {     TR0 = 0;     TH0 = TL0 = 0;     goto read_error;    }      //读0~7块的数据       for(j = 0;j < 28;j++)      {       //uchar i;                  for(i = 0;i < 16;i++)//8个位        {        //等待下降沿的到来         while(p_U2270B_OutPut);                TR0 = 0;     a.B.H = TH0;     a.B.L = TL0;     TH0 = TL0 = 0;     TR0 = 1;              if(t2_max < a.W/*)&&(a.W < t2_max)*/)//1P          {         b.W >>= 2;//先左移再赋值          b.B.L += 0xc0;                             i++;        }        else if(t1_min < a.B.L/*)&&(a.B.L < t1_max)*/)//0.5p         {         b.W >>= 1;         b.B.L += 0x80;                           }        else      {      TR0 = 0;      TH0 = TL0 = 0;      goto read_error;     }        i++;        while(!p_U2270B_OutPut);//上升                   TR0 = 0;     a.B.H = TH0;     a.B.L = TL0;     TH0 = TL0 = 0;     TR0 = 1;                      if(t2_min < a.W/*)&&(a.W < t2_max)*/)//1P          {         b.W >>= 2;         i++;        }        else if(t1_min < a.B.L/*a.W)&&(a.B.L < t1_max)*/)//0.5P         //else if(!(a.W==0))         {         b.W >>= 1;         //temp+=0x00;          //led_light1=0;led_light=1;delay_2(40000);         }        else      {      TR0 = 0;      TH0 = TL0 = 0;      goto read_error;     }        i++;       }       //取出奇位        DATA = b.B.L;       BIT13 = BIT7;    BIT12 = BIT5;    BIT11 = BIT3;    BIT10 = BIT1;       DATA = b.B.H;       BIT17 = BIT7;    BIT16 = BIT5;    BIT15 = BIT3;    BIT14 = BIT1;       bankdata[j] = DATA1;      }              read_ok = 1;//读卡完成了     read_error:    _nop_();    }       }    /***************************************************/    void f_writecard(uchar x)//写卡     {    p_U2270B_CFE = 1;    delay_2(232);  //>2.5ms            //psw=0 standard write     if (x == write_command0)//写密码:初始化密码     {      uchar i;      uchar data *data p;      p = cominceptbuff;      p_U2270B_CFE = 0;   delay_2(31);//start gap>330us       write_bit(1);//写操作码1:10       write_bit(0);//写操作码0       write_bit(0);//写锁定位0       for(i = 0;i < 35;i++)      {       write_bit(1);//写数据位1       }      p_U2270B_CFE = 1;      led_light1 = 0;   led_light = 1;   delay_2(40000);//测试使用       //write_block(cominceptbuff[4],p);       p_U2270B_CFE = 1;      bankdata[20] = cominceptbuff[0];//密码存入       bankdata[21] = cominceptbuff[1];      bankdata[22] = cominceptbuff[2];      bankdata[23] = cominceptbuff[3];    }    else if (x == write_command1)//配置卡参数:初始化     {      uchar data *data p;      p = cominceptbuff;      write_bit(1);//写操作码1:10       write_bit(0);//写操作码0       write_bit(0);//写锁定位0               write_block(cominceptbuff[4],p);      p_U2270B_CFE=  1;    }    //psw=1  pssword mode     else if(x == write_command2)  //密码写数据    {      uchar data*data p;      p = &bankdata[24];      write_bit(1);//写操作码1:10       write_bit(0);//写操作码0       write_password(p);//发口令       write_bit(0);//写锁定位0       p = cominceptbuff;      write_block(cominceptbuff[4],p);//写数据            }    else if(x == write_command3)//aor    //唤醒 {      //cominceptbuff[1]操作码10 X xxxxxB       uchar data *data p;      p = cominceptbuff;      write_bit(1);//10       write_bit(0);             write_password(p);//密码       p_U2270B_CFE = 1;//此时数据不停的循环传出     }    else //停止操作码     {      write_bit(1);//11       write_bit(1);             p_U2270B_CFE = 1;         }    p_U2270B_CFE = 1;    delay_2(560);//5.6ms     }    /************************************/    void f_clearpassword()//清除密码     {    uchar data *data p;    uchar i,x;          p = &bankdata[24];//原密码     p_U2270B_CFE = 0; delay_2(18);//start gap>150us     //操作码10:10xxxxxxB     write_bit(1);    write_bit(0);              for(x = 0;x < 4;x++)//发原密码     {             DATA = *(p++);      for(i = 0;i < 8;i++)      {       write_bit(BIT0);       DATA >>= 1;      }    }    write_bit(0);//锁定位0:0     p = &cominceptbuff[0];    write_block(0x00,p);//写新配置参数:pwd=0             //密码无效:即清除密码     DATA = 0x00;//停止操作码00000000B     for(i = 0;i < 2;i++)    {    write_bit(BIT7);    DATA <<= 1;    }    p_U2270B_CFE = 1;       delay_2(560);//5.6ms     }    /*********************************/    void f_changepassword()//修改密码            {       uchar data *data p;    uchar i,x,addr;    addr = 0x07;//block7     p = &Nkey_a[0];//原密码     DATA = 0x80;//操作码10:10xxxxxxB     for(i = 0;i < 2;i++)    {      write_bit(BIT7);      DATA <<= 1;    }    for(x = 0;x < 4;x++)//发原密码     {             DATA = *(p++);      for(i = 0;i < 8;i++)      {       write_bit(BIT7);       DATA >>= 1;      }    }    write_bit(0);//锁定位0:0     p = &cominceptbuff[0];    write_block(0x07,p);//写新密码     p_U2270B_CFE = 1;    bankdata[24] = cominceptbuff[0];//密码存入     bankdata[25] = cominceptbuff[1];    bankdata[26] = cominceptbuff[2];    bankdata[27] = cominceptbuff[3];    DATA = 0x00;//停止操作码00000000B     for(i = 0;i < 2;i++)    {      write_bit(BIT7);      DATA <<= 1;    }    p_U2270B_CFE = 1;       delay_2(560);//5.6ms     }    /***************************子函数***********************************/    void write_bit(bit x)//写一位     {    if(x)    {      p_U2270B_CFE = 1;   delay_2(32);//448*11.0592/120=42延时448us       p_U2270B_CFE = 0;   delay_2(28);//280*11.0592/120=26写1     }    else    {      p_U2270B_CFE = 1;   delay_2(92);//192*11.0592/120=18       p_U2270B_CFE = 0;   delay_2(28);//280*11.0592/120=26写0     }    }    /*******************写一个block*******************/    void write_block(uchar addr,uchar data *data p)    {    uchar i,j;        for(i = 0;i < 4;i++)//block0数据     {             DATA = *(p++);      for(j = 0;j < 8;j++)      {       write_bit(BIT0);       DATA >>= 1;      }    }    DATA = addr <<= 5;//0地址     for(i = 0;i < 3;i++)    {      write_bit(BIT7);      DATA <<= 1;    }                   }    /*************************************************/    void write_password(uchar data *data p)    {    uchar i,j;        for(i = 0;i < 4;i++)//     {             DATA = *(p++);      for(j = 0;j < 8;j++)      {       write_bit(BIT0);       DATA >>= 1;      }    }        }   /*************************************************/   void main()    {    initial();    TI = RI = 0;    ES = 1;    EA = 1;  delay_2(28);   //f_readcard();     while(1) {   f_readcard();      //读卡   f_writecard(command1);  //写卡    f_clearpassword();   //清除密码     f_changepassword();    //修改密码 } }

    标签: 12345

    上传时间: 2017-10-20

    上传用户:my_lcs

  • HUHOU 天气

    狐猴天气 A:狐猴天气,一款天气信息预报查询app,基于人性化设计,使用简单,支持中国多个城市天气预报,能够精准定位,及时推送,实时监测各个城市天气情况,app内部提供天气预报,空气质量预报,实时空气质量及空气质量等级预报。特殊天气提前发送预警信息,更好的帮助用户做出生活决策,从容应对各种天气情况。 B:狐猴天气,一款以可用性为中心,确保美观和可用性,一致性,三项全能的天气预报软件,坚持用数据转化成操作性极强的指示性信息,满足用户各种需求,让狐猴天气具有极强实用性。 C:狐猴天气app,一个界面稳定,不闪退,bug少,推送通知高效,及时显示各种天气情况,操作简单方便,字体协调,配备人性化动画界面,直观反馈用户看到的天气,支持多个平台,通过多个平台共享天气情况,让人人都可以做气象员。

    标签: HUHOU

    上传时间: 2017-11-13

    上传用户:小菁的盒子

  • 30mm-300mm轻型变焦物镜光学系统设计

    设计了一组长焦距轻量型变焦光学系统,焦距为30mm~300mm,视场角为1.1°~11.4°,F数为3.5。由于变焦系统焦距较长,并且需要在控制口径的前提下减轻质量,经过对变焦理论进行分析并结合实际情况,采取正组补偿,运用Zemax软件,对变焦系统同时进行像质优化

    标签: mm 300 30 轻型 光学 系统设计

    上传时间: 2021-01-28

    上传用户:

  • 用三点法实现机器人三维位置测量的研究

    用三点法实现机器人三维位置测量的研究摘 要 :提 出 了一 种 微 小 爬 壁 机 器 人 三 维 位 置 测 量 的新 方 法 。笔 者 通 过 深 入 分 析 研 究各 种 位 置 测 控 方 法 与 系 统 ,提 出采 用单 目视 觉方 法 中的 聚 焦法 ,以 CCD作 为 传 感 器 ,用 三 点 法 实现 对 机 器 人 的 三 维 位 置 测 量 。 验 证性 实验 结果表 明 ,本研 究提 出的测 量原 理和 系统是 正 确 可行 的 。 关键词 :机 器人 ;位置 测量 ;CCD传 感 器 ;单 目视 觉 ;摄 像 机 标 定 中 图分 类 号 :TP242.6 文 献 标 识 码 :B Abstract:A new 3D position measurementmethod Ofa wall—climbing micro robothas been researched.Researc— hing on the various position measuring and controlling method,theauthorhasputforwardanewprojecttomeas— ure the 3D position of the robot,in which the focusing method with singlecamera and CCD sensorhasbeen used to getthe position information.The elementary experiment has verified the principle and the system. Key words:robot;position detection;CCD sensor;single camera vision;camera caiibration 位置测量技 术是智 能机 器人 的关键 技术 ,是各 种 机器人控 制系统 中极 为重 要 的环节 ,也 是 国内外研 究 的热点所 在。 按 照测试 系统 与被 测机 器 人 的关 系 ,可 以将位 置 测量技术 分为接触 式和非接触式 两大类 。接触 式测量 系统 由于在测 量过程 中或多或少地 对机器人施 加 了载 荷 ,因而仅适用于静 态 位置测 量 。而动 态 位 置测量 系 统 主要分 5类 :①激光跟踪 系统 ;@ CCD交 互测量 收 稿 日期 :2001—07—03 基 金项 目:国家 863高科技 研 究 资助 项 目(9804-06);教 育 部 高 等 学校 骨干教 师 资助 计 3t,j项 目 作者 简 介 :张 智海 (1973一 ),男 ,工 学硕 士 ,主 要 研 究 方 向 为 智 能 机 器人 测 控 技 术 。 系统 ;③ 超声波 测量 系统 ;④ PSD(positionsensitivede— vice)位 置 测 量 系统 ;⑤ 带 有 接 近觉 传 感 器 的 测量 系 统 。位置测量 还可 以从另一个分类 角度划分为主动式 测量和被动 式测 量 。主动式测 量主要可 以分为结 构光方法和激光 自动聚焦法两类 。被 动式测量 主要 可 以分为双 目视 觉 、三 目视觉 、单 目视觉 等方法 。 对 比以上各种方法 的 优缺 点 ,针对 笔者 研制 的微 小爬壁机器人 的空 间三 维位 置 测量 的要 求 ,测量 系统 必须满足尺 寸小 、分 辨率 高 、稳定 性 和可 靠性 好 、时 间 响应快等特 点 ,提 出了采用 单 目视觉方法 中的聚焦法 , 选用 CCD作 为传感器 ,用 三点法实现对机器人 的三维 位置测量 ,并用 Matlab和 V

    标签: 机器人

    上传时间: 2022-02-12

    上传用户:

  • 基于STM32F103桌面空气检测仪设计(原理图 PCB源文件 源程序)

    描述:空气检测仪主要用来测量空气中的温度、湿度、PM2.5、甲醛。PCB设计使用AD开发,主控芯片用STM32F103C8、温湿度传感器AM2302、PM2.5传感器用夏普的GP2Y1051、甲醛传感器采用DS-HCHO 模块、一个2.4寸lcd,板载两个按键。原理图:PCB:

    标签: stm32f103 空气检测仪

    上传时间: 2022-02-12

    上传用户:

  • 视觉图像和可穿戴计算数据融合的跌倒检测技术及应用

    人口老龄化是世界各国正在面对的一个普遍问题。随着我国老龄化程度的持续加剧,对于老年人群体的医疗资源投入会不断提高。而与此同时,跌倒已经成为老年人日常生活中最为常见的危险行为活动。所以,跌倒检测系统的研究和应用对降低老年人受到的身心伤害和医疗成本具有显著的意义。目前解决老年人跌倒检测的方案仍存在许多不足。其中,基于计算机视觉的跌倒检测技术在无干扰的场景下检测较为有效,但其易受环境变化(如背景光线影响、人遮挡问题等)影响。此外,基于可穿戴计算的跌倒检测技术受限于算法稳定性和识别准确率,系统的灵敏度和特异性难以同时得到保证。针对上述问题本文提出一种融合计算机视觉和可穿戴计算数据的跌倒检测新的方法。首先,设计并开发了集成三轴加速度计、三轴陀螺仪和蓝牙的活动感知模块,实现实时采集、传输人体活动数据:其次,使用深度学习算法从摄像头采集的图像数据提取人体姿态特征数据:最后,对采集的人体活动数据和姿态数据进行规范化和时序化处理,设计了两个深度学习网络分别对数据进行特征提取,并将两特征进行特征层数据融合,在此基础上构建神经网络对融合数据进行活动本文搭建了实验平台并进行了算法测试,其中,本文跌倒检测算法针对离线测试数据的准确率为992%,平均敏感度为995%、平均特异性为99.8%:针对在线数据系统测试准确率为98.9%、平均敏感度为99.2%、平均特异性为99.5%实验结果证明了利用计算机视觉和可穿戴计算数据融合的跌倒检测具有较高的准确率和鲁棒性。

    标签: 视觉图像 数据融合

    上传时间: 2022-03-14

    上传用户:bluedrops

  • 基于STM32的工地环境检测程序

    该程序课可检测温湿度,以及PM2.5的浓度,以及超过固定值有报警功能,还有显示模块

    标签: stm32

    上传时间: 2022-05-19

    上传用户:XuVshu

  • 免费的全功能CCD视觉检测系统

    相关介绍简介:本系统是鄙公司历时6年研发的一款类似松下,欧姆龙,基恩士的一款基于计算机的智能机器视觉系统,可以有效缩短一个视觉项目的开发周期,降低了电气工程师的应用门槛,只需要掌握一些图像处理算法的应用,便可解决一个视觉项目,无需计算机软件知识,只需要简单设定一些参数便可,此系统集成了大量的机器视觉行业图像算法,每种算法有100组,和16层图像缓存区,和本团队多年的实际项目处理经验,还有丰富的外围通讯接口,轻松实现数据交换,支持多款国内外相机硬件,,CCD检测设备的全部系统方案,简单可靠,易于维护

    标签: CCD视觉检测系统

    上传时间: 2022-06-03

    上传用户: