資料介紹
描述
曾經討厭您必須走到恒溫器以查看室溫是否足夠好,或者您必須在手機上做 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次閱讀
下載排行
本周
- 1SMD LED選型手冊 貼片燈珠
- 5.47 MB | 3次下載 | 免費
- 2加密芯片的一種破解方法和對應加密方案改進設計
- 0.29 MB | 1次下載 | 免費
- 3多功能MPU芯片GC9005數據手冊
- 2.67 MB | 1次下載 | 免費
- 4碳化硅逆變焊機基本產品介紹
- 7.35 MB | 1次下載 | 免費
- 5基本半導體產品在Sic逆變焊機中的應用
- 7.27 MB | 1次下載 | 免費
- 6基本半導體產品在125kW工商業儲能PCS中的應用
- 10.74 MB | 1次下載 | 免費
- 7MOSFET參數解讀
- 1.59 MB | 1次下載 | 2 積分
- 8550W充電機原理圖
- 0.13 MB | 1次下載 | 6 積分
本月
- 1使用單片機實現七人表決器的程序和仿真資料免費下載
- 2.96 MB | 44次下載 | 免費
- 23314A函數發生器維修手冊
- 16.30 MB | 13次下載 | 免費
- 3美的電磁爐維修手冊大全
- 1.56 MB | 9次下載 | 5 積分
- 4STM32F101x8/STM32F101xB手冊
- 1.69 MB | 8次下載 | 1 積分
- 5使用TL431設計電源
- 0.67 MB | 7次下載 | 免費
- 6感應筆電路圖
- 0.06 MB | 7次下載 | 免費
- 7不對稱半橋(AHB)反激變換器的分析與設計
- 0.68 MB | 6次下載 | 1 積分
- 8LZC3106G高性能諧振控制器中文手冊
- 1.29 MB | 5次下載 | 1 積分
總榜
- 1matlab軟件下載入口
- 未知 | 935119次下載 | 10 積分
- 2開源硬件-PMP21529.1-4 開關降壓/升壓雙向直流/直流轉換器 PCB layout 設計
- 1.48MB | 420062次下載 | 10 積分
- 3Altium DXP2002下載入口
- 未知 | 233084次下載 | 10 積分
- 4電路仿真軟件multisim 10.0免費下載
- 340992 | 191367次下載 | 10 積分
- 5十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183335次下載 | 10 積分
- 6labview8.5下載
- 未知 | 81581次下載 | 10 積分
- 7Keil工具MDK-Arm免費下載
- 0.02 MB | 73807次下載 | 10 積分
- 8LabVIEW 8.6下載
- 未知 | 65987次下載 | 10 積分
評論
查看更多