教學模組可支援之感測器:溫濕度、PM2.5、二氧化碳、光照度、紫外線、聲音、土壤濕度
GPIO(General Purpose Input Output)常見於開發版邊緣,以針腳(Pin)的形式呈現,這些針腳是開發版與外界連接與溝通的重要橋樑,進行資料傳輸、控制信號的通道,可以軟體設單一接腳為發送輸出 pinMode(D1,OUTPUT) 或接收輸入 pinMode(D2,INPUT),也可以處理數位訊號(digitalWrite(...)、digitalRead(...)、高低電位 LOW、HIGH),或類比訊號(analogWrite(...)、analogRead(...))。
★ 1-Wire 通訊協定
1-Wire 僅使用單一訊號線傳輸資料(半雙工),數據傳輸速率較低,優點為線路簡單,成本低廉,便於擴展和維護,常見於一些簡單的控制例如控制單一顆 LED 明滅,或者傳感器只需要供電然後接收資訊(例如接收溫度、濕度),都是使用這種模式。
一般而言,VCC 電源輸入、GND 接地用的這兩個接腳因有特殊且固定的用途,通常在計算通訊協定所使用的接腳時,是會被省略不計入的。
感測器 | DHT11 溫濕度感測器 | DHT22 溫濕度感測 |
圖片 | ||
型號 | Keyes DHT11 | Keyes DHT22 |
單位 | 溫度 ℃ 濕度 %RH | 溫度 ℃ 濕度 %RH |
測量範圍 | 溫度測量範圍:0~50℃ 溫度測量精度:±2℃ 濕度測量範圍:20~90%RH 濕度測量精度:±5%RH 分辨率:1℃;相對濕度 1% 資料讀取時間間隔 2 秒以上 | 溫度測量範圍:-40~80℃ 溫度測量精度:±0.5℃ 濕度測量範圍:20~90%RH 濕度測量精度:±2%RH 分辨率:0.1℃、相對濕度 0.1% 資料讀取時間間隔 2 秒以上 |
介面 | 數位 1-Wire | 數位 1-Wire |
接線 | DATA -> D3 VCC GND | DATA -> D3 VCC GND |
函式庫 | DHT sensor library for ESPx | DHT sensor library for ESPx |
★ UART(Universal Asynchronous Receiver/Transmitter)通訊協定
UART 好處是線路簡單,僅二個接腳 TX(發送)、RX(接收),但缺點是只能兩個裝置一對一連接 TX -> RX, RX <- TX( 發送 -> 接收、接收 <- 發送),以及速度不是很快。
感測器 | PM2.5 感測器 | 二氧化碳感測器 |
圖片 | ||
型號 | 攀藤科技 PMS5003 | 攀藤科技 DS-CO2-20 |
單位 | μg/m³ | ppm |
測量範圍 | PM1.0(0.3~1.0 um) PM2.5(1.0~2.5 um) PM10(2.5~10 um) 有效範圍:0 ~ 500 μg/m³ 最大範圍:≥ 1000 μg/m | 有效測量範圍:400 to 3000 ppm 最大測量範圍:400 to 5000 ppm 精確度:400-3000 ppm +/- 50 ppm +/- 5% |
介面 | 數位 UART | 數位 UART |
接線 | TX -> RX RX -> TX VCC GND 上傳程式(USB-to-UART)時,需先將 PM2.5 感測器轉接板拔掉,以免程式上傳失敗 | TX -> D6(自訂軟體串列埠接腳 RX) RX -> D5(自訂軟體串列埠接腳 TX) VCC GND UART 只能裝置一對一連接,使用自訂軟體序列埠 |
函式庫 | https://github.com/fu-hsi/PMS |
★ I2C(Inter-Integrated Circuit Bus)通訊協定,讀作 " I-squared-C "
I2C 與 UART 一樣使用兩個接腳 SCL(時脈)、SDA(資料),也是有線路簡單的好處,I2C 可以同時連接多個裝置,不似前述的 UART 僅能一對一,理論上 I2C 可以連接 112 個裝置(128 - 16 保留),透過 I2C Address 位址識別對哪個裝置發送或讀取資料。
I2C 另一優點是一般而言傳輸速度比 UART 快,但因 I2C 只有一條 SDA 數據傳輸線,I2C 在接收數據時無法發送數據,反之在發送時無法接收數據(半雙工),而 UART 有 TX(發送)、RX(接收) 兩條數據傳輸線,UART 則無此問題(全雙工)。
感測器 | OLED 螢幕 | 光照度感測器 | 紫外線感測器 |
圖片 | |||
型號 | GY-302 | Seed Grove Sunlight Sensor | |
單位 | Lux 勒克斯 1 Lux =1 流明/平方公尺 | 紅外線 lm 流明 可見光 lm 流明 紫外線 UV index | |
感測範圍 | 尺寸:0.96 吋 解析度:128 x 64 IC:SSD1306 | 感測範圍:1 ~ 65535 Lux | infrared light 紅外線 visible light 可見光 UV light 紫外線 波長:280-950 nm |
介面 | 數位 I2C(I2C 位址:0x3C) | 數位 I2C(I2C 位址:0x23) | 數位 I2C(I2C 位址:0x60) |
接線 | SCL -> D1 SDA -> D2 VCC GND | SCL -> D1 SDA -> D2 VCC GND | SCL -> D1 SDA -> D2 VCC GND |
函式庫 | https://github.com/ThingPulse/esp8266-oled-ssd1306 | https://github.com/claws/BH1750 | https://github.com/Seeed-Studio/Grove_Sunlight_Sensor |
★ 類比感測器
NodeMCU 只有一個類比輸入接腳 A0,因此只能連接一個類比輸入感測器。
感測器 | 聲音感測器 | 土壤濕度感測器 |
圖片 | ||
型號 | DFRobot Gravity: Analog Sound Level Meter | DFRobot Capacitive Soil Moisture Sensor |
單位 | 分貝 dBA | %RH |
測量範圍 | 測量範圍:30dBA~130dBA 測量誤差: ±1.5dB 頻率響應:31.5Hz~8.5KHz Decibel Value(dBA) = Output Voltage(V) × 50 | 空氣中感測數值:乾土濕度 0 %RH 水中感測數值:潮濕土壤濕度 100 %RH 感測數值與濕度成反比 |
接線 | AOUT -> A0 VCC GND | AOUT -> A0 VCC GND |