爱板网论坛

查看: 187|回复: 0

[教程] MicroPython-TPYBoard开发板DIY小型家庭气象站

[复制链接]

51

主题

0

好友

698

积分

举人

Rank: 4

  • TA的每日心情
    开心
    2016-9-7 16:50
  • 签到天数: 4 天

    连续签到: 1 天

    [LV.2]偶尔看看I

    发表于 2017-8-22 15:49:13 |显示全部楼层
      对于喜欢登山的人来说,都会非常关心自己所处的高度跟温度,海拔高度的测量方法,海拔测量一般常用的有两种方式,一是通过GPS全球定位系统,二是通过测出大气压,根据气压值算出海拔高度。MicroPython技术交流群:157816561

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

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


    1.jpg
      BMP180实物图

    2.png
      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


      效果展示图

    3.jpg
      连接完毕后,将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)
    复制代码
    回复

    使用道具 举报

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

    关闭

    站长推荐上一条 /2 下一条

    手机版|爱板网 |网站地图  

    GMT+8, 2017-11-21 13:57 , Processed in 0.185894 second(s), 11 queries , Memcache On.

    苏公网安备 32059002001056号

    Powered by Discuz!

    回顶部