[MicroPython]TPYBoard开发板DIY小型家庭气象站
对于喜欢登山的人来说,都会非常关心自己所处的高度跟温度,海拔高度的测量方法,海拔测量一般常用的有两种方式,一是通过GPS全球定位系统,二是通过测出大气压,根据气压值算出海拔高度。
BMP180是一直常见的气压传感器,BMP180是一款高精度、小体积、超低能耗的压力传感器,可以应用在移动设备中,它的性能卓越,精度最低可以达到0.03hPa,并且耗电极低,只有3μA;BMP180采用强大的8-pin陶瓷无引线芯片承载(LCC)超薄封装,可以通过I2C总线直接与各种微处理器相连。
我们用TPYBoard v102跟BMP180气压传感器和OLED液晶屏制作一个简易的家庭气象站,检测屋内气压、温度跟当地海拔的高度。有兴趣的朋友可以接入其他的传感器,并显示在OLED上。
BMP180实物图
TPYBoard v102实物图
上面是BMP180的实物图跟TPYBoard v102的实物图,OLED我就不介绍了,如果有需要的可以参考这个http://www.tpyboard.com/support/studyexample14/268.html,下面告诉大家硬件接线方法:
效果展示图
连接完毕后,将font.py,ssd1306.py与bmp180的库导入,就可以通过以下方法分别读取温度、气压、海拔高度。
1 2 3 4 5 | 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)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?