乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      居家實(shí)驗(yàn):為phyphox插上壓強(qiáng)計(jì)的翅膀(一)

       新用戶5228KeDY 2021-10-10

      居家實(shí)驗(yàn):為phyphox插上壓強(qiáng)計(jì)的翅膀(一)

      零. 背景說(shuō)明

      使用phyphox已經(jīng)有一段時(shí)間了,它里面帶了一個(gè)氣壓計(jì)實(shí)驗(yàn),但是是灰色的,即使你點(diǎn)擊它,它也只會(huì)提示這個(gè)實(shí)驗(yàn)不可用。據(jù)說(shuō)有氣壓計(jì)的手機(jī),要么是旗艦機(jī),要么是商務(wù)機(jī),據(jù)說(shuō)華為Mate上面就有,可是P系列上面就沒有。蘋果不了解。一個(gè)封閉的系統(tǒng)以安全自居,但是可玩性、開放性和所帶來(lái)的創(chuàng)造的熱情與火花就差得遠(yuǎn)了。

      phyphox團(tuán)隊(duì)隊(duì)長(zhǎng)塞巴斯蒂安(我記不住那人名字)好多個(gè)宣傳視頻里都有phyphox結(jié)合氣壓計(jì)的實(shí)驗(yàn),這里使用常用常見的GY68-BMP180氣壓傳感器在phyphox體外嫁接一個(gè)氣壓計(jì)——當(dāng)然,研究BMP180并不是為了phyphox,而是打算琢磨一下熱學(xué)實(shí)驗(yàn)。

      這個(gè)記錄,是沒有規(guī)劃的。寫哪算哪,只是整理。整理的原因,一方面BMP180有好幾款封裝,而且有的已經(jīng)不再受到官方支持,有的會(huì)在網(wǎng)上由微弱的力量支持著一些Arduino擴(kuò)展庫(kù),甚至還能看到51的、STM32的擴(kuò)展庫(kù)——因?yàn)槭情_源的,所以用起來(lái)并不容易。這里整理的,都是我親自試驗(yàn)過(guò)的,要保證它們能用。此外,看起來(lái)簡(jiǎn)單的東西,往往并不簡(jiǎn)單,整理下來(lái),可備未來(lái)自己用,亦可為他人參照之。內(nèi)容只兩片,一為BMP180與國(guó)際壓強(qiáng)方程的應(yīng)用,另一為藍(lán)牙BLE與phyphox通訊。

      一. BMP180與國(guó)際壓強(qiáng)方程

      1.BMP180氣壓傳感器

      BMP180氣壓傳感是最為常用常見的氣壓傳感器,如圖1。介紹它的文章特別多,挑幾個(gè)重點(diǎn)列在這里:壓強(qiáng)可測(cè)范圍300hPa至1100hPa(hPa百帕),高度可測(cè)范圍從海拔以下數(shù)百米至海拔9000米,分辨率可達(dá)0.03hPa(0.25米) 0.06hPa(0.5米),這和設(shè)置模型有關(guān)。

      需特別注意的是,BMP180電源為3.3V,萬(wàn)不可將其與Arduino 5V相接,雖然有不少文章說(shuō)可以接5V,說(shuō)有穩(wěn)壓及電平轉(zhuǎn)換云云,未免于電子市場(chǎng)之極大豐富尚缺乏想象。

      BMP180有溫度輸出和溫度補(bǔ)償功能,這在價(jià)格平易使用方便的傳感器里是不多見的。

      圖1 BMP180的常見封裝

      2.測(cè)量數(shù)據(jù)

      先上測(cè)量數(shù)據(jù)。從最簡(jiǎn)單的場(chǎng)景開始。

      BMP180與Arduino連接完畢,直接測(cè)量家里室內(nèi)壓強(qiáng)和溫度(7樓):

      BMP180直接放置在桌子上,壓強(qiáng)1000.49hPa,溫度26.01C。

      舉到一臂高處,大約上升0.5cm,壓強(qiáng)顯示1000.45hPa,溫度顯示26.02C。

      放在桌子下方,位置下降大約1.0米,壓強(qiáng)顯示1000.62hPa,溫度顯示25.90C。

      這確實(shí)靈敏得令人難以置信?。。?/p>

      十分顯然,我們可以猜測(cè)phyphox氣壓計(jì)實(shí)驗(yàn)的原理了。我們知道,國(guó)際壓強(qiáng)方程為

      其中h是海拔高度,P為當(dāng)前位置大氣壓,為海平面大氣壓強(qiáng),均以hPa為單位。那么,我們只要能夠知道就能夠讓BMP180向我們匯報(bào)高度了,去哪里得到呢?當(dāng)然最好的辦法是到地面測(cè)量一下,另一個(gè)辦法是到https://www.查詢實(shí)時(shí)海平面氣壓圖,如圖2,這個(gè)網(wǎng)站有中文。

      圖2 海平面氣壓圖

      我整理這些文字時(shí),我家里的氣壓已經(jīng)變化了,大約1001.50hPa,如圖3,于是

      確實(shí)暴露了7樓的位置,比較符合實(shí)際。

      圖3 大氣壓強(qiáng)瞬息五變~~

      但是這里面也有一些問題:

      (1)一個(gè)是從氣壓分布圖看,若北京海平面氣壓取1003hPa,那么得到的高度只有12米,這和BMP180強(qiáng)大的分辨率是不相符的;

      (2)北京地區(qū)雖地處平原,但海拔也并非零米,大概是從地表面算起的。

      (3)一個(gè)校準(zhǔn)的方法,是把h替換成,這樣從數(shù)據(jù)擬合里可以把提取出來(lái)。

      3.接線圖

      這個(gè)小板需要自己焊排針,好在只有4根。然后按照以下的針腳對(duì)應(yīng)。圖省了。

      BMP180> Arduino Uno

      VIN > 3V3   #<------要超級(jí)小心,不能使用5V,還是要尊重DataSheet數(shù)據(jù)

      GND > GND

      SCL > A5

      SDA > A4

      4.實(shí)驗(yàn)圖

      圖4 實(shí)驗(yàn)圖

      5.串口監(jiān)視器

      圖5 串口監(jiān)視器

      6.計(jì)劃研究

      有的動(dòng)了,有的還沒動(dòng),有的可能已經(jīng)沒興趣了。

      (1)通過(guò)國(guó)際壓強(qiáng)方程得到壓強(qiáng)與海拔的正或逆的關(guān)系;

      (2)嫁接到手機(jī),完成著名的phyphox手機(jī)壓強(qiáng)計(jì)電梯高度實(shí)驗(yàn);

      (3)可以嘗試氣體三定律實(shí)驗(yàn),可簡(jiǎn)易完成PT關(guān)系

      (4)實(shí)驗(yàn)測(cè)量阿伏伽德羅常數(shù)

      7.技術(shù)補(bǔ)充

      條目式列舉如下。

      (1)BMP180通訊方式是I2C,可以查看Arduino電路圖知道它與BMP180的接線方法;

      (2)部分BMP180是5針、甚至6針的,似乎是過(guò)時(shí)的產(chǎn)品,它們的支持庫(kù)特別雜亂,且經(jīng) 常與wire庫(kù)沖突,盡量不用這些雜牌支持庫(kù);

      (3)所有的支持庫(kù)里最好的,是Sparkfun的開源支持庫(kù)BMP180_Breakout_Arduino_Library;

      (4)電源電壓3.3V,沒有保證的情況下,先別用5V。

      (5)本例代碼及解釋,更詳細(xì)的,請(qǐng)自行去閱讀支持庫(kù)源碼。

      #include <Wire.h>
      #include <SFE_BMP180.h>

      SFE_BMP180 bmp180;

      void setup() {
      Serial.begin(9600);
      bool success = bmp180.begin();

      if (success) {
      Serial.println("BMP180 init success");
      }
      }

      void loop() {

      char status;
      double T, P;
      bool success = false;

      status = bmp180.startTemperature();

      if (status != 0) {
      delay(1000);
      status = bmp180.getTemperature(T);

      if (status != 0) {
      status = bmp180.startPressure(3);

      if (status != 0) {
      delay(status);
      status = bmp180.getPressure(P, T);

      if (status != 0) {
      Serial.print("Pressure: ");
      Serial.println(P);
      Serial.println(" hPa");

      Serial.print("Temperature: ");
      Serial.print(T);
      Serial.println(" C");
      }
      }
      }
      }
      }

      有了擴(kuò)展庫(kù)的支持,我們只需start和get去循環(huán)讀數(shù)就可以了。

        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評(píng)論

        發(fā)表

        請(qǐng)遵守用戶 評(píng)論公約

        類似文章 更多