做一個腳本能夠成功運作,並且能夠對SD卡進行讀寫操作,這表示您使用的 sdcard 模組正確設置並與您的硬件兼容。這種情況下,我們可以將之前的腳本中的SD卡相關部分替換為您證實可以運作的方式,來整合進您的原始程式中。
以下是整合後的完整程式碼:
python
複製程式碼
import network
import ntptime
from machine import RTC, Pin, SPI
import esp
import os
import time
import sdcard # 確保導入您自定義的sdcard模組 sdcard.py要跟這程式放在一起
# Wi-Fi 設定
SSID = 'Bili-Net'
PASSWORD = '0932388283'
# 連接 Wi-Fi
def connect_to_wifi():
wlan = network.WLAN(network.STA_IF)
wlan.active(True)
if not wlan.isconnected():
print('Connecting to network...')
wlan.connect(SSID, PASSWORD)
while not wlan.isconnected():
time.sleep(1)
print('Network connected!')
# 校正時間
def sync_time():
ntptime.host = 'pool.ntp.org'
try:
ntptime.settime()
rtc = RTC()
# 調整時區到台北時間(UTC+8)
adjust_time_to_taipei(rtc)
print('Time synchronized to Taipei Time:', rtc.datetime())
except:
print('Failed to synchronize time.')
# 調整時區
def adjust_time_to_taipei(rtc):
year, month, day, weekday, hours, minutes, seconds, subseconds = rtc.datetime()
hours += 8
if hours >= 24:
hours -= 24
day += 1
rtc.datetime((year, month, day, weekday, hours, minutes, seconds, subseconds))
# 檢查快閃記憶體大小
def check_flash_size():
flash_size = esp.flash_size()
print('Flash Memory Size:', flash_size, 'bytes')
# 初始化SD卡並檢查容量
def check_sd_card():
try:
spi = SPI(1, sck=Pin(14), mosi=Pin(15), miso=Pin(2))
sd = sdcard.SDCard(spi, Pin(13))
os.mount(sd, '/sd')
print('SD card mounted at "/sd"')
print('Files and folders on SD card:', os.listdir('/sd'))
stat = os.statvfs('/sd')
sd_total_size = stat[2] * stat[1]
print('SD Card Total Capacity:', sd_total_size / (1024*1024), 'MB')
os.umount('/sd')
print('SD card unmounted')
except Exception as e:
print('Failed to access SD card:', str(e))
# Wi-Fi天線的連線訊號強度
def check_wifi_signal_strength():
wlan = network.WLAN(network.STA_IF)
if wlan.isconnected():
print('Signal Strength:', wlan.status('rssi'), 'dBm')
else:
print('Not connected to any WiFi network.')
# 主程式
def main():
connect_to_wifi()
sync_time()
check_flash_size()
check_sd_card()
check_wifi_signal_strength()
if __name__ == "__main__":
main()
這個整合版本使用了您確認能正常運作的SD卡初始化和掛載代碼。此外,我添加了SD卡掛載和卸載的操作,以展示如何在不同階段檢查SD卡的信息,這應該能更好地融入到您的綜合檢測流程中。如果您有任何疑問或需要進一步調整,請隨時提出。
4
你說:
出現
MPY: soft reboot
Network connected!
Time synchronized to Taipei Time: (2024, 10, 20, 6, 13, 0, 21, 362)
Flash Memory Size: 4194304 bytes
SD card mounted at "/sd"
Files and folders on SD card: ['System Volume Information']
SD Card Total Capacity: 15189.47 MB
SD card unmounted
Signal Strength: -67 dBm
or
Network connected!
Time synchronized to Taipei Time: (2024, 10, 21, 0, 22, 46, 35, 366)
Flash Memory Size: 4194304 bytes
SD card mounted at "/sd"
Files and folders on SD card: ['System Volume Information', '202410208456.jpg', '202410208466.jpg', '20241020966.jpg', '20241020976.jpg', '202410209106.jpg', '2024102038396.jpg', '2024102038406.jpg', '2024102047556.jpg', '2024102047566.jpg', '2024102047576.jpg', '2024102047586.jpg', '2024102047596.jpg', '20241020231907.jpg', '20241020231908.jpg', '20241020231924.jpg', '20241020231926.jpg', '20241020231928.jpg', '20241020231930.jpg', '20241020232311.jpg', '20241020232312.jpg', '20241020232335.jpg', '20241020232337.jpg', '20241020232454.jpg', '20241020232456.jpg', '20241020232507.jpg', '20241020232509.jpg', '20241020234402.jpg', '20241020234403.jpg', '20241020234408.jpg', '20241020234410.jpg', '20241020234414.jpg', '20241020234416.jpg', '20241020234418.jpg', '20241020234419.jpg', '20241020234644.jpg', '20241020234646.jpg', '20241020234650.jpg', '20241020234652.jpg']
SD Card Total Capacity: 15189.47 MB
SD card unmounted
Signal Strength: -67 dBm
ChatGPT 說:
ChatGPT
從您提供的輸出信息來看,程序現在能夠成功運行所有預期的功能,並且沒有發生錯誤:
Wi-Fi連接成功:顯示網路已連接。
時間同步完成:時間已成功同步至台北時區。
快閃記憶體大小正確檢測:檢測到的快閃記憶體大小為4194304字節。
SD卡成功掛載和檢查:
SD卡成功掛載。
列出SD卡根目錄下的文件和文件夾,顯示存在System Volume Information,這是一個系統文件夾,通常由Windows創建。
正確顯示了SD卡的總容量為15189.47 MB。
SD卡在檢查後被成功卸載。
Wi-Fi訊號強度檢測:訊號強度為-67 dBm,表示連接質量良好。
這表明您的腳本已經完全按照您的設計意圖正常運作,並且集成的SD卡操作也符合預期。如果您有其他需求或希望進行進一步的擴展,例如添加錯誤處理、日誌記錄或其他功能,請隨時告知,我很樂意繼續協助您。