极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 11939|回复: 0

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

[复制链接]
发表于 2017-8-22 16:38:46 | 显示全部楼层 |阅读模式
  对于喜欢登山的人来说,都会非常关心自己所处的高度跟温度,海拔高度的测量方法,海拔测量一般常用的有两种方式,一是通过GPS全球定位系统,二是通过测出大气压,根据气压值算出海拔高度。MicroPython技术交流群:157816561,技术网站:www.tpyboard.com

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

  1. from bmp180 import BMP
  2. bmp=BMP180(1)
  3. tem=bmp.getTemp()
  4. press=bmp.getPress()
  5. altitude=bmp.getAltitude()
复制代码


  导入需要的类库,编辑好main.py,直接运行就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.         # 显示出你想要显示的内容
  22.         display.display()
  23.         pyb.delay(3000)





复制代码

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 需要先绑定手机号

Archiver|联系我们|极客工坊

GMT+8, 2024-3-29 14:30 , Processed in 0.038351 second(s), 18 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表