ESP32(MicroPython) TFT LCD多功能显示(RTC+DHT22)

news2024/11/25 10:25:20

本程序内容与之前的类似,传感器换成DHT22,测量温湿度更符合日常使用的需要。逻辑上的一项改动是测量的温度和湿度值统一保留一位小数。

代码如下

from ili934xnew import ILI9341, color565
from machine import Pin, SPI
import m5stack
import tt14
import glcdfont
import tt14
import tt24
import tt32
from machine import RTC
import time
import dht
from machine import Timer
from machine import PWM
import DS1302

#定义RTC控制对象
rtc=RTC()
#定义DS1302控制对象
ds1302=DS1302.DS1302(clk=Pin(13),dio=Pin(12),cs=Pin(15))
#定义星期
week=("Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday")
#定义DHT22控制对象
dht22=dht.DHT22(Pin(21))
power = Pin(m5stack.TFT_LED_PIN, Pin.OUT)
power.value(1)

spi = SPI(
    2,
    baudrate=80000000,
    miso=Pin(m5stack.TFT_MISO_PIN),
    mosi=Pin(m5stack.TFT_MOSI_PIN),
    sck=Pin(m5stack.TFT_CLK_PIN))

display = ILI9341(
    spi,
    cs=Pin(m5stack.TFT_CS_PIN),
    dc=Pin(m5stack.TFT_DC_PIN),
    rst=Pin(m5stack.TFT_RST_PIN),
    w=320,
    h=240,
    r=3)

led=PWM(Pin(2),freq=4000,duty=20)
duty=0
flag=0
#定时器0中断函数
def time0_irq(time0):
    global duty
    global flag
    if duty==20 :
        flag=0
    if duty==1020 :
        flag=1    
    if flag==0 :
        duty+=1
        led.duty(duty)
    if flag==1 :
        duty-=1
        led.duty(duty)
        
time0=Timer(0)  #创建time0定时器对象
time0.init(period=1,mode=Timer.PERIODIC,callback=time0_irq)

rtc_time=rtc.datetime()
ds_time=ds1302.DateTime()
if rtc_time[0]==ds_time[0] : #在电脑启动时会自动校准RTC,判断RTC时间没有重置时同步校准DS1302
    ds1302.DateTime([rtc_time[0],rtc_time[1],rtc_time[2],rtc_time[3],rtc_time[4],rtc_time[5],rtc_time[6]])
if rtc_time[0]!=ds_time[0] : #如果程序上电启动,RTC会因断电重置,此时用DS1302校准RTC
    rtc.datetime((ds_time[0],ds_time[1],ds_time[2],ds_time[3],ds_time[4],ds_time[5],ds_time[6],0))    
fonts = [tt32]
display.erase()
time.sleep(1)
while True:
    display.set_pos(25,35)
    for ff in fonts:
        rtc_time=rtc.datetime()
        dht22.measure()  #调用DHT类库中测量数据的函数
        temperature = dht22.temperature()
        humidity = dht22.humidity()
        temperature=round(temperature,1) #保留一位小数
        humidity=round(humidity,1)
        text = str(rtc_time[0])+'-'+str(rtc_time[1])+'-'+str(rtc_time[2])+'  '+str(week[rtc_time[3]])+'\n'+'---< '+str(rtc_time[4])+' : '+str(rtc_time[5])+' : '+str(rtc_time[6])+' >---'+'\n\n'+'temperature: '+str(temperature) + ' C'+'\n'+'humidity: '+str(humidity) + ' %'
        display.set_font(ff)
        display.print(text)
    time.sleep(0.9)
    display.erase()

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/722932.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Redis】五大数据类型

&#x1f3af;Redis 数据类型 &#x1f4ad;Redis支持五种数据类型&#xff1a;String(字符串)&#xff0c;Hash(哈希)&#xff0c;List(列表)&#xff0c;Set(集合)及zset(sorted set有序集合)。 &#x1f4dd;String(字符串) Redis的String类型是一种最基本的数据类型&…

基于OIDC的SSO单点登录

文章目录 什么是SSO&#xff08;Single Sign On&#xff09;单点登录OIDC&#xff08;Open ID Connect&#xff09;SSO服务授权流程&#xff08;OIDC&#xff09;授权模式授权码模式授权码模式授权流程请求授权码过程 授权模式对比总结 什么是SSO&#xff08;Single Sign On&am…

Navicat 备份和恢复MongoDB库的数据

1、前期准备 (1) 有数据的MongoDB数据库old_db、空数据库new_db (2) 准备好MongoDB Tools 前往页面&#xff1a;https://www.mongodb.com/try/download/database-tools 选择所需版本下载并解压到自己想要的目录中&#xff1a; 2、将数据库old_db中的数据备份导出 (1) 对old_db…

多国卫星遥感领域工作人员和专家莅临大势智慧考察交流

7月4日下午&#xff0c;商务部卫星主题研修班&#xff08;后简称“卫星研修班”&#xff09;20余名来自多个国家的卫星遥感相关领域的工作人员和专家莅临武汉大势智慧有限公司&#xff08;后简称“大势智慧”&#xff09;参观考察、交流学习。大势智慧黄先锋博士陪同考察并作交…

学生用的台灯有什么讲究吗?盘点暑假适合写作业的台灯

如今青少年近视的比例越来越大&#xff0c;而且年龄越来越提前了&#xff0c;前不久经过一个小学看到二三年级就已经有孩子开始近视佩戴眼镜。其实造成近视的原因不全是读写作业时的坐姿不标准、学习时间过长、缺少户外的运动等&#xff0c;也包括可能灯光光源的问题造成对于视…

使用QTreeView显示指定目录中的文件,并自定义Header

这次研究了QTreeView的用法&#xff0c;于是想使用QTreeView显示制定目录下的所有子目录和文件。过程中&#xff0c;遇到了几个问题&#xff0c;在此记录一下同时分享给大家&#xff0c;如有不妥之处&#xff0c;还请批评指正&#xff1a; 设置根目录后&#xff0c;仍然会展示…

thinkphp系列vulhub所有漏洞复现ThinkPHP 2.x 任意代码执行漏洞,ThinkPHP5 5.0.22/5.1.29 远程代码执行漏洞

ThinkPHP 2.x 任意代码执行漏洞 漏洞详情&#xff1a; hinkPHP 2.x版本中&#xff0c;使用preg_replace的/e模式匹配路由&#xff1a; $res preg_replace((\w).$depr.([^.$depr.\/])e, $var[\\\1\]"\\2";, implode($depr,$paths));导致用户的输入参数被插入双引号…

力扣 90. 子集 II

题目来源&#xff1a;https://leetcode.cn/problems/subsets-ii/description/ C题解1&#xff1a;由于解集不能包含重复的子集&#xff0c;所以我们先对nums进行排序&#xff0c; 以便后续去重。 采用递归回溯法&#xff0c;对每个子集都即使保存&#xff0c;在完成第一次子集…

一文晓得SaaS、IaaS和 PaaS 是什么,三者的区别是?

接下来我们直接直奔主题 首先&#xff0c;概念走起。 IaaS&#xff1a;基础设施服务&#xff0c; Infrastructure-as-a-service PaaS&#xff1a;平台服务&#xff0c;Platform-as-a-service SaaS&#xff1a;软件服务&#xff0c;Software-as-a-service IaaS 基础设施即服…

【C++】C++11的新特性

文章目录 1. C11简介2. 统一的列表初始化2.1 {}统一初始化2.2 std::initializer_list 3. 声明的新方式和范围for循环3.1 decltype3.2 auto&nullptr&范围for循环 4. STL的变化4.1 新容器4.2 新接口 1. C11简介 ​ 在2003年C标准委员会曾经提交了一份技术勘误表(简称TC1…

Java并发编程面试题

一、线程、进程、程序 进程&#xff1a; 我们把运行中的程序叫做进程,每个进程都会占用内存与CPU资源,进程与进程之间互相独立. 线程&#xff1a; 线程就是进程中的一个执行单元&#xff0c;负责当前进程中程序的执行。一个进程可以包含多个线程。多线程可以提高程序的并行运…

Stable Diffusion 常用主流checkpoint模型

AbyssOrangeMix2 https://civitai.com/models/4437/abyssorangemix2-sfwsoft-nsfw dosmix https://civitai.com/models/6250/dosmix Counterfeit-V3.0 https://civitai.com/models/4468/counterfeit-v30 万象熔炉 | Anything V5/Ink QteaMix 通用Q版模型 https://civitai.c…

Spring Boot 中的监控及使用

Spring Boot 中的监控及使用 Spring Boot 是一个非常流行的 Java 应用程序开发框架&#xff0c;它提供了一种快速构建应用程序的方法。除此之外&#xff0c;Spring Boot 还提供了一系列的监控功能&#xff0c;方便开发人员对应用程序进行监控和管理。本文将讨论 Spring Boot 中…

MachineLearningWu_第1+2章_SupervisedLearningUnsupervisedLearning

x.1 笔记 常见Supervised Learning的app&#xff0c;会有input和label 线性拟合做回归&#xff0c; 分类问题如下&#xff0c;当单个输入但是多个类别信息时可以简化为单轴向&#xff0c; 当分类问题是多输入时&#xff0c;可以简化为特征空间如下&#xff0c; *无监督算法的核…

SiLM27624系列 双通道30V, 5A/5A高速低边门极驱动器介绍

在开关电源系统中&#xff0c;需要利用门极驱动器来有效地驱动功率器件&#xff0c;实现功率器件的快速开关&#xff0c;以减少开关功率损耗、提高系统效率。在 GaN 等新兴的宽带隙功率器件技术中&#xff0c;需要快速的传输延时、精准的延迟匹配、极强的驱动能力以满足系统中高…

移动隔断地板无轨道,只需将轨道安装于天花板上

移动隔断地板无轨道设计可以提供更加灵活的空间划分和布局选择。相较于传统的固定轨道系统&#xff0c;只需将轨道安装在天花板上&#xff0c;就能实现移动隔断的收放和推动。这种设计可以避免地板上的轨道对于日常活动和清洁的干扰&#xff0c;并且减少了地板安装的复杂性。 在…

HDLBits刷题笔记9:Circuits.Sequential Logic.Counters + Shift Registers

Counters Four-bit binary counter module top_module (input clk,input reset, // Synchronous active-high resetoutput reg [3:0] q);always (posedge clk) beginif(reset)q < 0;elseq < q 1;end endmoduleDecade counter 建立一个计数器&#xff0c;从0计数…

二分类结局变量Logistic回归临床模型预测—— 外部数据集验证

1. 介绍 2. 基线特征 3. 单因素多因素logistic回归分析及三线表 4. 构建临床列线图模型 5. 模型评价 6. 外部数据集验证 7. 另一种发文章的办法,分训练集和测试集,分析上述3-6节的内容 外部数据集验证,就是找一个别的数据集,可以是别家医院的,也可是数据库的,但是…

机器视觉初步12:C#入门初步(有代码示例)

文章目录 基础部分概述1. 变量&#xff1a;2. 数据类型&#xff1a;3. 运算符&#xff1a;4. 控制语句&#xff1a;5. 字符串和数组&#xff1a;6. 类型转换&#xff1a;7. 输出和输入&#xff1a;8. 变量命名&#xff1a;9. 函数&#xff1a;10. 枚举值的比较&#xff1a;11. …

红旗软件与派盘互认证成功

近年来,随着数据的不断增长和扩张,云计算、大数据、人工智能等技术已成为数字化转型的推动力。在这个背景下,红旗软件和派盘之间的互认证也成为了企业用户进行数据备份和管理的理想选择。 红旗软件是由中国科学院成立的软件公司,其主要产品有红旗Linux操作系统、红旗开发工…