找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1464|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

PM2.5源碼

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:279688 發(fā)表于 2018-2-6 17:13 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
#include <SoftwareSerial.h>
#include "U8glib.h"
U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NONE);  // I2C / TWI
#define  mySerial Serial1
uint16_t pm25;
uint16_t pm10;
void pmRead() {
  uint8_t data[] = {0xAA, 0x02, 0x00, 0x00, 0x00, 0x00, 0x01, 0x67, 0xBB};
  mySerial.write(data, 9);
  delay(100);
  for (int i = 0; i < 9; i++) {
    if (mySerial.available()) {
      data[i] = mySerial.read ();

    }
  }
  if (data[0] == 0xAA && data[8] == 0xBB) {
    pm25 = data[4] * 256 + data[5];
    pm10 = data[2] * 256 + data[3];


  }
}


void pmOn() {

  uint8_t data[] = {0xAA, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x66, 0xBB};
  mySerial.write(data, 9);
  delay(1000);


}

void pmOff() {
  uint8_t data[] = {0xAA, 0x03, 0x00, 0x00, 0x00, 0x00, 0x01, 0x68, 0xBB};
  mySerial.write(data, 9);
}


void draw(void) {
  // graphic commands to redraw the complete screen should be placed here
  u8g.setFont(u8g_font_unifont);
  u8g.setPrintPos(0, 20);
  u8g.print("PM2.5 = ");
  u8g.print(pm25);

  u8g.setPrintPos(0, 60);
  u8g.print("PM10 = ");
  u8g.print(pm10);
}


void setup() {
  // put your setup code here, to run once:
  mySerial.begin(9600);
  Serial.begin(115200);
  pmOn();

delay(50);

}
void loop() {
  // put your main code here, to run repeatedly:
  pmRead();
  u8g.firstPage();
  do {
    draw();
  } while ( u8g.nextPage() );
  delay(50);
}


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表