在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

BME280壓力和溫濕度傳感器的工作原理

454398 ? 來源:wv ? 2019-10-25 10:14 ? 次閱讀

步驟1:BME280探索

電子行業已使用BME280傳感器(具有溫度,氣壓和濕度的環境傳感器)加快了競爭步伐!該傳感器非常適合各種天氣/環境傳感,甚至可以在I2C中使用。

此精密傳感器BME280是用于測量濕度(精度為±3%),氣壓為±1的最佳傳感解決方案。 hPa絕對精度,溫度精度為±1.0°C。由于壓力會隨高度變化,因此壓力測量值非常好,因此您也可以將其用作高度計,精度為±1米或更高!溫度傳感器經過優化,可實現最低噪聲和高分辨率,可用于溫度補償壓力傳感器,也可用于估算環境溫度。 BME280的測量可以由用戶執行,也可以定期進行。

數據表:單擊以預覽或下載BME280傳感器的數據表。

步驟2:硬件需求列表

我們完全使用了Dcube Store Parts,因為它們易于使用,并且所有與厘米網格完全匹配的東西確實可以使我們前進。您可以根據需要使用任何東西,但接線圖將假定您正在使用這些零件。

BME280傳感器I2C微型模塊

I2C粒子光子防護罩

粒子光子

I2C電纜

電源適配器

步驟3:接口連接

接口部分基本上說明了傳感器與粒子光子之間所需的接線。在任何系統上為所需的輸出工作時,確保正確的連接是基本必要。因此,必要的連接如下:

BME280將在I2C上運行。這是示例接線圖,演示了如何連接傳感器的每個接口。開箱即用,該電路板已配置為I2C接口,因此,如果您不確定,我們建議使用此接口。您只需要四根電線! Vcc,Gnd,SCL和SDA引腳僅需要四個連接,它們通過I2C電纜連接。這些連接如上圖所示。

步驟4:溫度,壓力和濕度監控代碼

我們將在此處使用干凈的代碼版本來運行它。

在將傳感器模塊與Arduino結合使用時,我們包含了application.h和spark_wiring_i2c.h庫。 “ application.h”和spark_wiring_i2c.h庫包含促進傳感器與粒子之間的i2c通信的功能。

點擊此處打開用于設備監控的網頁

上傳代碼添加到您的開發板上,它應該開始工作了!所有數據都可以在網頁上獲得,如圖所示。

代碼如下:

// Distributed with a free-will license.

// Use it any way you want, profit or free, provided it fits in the licenses of its associated works.

// BME280

// This code is designed to work with the BME280_I2CS I2C Mini Module available from ControlEverything.com.

#include

#include

// BME280 I2C address is 0x76(108)

#define Addr 0x76

double cTemp = 0, fTemp = 0, pressure = 0, humidity = 0;

void setup()

{

// Set variable

Particle.variable(“i2cdevice”, “BME280”);

article.variable(“cTemp”, cTemp);

Particle.variable(“fTemp”, fTemp);

Particle.variable(“pressure”, pressure);

Particle.variable(“humidity”, humidity);

// Initialise I2C communication as MASTER

Wire.begin();

// Initialise Serial communication, set baud rate = 9600

Serial.begin(9600);

delay(300);

}

void loop()

{

unsigned int b1[24];

unsigned int data[8];

int dig_H1 = 0;

for(int i = 0; i 《 24; i++)

{

// Start I2C Transmission

Wire.beginTransmission(Addr);

// Select data register

Wire.write((136+i));

// Stop I2C Transmission

Wire.endTransmission();

// Request 1 byte of data

Wire.requestFrom(Addr, 1);

// Read 24 bytes of data

if(Wire.available() == 1)

{

b1[i] = Wire.read();

}

}

// Convert the data

// temp coefficents

int dig_T1 = (b1[0] & 0xff) + ((b1[1] & 0xff) * 256);

int dig_T2 = b1[2] + (b1[3] * 256);

int dig_T3 = b1[4] + (b1[5] * 256);

// pressure coefficents

int dig_P1 = (b1[6] & 0xff) + ((b1[7] & 0xff ) * 256);

int dig_P2 = b1[8] + (b1[9] * 256);

int dig_P3 = b1[10] + (b1[11] * 256);

int dig_P4 = b1[12] + (b1[13] * 256);

int dig_P5 = b1[14] + (b1[15] * 256);

int dig_P6 = b1[16] + (b1[17] * 256);

int dig_P7 = b1[18] + (b1[19] * 256);

int dig_P8 = b1[20] + (b1[21] * 256);

int dig_P9 = b1[22] + (b1[23] * 256);

for(int i = 0; i 《 7; i++)

{

// Start I2C Transmission

Wire.beginTransmission(Addr);

// Select data register

Wire.write((225+i));

// Stop I2C Transmission

Wire.endTransmission();

// Request 1 byte of data

Wire.requestFrom(Addr, 1);

// Read 7 bytes of data

if(Wire.available() == 1)

{

b1[i] = Wire.read();

}

}

// Convert the data

// humidity coefficents

int dig_H2 = b1[0] + (b1[1] * 256);

int dig_H3 = b1[2] & 0xFF ;

int dig_H4 = (b1[3] * 16) + (b1[4] & 0xF);

int dig_H5 = (b1[4] / 16) + (b1[5] * 16);

int dig_H6 = b1[6];

// Start I2C Transmission

Wire.beginTransmission(Addr);

// Select data register

Wire.write(161);

// Stop I2C Transmission

Wire.endTransmission();

// Request 1 byte of data

Wire.requestFrom(Addr, 1);

// Read 1 byte of data

if(Wire.available() == 1)

{

dig_H1 = Wire.read();

}

// Start I2C Transmission

Wire.beginTransmission(Addr);

// Select control humidity register

Wire.write(0xF2);

// Humidity over sampling rate = 1

Wire.write(0x01);

// Stop I2C Transmission

Wire.endTransmission();

// Start I2C Transmission

Wire.beginTransmission(Addr);

// Select control measurement register

Wire.write(0xF4);

// Normal mode, temp and pressure over sampling rate = 1

Wire.write(0x27);

// Stop I2C Transmission

Wire.endTransmission();

// Start I2C Transmission

Wire.beginTransmission(Addr);

// Select config register

Wire.write(0xF5);

// Stand_by time = 1000ms

Wire.write(0xA0);

// Stop I2C Transmission

Wire.endTransmission();

for(int i = 0; i 《 8; i++)

{

// Start I2C Transmission

Wire.beginTransmission(Addr);

// Select data register

Wire.write((247+i));

// Stop I2C Transmission

Wire.endTransmission();

// Request 1 byte of data

Wire.requestFrom(Addr, 1);

// Read 8 bytes of data

if(Wire.available() == 1)

{

data[i] = Wire.read();

}

}

// Convert pressure and temperature data to 19-bits

long adc_p = (((long)(data[0] & 0xFF) * 65536) + ((long)(data[1] & 0xFF) * 256) + (long)(data[2] & 0xF0)) / 16;

long adc_t = (((long)(data[3] & 0xFF) * 65536) + ((long)(data[4] & 0xFF) * 256) + (long)(data[5] & 0xF0)) / 16;

// Convert the humidity data long adc_h = ((long)(data[6] & 0xFF) * 256 + (long)(data[7] & 0xFF));

// Temperature offset calculations

double var1 = (((double)adc_t) / 16384.0 - ((double)dig_T1) / 1024.0) * ((double)dig_T2);

double var2 = ((((double)adc_t) / 131072.0 - ((double)dig_T1) / 8192.0) * (((double)adc_t)/131072.0 - ((double)dig_T1)/8192.0)) * ((double)dig_T3);

double t_fine = (long)(var1 + var2);

double cTemp = (var1 + var2) / 5120.0;

double fTemp = cTemp * 1.8 + 32;

// Pressure offset calculations

var1 = ((double)t_fine / 2.0) - 64000.0;

var2 = var1 * var1 * ((double)dig_P6) / 32768.0;

var2 = var2 + var1 * ((double)dig_P5) * 2.0;

var2 = (var2 / 4.0) + (((double)dig_P4) * 65536.0);

var1 = (((double) dig_P3) * var1 * var1 / 524288.0 + ((double) dig_P2) * var1) / 524288.0;

var1 = (1.0 + var1 / 32768.0) * ((double)dig_P1);

double p = 1048576.0 - (double)adc_p;

p = (p - (var2 / 4096.0)) * 6250.0 / var1;

var1 = ((double) dig_P9) * p * p / 2147483648.0;

var2 = p * ((double) dig_P8) / 32768.0;

double pressure = (p + (var1 + var2 + ((double)dig_P7)) / 16.0) / 100 ;

// Humidity offset calculations

double var_H = (((double)t_fine) - 76800.0);

var_H = (adc_h - (dig_H4 * 64.0 + dig_H5 / 16384.0 * var_H)) * (dig_H2 / 65536.0 * (1.0 + dig_H6 / 67108864.0 * var_H * (1.0 + dig_H3 / 67108864.0 * var_H)));

double humidity = var_H * (1.0 - dig_H1 * var_H / 524288.0);

if(humidity 》 100.0)

{

humidity = 100.0;

}

else if(humidity 《 0.0)

{

humidity = 0.0;

}

// Output data to dashboard

Particle.publish(“Temperature in Celsius : ”, String(cTemp));

Particle.publish(“Temperature in Fahrenheit : ”, String(fTemp));

Particle.publish(“Pressure : ”, String(pressure));

Particle.publish(“Relative Humidity : ”, String(humidity));

delay(1000);

}

步驟5:應用程序:

BME280溫度,壓力和相對濕度傳感器具有多種工業應用,例如溫度監控,計算機外圍熱保護,工業壓力監控。我們還將這種傳感器應用于氣象站應用程序以及溫室監控系統中。

其他應用程序可能包括:

情境感知,例如皮膚檢測,房間變化檢測。

體能監測/健康-有關干燥或高溫的警告。

測量風量和空氣流量。

家庭自動化控制。

控制供暖,通風和空調(HVAC)。

物聯網。

GPS增強功能(例如,首次定位時間的改進,航位推測,斜率檢測)。

室內導航(更改樓層檢測,電梯檢測)。

戶外導航,休閑和體育應用。

天氣預報。

垂直速度指示(上升/下降速度)。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 傳感器
    +關注

    關注

    2553

    文章

    51414

    瀏覽量

    756662
收藏 人收藏

    評論

    相關推薦

    溫濕度控制的功能和應用

    溫濕度控制在電阻柜中的應用主要涉及以下幾個方面: 溫濕度控制的功能 檢測與控制:溫濕度控制
    的頭像 發表于 11-07 15:08 ?315次閱讀

    溫濕度傳感器種類及原理的優劣分析

    傳感器的種類 電阻式溫濕度傳感器 電阻式傳感器是基于材料的電阻隨溫度和濕度的變化而變化的原理進行工作
    的頭像 發表于 10-21 15:05 ?1096次閱讀

    溫濕度傳感器是什么類型的傳感器

    溫濕度傳感器是一種能夠實時監測和記錄環境中溫度和濕度變化的設備或裝置。這類傳感器廣泛應用于環境監測、氣象觀測、農業、工業生產、倉儲管理、智能家居、醫療健康等多個領域,為相關領域的研究、
    的頭像 發表于 10-21 14:53 ?667次閱讀

    dht11溫濕度傳感器工作原理介紹

    DHT11是一種常用的溫濕度傳感器,它能夠測量溫度和相對濕度。這種傳感器廣泛應用于智能家居、氣象站、農業監控等領域。 DHT11溫濕度
    的頭像 發表于 10-21 09:47 ?2732次閱讀

    車載溫濕度傳感器有什么功能

    在現代化物流體系中,尤其是針對需要嚴格溫控的冷鏈運輸領域,車載溫濕度傳感器成為了重要的智能設備。車載溫濕度傳感器以其高精度測量、智能化報警、靈活供電及便捷管理等特點,為貨物安全運輸提供
    的頭像 發表于 10-10 13:23 ?307次閱讀

    溫濕度傳感器怎么調試

    工作原理 溫度測量原理 溫濕度傳感器中的溫度測量通常采用熱敏電阻或熱電偶。熱敏電阻的阻值隨溫度的變化而變化,通過測量電阻值可以計算出溫度值。熱電偶則是利用兩種不同金屬或合金的接觸點產生的熱電勢來測量溫度。
    的頭像 發表于 08-19 15:04 ?1183次閱讀

    溫濕度傳感器技術參數有哪些

    溫濕度傳感器是一種用于測量環境溫度和濕度傳感器。它們廣泛應用于氣象、農業、工業、醫療、智能家居等領域。本文將介紹溫濕度
    的頭像 發表于 08-19 15:03 ?1417次閱讀

    LORA溫濕度傳感器的功能特點

    LORA溫濕度傳感器,作為現代環境監測技術的重要一員,憑借其獨特的功能特點,在氣象、環保、農業、醫藥、物流等多個領域發揮著不可替代的作用。以下將詳細探討LORA溫濕度傳感器的功能特點,
    的頭像 發表于 08-09 16:32 ?560次閱讀

    蜂窩物聯4G溫濕度傳感器如何助力現代農業?

    傳感器在農業中的神奇應用。 一、溫濕度傳感器工作原理與特點 溫濕度傳感器是一種能夠實時監測環境
    的頭像 發表于 07-15 16:54 ?435次閱讀
    蜂窩物聯4G<b class='flag-5'>溫濕度</b><b class='flag-5'>傳感器</b>如何助力現代農業?

    想要準確地測量環境溫濕度?溫濕度傳感器是關鍵!

    的應用十分廣泛。 ?溫濕度傳感器工作原理 溫濕度傳感器工作原理主要基于幾種不同的物理效應:
    的頭像 發表于 07-04 08:48 ?652次閱讀

    滅火器傳感器-壓力溫濕度傾角物聯網傳感器引領隧道安全新時代

    北京優利威的創新力作——壓力溫濕度傾角物聯傳感器,專為高速公路隧道滅火器管理系統量身定制,引領高端監控技術的新篇章。
    的頭像 發表于 06-17 14:21 ?361次閱讀
    滅火器<b class='flag-5'>傳感器</b>-<b class='flag-5'>壓力</b><b class='flag-5'>溫濕度</b>傾角物聯網<b class='flag-5'>傳感器</b>引領隧道安全新時代

    無線溫濕度監控系統

    解決方案,在需要監控的區域部署傳感器節點,實時感知環境溫濕度數據,利用無線傳感器網絡,對環境溫濕度的實時采集和傳輸,上傳至監控中心或云平臺,用戶進行遠程查看和管理。一旦數據被采集,自動
    的頭像 發表于 05-30 16:43 ?826次閱讀

    小白測功耗之藍牙溫濕度傳感器

    上市的合宙功耗分析儀Air9000P來評測看看。1測前選購準備本次測評一共選購了三款溫濕度傳感器產品進行對比,以下按價格從低到高排序為:京東京造、小米、美的。1.1京
    的頭像 發表于 04-16 08:04 ?1472次閱讀
    小白測功耗之藍牙<b class='flag-5'>溫濕度</b><b class='flag-5'>傳感器</b>

    溫濕度傳感器有哪些應用場景?

    溫濕度傳感器在眾多領域,特別是在實時記錄溫濕度變化的工作中最為廣泛。溫濕度傳感器可以根據所記錄的
    的頭像 發表于 02-19 16:28 ?1481次閱讀
    <b class='flag-5'>溫濕度</b><b class='flag-5'>傳感器</b>有哪些應用場景?

    溫濕度傳感器工作原理 溫濕度傳感器的接線方法

    溫濕度傳感器是一種用于測量環境溫度和相對濕度的裝置。它通常用于工業、農業、氣象、室內空調等領域。本文將詳細介紹溫濕度傳感器
    的頭像 發表于 02-14 18:00 ?1w次閱讀
    主站蜘蛛池模板: 国模视频在线 | 久久就是精品 | 高清色黄毛片一级毛片 | 美国激情ap毛片 | 欧美午夜色大片在线观看免费 | 无遮挡很污很爽很黄的网站 | 欧美影院一区二区 | 丁香午夜 | 亚洲二区视频 | 伊人天堂在线 | 手机视频在线播放 | 特级毛片女人18毛片 | 欧美另类videos | 国产视频一区二 | 网红和老师啪啪对白清晰 | 国产精品久久久香蕉 | 国产一区二区三区美女在线观看 | 在线不卡一区 | 亚洲4区| 久青草国产手机视频免费观看 | 久久久免费观看 | 清纯唯美亚洲综合一区 | 色婷婷六月桃花综合影院 | 性8sex亚洲区入口 | 亚洲美女爱爱 | 久草视频这里只有精品 | 四虎最新网址入口 | 亚洲国产激情在线一区 | 日本吻胸抓胸激烈视频网站 | 精品三级在线 | 天堂网av2014 | 美女艹逼视频 | 性欧美乱又伦 | 饥渴少妇videos | 一区二区三区免费视频网站 | 性生大片一级毛片免费观看 | 黄色毛片基地 | 日日噜夜夜噜 | 理论在线看| 天堂网在线最新版www中文网 | 日韩免费在线视频 |