首先感谢您的帮助。 Pico Pi W - Micropython - 最新固件
我设置了一个脚本,用于使用传感器数据构建 csv 并通过 FTP 定期发送 csv。 数据被一致地读取到文件中,LAN 连接已成功建立,但我在上传文件时遇到问题 - 连接失败。 服务器设置正确,Pico 和服务器都在本地可见
标准 ftplib 与 python 不兼容,所以我使用:
https://github.com/SpotlightKid/micropython-ftplib
我进入控制台:
2023-05-11 14:23:17 连接到 Wi-Fi 网络:xxxxxx 2023-05-11 14:23:18 1683814998, 400, 0, 22, 38 2023-05-11 14:23:20 1683815000, 400, 0, 22, 38 2023-05-11 14:23:23 1683815003, 400, 0, 22, 38 2023-05-11 14:23:23 FTP 上传时出错:无法连接到 ('192.168.1.x', 21)
代码:
def format_timestamp():
localtime = utime.localtime()
timestamp = "{:04}-{:02}-{:02} {:02}:{:02}:{:02}".format(
localtime[0], localtime[1], localtime[2], localtime[3], localtime[4], localtime[5]
)
return timestamp
def log_print(message):
timestamp = format_timestamp()
with open(LOCAL_TXT, "a") as f:
f.write("{} {}\n".format(timestamp, message))
print("{} {}".format(timestamp, message))
# Define local CSV file
LOCAL_CSV = "/data.csv"
# Connect to Wi-Fi
WIFI_SSID = "xxxxxx"
WIFI_PASSWORD = "xxxxxx"
# Define FTP server credentials
SERVER = "192.168.1.x"
FTP_USERNAME = "username"
FTP_PASSWORD = "password"
# Connect to WLAN
try:
wlan = network.WLAN(network.STA_IF)
wlan.active(True)
wlan.connect(WIFI_SSID, WIFI_PASSWORD)
log_print("Connected to Wi-Fi network: {}".format(WIFI_SSID))
except Exception as e:
log_print("Error connecting to WiFi network: {}".format(e))
# Upload CSV data to FTP server
def upload_csv_to_ftp():
# Upload CSV data to FTP server
try:
ftp_client = FTP(SERVER)
ftp_client.login(user= FTP_USERNAME,passwd= FTP_PASSWORD)
ftp_client.encoding = "utf-8"
log_print("Connecting to FTP server...")
with open(LOCAL_CSV, "rb") as f:
data = f.read()
ftp_client.storbinary("STOR data.csv", io.BytesIO(data))
log_print("Closing FTP connection...")
ftp_client.quit()
except Exception as e:
log_print("Error during FTP upload: {}".format(e))