社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  python开源

MicroPython-TPYBoard开发板DIY小型家庭气象站

bodasister • 7 年前 • 1223 次点击  

对于喜欢登山的人来说,都会非常关心自己所处的高度跟温度,海拔高度的测量方法,海拔测量一般常用的有两种方式,一是通过GPS全球定位系统,二是通过测出大气压,根据气压值算出海拔高度。

BMP180是一直常见的气压传感器,BMP180是一款高精度、小体积、超低能耗的压力传感器,可以应用在移动设备中,它的性能卓越,精度最低可以达到0.03hPa,并且耗电极低,只有3μA;BMP180采用强大的8-pin陶瓷无引线芯片承载(LCC)超薄封装,可以通过I2C总线直接与各种微处理器相连。

我们用TPYBoardv102跟BMP180气压传感器和OLED液晶屏制作一个简易的家庭气象站,检测屋内气压、温度跟当地海拔的高度。有兴趣的朋友可以接入其他的传感器,并显示在OLED上。

BMP180实物图

TPYBoardv102实物图

上面是BMP180的实物图跟TPYBoardv102的实物图,OLED我就不介绍了,如果有需要的可以参考这个http://www.tpyboard.com/support/studyexample14/268.html, 下面告诉大家硬件接线方法:

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的库导入,就可以通过以下方法分别读取温度、气压、海拔高度。

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)
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/3148
 
1223 次点击