1. 程式人生 > >Arduino 溫度感測器(LM35、18b20、DH11)

Arduino 溫度感測器(LM35、18b20、DH11)

硬體:

Arduino UNO板
LM35溫度感測器
18b20溫度感測器
DH11溫溼度感測器

LM35溫度感測器
在這裡插入圖片描述

18b20溫度感測器
在這裡插入圖片描述

DH11溫溼度感測器
在這裡插入圖片描述

軟體

Arduino IDE

接線

Arduino 感測器
5V VCC
GND GND
訊號引腳 S

程式

LM35溫度感測器

float temp = 0;
void setup() {
  
  Serial.begin(9600); 
  Serial.println(F("reading LM35 begin. \n")); 
  
}

void loop() {
 
  static unsigned long sensortStamp = 0;
  //設定每100ms讀取一次LM35感測器資料
  if(millis() - sensortStamp > 100){
    sensortStamp = millis();

    int reading = analogRead(2); //注意到我們是把LM35的輸出端連線到了A2,所以這裡是analogRead(2)
    temp = reading *0.0048828125*100;
    Serial.print(F("Real Time Temp: ")); 
    Serial.println(temp); 
  }
  
}

在這裡插入圖片描述

18b20溫度感測器

#include <DallasTemperature.h>
#define ONE_WIRE_BUS A2 //溫度 使用A2埠
OneWire oneWire(ONE_WIRE_BUS);//溫度
DallasTemperature sensors(&oneWire);//溫度
float temp;
void setup() {
  sensors.begin();
  Serial.begin(9600);
  Serial.println(F("reading 18b20 begin. \n")); 
}

void loop() {
   static unsigned long sensortStamp = 0;
  //設定每100ms讀取一次18b20感測器資料
  if(millis() - sensortStamp > 100){
    sensortStamp = millis();
    sensors.requestTemperatures();
    temp=sensors.getTempCByIndex(0);
    Serial.print(F("Real Time Temp: "));  
    Serial.println(temp);  
  }
}

在這裡插入圖片描述

DH11溫溼度感測器

#include <dht11.h>              //引用dht11庫檔案
#define DHT11PIN 9              //定義溫溼度針腳號為9號引腳
dht11 DHT11; 
float tem;
float hum;
void setup() {
  Serial.begin(9600);           //設定波特率引數
  pinMode(DHT11PIN,INPUT);  
  Serial.println(F("reading Dh11 begin. \n"));
}

void loop() {
  static unsigned long sensortStamp = 0;
  if(millis()-sensortStamp>1000){
    sensortStamp=millis();
    int chk = DHT11.read(DHT11PIN);                 //將讀取到的值賦給chk
    tem=(float)DHT11.temperature;               //將溫度值賦值給tem
    hum=(float)DHT11.humidity;                   //將溼度值賦給hum
    Serial.print(F("Real Time tem: "));  
    Serial.println(tem);  
    Serial.print(F("Real Time hum: "));  
    Serial.println(hum);  
  }

}

在這裡插入圖片描述