• Arduino-汉王PM2.5检测模组B1


    汉王PM2.5检测模组B1,接入Arduino,使用I2C1602显示屏显示

     1 #include <Arduino.h>
     2 #include <Wire.h> 
     3 #include <LiquidCrystal_I2C.h>
     4 float pm25 = 0;
     5 #define DATALEN 7
     6 LiquidCrystal_I2C lcd(0x3F,16,2);  // set the LCD address to 0x27 for a 16 chars and 2 line display
     7 void setup() {
     8   // put your setup code here, to run once:
     9   Serial.begin(115200);
    10   lcd.init();                      // initialize the lcd
    11 
    12   // Print a message to the LCD.
    13   lcd.backlight();
    14   lcd.print("PM2.5");
    15   
    16 }
    17 void ProcessSerialData()//读取PM2.5的数据。
    18 {
    19   uint8_t mData = 0;
    20   uint8_t i = 0;
    21   uint8_t mPkt[DATALEN] = {0};
    22   int mCheck = 0;
    23   while (Serial.available() > 0) 
    24   {  
    25     mData = Serial.read();     
    26     delay(2);//wait until packet is received
    27     if(mData == 0xAA)//head1 ok
    28      {
    29         mPkt[0] =  mData;
    30         mData = Serial.read();
    31         {
    32           for(int i=1;i < DATALEN;i++)//data recv and crc calc
    33           {
    34             mPkt[i] = Serial.read();
    35             Serial.print(mPkt[i],HEX);
    36            Serial.print("---");
    37              delay(2);
    38           }
    39           delay(1);
    40           Serial.println();
    41     //      Serial.println(mPkt[3]*256+mPkt[2]);
    42  //         Serial.print(mPkt[2]);
    43 //          Serial.println("    ");
    44  //         Serial.print("---");
    45 //          Serial.print(mPkt[5]);
    46           if(mPkt[DATALEN-1] == 0xFF)
    47           {
    48             pm25 = (mPkt[1]<<8)|mPkt[4];
    49              Serial.println(float(pm25/100));
    50              lcd.setCursor(0,1);
    51              lcd.print(float(pm25/100));
    52             Serial.flush();
    53             return;
    54           }
    55         }      
    56      }
    57    } 
    58 }
    59 
    60 void loop() {
    61   ProcessSerialData();
    62 }

  • 相关阅读:
    随机出题问题
    简读《构建之法》提问
    大二下第一次课后作业
    大道至简第七第八章读后感
    继承与接口动手动脑
    大道至简第六章读后感
    数组里的随机数问题
    大道至简第五章读后感
    输入法的用户界面
    搜索水王
  • 原文地址:https://www.cnblogs.com/nightnine/p/8538717.html
Copyright © 2020-2023  润新知