传感器实验——3.5寸串口屏幕

news/2024/12/28 19:03:31/

传感器实验——3.5寸串口屏幕

    • MR开发板
    • 3.5触屏型号:DC48320N035
    • SHT20温湿度传感器
    • 引脚说明
    • 示例代码:串口屏显示获取的温湿度
    • 效果

MR开发板

在这里插入图片描述

3.5触屏型号:DC48320N035

使用方法之前在ESP32中写过,今天来试试STM32的。使用方法如下建议康康。

咸鱼ESP32实例— 3.5寸串口触摸屏
咸鱼ESP32实例—3.5寸屏幕基础软件界面窗口
咸鱼ESP32实例—串口屏文字显示
在这里插入图片描述
工程文件可以自己做,嫌麻烦我这有个丑一点的测试一下。
工程文件 点我! 点我! 点我下载!

SHT20温湿度传感器

由瑞士推出的 SHT20数字温湿度传感器,基于领先世界的CMOSens ® 数字传感技术,具有极高的可靠性和卓越的长期稳定性。全量程标定,两线数字接口,可与单片机直接相连,大大缩短研发时间、简化外围电路并降低费用。此外,体积微小、响应迅速、低能耗、可浸没、抗干扰能力强、温湿一体,兼有露点测量,性价比高,使该产品能够适于多种场合的应用。

在这里插入图片描述

引脚说明

开发板sht20
A1SCL
A0SDA
3.3vVCC
GNDGND
开发板3.5串口屏
A2DIN (RX)
A3DOUT(TX)
5vVCC
GNDGND

示例代码:串口屏显示获取的温湿度

main.py
主文件就这些东西了。。其他引用即可。

# main.py -- put your code here!
from SHT20 import SHT20
import pybimport zuart
u2 = pyb.UART(2, baudrate=115200)
xy = zuart.xycomm()WS=SHT20()
#lcd = lcd.LCD()
while True:T = WS.TEM()  # 获取温度H=WS.HUM()  # 获取湿度print('tem:',round(T,2),'hum:',round(H,2))  #获取的值保留2位小数xy.settxt(1, 4,str(round(T,2)),u2)  xy.settxt(1, 5, "       "+str(round(H, 2))+"        ",u2)pyb.delay(500)

zuart.py

from machine import Pin, UARTclass xycomm:def settxt(self, pingid, kongjianid, str, u2):  # 添加字符b = bytearray()b.append(0xEE)b.append(0xB1)b.append(0x10)b.append(0x00)# b.append(0x07)b.append(pingid)b.append(0x00)# b.append(0x02)b.append(kongjianid)b.extend(str.encode())b.append(0xFF)b.append(0xFC)b.append(0xFF)b.append(0xFF)# return bu2.write(b)def cleartxt(self, pingid, kongjianid, u2):  # 清除字符b = bytearray()b.append(0xEE)b.append(0xB1)b.append(0x10)b.append(0x00)# b.append(0x07)b.append(pingid)b.append(0x00)# b.append(0x02)b.append(kongjianid)b.append(0xFF)b.append(0xFC)b.append(0xFF)b.append(0xFF)u2.write(b)

SHT20.py

from machine import Pin, I2C
from struct import unpack as unp
from time import sleep_ms# SHT20 地址
SHT20_I2CADDR = 64# SHT20 接口 选用16位
TRI_T_MEASURE_NO_HOLD = b'\xf3'
TRI_RH_MEASURE_NO_HOLD = b'\xf5'
READ_USER_REG = b'\xe7'
WRITE_USER_REG = b'\xe6'       #地址有关
SOFT_RESET = b'\xfe'class SHT20(object):def __init__(self, scl=Pin.cpu.A1, sda=Pin.cpu.A0, clk_freq=400000):  #修改引脚的地方。self._address = SHT20_I2CADDRpin_c = Pin(scl)pin_d = Pin(sda)self._bus = I2C(scl=pin_c, sda=pin_d, freq=clk_freq)def TEM(self):self._bus.writeto(self._address, TRI_T_MEASURE_NO_HOLD)sleep_ms(150)origin_data = self._bus.readfrom(self._address, 2)origin_value = unp('>h', origin_data)[0]value = -46.85 + 175.72 * (origin_value / 65536)return valuedef HUM(self):self._bus.writeto(self._address, TRI_RH_MEASURE_NO_HOLD)sleep_ms(150)origin_data = self._bus.readfrom(self._address, 2)origin_value = unp('>H', origin_data)[0]value = -6 + 125 * (origin_value / 65536)return value

效果

在这里插入图片描述


http://www.ppmy.cn/news/918015.html

相关文章

android大屏适配_Android屏幕大小适配问题解决

一、一些基本概念 1、长度(真实长度):英寸、inch 2、分辨率:density 每英寸像素数 dpi(密度) 3、像素:px 4、dip的公式:px /dip=dpi/160 所以 dip 类似于英寸、长度(dp=dip,sp类似于dip) 5、相对分辨率=长px*宽px 二、平时我们一些概念的混淆 1、平时我们说 手机的分辨率…

可视化大屏设计尺寸_UI设计中大屏可视化设计尺寸指南

大屏可视化的设计尺寸定义,一直是很多设计师苦恼的一件事,很多时候大屏出现的问题,都是因为对设计尺寸没有一个正确的认识导致。 比如大屏内容呈现不全、拉伸、压缩、字号小的看不见等等,出现这样的问题就会浪费时间调整返工,今天我就带大家来认认真真的讨论一下大屏的设计…

基于PyQt5的UI界面开发——信号与槽

信号与槽的机制 PyQt5采用了一种被称为“信号与槽”机制的编程模式,用于处理对象间的通信和事件处理。在PyQt5中,信号(signal)是对象发出的特定事件,例如按钮被点击、文本被修改等。而槽(slot)…

个人博客系统(二)

该博客系统共有八个页面,即注册页面、登录页面、添加文章页面、修改文章页面、我的博客列表页面、主页、查看文章详情页面、个人中心页面。 1 注册页面 该页面如图所示: 首先,要先判断注册的用户名、密码、确认密码以及验证码是否为空,若有一个为空,点击提交,则会提醒 …

AD如何画多图纸原理图

很多东西都讲究模块化,比如:程序模块化。原理图也不例外,模块化后的原理图更能直观的显示其原理。文章中操作的图标是什么功能可以先看下参考文献中的博客在来看看我的这篇博客,效果会更好。 原本以为原理图多图纸很难&#xff0c…

数学专题训练2 组合计数

1. 硬币购物 4 种面值的硬币,第 i 种的面值是 C i C_i Ci​​。 n n n​ 次询问,每次询问给出每种硬币的数量 D i D_i Di​​ 和一个价格 S S S​,问付款方式。 n ≤ 1 0 3 , S ≤ 1 0 5 n\leq 10^3,S\leq 10^5 n≤103,S≤105​. 如果用…

yolov5(v7.0)网络修改实践一:集成YOLOX的backbone(CSPDarknet和Pafpn)到yolov5(v7.0)框架中

yolov5太好用了,无论是实际做工程还是学习研究,yolov5都比较好上手,而且现在工业界yolov5也应用广泛。但是,作为学习研究,有不少在yolov5之后提出的涨点算法,还是有价值进行研究的,也便于跟进当…

什么是主密钥、工作密钥、会话密钥、PIN密钥?

什么是主密钥? 主秘钥,即(Terminal Master Key) TMK,主要作用是用来验证工作秘钥是否合法,以及加密TPK(终端PIN密钥),保证TPK在传输线路上的安全性。一般情况下是人工在…