HTU21D傳感器模塊介紹
數字式溫濕度復合傳感器HTU21D樹立了新的濕度傳感器的尺寸和智能化典范:采用適合回流焊的DFN封裝,尺寸僅為3 x 3 x 1mm;提供經過校正的,線性的I2C數字輸出信號。
HTU21D是濕度和溫度的復合傳感器,是需要可靠和準確測量的OEM應用的理想選擇。數字輸出的濕度和溫度信號可以直接與微控器接口。每個傳感器都經過校正和測試,批號不僅打印在外殼,而且存儲于傳感器芯片,以便通過指令讀取。用戶可以通過指令改變HTU21D的分辨率(8/12bit至12/14bit)。
此外,傳感器還可以檢測電量低,校驗和用于改善通訊可靠性。
HTU21D的功耗低,性價比高,尺寸小,所以適合價格敏感和安裝空間受限的OEM大批量應用。
廣泛應用于發動機和機動車輛, 醫療, 工業控制, 消費電子和家用電器等行業。
HTU21D實際上是提供各種功能的溫度和濕度傳感器,并且與微控制器一起使用非常簡單。該傳感器能夠測量 -40 至 125°C 范圍內的溫度讀數,精度為 ±0.3°C。同樣,HTU21D 芯片還提供濕度傳感器,其工作濕度范圍為 0-100%,典型精度為 2%。
HTU21D 傳感器模塊具有 3.3V 穩壓器和電平轉換器。因此,與 Arduino、ESP32、STM32 等微控制器一起使用非常方便。該傳感器非常適合與微控制器一起用于溫度和濕度測量,例如恒溫器、氣象站等。此外,由于其低功耗(測量傳感器數據時小于 0.5mA,睡眠模式時小于 0.14μA)非常適合在使用電池的設備中使用。
HTU21D 傳感器模塊如下圖所示,它封裝了 HTU21D 傳感器芯片和用于 I2C 通信的內置 4.7k 歐姆上拉電阻。它是一個 3.3V 傳感器,使用內聯邏輯電平轉換器或 10k 電阻來限制 5V 信號。
I2C接口
HTU21D 傳感器模塊使用 I2C 通信協議將傳感器數據傳輸到微控制器。傳感器模塊具有 SCL(串行時鐘)和 SDA(串行數據)引腳,可與 Arduino 或支持相同接口的其他傳感器的 I2C 接口連接。
然而,HTU21D 傳感器模塊帶有一個固定的 I2C 地址,即 0x40。為了與同一總線上的多個 HTU21D 傳感器進行通信,需要一個多路復用器。
要在同一總線上使用多個 I2C 設備,HTU21D 傳感器模塊上的 4.7k 歐姆電阻被禁用。
HTU21D 傳感器模塊引出線
下圖為市售的兩種 HTU21D 傳感器模塊的引腳圖。兩者均由四個引腳組成。
下面列出了 HTU21D 傳感器模塊的引腳排列及其簡要說明。
規格
HTU21D溫濕度傳感器規格如下表所示。
將 HTU21D 模塊與 Arduino 接口
在本節中,讓我們向您展示如何將 HTU21D 傳感器模塊連接到 Arduino。
您將需要以下組件
- Arduino
- HTU21D 傳感器模塊
- 跳線
HTU21D 與 Arduino 板的連接非常簡單。HTU21D模塊的VCC端接Arduino的3.3V,地接地(common ground),傳感器的SCL接Arduino的SCL腳(A5),傳感器的SDA接Arduino的SDA腳(A4) .
Arduino 中 SDA 的 I2C 引腳是 A4,SCL 是 A5。兩個設備之間的連接可以在下表中看到。
按照下面的 Arduino 模塊示意圖并相應地連接它們。
安裝 HTU21D Arduino 庫
我們將使用 Arduino IDE 對我們的 Arduino 開發板進行編程。因此,您應該擁有最新版本的 Arduino IDE。
由于我們將 HTU21D 傳感器模塊與 Arduino 連接,因此,我們必須安裝庫以訪問傳感器數據。這個項目需要兩個庫:
- Adafruit HTU21D
- Adafruit 總線
我們將使用 Arduino IDE 中的庫管理器來安裝最新版本的庫。打開您的 Arduino IDE 并轉到 Sketch > Include Libraries > Manage Libraries。 在搜索欄中輸入 HTU21D 并安裝最新版本。
在搜索欄中輸入 Adafruit BusIO 并安裝它。
Arduino 代碼——在 Arduino 串行監視器上獲取 HTU21D 讀數
此草圖每半秒顯示一次 Arduino 串行監視器上的當前溫度和濕度讀數。
守則如何運作?
現在,讓我們了解代碼的每個部分是如何工作的。
代碼首先包含代碼正常運行所需的所有必要庫。Wire.h 將允許我們通過 I2C 協議進行通信。Adafruit_HTU21DF.h 庫將使我們能夠初始化和讀取 HTU21D 傳感器。
loop()
在 loop() 函數內,Arduino 首先每半秒獲取一次 HTU21D 傳感器讀數,并將它們存儲在各自的浮點變量中,“temp”代表溫度,“hum”代表濕度。通過 htu.readTemperature() 獲取溫度讀數。使用 htu.readHumidity() 函數訪問濕度讀數。這些讀數打印在 ESP-IDF 終端中。
示范
在 Arduino IDE 中,單擊工具 > 電路板并選擇 Arduino。
現在,單擊工具 > 端口并選擇您正在使用的端口。現在,通過單擊上傳按鈕上傳代碼。
在您的 Arduino 開發板上上傳以下代碼后,按下 ENABLE 按鈕,如下所示:
在您的 Arduino IDE 中,打開串行監視器并將波特率設置為 115200。串行監視器將開始顯示溫度和濕度讀數以及單位。每半秒后將顯示新讀數。
在 OLED 顯示屏上顯示 HTU21D 傳感器值
在本節中,我們將了解如何使用 Arduino IDE 和 Arduino 在 0.96 SSD1306 OLED 顯示器上顯示 HTU21D 傳感器讀數。
在 Arduino IDE 中安裝 SSD1306 OLED 庫
要在我們的項目中使用 OLED 顯示屏,我們必須在 Arduino IDE 中安裝 Adafruit SSD 1306 庫。請按照以下步驟成功安裝它。
打開 Arduino IDE 并單擊 Sketch > Library > Manage Libraries。將打開以下窗口。
?在搜索選項卡中鍵入“SSD1306”并安裝 Adafruit SSD1306 OLED 庫。
原理圖——帶 Arduino 和 HTU21D 的 OLED
您將需要以下組件
- Arduino
- HTU21D 傳感器模塊
- SSD1306 有機發光二極管
- 面包板
- 跳線
下表顯示了應連接在一起的三個設備的端子。
如下圖所示組裝電路:
正如您在上面看到的,我們已經將所有 VCC 端子連接到 Arduino 的 3.3V 引腳。SCL端子與A5相連,SDA端子與A4相連。理由也很普遍。
Arduino Sketch 在 OLED 上顯示 HTU21D 讀數
把下面的代碼復制到你的Arduino IDE中,組裝好上面的電路圖后上傳到Arduino。
守則如何運作?
代碼的最大部分與我們之前討論的相同,除了 OLED 顯示部分。因此,我們這里只對OLED顯示部分進行說明。
我們將首先包含 HTU21D 傳感器以及我們之前剛剛安裝的 OLED 顯示器所需的所有庫。
在 OLED 上顯示讀數
在 loop() 函數中,我們獲取 HTU21D 傳感器讀數并將其打印在 OLED 顯示屏上。
我們將串口監視器上的溫濕度值一一顯示在OLED上。此代碼塊在 OLED 上顯示 HTU21D 傳感器值并每半秒更新一次值。
在上面的代碼中,setTextSize() 函數用于設置字體的大小。我們對“溫度”和“濕度”等簡單文本使用小字體,并使用大字體顯示實際溫度和濕度讀數。我們將使用 setCursor() 函數來表示文本應該開始的 x 軸和 y 軸位置。最后,print() 函數將文本寫入定義的位置。
轉載請注明出處:傳感器應用_儀表儀器應用_電子元器件產品 – 工采資訊 http://www.iohhome.com/43687.html



























