Win32DiskImager 在windows 11 中打不開嗎?
1 可試看看用系統管理者權限開啟
2 如果有掛Goolge drive (Google 雲端硬碟)在本機的磁碟機中, 請將Google Drive程式關閉再執行。
Win32DiskImager 在windows 11 中打不開嗎?
1 可試看看用系統管理者權限開啟
2 如果有掛Goolge drive (Google 雲端硬碟)在本機的磁碟機中, 請將Google Drive程式關閉再執行。
如何用GPIO 作為RPi的實體開關機按鍵
RPi 没有像PC 的Power按鍵, 一般使用上有可能會偶遇SD卡磁損毀的情況, 雖然可以用OverLayFS(參考石頭成的這篇 Raspberry Pi OverlayFS 檔案系統使用備忘錄) 來避免檔案系統損毀, 但從另一個角度想想, 如果能增加實體按鍵, 可以利用Arduino 之類的單晶片電腦也就可以遠端控制 RPi 的開跟關囉!
1 開機
RPi 正常開機只要送電就可以開機, 若用sudo poweroff 關機, 在没有關閉外部電源的情況下, RPi 也可以用PIN5(GPIO03)接地進行開機, 不須另外設定GPIO, 這個PIN腳本來也可以進行關機, 但因為 I2C 也用到這支腳, 通常開機後會因為受到I2C的設備而干擾造成無法使用來關機。
2關機
為了能使用GPIO作為關機按鍵, 可以在 /boot/config.txt 中設定 GPIO 的腳位功能
例如: 設定 GPIO 21 腳位作為觸發關機 可在 /boot/config.txt 中增加一行如下
dtoverlay=gpio-shutdown,gpio_pin=21,active_low=1,gpio_pull=up
儲存檔案後重開RPi , 此時, 短路 GPIO 的最後兩支腳Pin 39(GND),40(GPIO 21) 即可觸發關機動作。
經過測試, 在開機狀態下, GPIO03短接並不會像PC 的power 鍵按下會再觸發關機(可能原因如前述, I2C使用中), 此時將 GPIO 21, GPIO 03 接在一起, 接上遠端控制或環控, 就可以像PC的電源按鍵, 一鍵開關RPi 囉!
參考
https://ppfocus.com/hk/0/hu0b06dc6.html
https://howchoo.com/g/mwnlytk3zmm/how-to-add-a-power-button-to-your-raspberry-pi
https://blog.driftking.tw/2019/11/%E6%9B%BFRaspberryPi%E6%B7%BB%E5%8A%A0%E9%96%8B%E9%97%9C_%E9%9B%BB%E6%BA%90%E7%87%88_%E7%A1%AC%E7%A2%9F%E7%87%88/
https://www.rocksaying.tw/archives/2019/Raspberry_Pi_OverlayFS_%E5%82%99%E5%BF%98%E9%8C%84.html
本篇參考老明的線上文件完成
Install DS3231 RTC on Raspberry Pi
URL如下
https://github.com/laomingOfficial/RaspberryPi-RTC
老明還有 Youtube 的說明影片
https://www.youtube.com/watch?v=xT2mPT57usQ
另外一個參考的好網頁
https://blog.gtwang.org/iot/raspberry-pi/raspberry-pi-ds3231-real-time-clock/
使用 RTC 主要目的是提供 RPi 有正確的實時時鐘
RPi 不像 PC, 它没有內建的時鐘晶片, 無法在關機後記錄時間, 未使用RTC時會在關機前將時間記錄在檔案中, 在下一次開機時載入, 也就是所謂的 Fake Clock, 所以RPi在關機一段時間後重開時, 系統時間會停在前次關機的時間, 若有網路還可以透過ntpdate校時動作校正系統時間(但若關機時間過長, ntpdate會因為時間差異過大造成校正不成功, 預設值是1000s ?) , 需另外手動設定時間後才能自動校時成功.
安裝 RTC 後就像PC內建時鐘一樣, 直接讀取時鐘的模組即可得到真實時間(前提是RTC的電池有電唷)。
安裝及系統設定如下:
使用 DS3231 模組 (5Pin)
1 關機安裝在RPi 的 pin腳 1,3,5,7,9 (3.3v, GPIO2, GPIO3,GPIO4,GND, 圖的左上角)
安裝DS3231
2 sudo i2cdetect -y 1
開機後偵測是否有連接到 DS3231 模組
若尚未註冊, UU 的位置會出現 68, 表示在這個位置上有偵測到設備3 echo 'ds3231 0x68 | sudo tee /sys/class/i2c-adapter/i2c-1/new_device
註冊 DS3231到RPi的i2c 設備中
4 sudo hwclock -r
查詢RTC時間
5 sudo hwclock -s
將RTC時間, 寫入系統時間
6 sudo ntpdate -u clock.stdtime.gov.tw
若有網路, 進行網路校時
(注意若時間差異> 1000s, 需手動設定時間後再自動校時)
7 sudo hwclock -w
將系統時間寫入 RTC
8 假設有定時網路校時, 可在關機時將系統時間寫入 RTC
需在 /etc/systemd/system-shutdown/ 中放入有 sudo hwclock -w 指令 的 Script
9 開機時載入 RTC clock
在 /etc/rc.local exit 0 之前加上這兩行
echo 'ds3231 0x68' | sudo tee /sys/class/i2c-adapter/i2c-1/new_device
sudo hwclock -s
其他
ntpdate 的繼承者 chrony , 可同時校時也可以當Server, 有空再寫好了
開機時網路起來的時間有時會稍慢, 需加上等待時間30秒 sleep 30 再執行ntpdate
hwclock -w 執行時間約1秒, 故與真正時間仍有可能有1秒左右的誤差, 若需精密校時可能要考慮其他如從GPS模組讀入時間的作法