2021年10月22日 星期五

結合LCD顯示跟DHT11




拿了洞洞板將所有零件組合在一起,在LCD上顯示溫溼度跟開機時間

#include <LiquidCrystal.h>
#define RS 2
#define E 3
#define D4 4
#define D5 5
#define D6 6
#define D7 7
#include <dht11.h>

dht11 DHT11;
const byte dataPin=14;

LiquidCrystal lcd(RS,E,D4,D5,D6,D7);    //建立 LCD 物件

void setup() {                                           
  lcd.begin(16,2);                                       //定義 LCD 為 2 列 16 行顯示器
  lcd.clear();                                               //清除螢幕
  lcd.setCursor(0,0);                                   //游標移到左上角
  lcd.print("Hello World!");                       //在第一列印出 Hello World!
    Serial.begin(9600);
  }

void loop() {
    int chk=DHT11.read(dataPin);
if (chk==0) {
      Serial.print("Humidity  (%):  ");
      Serial.println((float)DHT11.humidity,2);
      Serial.print("Temperature  (.C):  ");
      Serial.println((float)DHT11.temperature,2);
      lcd.setCursor(0,0);                               //游標移到左上角
      lcd.print("Temp:");
      lcd.print(DHT11.temperature);
      lcd.print("C ");
      lcd.print("Hum:");
      lcd.print(DHT11.humidity);
      lcd.print("%");
            }
   else {
     Serial.println("Sensor Error");
   }
  lcd.setCursor(0,1);  //游標移到第 2 列第 1 行
  lcd.print(millis()/1000);   //印出秒數

   delay (1000);
  }

HC-SR501 人體紅外線感應模組

 因為想要做一個偵測到人體就會亮燈的實驗,所以用了這個感測模組。


















void setup() {
  Serial.begin(9600);
  pinMode(9, INPUT);     
  pinMode(16, OUTPUT);        
}

void loop(){
  byte p = digitalRead(9);
  if (p == HIGH) {     
    digitalWrite(16, HIGH); 
    Serial.println("Detected");
  } 
  else {
    digitalWrite(16, LOW); 
    Serial.println("No One");
  }
  delay(1000);
}