---
# System prepended metadata

title: IOT Lab4

---

# IOT Lab4

## DHT11 溫濕度感測器 

```
#include <SimpleDHT.h>
int pinDHT11 = 28; //修改腳位為X 
SimpleDHT11 dht11(pinDHT11);

void setup() {
  Serial.begin(115200);
}

void loop() {
  //start working... 
  Serial.println("==============="); 
  Serial.println("Sample  DHT11..."); 
  //read without samples.
  byte temperature = 0;
  byte humidity = 0;
  int err = SimpleDHTErrSuccess;
  if ((err = dht11.read(&temperature, &humidity, NULL)) != SimpleDHTErrSuccess) {
    Serial.print("Read DHT11 failed,  err=");
    Serial.println(err);  
    delay(1000); 
    return;
  }
  Serial.print("Sample  OK: ");
  Serial.print((int)temperature);  
  Serial.print(" *C, "); 
  Serial.print((int)humidity);  
  Serial.println(" H");
  //DHT11 sampling rate is lHZ. 
  delay(1500);
}
```
![](https://i.imgur.com/mUmhxvP.png)


## I2C-1602 LCD Hello, world
```
#include <Wire.h> 
#include <LiquidCrystal_I2C.h>

LiquidCrystal_I2C lcd(0x27,20,4);  // set the LCD address to 0x27 for a 16 chars and 2 line display

void setup(){
  lcd.init();                      // initialize the lcd 
  // Print a message to the LCD.
  lcd.backlight();
  lcd.setCursor(3,0);
  lcd.print("Hello, world!");
  lcd.setCursor(2,1);
  lcd.print("Panda!");
  delay(1000);
  lcd.clear();
  delay(1000);
}

void loop(){
}
```
![Imgur](https://i.imgur.com/bcdFdqP.jpg)
![Imgur](https://i.imgur.com/LvKr5CW.jpg)


## SAD 與 SCL 介紹
SDA和SCL是I2C通訊協議中的兩條線路。

* SDA（Serial Data）：是I2C數據傳輸線路，用於傳輸數據信號。線路用於傳輸數據位，數據位是透過一個開關元件（通常是一個晶體管）來控制的，當開關元件處於導通狀態時，SDA線路就被拉低表示數據位為0，當開關元件處於斷開狀態時，SDA線路就被拉高表示數據位為1。因此，SDA線路上的電壓電平可以判斷出傳輸的數據位是0還是1。

* SCL（Serial Clock）：是I2C時鐘線路，用於傳輸時鐘信號，用來同步數據傳輸的節奏。

* I2C（Inter-Integrated Circuit）是一種串行通訊協議，可用於連接不同芯片、傳感器和其他電子裝置之間的數據傳輸。具有使用線路少、傳輸速率高、傳輸距離短等特點。I2C的設計旨在減少線路數量，使連接更簡單，因此只需要使用兩條線路即可完成通訊。其中SDA和SCL線路是I2C通訊協議中最重要的兩條線路，幾乎所有I2C設備都需要使用這兩條線路進行通訊

