對于喜歡登山的人來說,都會非常關心自己所處的高度跟溫度,海拔高度的測量方法,海拔測量一般常用的有兩種方式,一是通過GPS全球定位系統,二是通過測出大氣壓,根據氣壓值算出海拔高度。MicroPython技術交流群:157816561
BMP180是一直常見的氣壓傳感器,BMP180是一款高精度、小體積、超低能耗的壓力傳感器,可以應用在移動設備中,它的性能卓越,精度最低可以達到0.03hPa,并且耗電極低,只有3μA;BMP180采用強大的8-pin陶瓷無引線芯片承載(LCC)超薄封裝,可以通過I2C總線直接與各種微處理器相連。
我們用TPYBoardv102跟BMP180氣壓傳感器和OLED液晶屏制作一個簡易的家庭氣象站,檢測屋內氣壓、溫度跟當地海拔的高度。有興趣的朋友可以接入其他的傳感器,并顯示在OLED上。
BMP180實物圖
TPYBoardv102實物圖
上面是BMP180的實物圖跟TPYBoardv102的實物圖,OLED我就不介紹了
下面告訴大家硬件接線方法:
效果展示圖
連接完畢后,將font.py,ssd1306.py與bmp180的庫導入,就可以通過以下方法分別讀取溫度、氣壓、海拔高度。
- from bmp180 import BMP
- bmp=BMP180(1)
- tem=bmp.getTemp()
- press=bmp.getPress()
- altitude=bmp.getAltitude()
復制代碼
導入需要的類庫,編輯好main.py,直接運行就ok了,下面是main.py的程序源碼
- import pyb
- from ssd1306 import SSD1306
- from bmp180 import BMP180
- bmp=BMP180(1)
- display = SSD1306(pinout={'dc': 'Y9',
- 'res': 'Y10'},
- height=64,
- external_vcc=False)
- while 1:
- tem=bmp.getTemp()
- press=bmp.getPress()
- altitude=bmp.getAltitude()
- display.poweron()
- display.init_display()
- display.draw_text(1,1,str(tem),size=1,space=1)
- display.draw_text(60,1,'C',size=1,space=1)
- display.draw_text(1,10,str(press),size=1,space=1)
- display.draw_text(60,10,'pa',size=1,space=1)
- display.draw_text(1,20,str(altitude),size=1,space=1)
- display.draw_text(60,20,'m',size=1,space=1)
- # 顯示出你想要顯示的內容
- display.display()
- pyb.delay(3000)
復制代碼
|