接口BMP280與Arduino讀取壓力,溫度和高度
本文展示了如何將BMP280壓力傳感器與Arduino連接起來。BMP280是由博世Sensortec公司開發(fā)的壓力、濕度、溫度和近似高度傳感器。它非常適用于與環(huán)境相關(guān)的應(yīng)用,該傳感器也可用于與假肢相關(guān)的應(yīng)用,其中壓力是一個非常關(guān)鍵的參數(shù)。在無人機(jī)中,壓力、溫度和高度可以用于監(jiān)測和進(jìn)一步觀察。
博世BMP280可以與各種微控制器接口,如PIC, AVR, ESP32/ESP8266, Arduino等。在本教程中,我們將使用Arduino來連接我們的BMP280傳感器。除了BMP280之外,還有一種叫做BMP180的傳感器可以測量壓力。我們之前已經(jīng)將BMP180與樹莓派和BMP180與ESP32接口,以構(gòu)建基于物聯(lián)網(wǎng)的氣象站,如果感興趣,您可以查看它們。
組件的要求
1.Arduino Uno和USB電纜。
2.BMP280。
3.試驗板。
4.跳線。
BMP280壓力傳感器的工作原理
在開始接口之前。讓我們知道一些關(guān)于傳感器的重要細(xì)節(jié)。該傳感器的工作電壓最低為1.7V至3.6V。BMP280由一個壓阻傳感元件組成,然后與a /D轉(zhuǎn)換器連接。該轉(zhuǎn)換器提供具有特定傳感器補(bǔ)償?shù)霓D(zhuǎn)換結(jié)果以及數(shù)字接口,并配備了內(nèi)置IIR濾波器,以最大限度地減少輸出數(shù)據(jù)中的干擾。
BMP280可以使用I2C和SPI兩種協(xié)議進(jìn)行接口。它可以測量300至1100 hPa的壓力,精度為±1%,溫度范圍為-40至+85℃,精度為±1%,并可以通過一些計算給出近似的海拔高度。該傳感器的工作電壓為1.2V至3.6V,在休眠模式下電流消耗為0.1uA,這使得它適用于嵌入式電子產(chǎn)品中的低功耗應(yīng)用。要了解有關(guān)傳感器及其技術(shù)規(guī)格的更多信息,您可以查看BMP280 Datasheet。
簡而言之,讓我們了解什么是I2C(內(nèi)部集成電路)協(xié)議,它允許我們將多個從機(jī)與一個或多個主電子設(shè)備集成在一起。它是一個2線協(xié)議,可以支持多達(dá)1008個從機(jī)。每個從屬節(jié)點可以使用唯一的地址進(jìn)行標(biāo)識。
BME280與BMP280的區(qū)別
請注意,有兩種類型的傳感器在市場上出售,即BME280和BMP280。以下是這兩種傳感器之間的區(qū)別。
?BME280和BMP280都是由博世Sensortec公司開發(fā)的。
?BMP280傳感器用于查找數(shù)字壓力和溫度,而BME280可用于測量數(shù)字壓力,溫度和濕度。
?由于這個差異,BME280比BMP280稍微貴一些。
?因此,根據(jù)您的項目要求,您可以選擇適合您的用途的傳感器。
BMP280與Arduino接口電路圖
BMP280與Arduino連接的完整原理圖如下所示。我還使用了注釋選項來說明哪些引腳連接到什么。
連接非常簡單,我使用面包板安裝傳感器,并使用連接線將傳感器與Arduino連接起來。我的硬件設(shè)置如下所示
在Arduino IDE中安裝BMP280庫
為了使用I2C與該模塊通信,避免復(fù)雜的編程技術(shù),我們需要使用這個庫Adafruit_BMP280_Library。下載zip格式的庫,并按照步驟將其安裝到Arduino IDE中
轉(zhuǎn)到您下載zip文件夾的位置,選擇zip文件并按“打開”。
這將在Arduino IDE上安裝庫。該傳感器的默認(rèn)I2C地址為0x77。如果您遇到如下所示無法找到有效的BMP280傳感器的錯誤,請檢查接線!
如果問題仍然存在,將Adafruit_BMP280.cpp的_i2caddr中的傳感器地址修改為0x76,如下所示。
如果一切正常,可以在串行監(jiān)視器上找到輸出,如下所示。
本文中演示的完整程序可以在本頁底部找到。代碼解釋如下。
我們通過定義庫開始程序,如下所示。
然后我們將定義SPI引腳,如果我們使用SPI通信協(xié)議。
在設(shè)置中,我們定義串行監(jiān)視器波特率,并通過調(diào)用begin()函數(shù)初始化I2C模塊。它有一些打印語句,使代碼在重置時交互。如果傳感器由于錯誤的地址或布線問題而無法讀取,則在串行上給出錯誤以檢查傳感器的布線和地址。如果傳感器連接成功,它將開始在串行終端上打印值。
在循環(huán)中,代碼使用以下函數(shù)向我們提供來自傳感器的讀數(shù),并將其打印到串行終端上。
在市場上,有各種各樣的傳感器模塊,我們擁有的傳感器是直接到接口的,但是你有機(jī)會得到可能有I2C地址選擇器的傳感器,像這樣,
您不必?fù)?dān)心,我們將解釋如何使用與上面解釋的相同步驟連接此傳感器。
完整的工作也可以在下面的視頻鏈接中找到??傊?,這種傳感器使我們能夠輕松獲得壓力,濕度,溫度和海拔,而無需任何復(fù)雜的布線或編程。該傳感器工作在I2C協(xié)議上,該協(xié)議易于理解,并具有預(yù)定義的功能,可以為我們完成工作。
本文編譯自iotdesignpro