资料介绍
描述
曾经讨厌您必须走到恒温器以查看室温是否足够好,或者您必须在手机上做 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 上分别上传了更详细的信息。
- 树莓派4b原理图下载 118次下载
- 树莓派设计数字温度计免费下载
- 树莓派3和树莓派4的原理图免费下载 89次下载
- 树莓派3和树莓派4的原理图免费下载 222次下载
- 树莓派 Zero W的电路原理图免费下载 114次下载
- 树莓派传感器的使用教程详细概述 27次下载
- 使用树莓派设计智能小车教程之树莓派手机PC控制小车的实验免费下载 22次下载
- 使用树莓派设计智能小车教程之如何进行树莓派模块安装资料免费下载 21次下载
- 树莓派是什么树莓派基本知识介绍详细资料说明
- 树莓派是什么树莓派的简单介绍
- 树莓派是什么树莓派入门教程资料免费下载
- 树莓派传感器教程资料下载 31次下载
- 树莓派(Raspberry Pi)实战指南.pdf 123次下载
- 树莓派3上手 7次下载
- 树莓派装机教程 52次下载
- 虹科工业树莓派应用小技巧 573次阅读
- dfrobotUSB/TTL树莓派GPS模块简介 3211次阅读
- dfrobotArduino 树莓派扩展板简介 2079次阅读
- 浅谈树莓派4的性能及配置 3.9w次阅读
- 浅谈香蕉派与树莓派的不同 2.5w次阅读
- 树莓派与nanopi的对比 5.3w次阅读
- 香橙派和树莓派对比 5.5w次阅读
- 树莓派菜鸟入门攻略 6852次阅读
- 解答树莓派如何开启root账户 6378次阅读
- 树莓派有什么用_树莓派能用来做啥_树莓派新手入门教程 3.3w次阅读
- 树莓派安装系统_树莓派系统安装教程 1.3w次阅读
- 树莓派用什么语言编程_树莓派python编程详解 3.8w次阅读
- 树莓派gpio接口及编程方法 6.4w次阅读
- 树莓派是什么_树莓派的发展历史及主要参数 1w次阅读
- DIY一个树莓派扩展板 7340次阅读
下载排行
本周
- 1山景DSP芯片AP8248A2数据手册
- 1.06 MB | 532次下载 | 免费
- 2RK3399完整板原理图(支持平板,盒子VR)
- 3.28 MB | 339次下载 | 免费
- 3TC358743XBG评估板参考手册
- 1.36 MB | 330次下载 | 免费
- 4DFM软件使用教程
- 0.84 MB | 295次下载 | 免费
- 5元宇宙深度解析—未来的未来-风口还是泡沫
- 6.40 MB | 227次下载 | 免费
- 6迪文DGUS开发指南
- 31.67 MB | 194次下载 | 免费
- 7元宇宙底层硬件系列报告
- 13.42 MB | 182次下载 | 免费
- 8FP5207XR-G1中文应用手册
- 1.09 MB | 178次下载 | 免费
本月
- 1OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 2555集成电路应用800例(新编版)
- 0.00 MB | 33566次下载 | 免费
- 3接口电路图大全
- 未知 | 30323次下载 | 免费
- 4开关电源设计实例指南
- 未知 | 21549次下载 | 免费
- 5电气工程师手册免费下载(新编第二版pdf电子书)
- 0.00 MB | 15349次下载 | 免费
- 6数字电路基础pdf(下载)
- 未知 | 13750次下载 | 免费
- 7电子制作实例集锦 下载
- 未知 | 8113次下载 | 免费
- 8《LED驱动电路设计》 温德尔著
- 0.00 MB | 6656次下载 | 免费
总榜
- 1matlab软件下载入口
- 未知 | 935054次下载 | 免费
- 2protel99se软件下载(可英文版转中文版)
- 78.1 MB | 537798次下载 | 免费
- 3MATLAB 7.1 下载 (含软件介绍)
- 未知 | 420027次下载 | 免费
- 4OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 5Altium DXP2002下载入口
- 未知 | 233046次下载 | 免费
- 6电路仿真软件multisim 10.0免费下载
- 340992 | 191187次下载 | 免费
- 7十天学会AVR单片机与C语言视频教程 下载
- 158M | 183279次下载 | 免费
- 8proe5.0野火版下载(中文版免费下载)
- 未知 | 138040次下载 | 免费
评论
查看更多