ESP32에 FTP로 파일 전달
소스 코드를 GitHub로 올렸습니다.
poruruba/SimpleEsp32FtpServer
간단한 ESP32용 FTP 서버
ESP32 내에 FTP 서버를 시작하지만 매우 간단합니다.
· 하나의 파일 만 보관할 수 있습니다.
· 폴더를 만들 수 없습니다.
· 휘발이므로 재부팅하면 사라집니다.
· Windows 탐색기 만 시도합니다.
※WinSCP로 시험해 보았습니다만, 파일을 직접 편집하려고 했을 때만, 소켓을 다중으로 열려고 해서 절단되어 버렸습니다.
이하의 쪽이 만들어진 것을 거의 그대로 사용하고 있습니다. (감사합니다!)
SD를 전제로 하고 있었습니다만, 위와 같이 매우 간단하게 해, 메모리만으로 실현하도록(듯이) 하고 있습니다.
robo8080/ESP32_FTPServer_SD
사용법
src/main.cpp#include "ESP32FtpServer.h"
FtpServer ftpSrv;
WiFi에 연결한 후,
src/main.cpp configTzTime("JST-9", "ntp.nict.jp", "ntp.jst.mfeed.ad.jp");
ftpSrv.begin("esp32","esp32", buffer, sizeof(buffer));
포인트는 다음과 같습니다.
src/main.cppvoid begin(String uname, String pword, unsigned char *p_buffer, unsigned long length);
받아들이는 유저명, 패스워드에 가세해, FTP로 송수신하는 데이터의 버퍼와 최대 사이즈를 지정하고 있습니다.
그리고는 loop() 중에서
src/main.cpp FTP_F_STATUS status = ftpSrv.handleFTP(); //make sure in loop you call handleFTP()!!
if( status != F_IDLE ){
Serial.print("status="); Serial.println(status); Serial.println(ftpSrv.file_name); Serial.println((char*)buffer);
}
FTP_F_STATUS에는 다음과 같은 유형이 있습니다.
· F_IDLE : 특히 변화 없음
· F_RETRIEVED : 파일이 검색되었습니다.
· F_STORED : 파일 수신 완료
· F_DELETED: 파일이 삭제됨
· F_RENAMED: 파일 이름이 변경됨
상기의 상태가 되었을 때에, 임의의 처리를 할 수 있도록(듯이) 하고 있습니다.
또, FTP 클라이언트측에 파일을 건네주고 싶을 때에는 이하를 호출합니다.
begin 으로 지정한 버퍼에, 돌려주고 싶은 데이터를 설정한 후에 호출합니다.
src/main.cppvoid setFile(const char *fname, unsigned long size);
Windows 탐색기에서 열기
Windows 탐색기의 주소 표시줄에 다음을 입력하여 연결할 수 있습니다.
ftp://ユーザ名:パスワード@IPアドレス/
사용자명과 패스워드는, ftpSrv.begin()에 지정한 것입니다.
IP 주소는 ESP32의 IP 주소입니다.
끝에
조금 불안정한가. . .
이상
Reference
이 문제에 관하여(ESP32에 FTP로 파일 전달), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/poruruba/items/cfefc3b7b714a0853b43
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
src/main.cpp
#include "ESP32FtpServer.h"
FtpServer ftpSrv;
WiFi에 연결한 후,
src/main.cpp
configTzTime("JST-9", "ntp.nict.jp", "ntp.jst.mfeed.ad.jp");
ftpSrv.begin("esp32","esp32", buffer, sizeof(buffer));
포인트는 다음과 같습니다.
src/main.cpp
void begin(String uname, String pword, unsigned char *p_buffer, unsigned long length);
받아들이는 유저명, 패스워드에 가세해, FTP로 송수신하는 데이터의 버퍼와 최대 사이즈를 지정하고 있습니다.
그리고는 loop() 중에서
src/main.cpp
FTP_F_STATUS status = ftpSrv.handleFTP(); //make sure in loop you call handleFTP()!!
if( status != F_IDLE ){
Serial.print("status="); Serial.println(status); Serial.println(ftpSrv.file_name); Serial.println((char*)buffer);
}
FTP_F_STATUS에는 다음과 같은 유형이 있습니다.
· F_IDLE : 특히 변화 없음
· F_RETRIEVED : 파일이 검색되었습니다.
· F_STORED : 파일 수신 완료
· F_DELETED: 파일이 삭제됨
· F_RENAMED: 파일 이름이 변경됨
상기의 상태가 되었을 때에, 임의의 처리를 할 수 있도록(듯이) 하고 있습니다.
또, FTP 클라이언트측에 파일을 건네주고 싶을 때에는 이하를 호출합니다.
begin 으로 지정한 버퍼에, 돌려주고 싶은 데이터를 설정한 후에 호출합니다.
src/main.cpp
void setFile(const char *fname, unsigned long size);
Windows 탐색기에서 열기
Windows 탐색기의 주소 표시줄에 다음을 입력하여 연결할 수 있습니다.
ftp://ユーザ名:パスワード@IPアドレス/
사용자명과 패스워드는, ftpSrv.begin()에 지정한 것입니다.
IP 주소는 ESP32의 IP 주소입니다.
끝에
조금 불안정한가. . .
이상
Reference
이 문제에 관하여(ESP32에 FTP로 파일 전달), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/poruruba/items/cfefc3b7b714a0853b43
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
ftp://ユーザ名:パスワード@IPアドレス/
조금 불안정한가. . .
이상
Reference
이 문제에 관하여(ESP32에 FTP로 파일 전달), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/poruruba/items/cfefc3b7b714a0853b43텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)