MicroPython TPYBoard v201 简易家庭气象站的实现过程!

基于MicroPython的简易家庭气象站开发指南 物联网开发中,环境监测系统常采用嵌入式硬件与传感器组合实现。MicroPython作为轻量级Python实现,特别适合STM32等微控制器开发,通过单总线协议驱动DHT11温湿度传感器,配合I2C接口的DS3231高精度时钟模块,可构建实时数据采集系统。本文以TPYBoard v201开发板为例,详解硬件连接方案、MicroPython驱动优化及TCP服务器搭建,实现温度湿度数据的网页可视化展示。项目采用低功耗设计,支持太阳能供电,为智能家居环境监测提供可扩展的解决方案。 阅读详情

前言

上一篇教程中我们实现了一个简单网页的显示。本篇呢,增加上温湿、时间等信息的展示,实现一个简单的家庭气象站。

TPYBoard v201实物图:

 

 

 

 

Python资源共享群:484031800

 

准备工作

硬件&工具

- TPYBoard v201 开发板 1块

- TPYBoard v201 网络参数配置的工具

- 路由器、电脑、网线等

- DHT11温湿度模块 1个

- DS3231时钟模块 1个

知识储备

- 了解基本的TCP、HTTP通信协议等相关的知识。不知道的可自行去百度,相关教程很多。

- 掌握DHT11温湿度模块的使用方法。

- 掌握DS3231时钟模块的使用方法。

TPYBoard v201网络参数配置

USR-K2资料和工具下载: <https://github.com/TPYBoard/Documentation/blob/master/tpyboard_docs/tpyboard/tutorial/doc/USR-

K2%E8%B5%84%E6%96%99.rar>

下载地址是在GitHub上,如果下载速度很慢的话,你也可以加TPYBoard技术交流群:157816561 文件里下载。

首先,将TPYBoard v201开发板通过网线与你使用的电脑接入同一个局域网内。双击运行<USR-M0_V2.2.1.272.exe>,点击搜索设备,成功的情况下会在

上面的列表中显示搜索到的设备。

 

 

 

 

 

点击搜素到的设备,可以读取到该设备的相关参数。同时也可以进行修改并保存。接下来,我们要进行IP地址、端口等设置。IP地址我这里设置了静态

IP<192.168.0.99>,防止每次重新启动时会改变IP。

 

 

 

 

 

接下来端口设置,模块工作方式选择TCP Server。大家可以注意到基础设置中有一个HTTP服务端口的设置,是因为USR-K2中本身就有一个内嵌的网页用

于参数的设置,默认是启用了80端口,那我们下面开启的TCP Server的服务端口就使用81端口吧。

 

 

 

 

 

设置完毕后,点击软件最下方的保存设置。左侧的操作日志显示框会显示保存的进度和状态。

 

 

 

 

 

这时再重新搜索设备,验证下模块的IP地址是否和我们设置的一致。

 

 

 

 

 

接线说明

*进行器件接线时,请先断开开发板的电源,防止接错导致器件烧坏。*

 

 

 

 

 

 

 

 

 

 

 

程序实现

TPYBoard v201通过板子上的串口6与USR-K2模块之间通信。我们不用去管TCP链接等问题,只需要将想要发送的数据通过串口6发送给K2模块即可。其

实我们的程序主要就是读取和写入串口的工作,当我们从串口读取到HTTP请求报文时,开始采集DHT11和DS3231的数据,采集完成后组成一个完整的响

应报文写入到串口发送回去就可以了。

这里只展示main.py文件,其中里面还需要DHT11和DS3231的驱动文件,文章末有下载链接大家可自行下载参考。

main.py 源码:

 1 import pyb
 2 from pyb import Timer,UART
 3 from ds3231 import DS3231
 4 from dht11 import DHT11
 5 
 6 #串口6初始化
 7 uart = UART(6,115200,timeout = 100)
 8 #响应报文
 9 header = """
10 HTTP/1.1 200 OK
11 Content-Type:text/html
12 Content-Length:{0}
13 
14 {1}
15 """
16 #HTML页面
17 html = """
18 <html>
19     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
20     <head> <title>TPYBoard v201</title> </head>
21     <body>
22         <h1>TPYBaord 家庭气象站</h1><br />
23         <p>时间:{}</p>
24         <p>温度:{}</p>
25         <p>湿度:{}</p>
26     </body>
27 </html>
28 """
29 
30 #------------------------DS3231----------------------------------#
31 ds=DS3231(2) #设置DS3231为I2C2接口,对应SCL-Y9,SDA-Y10
32 #初始日期和时间,设置一次即可
33 #ds.DATE([19,7,27])   #设置初始日期年、月、日
34 #ds.TIME([14,50,0])   #设置初始时间时、分、秒
35 #------------------------DHT11----------------------------------#
36 d = DHT11('X12')
37 
38 def updateDisplay():
39 
40     DATE = [str(i) for i in ds.DATE()] #将返回的时间数据int转str
41     TIME = [str(i) for i in ds.TIME()]
42     time = '-'.join(DATE) + ' ' + ':'.join(TIME) #读取日期和时间,拼接成正常的时间格式
43     data = d.read_data()             #读取温湿度的值
44     return time,data
45 
46 while True:
47     if uart.any() > 0:
48         request = uart.read().decode()
49         print('request:',request)
50         #当接收到GET请求头时,进行响应.同时把favicon.ico请求过滤掉
51         if request.find('GET') > -1 and request.find('favicon.ico') < 0:
52             time,data = updateDisplay()
53             print(data)
54             HTML = html.format(time,data[0],data[1])
55             #print(HTML)
56             uart.write(header.format(len(HTML),HTML))

保存代码。打开浏览器,输入URL进行访问。URL=ip:81,例如我的URL就是192.168.0.99:81。

 

 

 

 

 

如果访问时页面出现了乱码,主要有以下地方需要注意下:

- 1.main.py文件的编码格式修改为UTF-8 无BOM格式;

- 2.代码中的HTML字符串中需要添加<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

- 3.通过浏览器开发者工具查看,接收到的Response体是否完整。

大家可以依照本实验的基础加上自己喜欢的显示屏,然后用纸盒等包装起来,DIY一个超棒的家庭气象站。同时也可以做一个路由器映射,这样就可以

随时随地查看家里的环境信息了。

串口转以太网使用方法 串口转以太网 阅读详情

相关推荐

micropython+esp32+1.3寸oled显示驱动sh1106.py

代码在原本的基础上增加了显示点阵图的方法p8-p64,分布表示8x8~64x64的点阵图像。原文I2C使用的是GPIO5和GPIO4,我将其改为了GPIO22和GPIO21。1.3寸oled 4针 sh1106驱动。

pollotui的博客 2111

基于TCP/IP实现串口到网络的通讯转换

基于TCP/IP实现USR-TCP232-306串口到网络的通讯转换前言一、准备工作二、使用步骤1.硬件测试2.软件测试3.数据渗透测试4.代码实现参考资料 前言 实现的功能是:通过串口服务器采集到天平的称量值发送到工作站 一、准备工作 所需物品如下: 串口线 网线 电脑 USR-TCP232-306串口服务器 梅特勒天平 二、使用步骤 1.硬件测试 当 PWR、WORK、LINK、TX 指示灯亮起,表示连接成功 2.软件测试 测试工具: USR-M0_V2.2.5.8 基础设置:模块静态IP

yinwenguang的博客 1万+

【雕爷学编程】MicroPython手册之 SAMD21 软件SPI总线

需要注意的是,要使用这个代码,你需要将从设备的命令和亮度值编码为字节数组,并将其发送到从设备的相应寄存器。4、外设:拥有丰富的智能和灵活的外设,如直接内存访问控制器(DMAC)、事件系统、定时器/计数器(TC/TCC)、实时时钟(RTC)、看门狗定时器(WDT)、CRC-32生成器、通用串行总线(USB)2.0接口、串行通信接口(SERCOM)、Inter-IC Sound(I2S)接口、模数转换器(ADC/DAC)、模拟比较器(AC)和外设触摸控制器(PTC)。它可以通过SPI总线接收命令和数据。

雕爷学编程 297

有人USR-TCP232-306串口服务器通讯配置

模块端口的校验码、数据位、停止位及波特率的设置需要和串口设备(如:新大陆NLS-NVF230扫码枪)的设置保持一致,工作方式选择TCP Server,即服务器,本地端口设置为8000(上图仅示例,与PLC侧的设置保持一致即可),远程端口设置成客户端的端口500,其它保持默认值即可。将串口服务器通电并与电脑连接,在软件界面中点击“搜索设备”键,搜索到设备后将显示在设备窗口,然后点击需要配置的服务器设备,在软件右侧显示参数设置窗口,串口服务器的参数配置就在这里进行。当串口收到数据后会同时将数据发送给PLC。

2302_79273122的博客 3983

M0系列设置软件-USR-M0_V2.2.4.288.exe

【设置软件】M0系列设置软件V2.2.4.288----RS485,便捷实现mudbus,节省开发时间!!!适合所有人,所有有关mudbus协议的

USR-M0_V2.2.5.8.exe

USR-M0_V2.2.5.8------------------------------------------------------------------------------------------

USR-TCP232-T2济南有人以太网模块

USR-TCP232-T2济南有人以太网模块

让你爱上电路设计 2849

基于新张量核范数的TRPCA:多维数据低秩稀疏分解的理论与实践

本文深入探讨了基于新张量核范数的TRPCA(张量鲁棒主成分分析)技术。该技术通过t-product运算和新定义的张量核范数,能有效从多维数据(如视频、彩色图像)中分离低秩背景与稀疏前景/噪声。文章结合理论、核心算法(ADMM、t-SVT)及图像恢复、视频背景建模等实战案例,展示了其在处理复杂多维数据分解任务中的强大优势。

weixin_29173777的博客 269

MicroPython TPYBoard v201 简易家庭气象站的实现过程

前言 上一篇教程中我们实现了一个简单网页的显示。本篇呢,增加上温湿、时间等信息的展示,实现一个简单的家庭气象站。 TPYBoard v201实物图: 准备工作 硬件&工具 - TPYBoard v201 开发板 1块 - TPYBoard v201 网络参数配置的工具 - 路由器、电脑、网线等 - DHT11温湿度模块 1个 - DS3231时钟模块 1个 知识储备 - ...

向上宝宝的博客 360

算法竞赛推荐书单

前言 入坑算法竞赛已经一年半了,在这期间也读了不少关于算法竞赛的书,这些书对我的帮助还是蛮大的。平时看题解多是个人零散的题解,很难以系统的去学习,认认真真的挑选1-2本书来阅读,无论是从思维能力还是文字表达能力都会得到提升,以下都是我自己读过的书进行一下分享,难度由浅入深,部分书籍浅尝而止。 入门:《啊哈!算法》 适合:总题量150以下初步掌握C语言的萌新 一本充满智慧和趣味的算法入门书。没有枯燥的描述,没有难懂的公式,一切以实际应用为出发点,通过幽默的语言配以可爱的插图来讲解算法。你更像是在阅读一个个轻松

TGX的博客 8241

化学气相沉积CVD工艺中MKS下游排气高速节流阀的国产化替代方案及产品

对标MKS、VAT和CDK等国外公司的下游排气高速节流阀系列产品,本文介绍了相应的国产化替代方案和产品。基于CVD工艺,技术方案将下游流量调节阀变为了下游压力调节阀,并采用分体结构,将调压阀与PID控制器分离,调压阀具备大口径和高速功能,电子气控驱动调压阀快速动作,PID控制器接收真空计信号和控制气控驱动阀,可实现阀门全开时间小于0.1秒。

Shanghai_Eyoung的博客 5259

Linux基本操作命令

命令 命令说明 cd 改变当前工作目录 pwd 显示当前所在目录 mkdir 建立新目录 ls 查看文件和目录 cp 复制文件和目录 rm 删除文件和目录 mv 移动文件和目录 cat 显示文本文件内容 tac 显示文本文件,只是先显示最后一行,从后往前显示 more 分页显示文本文件内容,按空格继续看下一屏 less f分页显示文本文件内容,并可方便反复浏览(实现上翻和下翻) head 用于显示文件的前10行,加上-n选项显示文件的前几行 t...

m0_51262868的博客 184

从零到一:龙芯杯参赛全攻略(含北理工学长经验PDF、B站培训视频与开源代码合集)

本文详细介绍了龙芯杯全国大学生计算机系统能力大赛的参赛全攻略,包括资源整合、技能树构建、团队协作和避坑指南。提供北理工学长经验PDF、B站培训视频与开源代码合集,帮助参赛者从零基础到站上领奖台。重点解析如何高效获取优质资源、避开新手常见陷阱及构建可落地的学习路径,助力普通学生系统学习CPU设计。

weixin_26802933的博客 542

Python / Micropython 获取天气数据

话题很大,先来个例子快速建立信心,下面是获得实时天气的代码: import requests import json url = "http://api.openweathermap.org/data/2.5/forecast?q=Chengdu,CN&APPID=xxxxxxxxxxxxxx" # openweathermap.org 免费注册一个账号,获得 APPID r = requests.get(url) temp = r.json()['main']

江哥工作室 2572

面向高速Serdes的信号完整性优化:从封装 - 板级互连局限到封装内互连技术演进(一)

本文针对高速SerDes互连链路中的关键电磁效应展开研究:1)揭示了封装-主板互连结构在毫米波频段易激发谐振效应,导致53GHz传输陷波和阻抗偏移;2)提出基于本征模分析的谐振抑制方法,通过优化接地过孔排布使带宽突破95GHz;3)系统比较了方形/六边形BGA排布下23种差分对朝向的串扰特性,证实六边形阵列可将功率和串扰降低30%以上;4)论证了100GHz以上带宽需采用封装内互连架构,其较传统方案减少50%阻抗不连续节点。

小孟同学的博客 231

GEE APP:基于Sentinel-2遥感影像的植被指数(NDVI)和水体指数(NDWI)可视化应用

本文介绍了利用Google Earth Engine(GEE)平台处理Sentinel-2卫星数据的方法,重点讲解NDVI(归一化植被指数)和NDWI(归一化水体指数)的计算与应用。内容包括环境准备、数据加载与处理、指数计算原理、可视化方法以及实际应用案例。教程详细展示了如何定义研究区域、加载影像数据、进行指数运算,并生成专业统计报告和图例。文章还提供了常见问题解答和最佳实践建议,为生态环境监测、农业评估和水资源管理等场景提供了实用工具。通过JavaScript代码示例,读者可以快速掌握GEE平台的遥感影像

此星光明博客 273

MicroPython开发ESP8266——网络时钟demo

MicroPython开发的ESP8266网络时钟小demo。

weixin_45682654的博客 1072

3大绝招!MySQL如何轻松搞定文本、图像和视频的多模态数据分析?

首先,让我们来了解一下“多模态”到底是什么意思。简单来说,多模态指的是能够同时处理不同类型数据(如文本、图像、音频等)的能力。传统的数据库往往只能专注于一种或几种特定类型的数据,比如关系型数据库主要处理结构化数据,而文档型数据库则更适合非结构化数据。但是现在,随着技术的进步,像MySQL这样的数据库也开始支持更加复杂的数据模型,允许我们在同一个系统内处理多种格式的数据。通过上述五个部分的详细介绍,相信你现在应该对如何利用MySQL进行多模态数据分析有了更清晰的认识。

java专栏 2116

micropython驱动sh1106点亮oled

继上一帖给esp32刷入micropython之后,忍不住给以esp12e也刷了micropython 这里先说一下webrepl: 通过wifi可以和esp8266交互,以及便携的传输文件 首次使用: 1 import webrepl 2 webrepl.start() 中间可能让你import 一个配置模块来设置密码具体即执行上两句就知道了. WebREPL...

dengjiangcw63945的博客 2324

educoder中Hive综合应用案例 — 用户搜索日志分析

Hive综合应用案例 — 用户搜索日志分析

weixin_46026136的博客 4779

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

基于Micropython系统Esp32开发板使用1.3寸OLED sh1106驱动

Micropython + Esp32 + 1.3寸OLED + sh1106驱动

w1015601709的博客 1260

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

使用U8G2在oled屏幕上显示胡桃摇动画

使用U8G2在oled屏幕上显示胡桃摇动画

汪沫远的博客 5525

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

上一篇: Python对接六大主流数据库,只需三步!
下一篇: Python开发植物大战僵尸游戏,能不能通关我说了算!
普通网友
博客等级 码龄7年 438粉丝 263原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值