空氣凈化器.png (42.54 KB, 下載次數(shù): 37)
下載附件
2023-3-24 12:15 上傳
- #include "DHT.h"
- #include <Adafruit_NeoPixel.h>
- #define dustPin A0
- #define ledPower D3
- #define DHTPIN D7 // 定義溫濕度傳感器的引腳
- #define DHTTYPE DHT11 // DHT 11
- DHT dht(DHTPIN, DHTTYPE);
- float humi_read = 0, temp_read = 0;
- #include <Wire.h>
- #include <Adafruit_GFX.h>
- #include <Adafruit_SSD1306.h>
- #include <Adafruit_Sensor.h>
- #define SCREEN_WIDTH 128 // OLED display width, in pixels
- #define SCREEN_HEIGHT 64 // OLED display height, in pixels
- Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1);
- float dustVal=0;
- int delayTime=280;
- int delayTime2=40;
- float offTime=9680;
- void setup(){
-
- Serial.begin(9600);
- pinMode(ledPower,OUTPUT);
- pinMode(dustPin, INPUT);
- dht.begin();
- if(!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) // 掃描OLED的地址,默認0x3c
- {
- Serial.println(F("SSD1306 allocation failed"));
- for(;;);
- }
-
- display.clearDisplay(); // 清屏
- display.setTextColor(WHITE); //開像素點發(fā)光
- }
-
- void loop(){
- // ledPower is any digital pin on the arduino connected to Pin 3 on the sensor
- digitalWrite(ledPower,LOW);
- delayMicroseconds(delayTime);
- dustVal=analogRead(dustPin);
- delayMicroseconds(delayTime2);
- digitalWrite(ledPower,HIGH);
- delayMicroseconds(offTime);
- delay(1000);
- // if (dustVal>36.455)
- Serial.println(dustVal);
-
- float h = dht.readHumidity();
- float t = dht.readTemperature();
-
- if (isnan(h) || isnan(t))
- {
- // BLINKER_LOG("Failed to read from DHT sensor!");
- }
- else
- {
- Serial.println(t,2);
- display.clearDisplay(); // 清屏
- display.setTextSize(1); // 字體
- display.setCursor(0,0); //顯示位置在第一行第一個
- display.print("Temp: ");
- display.setTextSize(2);
- display.print(t);
- display.print(" ");
- display.setTextSize(1);
- display.cp437(true); //使用cp437符號集
- display.write(167); //對應(yīng)的溫度符號
- display.setTextSize(2);
- display.print("C"); // display humidity
-
- display.setTextSize(1);
- display.setCursor(0, 25);
- display.print("Humi: ");
- display.setTextSize(2);
- display.print(h);
- display.print(" %");
- display.display();
- display.setTextSize(1);
- display.setCursor(0, 50);
- display.print("PM2.5: ");
- display.setTextSize(2);
- display.print(dustVal);
- display.print(" %");
- display.display();
- Serial.println(h);
- Serial.println(t);
- humi_read = h;
- temp_read = t;
- }
- }
復制代碼
|