標(biāo)題: MicroPython-TPYBoard開(kāi)發(fā)板DIY小型家庭氣象站 [打印本頁(yè)]

作者: bodasister    時(shí)間: 2017-8-22 16:07
標(biāo)題: MicroPython-TPYBoard開(kāi)發(fā)板DIY小型家庭氣象站
  對(duì)于喜歡登山的人來(lái)說(shuō),都會(huì)非常關(guān)心自己所處的高度跟溫度,海拔高度的測(cè)量方法,海拔測(cè)量一般常用的有兩種方式,一是通過(guò)GPS全球定位系統(tǒng),二是通過(guò)測(cè)出大氣壓,根據(jù)氣壓值算出海拔高度。MicroPython技術(shù)交流群:157816561

  BMP180是一直常見(jiàn)的氣壓傳感器,BMP180是一款高精度、小體積、超低能耗的壓力傳感器,可以應(yīng)用在移動(dòng)設(shè)備中,它的性能卓越,精度最低可以達(dá)到0.03hPa,并且耗電極低,只有3μA;BMP180采用強(qiáng)大的8-pin陶瓷無(wú)引線芯片承載(LCC)超薄封裝,可以通過(guò)I2C總線直接與各種微處理器相連。

  我們用TPYBoardv102跟BMP180氣壓傳感器和OLED液晶屏制作一個(gè)簡(jiǎn)易的家庭氣象站,檢測(cè)屋內(nèi)氣壓、溫度跟當(dāng)?shù)睾0蔚母叨。有興趣的朋友可以接入其他的傳感器,并顯示在OLED上。



  BMP180實(shí)物圖


  TPYBoardv102實(shí)物圖

  上面是BMP180的實(shí)物圖跟TPYBoardv102的實(shí)物圖,OLED我就不介紹了
下面告訴大家硬件接線方法:

  
OLED液晶屏
  
TPYBoard V102
BMP180氣壓傳感器
GND
GND
GND
VCC
3.3V
VIN


X9
SCL


X10
SDA
D0/SCK
X6


D1/SDA
X8


RES
Y10


DC
Y9


CS
NC




  效果展示圖

  連接完畢后,將font.py,ssd1306.py與bmp180的庫(kù)導(dǎo)入,就可以通過(guò)以下方法分別讀取溫度、氣壓、海拔高度。

  1. from bmp180 import BMP
  2. bmp=BMP180(1)
  3. tem=bmp.getTemp()
  4. press=bmp.getPress()
  5. altitude=bmp.getAltitude()
復(fù)制代碼




  導(dǎo)入需要的類庫(kù),編輯好main.py,直接運(yùn)行就ok了,下面是main.py的程序源碼
  1. import pyb
  2. from ssd1306 import SSD1306
  3. from bmp180 import BMP180

  4. bmp=BMP180(1)
  5. display = SSD1306(pinout={'dc': 'Y9',
  6.                           'res': 'Y10'},
  7.                   height=64,
  8.                   external_vcc=False)
  9. while 1:
  10.         tem=bmp.getTemp()
  11.         press=bmp.getPress()
  12.         altitude=bmp.getAltitude()
  13.         display.poweron()
  14.         display.init_display()
  15.         display.draw_text(1,1,str(tem),size=1,space=1)
  16.         display.draw_text(60,1,'C',size=1,space=1)
  17.         display.draw_text(1,10,str(press),size=1,space=1)
  18.         display.draw_text(60,10,'pa',size=1,space=1)
  19.         display.draw_text(1,20,str(altitude),size=1,space=1)
  20.         display.draw_text(60,20,'m',size=1,space=1)
  21.         # 顯示出你想要顯示的內(nèi)容
  22.         display.display()
  23.         pyb.delay(3000)
復(fù)制代碼









歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1