电子发烧友App

硬声App

0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示
电子发烧友网>电子资料下载>电子资料>使用树莓派的办公时钟

使用树莓派的办公时钟

2022-11-11 | zip | 2.36 MB | 次下载 | 免费

资料介绍

描述

曾经讨厌您必须走到恒温器以查看室温是否足够好,或者您必须在手机上做 5 种不同的滑动手势才能访问天气应用程序,只是为了了解您是否需要当您想外出时,穿夹克还是只穿 T 恤?该解决方案将这些东西统一到一个小而有趣的项目中,您可以在其中一目了然地获得所需的所有数据。

介绍

时钟有两个视图:“数字时钟”和“温度”视图,其中显示 DHT11 传感器检索到的当前内部温度以及从连接的 IP 地址解析的当前位置的天气(如果存在)。如果时钟无法解析两个温度中的任何一个,它将显示两个破折号作为占位符。

该应用程序还有一个可选网页,可以托管在 Apache PHP 服务器上,并具有个性化选项,例如在屏幕上显示自定义时间和更改报告天气的当前位置。

 

该时钟还利用 PIR 传感器仅在检测到运动时在屏幕上显示数据,通过延迟例行数据检查直到再次检测到运动来节省能源并减少 CPU 使用率。

软件要求:

  • python3 - 通常预装在 RPi 上
  • 用于 python3 的 Adafruit_DHT - sudo pip3 install Adafruit_Python_DHT
  • python3 的 RPi.GPIO - sudo apt install python3-rpi.gpio
  • wpa_supplicant - 用于 RPi 上的互联网连接

安装

注意:这里引用的所有管脚都是BOARD型管脚,你可以在任何管脚上连接部件,只要你改变代码中的管脚号常数,这样程序就可以工作了。

1.复制 RPi 上的项目文件,从链接的 Github 存储库下载,或从文档末尾的文本框中复制和粘贴。

2.1。将面包板上的 DHT11 与任何接地引脚(我使用引脚 14)上的 GND、引脚 12 上的信号和引脚 1(3.3V)上的 VCC 连接。我们为需要更高电压的部件保留另外两个 5V 引脚。

2.2. 同样对于面包板上的 DHT11 传感器,在 VCC 和 Signal 引脚之间连接一个 5kΩ 或 10kΩ 电阻,因此默认情况下信号电平保持高电平。

3.将 PIR 传感器与任何接地引脚(我使用引脚 9)上的 GND、引脚 7 上的 Dout 和 5V 电源引脚(我使用引脚 4)上的 VCC 连接。

4.将 16x16 矩阵显示 VCC 引脚连接到 5V 引脚(我使用引脚 2),GND 到任何接地引脚(我使用 6),然后如下:LAT CLK DI GABCD - 在引脚 32、33、23 上, 21、19、15、13、11。

5.安装“软件要求”一节中提到的所需 Python 包。

6.使用以下命令运行程序:

python3 main_loop.py

可选 - 时钟定制网页

7.使用 PHP 安装 apache2,

8.从 Github 存储库或本文档末尾的文本框中复制 Web 文件到 /var/www/html 目录。

在启动时运行应用程序

使用任何文本编辑器编辑 /etc/rc.local 文件,并在通常由“exit 0”组成的最后一行之前添加以下行,并将 替换为您复制文件的位置:

sudo bash -c "python3 //main_loop.py > //watch.log 2>&1" &

“watch.log”文件将存储程序输出的所有内容。

在我的系统上,由于我将所有程序文件移动到一个名为“watch”的目录中,因此将是:

sudo bash -c "python3 /home/pi/watch/main_loop.py > /home/pi/watch/watch.log 2>&1" &

代码说明

每个组件都放置在一个单独的模块中以防止混淆,并且代码几乎在每一行上都有注释,因此您可以更好地了解所有内容。

第一个也是主要进程是“ main_loop.py ”,它管理所有其他模块、启动实例并指定设置。将显示在屏幕上的数据存储为低电压和高电压值的整数矩阵,因为屏幕是只有一种颜色的 LED 矩阵,而 LED 只有两种状态,开或关。该模块还包含用于解析字符以使其不会溢出的代码,或对未检索到所请求数据的情况进行验证。在这里,在无限循环中,有多个检查 PIR 传感器是否检测到运动、环境变量是否更改、网页是否更改了所用数据的设置,或者自上次检查以来经过的时间是否足够长以启动另一个例程传感器和 API 的数据验证。

第二个最重要的模块“ routine.py ”每次在配置设置发生更改时由主进程在单独的线程中调用,通常由 Apache PHP 服务器托管的网页界面更改,或每 5 分钟更改一次以保持显示的数据更新。它从wttr.in API 中检索配置中指定位置的天气数据,或者如果没有自定义设置,则通过当前 IP 地址位置检索数据。此外,对于时间同步,它使用来自worldtimeapi.org的数据. 两个进程之间的数据通过环境变量发送,时钟上显示的时间存储为一对系统时间戳-时钟时间戳,在显示自定义时间(自定义时间)时更容易计算两者之间的差异可以在时钟设置网页上设置)。

screen.py ”模块用于LED矩阵屏的信息显示,方便信号的发送,在“draw”函数中只取一个参数,就是我们要显示的矩阵。“延迟”函数最初使用对操作系统的睡眠调用,但收到的延迟太大(最小约为 8 毫秒),因此我将自己限制为在一段时间循环中不做任何事情的选项(它CPU 的成本更高,但它是唯一的解决方案,因此我们可以在显示器上获得不错的刷新率)。

chars.py ”模块用于将字符存储在内存中,以便更快地处理并将字符放入视图矩阵的不同位置。字母以 1 和 0 值的矩阵形式存储在文件中,文件名就是字符本身。有大小数字,位于“big_numbers”和“small_numbers”文件夹中。

对 LED 矩阵进行逆向工程

我订购的 16x16 OKY3525-1 的尺寸是标准 8x8 矩阵显示器的 4 倍,而串行接口则需要更少的引脚来控制整个显示器。我得到的惊喜是它没有任何数据表、说明或原理图。因此,为了扩展项目并了解更多内容,我尝试自己获取原理图。幸运的是,这 4 个数字电路上有原始铭文,因此我可以浏览原理图以了解它们如何协同工作。我在“参考”部分附上了 2 个数据表。

万用表和74HC138 datasheet,我发现用同一型号的两个电路选线,使用D、C、B和A信号(0x0000-表示第一行,去0x1111-第16行,这是最后一个)。连接到第一个和第二个 74HC138 的 D 引脚选择其中一个,因此从那里,输出数量从 8 个增加到 16 个输出。同时,另外两个74HC595电路用DI、CLK、LAT信号在当前行进行列选择,这向我证实了这个显示器使用了D锁存型电路(信号发送和存储在电路中,直到锁存信号,当它们一次全部显示出来时)。

我不明白的一件事是他们为什么选择将主复位信号连接到 VCC 并将输出使能连接到 GND,因为这两个信号给程序员更多的自由,所以显示器关闭了整条线路,并提供了更平滑的转换行显示之间。

生成的原理图、时序图(以获取有关如何发送信号的示例)和用于将正确信号发送到显示器的模块附在下面。我在这个 Github repo 上分别上传了更详细的信息

 


下载该资料的人也在下载 下载该资料的人还在阅读
更多 >

评论

查看更多

下载排行

本周

  1. 1PCB板EMC/EMI的设计技巧
  2. 0.20 MB   |  3次下载  |  免费
  3. 22024PMIC市场洞察
  4. 2.23 MB   |  2次下载  |  免费
  5. 3UC3842工作原理及开关电源电路
  6. 0.08 MB   |  1次下载  |  免费
  7. 4JFG-AS02微量程扭矩传感器数据表
  8. 0.32 MB   |  1次下载  |  免费
  9. 5JFG-3D02三维力传感器数据表
  10. 0.58 MB   |  1次下载  |  免费
  11. 6LTH7充电电路和锂电池升压5V输出电路原理图
  12. 0.04 MB   |  1次下载  |  免费
  13. 7TMR技术在电流传感器中的应用
  14. 616.47 KB  |  1次下载  |  免费
  15. 8LM5157-Q1反激式转换器评估模块
  16. 3.18MB   |  次下载  |  免费

本月

  1. 1XL4015+LM358恒压恒流电路图
  2. 0.38 MB   |  148次下载  |  1 积分
  3. 2新概念模拟电路第四册信号处理电路电子书免费下载
  4. 10.69 MB  |  65次下载  |  免费
  5. 3PCB布线和布局电路设计规则
  6. 0.40 MB   |  30次下载  |  免费
  7. 4智能门锁原理图
  8. 0.39 MB   |  13次下载  |  免费
  9. 5GB/T4706.1-2024 家用和类似用途电器的安全第1部分:通用要求
  10. 7.43 MB   |  11次下载  |  1 积分
  11. 6JESD79-5C_v1.30-2024 内存技术规范
  12. 2.71 MB   |  10次下载  |  免费
  13. 7elmo直线电机驱动调试细则
  14. 4.76 MB   |  9次下载  |  6 积分
  15. 8PC1013三合一快充数据线充电芯片介绍
  16. 1.03 MB   |  7次下载  |  免费

总榜

  1. 1matlab软件下载入口
  2. 未知  |  935115次下载  |  10 积分
  3. 2开源硬件-PMP21529.1-4 开关降压/升压双向直流/直流转换器 PCB layout 设计
  4. 1.48MB  |  420061次下载  |  10 积分
  5. 3Altium DXP2002下载入口
  6. 未知  |  233084次下载  |  10 积分
  7. 4电路仿真软件multisim 10.0免费下载
  8. 340992  |  191367次下载  |  10 积分
  9. 5十天学会AVR单片机与C语言视频教程 下载
  10. 158M  |  183330次下载  |  10 积分
  11. 6labview8.5下载
  12. 未知  |  81581次下载  |  10 积分
  13. 7Keil工具MDK-Arm免费下载
  14. 0.02 MB  |  73806次下载  |  10 积分
  15. 8LabVIEW 8.6下载
  16. 未知  |  65985次下载  |  10 积分