用树莓派PICO做一个桌面时钟超详细教程!
创始人
2024-01-31 00:48:04
0

用树莓派PICO做一个可显示时间和温湿度的桌面时钟

    • 一、概述
    • 二、材料准备
      • 1、树莓派PICO
      • 2、DHT11温湿度传感器
      • 3、DS1302时钟模块(选用)
      • 4、SSD1306屏幕
      • 5、其他材料
    • 三、开始
      • 1、连线
      • 2、写程序
        • (1)使用内置RTC函数实现的时钟
        • (2)使用DS1302时钟模块实现的时钟

在这里插入图片描述

代码仓库
1、码云Gitee:https://gitee.com/yangkun_monster/clock.git
2、Github:https://github.com/pifan-open-source-community/clock.git视频教程地址:
哔哩哔哩bilibili:树莓派爱好者基地、玩派VLOG视频VLOG记录:
哔哩哔哩bilibili:玩派VLOG

一、概述

用树莓派PICO做一个桌面时钟,可显示年、月、日、时、分、秒、星期、温度、湿度。时钟分为两种,一种是使用内置RTC函数,另一种是使用DS1302时钟模块,可以根据自己情况选择(时钟模块具有备用电池,可以保证在断电的情况下持续走时)

编程语言: micropython。

二、材料准备

1、树莓派PICO

在这里插入图片描述
PICO接口图
在这里插入图片描述

2、DHT11温湿度传感器

DHT11是一款有已校准数字信号输出的温湿度传感器。 其精度湿度±5%RH, 温度±2℃,量程湿度5~95%RH, 温度-20~+60℃。
在这里插入图片描述

3、DS1302时钟模块(选用)

DS1302时钟芯片是由美国DALLAS公司推出的具有涓细电流充电能力的低功耗实时时钟芯片。它可以对年、月、日、周、时、分、秒进行计时,且具有闰年补偿等多种功能。DS1302芯片包含一个用于存储实时时钟/日历的 31 字节的静态 RAM,可通过简单的串行接口与微处理器通讯,将当前的是时钟存于RAM。DS1302芯片对于少于 31 天的月份月末会自动调整,并会自动对闰年进行校正。
在这里插入图片描述
引脚说明
在这里插入图片描述
寄存器(选看)
在这里插入图片描述
读地址为0x81(秒), 0x83(分), 0x85(时), 0x87(日), 0x89(月), 0x8b(星期), 0x8d(年)
写地址为0x80(秒), 0x82(分), 0x84(时), 0x86(日), 0x88(月), 0x8a(星期), 0x8c(年)

4、SSD1306屏幕

在这里插入图片描述
通信方式为IIC

5、其他材料

面包板
在这里插入图片描述

公对母杜邦线
在这里插入图片描述

三、开始

1、连线

DTH11
VCC
GND
DATAGP0
SSD1306
VCC
GND
SCLGP3
SDAGP2
DS1302
VCC
GND
CLKGP12
DATGP13
RSTGP14

在这里插入图片描述

2、写程序

(1)使用内置RTC函数实现的时钟

该时钟在PICO连接电脑使用时可以自动读取电脑的时间,在PICO断电后时钟会暂停,不能持续走时。

from machine import RTC
from machine import Pin
from machine import I2C
from ssd1306 import SSD1306_I2C
from machine import Timer
import dhtdef clock_time(tim):timee=clockk.datetime()oled.fill(0)oled.text("Date:",0,0)oled.text(str(timee[0])+'-'+str(timee[1])+'-'+str(timee[2])+'-'+week[timee[3]],0,10)oled.text(str(timee[4])+'-'+str(timee[5])+'-'+str(timee[6]),0,20)d.measure()oled.text("Temperature:"+str(d.temperature())+'C',0,40)oled.text("Humidity:"+str(d.humidity())+'%',0,50)oled.show() i2c=I2C(1,sda=Pin(2),scl=Pin(3))
oled=SSD1306_I2C(128,64,i2c,addr=0X3c)week=['Mon','Tues','Wed','Thur','Fri','Sat','Sun']
clockk=RTC()
#clockk.datetime((2022,10,30,6,17,25,0,0))#设置初始时间,年、月、日、星期、时、分、秒d=dht.DHT11(Pin(0))tim=Timer(-1)
tim.init(period=300,mode=Timer.PERIODIC,callback=clock_time)

在这里插入图片描述

(2)使用DS1302时钟模块实现的时钟

时钟模块具有备用电池,可以保证在断电的情况下持续走时

主程序

from machine import Pin
from machine import I2C
from ssd1306 import SSD1306_I2C
from machine import Timer
import dht
from DS1302 import DS1302def clock_time(tim):timee=ds.DateTime()oled.fill(0)oled.text("Date:",0,0)oled.text(str(timee[0])+'-'+str(timee[1])+'-'+str(timee[2])+'-'+week[timee[3]],0,10)oled.text(str(timee[4])+'-'+str(timee[5])+'-'+str(timee[6]),0,20)d.measure()oled.text("Temperature:"+str(d.temperature())+'C',0,40)oled.text("Humidity:"+str(d.humidity())+'%',0,50)oled.show() i2c=I2C(1,sda=Pin(2),scl=Pin(3))
oled=SSD1306_I2C(128,64,i2c,addr=0X3c)week=['Mon','Tues','Wed','Thur','Fri','Sat','Sun']d=dht.DHT11(Pin(0))
ds = DS1302(Pin(12),Pin(13),Pin(14))
#ds.SetTime(2022,11,12,5,20,03,30)#设置初始时间,年、月、日、星期、时、分、秒
tim=Timer(-1)
tim.init(period=300,mode=Timer.PERIODIC,callback=clock_time)

DS1302库

'''DS1302 RTC driveAuthor: shaoziyangDate:   2018.3http://www.micropython.org.cn
'''
from machine import *DS1302_REG_SECOND = (0x80)
DS1302_REG_MINUTE = (0x82)
DS1302_REG_HOUR   = (0x84)
DS1302_REG_DAY    = (0x86)
DS1302_REG_MONTH  = (0x88)
DS1302_REG_WEEKDAY= (0x8A)
DS1302_REG_YEAR   = (0x8C)
DS1302_REG_WP     = (0x8E)
DS1302_REG_CTRL   = (0x90)
DS1302_REG_RAM    = (0xC0)class DS1302:def __init__(self, clk, dio, cs):self.clk = clkself.dio = dioself.cs  = csself.clk.init(Pin.OUT)self.cs.init(Pin.OUT)def DecToHex(self, dat):return (dat//10) * 16 + (dat%10)def HexToDec(self, dat):return (dat//16) * 10 + (dat%16)def write_byte(self, dat):self.dio.init(Pin.OUT)for i in range(8):self.dio.value((dat >> i) & 1)self.clk.value(1)self.clk.value(0)def read_byte(self):d = 0self.dio.init(Pin.IN)for i in range(8):d = d | (self.dio.value()<

在这里插入图片描述

在这里插入图片描述

相关内容

热门资讯

喜欢穿一身黑的男生性格(喜欢穿... 今天百科达人给各位分享喜欢穿一身黑的男生性格的知识,其中也会对喜欢穿一身黑衣服的男人人好相处吗进行解...
发春是什么意思(思春和发春是什... 本篇文章极速百科给大家谈谈发春是什么意思,以及思春和发春是什么意思对应的知识点,希望对各位有所帮助,...
网络用语zl是什么意思(zl是... 今天给各位分享网络用语zl是什么意思的知识,其中也会对zl是啥意思是什么网络用语进行解释,如果能碰巧...
为什么酷狗音乐自己唱的歌不能下... 本篇文章极速百科小编给大家谈谈为什么酷狗音乐自己唱的歌不能下载到本地?,以及为什么酷狗下载的歌曲不是...
华为下载未安装的文件去哪找(华... 今天百科达人给各位分享华为下载未安装的文件去哪找的知识,其中也会对华为下载未安装的文件去哪找到进行解...
怎么往应用助手里添加应用(应用... 今天百科达人给各位分享怎么往应用助手里添加应用的知识,其中也会对应用助手怎么添加微信进行解释,如果能...
家里可以做假山养金鱼吗(假山能... 今天百科达人给各位分享家里可以做假山养金鱼吗的知识,其中也会对假山能放鱼缸里吗进行解释,如果能碰巧解...
四分五裂是什么生肖什么动物(四... 本篇文章极速百科小编给大家谈谈四分五裂是什么生肖什么动物,以及四分五裂打一生肖是什么对应的知识点,希...
一帆风顺二龙腾飞三阳开泰祝福语... 本篇文章极速百科给大家谈谈一帆风顺二龙腾飞三阳开泰祝福语,以及一帆风顺二龙腾飞三阳开泰祝福语结婚对应...
美团联名卡审核成功待激活(美团... 今天百科达人给各位分享美团联名卡审核成功待激活的知识,其中也会对美团联名卡审核未通过进行解释,如果能...