資料介紹
描述
曾經(jīng)討厭您必須走到恒溫器以查看室溫是否足夠好,或者您必須在手機(jī)上做 5 種不同的滑動(dòng)手勢(shì)才能訪問(wèn)天氣應(yīng)用程序,只是為了了解您是否需要當(dāng)您想外出時(shí),穿夾克還是只穿 T 恤?該解決方案將這些東西統(tǒng)一到一個(gè)小而有趣的項(xiàng)目中,您可以在其中一目了然地獲得所需的所有數(shù)據(jù)。
介紹
該時(shí)鐘有兩個(gè)視圖:“數(shù)字時(shí)鐘”和“溫度”視圖,其中顯示 DHT11 傳感器檢索到的當(dāng)前內(nèi)部溫度以及從連接的 IP 地址解析的當(dāng)前位置的天氣(如果存在)。如果時(shí)鐘無(wú)法解析兩個(gè)溫度中的任何一個(gè),它將顯示兩個(gè)破折號(hào)作為占位符。
該應(yīng)用程序還有一個(gè)可選網(wǎng)頁(yè),可以托管在 Apache PHP 服務(wù)器上,并具有個(gè)性化選項(xiàng),例如在屏幕上顯示自定義時(shí)間和更改報(bào)告天氣的當(dāng)前位置。
該時(shí)鐘還利用 PIR 傳感器僅在檢測(cè)到運(yùn)動(dòng)時(shí)在屏幕上顯示數(shù)據(jù),通過(guò)延遲例行數(shù)據(jù)檢查直到再次檢測(cè)到運(yùn)動(dòng)來(lái)節(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型管腳,你可以在任何管腳上連接部件,只要你改變代碼中的管腳號(hào)常數(shù),這樣程序就可以工作了。
1.復(fù)制 RPi 上的項(xiàng)目文件,從鏈接的 Github 存儲(chǔ)庫(kù)下載,或從文檔末尾的文本框中復(fù)制和粘貼。
2.1。將面包板上的 DHT11 與任何接地引腳(我使用引腳 14)上的 GND、引腳 12 上的信號(hào)和引腳 1(3.3V)上的 VCC 連接。我們?yōu)樾枰唠妷旱牟考A袅硗鈨蓚€(gè) 5V 引腳。
2.2. 同樣對(duì)于面包板上的 DHT11 傳感器,在 VCC 和 Signal 引腳之間連接一個(gè) 5kΩ 或 10kΩ 電阻,因此默認(rèn)情況下信號(hào)電平保持高電平。
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.使用以下命令運(yùn)行程序:
python3 main_loop.py
可選 - 時(shí)鐘定制網(wǎng)頁(yè):
7.使用 PHP 安裝 apache2,
8.從 Github 存儲(chǔ)庫(kù)或本文檔末尾的文本框中復(fù)制 Web 文件到 /var/www/html 目錄。
在啟動(dòng)時(shí)運(yùn)行應(yīng)用程序
使用任何文本編輯器編輯 /etc/rc.local 文件,并在通常由“exit 0”組成的最后一行之前添加以下行,并將
sudo bash -c "python3 //main_loop.py > //watch.log 2>&1" &
“watch.log”文件將存儲(chǔ)程序輸出的所有內(nèi)容。
在我的系統(tǒng)上,由于我將所有程序文件移動(dòng)到一個(gè)名為“watch”的目錄中,因此將是:
sudo bash -c "python3 /home/pi/watch/main_loop.py > /home/pi/watch/watch.log 2>&1" &
代碼說(shuō)明
每個(gè)組件都放置在一個(gè)單獨(dú)的模塊中以防止混淆,并且代碼幾乎在每一行上都有注釋,因此您可以更好地了解所有內(nèi)容。
第一個(gè)也是主要進(jìn)程是“ main_loop.py ”,它管理所有其他模塊、啟動(dòng)實(shí)例并指定設(shè)置。將顯示在屏幕上的數(shù)據(jù)存儲(chǔ)為低電壓和高電壓值的整數(shù)矩陣,因?yàn)槠聊皇侵挥幸环N顏色的 LED 矩陣,而 LED 只有兩種狀態(tài),開(kāi)或關(guān)。該模塊還包含用于解析字符以使其不會(huì)溢出的代碼,或?qū)ξ礄z索到所請(qǐng)求數(shù)據(jù)的情況進(jìn)行驗(yàn)證。在這里,在無(wú)限循環(huán)中,有多個(gè)檢查 PIR 傳感器是否檢測(cè)到運(yùn)動(dòng)、環(huán)境變量是否更改、網(wǎng)頁(yè)是否更改了所用數(shù)據(jù)的設(shè)置,或者自上次檢查以來(lái)經(jīng)過(guò)的時(shí)間是否足夠長(zhǎng)以啟動(dòng)另一個(gè)例程傳感器和 API 的數(shù)據(jù)驗(yàn)證。
第二個(gè)最重要的模塊“ routine.py ”每次在配置設(shè)置發(fā)生更改時(shí)由主進(jìn)程在單獨(dú)的線程中調(diào)用,通常由 Apache PHP 服務(wù)器托管的網(wǎng)頁(yè)界面更改,或每 5 分鐘更改一次以保持顯示的數(shù)據(jù)更新。它從wttr.in API 中檢索配置中指定位置的天氣數(shù)據(jù),或者如果沒(méi)有自定義設(shè)置,則通過(guò)當(dāng)前 IP 地址位置檢索數(shù)據(jù)。此外,對(duì)于時(shí)間同步,它使用來(lái)自worldtimeapi.org的數(shù)據(jù). 兩個(gè)進(jìn)程之間的數(shù)據(jù)通過(guò)環(huán)境變量發(fā)送,時(shí)鐘上顯示的時(shí)間存儲(chǔ)為一對(duì)系統(tǒng)時(shí)間戳-時(shí)鐘時(shí)間戳,在顯示自定義時(shí)間(自定義時(shí)間)時(shí)更容易計(jì)算兩者之間的差異可以在時(shí)鐘設(shè)置網(wǎng)頁(yè)上設(shè)置)。
“ screen.py ”模塊用于LED矩陣屏的信息顯示,方便信號(hào)的發(fā)送,在“draw”函數(shù)中只取一個(gè)參數(shù),就是我們要顯示的矩陣。“延遲”函數(shù)最初使用對(duì)操作系統(tǒng)的睡眠調(diào)用,但收到的延遲太大(最小約為 8 毫秒),因此我將自己限制為在一段時(shí)間循環(huán)中不做任何事情的選項(xiàng)(它CPU 的成本更高,但它是唯一的解決方案,因此我們可以在顯示器上獲得不錯(cuò)的刷新率)。
“ chars.py ”模塊用于將字符存儲(chǔ)在內(nèi)存中,以便更快地處理并將字符放入視圖矩陣的不同位置。字母以 1 和 0 值的矩陣形式存儲(chǔ)在文件中,文件名就是字符本身。有大小數(shù)字,位于“big_numbers”和“small_numbers”文件夾中。
對(duì) LED 矩陣進(jìn)行逆向工程
我訂購(gòu)的 16x16 OKY3525-1 的尺寸是標(biāo)準(zhǔn) 8x8 矩陣顯示器的 4 倍,而串行接口則需要更少的引腳來(lái)控制整個(gè)顯示器。我得到的驚喜是它沒(méi)有任何數(shù)據(jù)表、說(shuō)明或原理圖。因此,為了擴(kuò)展項(xiàng)目并了解更多內(nèi)容,我嘗試自己獲取原理圖。幸運(yùn)的是,這 4 個(gè)數(shù)字電路上有原始銘文,因此我可以瀏覽原理圖以了解它們?nèi)绾螀f(xié)同工作。我在“參考”部分附上了 2 個(gè)數(shù)據(jù)表。
用萬(wàn)用表和74HC138 datasheet,我發(fā)現(xiàn)用同一型號(hào)的兩個(gè)電路選線,使用D、C、B和A信號(hào)(0x0000-表示第一行,去0x1111-第16行,這是最后一個(gè))。連接到第一個(gè)和第二個(gè) 74HC138 的 D 引腳選擇其中一個(gè),因此從那里,輸出數(shù)量從 8 個(gè)增加到 16 個(gè)輸出。同時(shí),另外兩個(gè)74HC595電路用DI、CLK、LAT信號(hào)在當(dāng)前行進(jìn)行列選擇,這向我證實(shí)了這個(gè)顯示器使用了D鎖存型電路(信號(hào)發(fā)送和存儲(chǔ)在電路中,直到鎖存信號(hào),當(dāng)它們一次全部顯示出來(lái)時(shí))。
我不明白的一件事是他們?yōu)槭裁催x擇將主復(fù)位信號(hào)連接到 VCC 并將輸出使能連接到 GND,因?yàn)檫@兩個(gè)信號(hào)給程序員更多的自由,所以顯示器關(guān)閉了整條線路,并提供了更平滑的轉(zhuǎn)換行顯示之間。
生成的原理圖、時(shí)序圖(以獲取有關(guān)如何發(fā)送信號(hào)的示例)和用于將正確信號(hào)發(fā)送到顯示器的模塊附在下面。我在這個(gè) Github repo 上分別上傳了更詳細(xì)的信息。
?
- 樹(shù)莓派4b原理圖下載 124次下載
- 樹(shù)莓派設(shè)計(jì)數(shù)字溫度計(jì)免費(fèi)下載
- 樹(shù)莓派3和樹(shù)莓派4的原理圖免費(fèi)下載 92次下載
- 樹(shù)莓派3和樹(shù)莓派4的原理圖免費(fèi)下載 224次下載
- 樹(shù)莓派 Zero W的電路原理圖免費(fèi)下載 115次下載
- 樹(shù)莓派傳感器的使用教程詳細(xì)概述 27次下載
- 使用樹(shù)莓派設(shè)計(jì)智能小車教程之樹(shù)莓派手機(jī)PC控制小車的實(shí)驗(yàn)免費(fèi)下載 22次下載
- 使用樹(shù)莓派設(shè)計(jì)智能小車教程之如何進(jìn)行樹(shù)莓派模塊安裝資料免費(fèi)下載 21次下載
- 樹(shù)莓派是什么樹(shù)莓派基本知識(shí)介紹詳細(xì)資料說(shuō)明
- 樹(shù)莓派是什么樹(shù)莓派的簡(jiǎn)單介紹
- 樹(shù)莓派是什么樹(shù)莓派入門教程資料免費(fèi)下載
- 樹(shù)莓派傳感器教程資料下載 32次下載
- 樹(shù)莓派(Raspberry Pi)實(shí)戰(zhàn)指南.pdf 129次下載
- 樹(shù)莓派3上手 7次下載
- 樹(shù)莓派裝機(jī)教程 52次下載
- ARM開(kāi)發(fā)板與樹(shù)莓派的比較 559次閱讀
- 虹科工業(yè)樹(shù)莓派應(yīng)用小技巧 700次閱讀
- dfrobotUSB/TTL樹(shù)莓派GPS模塊簡(jiǎn)介 3425次閱讀
- dfrobotArduino 樹(shù)莓派擴(kuò)展板簡(jiǎn)介 2254次閱讀
- 淺談樹(shù)莓派4的性能及配置 4w次閱讀
- 淺談香蕉派與樹(shù)莓派的不同 2.5w次閱讀
- 樹(shù)莓派與nanopi的對(duì)比 5.4w次閱讀
- 樹(shù)莓派菜鳥(niǎo)入門攻略 6925次閱讀
- 解答樹(shù)莓派如何開(kāi)啟root賬戶 6486次閱讀
- 樹(shù)莓派有什么用_樹(shù)莓派能用來(lái)做啥_樹(shù)莓派新手入門教程 3.3w次閱讀
- 樹(shù)莓派安裝系統(tǒng)_樹(shù)莓派系統(tǒng)安裝教程 1.3w次閱讀
- 樹(shù)莓派用什么語(yǔ)言編程_樹(shù)莓派python編程詳解 3.8w次閱讀
- 樹(shù)莓派gpio接口及編程方法 6.5w次閱讀
- 樹(shù)莓派是什么_樹(shù)莓派的發(fā)展歷史及主要參數(shù) 1w次閱讀
- DIY一個(gè)樹(shù)莓派擴(kuò)展板 7460次閱讀
下載排行
本周
- 1山景DSP芯片AP8248A2數(shù)據(jù)手冊(cè)
- 1.06 MB | 532次下載 | 免費(fèi)
- 2RK3399完整板原理圖(支持平板,盒子VR)
- 3.28 MB | 339次下載 | 免費(fèi)
- 3TC358743XBG評(píng)估板參考手冊(cè)
- 1.36 MB | 330次下載 | 免費(fèi)
- 4DFM軟件使用教程
- 0.84 MB | 295次下載 | 免費(fèi)
- 5元宇宙深度解析—未來(lái)的未來(lái)-風(fēng)口還是泡沫
- 6.40 MB | 227次下載 | 免費(fèi)
- 6迪文DGUS開(kāi)發(fā)指南
- 31.67 MB | 194次下載 | 免費(fèi)
- 7元宇宙底層硬件系列報(bào)告
- 13.42 MB | 182次下載 | 免費(fèi)
- 8FP5207XR-G1中文應(yīng)用手冊(cè)
- 1.09 MB | 178次下載 | 免費(fèi)
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費(fèi)
- 2555集成電路應(yīng)用800例(新編版)
- 0.00 MB | 33566次下載 | 免費(fèi)
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費(fèi)
- 4開(kāi)關(guān)電源設(shè)計(jì)實(shí)例指南
- 未知 | 21549次下載 | 免費(fèi)
- 5電氣工程師手冊(cè)免費(fèi)下載(新編第二版pdf電子書(shū))
- 0.00 MB | 15349次下載 | 免費(fèi)
- 6數(shù)字電路基礎(chǔ)pdf(下載)
- 未知 | 13750次下載 | 免費(fèi)
- 7電子制作實(shí)例集錦 下載
- 未知 | 8113次下載 | 免費(fèi)
- 8《LED驅(qū)動(dòng)電路設(shè)計(jì)》 溫德?tīng)栔?/a>
- 0.00 MB | 6656次下載 | 免費(fèi)
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費(fèi)
- 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
- 78.1 MB | 537798次下載 | 免費(fèi)
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420027次下載 | 免費(fèi)
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費(fèi)
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費(fèi)
- 6電路仿真軟件multisim 10.0免費(fèi)下載
- 340992 | 191187次下載 | 免費(fèi)
- 7十天學(xué)會(huì)AVR單片機(jī)與C語(yǔ)言視頻教程 下載
- 158M | 183279次下載 | 免費(fèi)
- 8proe5.0野火版下載(中文版免費(fèi)下載)
- 未知 | 138040次下載 | 免費(fèi)
評(píng)論