電子發(fā)燒友App

硬聲App

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示
創(chuàng)作
電子發(fā)燒友網(wǎng)>電子資料下載>電子資料>使用樹莓派的辦公時鐘

使用樹莓派的辦公時鐘

2022-11-11 | zip | 2.36 MB | 次下載 | 免費

資料介紹

描述

曾經(jīng)討厭您必須走到恒溫器以查看室溫是否足夠好,或者您必須在手機上做 5 種不同的滑動手勢才能訪問天氣應(yīng)用程序,只是為了了解您是否需要當(dāng)您想外出時,穿夾克還是只穿 T 恤?該解決方案將這些東西統(tǒng)一到一個小而有趣的項目中,您可以在其中一目了然地獲得所需的所有數(shù)據(jù)。

介紹

時鐘有兩個視圖:“數(shù)字時鐘”和“溫度”視圖,其中顯示 DHT11 傳感器檢索到的當(dāng)前內(nèi)部溫度以及從連接的 IP 地址解析的當(dāng)前位置的天氣(如果存在)。如果時鐘無法解析兩個溫度中的任何一個,它將顯示兩個破折號作為占位符。

該應(yīng)用程序還有一個可選網(wǎng)頁,可以托管在 Apache PHP 服務(wù)器上,并具有個性化選項,例如在屏幕上顯示自定義時間和更改報告天氣的當(dāng)前位置。

?

該時鐘還利用 PIR 傳感器僅在檢測到運動時在屏幕上顯示數(shù)據(jù),通過延遲例行數(shù)據(jù)檢查直到再次檢測到運動來節(jié)省能源并減少 CPU 使用率。

軟件要求:

  • python3 - 通常預(yù)裝在 RPi 上
  • 用于 python3 的 Adafruit_DHT - sudo pip3 install Adafruit_Python_DHT
  • python3 的 RPi.GPIO - sudo apt install python3-rpi.gpio
  • wpa_supplicant - 用于 RPi 上的互聯(lián)網(wǎng)連接

安裝

注意:這里引用的所有管腳都是BOARD型管腳,你可以在任何管腳上連接部件,只要你改變代碼中的管腳號常數(shù),這樣程序就可以工作了。

1.復(fù)制 RPi 上的項目文件,從鏈接的 Github 存儲庫下載,或從文檔末尾的文本框中復(fù)制和粘貼。

2.1。將面包板上的 DHT11 與任何接地引腳(我使用引腳 14)上的 GND、引腳 12 上的信號和引腳 1(3.3V)上的 VCC 連接。我們?yōu)樾枰唠妷旱牟考A袅硗鈨蓚€ 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.安裝“軟件要求”一節(jié)中提到的所需 Python 包。

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

python3 main_loop.py

可選 - 時鐘定制網(wǎng)頁

7.使用 PHP 安裝 apache2,

8.從 Github 存儲庫或本文檔末尾的文本框中復(fù)制 Web 文件到 /var/www/html 目錄。

在啟動時運行應(yīng)用程序

使用任何文本編輯器編輯 /etc/rc.local 文件,并在通常由“exit 0”組成的最后一行之前添加以下行,并將 替換為您復(fù)制文件的位置:

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

“watch.log”文件將存儲程序輸出的所有內(nèi)容。

在我的系統(tǒng)上,由于我將所有程序文件移動到一個名為“watch”的目錄中,因此將是:

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

代碼說明

每個組件都放置在一個單獨的模塊中以防止混淆,并且代碼幾乎在每一行上都有注釋,因此您可以更好地了解所有內(nèi)容。

第一個也是主要進程是“ main_loop.py ”,它管理所有其他模塊、啟動實例并指定設(shè)置。將顯示在屏幕上的數(shù)據(jù)存儲為低電壓和高電壓值的整數(shù)矩陣,因為屏幕是只有一種顏色的 LED 矩陣,而 LED 只有兩種狀態(tài),開或關(guān)。該模塊還包含用于解析字符以使其不會溢出的代碼,或?qū)ξ礄z索到所請求數(shù)據(jù)的情況進行驗證。在這里,在無限循環(huán)中,有多個檢查 PIR 傳感器是否檢測到運動、環(huán)境變量是否更改、網(wǎng)頁是否更改了所用數(shù)據(jù)的設(shè)置,或者自上次檢查以來經(jīng)過的時間是否足夠長以啟動另一個例程傳感器和 API 的數(shù)據(jù)驗證。

第二個最重要的模塊“ routine.py ”每次在配置設(shè)置發(fā)生更改時由主進程在單獨的線程中調(diào)用,通常由 Apache PHP 服務(wù)器托管的網(wǎng)頁界面更改,或每 5 分鐘更改一次以保持顯示的數(shù)據(jù)更新。它從wttr.in API 中檢索配置中指定位置的天氣數(shù)據(jù),或者如果沒有自定義設(shè)置,則通過當(dāng)前 IP 地址位置檢索數(shù)據(jù)。此外,對于時間同步,它使用來自worldtimeapi.org的數(shù)據(jù). 兩個進程之間的數(shù)據(jù)通過環(huán)境變量發(fā)送,時鐘上顯示的時間存儲為一對系統(tǒng)時間戳-時鐘時間戳,在顯示自定義時間(自定義時間)時更容易計算兩者之間的差異可以在時鐘設(shè)置網(wǎng)頁上設(shè)置)。

screen.py ”模塊用于LED矩陣屏的信息顯示,方便信號的發(fā)送,在“draw”函數(shù)中只取一個參數(shù),就是我們要顯示的矩陣。“延遲”函數(shù)最初使用對操作系統(tǒng)的睡眠調(diào)用,但收到的延遲太大(最小約為 8 毫秒),因此我將自己限制為在一段時間循環(huán)中不做任何事情的選項(它CPU 的成本更高,但它是唯一的解決方案,因此我們可以在顯示器上獲得不錯的刷新率)。

chars.py ”模塊用于將字符存儲在內(nèi)存中,以便更快地處理并將字符放入視圖矩陣的不同位置。字母以 1 和 0 值的矩陣形式存儲在文件中,文件名就是字符本身。有大小數(shù)字,位于“big_numbers”和“small_numbers”文件夾中。

對 LED 矩陣進行逆向工程

我訂購的 16x16 OKY3525-1 的尺寸是標(biāo)準 8x8 矩陣顯示器的 4 倍,而串行接口則需要更少的引腳來控制整個顯示器。我得到的驚喜是它沒有任何數(shù)據(jù)表、說明或原理圖。因此,為了擴展項目并了解更多內(nèi)容,我嘗試自己獲取原理圖。幸運的是,這 4 個數(shù)字電路上有原始銘文,因此我可以瀏覽原理圖以了解它們?nèi)绾螀f(xié)同工作。我在“參考”部分附上了 2 個數(shù)據(jù)表。

萬用表和74HC138 datasheet,我發(fā)現(xiàn)用同一型號的兩個電路選線,使用D、C、B和A信號(0x0000-表示第一行,去0x1111-第16行,這是最后一個)。連接到第一個和第二個 74HC138 的 D 引腳選擇其中一個,因此從那里,輸出數(shù)量從 8 個增加到 16 個輸出。同時,另外兩個74HC595電路用DI、CLK、LAT信號在當(dāng)前行進行列選擇,這向我證實了這個顯示器使用了D鎖存型電路(信號發(fā)送和存儲在電路中,直到鎖存信號,當(dāng)它們一次全部顯示出來時)。

我不明白的一件事是他們?yōu)槭裁催x擇將主復(fù)位信號連接到 VCC 并將輸出使能連接到 GND,因為這兩個信號給程序員更多的自由,所以顯示器關(guān)閉了整條線路,并提供了更平滑的轉(zhuǎn)換行顯示之間。

生成的原理圖、時序圖(以獲取有關(guān)如何發(fā)送信號的示例)和用于將正確信號發(fā)送到顯示器的模塊附在下面。我在這個 Github repo 上分別上傳了更詳細的信息。

?


下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評論

查看更多

下載排行

本周

  1. 1山景DSP芯片AP8248A2數(shù)據(jù)手冊
  2. 1.06 MB  |  532次下載  |  免費
  3. 2RK3399完整板原理圖(支持平板,盒子VR)
  4. 3.28 MB  |  339次下載  |  免費
  5. 3TC358743XBG評估板參考手冊
  6. 1.36 MB  |  330次下載  |  免費
  7. 4DFM軟件使用教程
  8. 0.84 MB  |  295次下載  |  免費
  9. 5元宇宙深度解析—未來的未來-風(fēng)口還是泡沫
  10. 6.40 MB  |  227次下載  |  免費
  11. 6迪文DGUS開發(fā)指南
  12. 31.67 MB  |  194次下載  |  免費
  13. 7元宇宙底層硬件系列報告
  14. 13.42 MB  |  182次下載  |  免費
  15. 8FP5207XR-G1中文應(yīng)用手冊
  16. 1.09 MB  |  178次下載  |  免費

本月

  1. 1OrCAD10.5下載OrCAD10.5中文版軟件
  2. 0.00 MB  |  234315次下載  |  免費
  3. 2555集成電路應(yīng)用800例(新編版)
  4. 0.00 MB  |  33566次下載  |  免費
  5. 3接口電路圖大全
  6. 未知  |  30323次下載  |  免費
  7. 4開關(guān)電源設(shè)計實例指南
  8. 未知  |  21549次下載  |  免費
  9. 5電氣工程師手冊免費下載(新編第二版pdf電子書)
  10. 0.00 MB  |  15349次下載  |  免費
  11. 6數(shù)字電路基礎(chǔ)pdf(下載)
  12. 未知  |  13750次下載  |  免費
  13. 7電子制作實例集錦 下載
  14. 未知  |  8113次下載  |  免費
  15. 8《LED驅(qū)動電路設(shè)計》 溫德爾著
  16. 0.00 MB  |  6656次下載  |  免費

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935054次下載  |  免費
  3. 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
  4. 78.1 MB  |  537798次下載  |  免費
  5. 3MATLAB 7.1 下載 (含軟件介紹)
  6. 未知  |  420027次下載  |  免費
  7. 4OrCAD10.5下載OrCAD10.5中文版軟件
  8. 0.00 MB  |  234315次下載  |  免費
  9. 5Altium DXP2002下載入口
  10. 未知  |  233046次下載  |  免費
  11. 6電路仿真軟件multisim 10.0免費下載
  12. 340992  |  191187次下載  |  免費
  13. 7十天學(xué)會AVR單片機與C語言視頻教程 下載
  14. 158M  |  183279次下載  |  免費
  15. 8proe5.0野火版下載(中文版免費下載)
  16. 未知  |  138040次下載  |  免費