페이지

글목록

2017년 1월 25일 수요일

[ESP8266] Wifi FTP Server with SD-Card(SPI-mode)

ESP8266 으로 FTP 서버를 구현한 좋은 예제가 있어서 테스트하기 전에 링크합니다.
esp8266 ftp server

이것은  Simple FTP Server for using esp8266 SPIFFs 입니다.
아두이노 보드의 내용을 고쳐서 만들었다고 하네요.

참고한 원 소스파일의 링크가 wiz820io 소스인데 위즈넷 spi 이더넷 모듈을 아두이노 보드에 연결해서 구현한 것 같습니다.
해당 소스의 링크는 다음과 같습니다.

위의 저작자가 참고한 내용중에서 wiz820io 모듈을 구글에서 찾아보니 모양은 다음과 같습니다.


위의 ESP-8266 소스는 ESP8266 SPIFFS(아마도 ESP-8266 에 내장된 SPI NORFLASH 로 보임)에
데이터를 읽고 쓰는 소스인 것으로 보입니다.
제가 원하는 것은 SD-Card FTP 서버여서, 추가로 더 찾아보니 SD-Card Ftp server 를 만드는 방법이 나와 있었습니다.

다음은 제가 찾아본 웹페이지의 저와 같은 의도로 질문자가 묻는 내용입니다. 
(esp8266 의 ftpserver 에서 SPIFFS 말고 sdcard 에 데이터를 읽고 쓸 수는 없나요?)
I know the file is stored in SPIFFS of ESP8266. However, I want to store the file in SD card. So, my question is that Is it possible to transfer the file from SPIFFS to SD card? I already search in google, but I still can't find the solution. Can anyone help me? Many thanks!

이에 해당하는 답변
Im guessing you have to add in SD card in setup and then replace 
CODE: SELECT ALL if (SPIFFS.begin()) {
      Serial.println("SPIFFS opened!");
      ftpSrv.begin("esp8266","esp8266");    //username, password for ftp.  set ports in ESP8266FtpServer.h  (default 21, 50009 for PASV)
  }    
}

With something like:
CODE: SELECT ALL if (SD.begin()) {
      Serial.println("SD opened!");
      ftpSrv.begin("esp8266","esp8266");    //username, password for ftp.  set ports in ESP8266FtpServer.h  (default 21, 50009 for PASV)
  }    
}

위의 답변처럼 SPIFFS.begin() 을 SD.begin() 으로 바꿔주면 wifi 로 데이터를 SD-Card로 옮길 수 있는 것 같습니다.

[SD CARD 핀 연결 정보]

[ESP8266] NODE MCU_DEVKIT_V1.0 회로도.

제가 산 개발 키트 회로도 입니다.
(여기 저기 좀 돌아다니다 보니 제가 산 보드는 ESP12-E NODE MCU V3 였습니다.
이 보드는 너무 여러 곳에서 만드는데, 회사이름까지 똑같은 보드를 겨우 찾았습니다.
그런데, 아무리 찾아봐도 이 개발키트의 회로도는 안나와 있습니다. 아래 회로도와 많이 비슷하지만,
똑같지가 않네요.)  

[ NODE MCU V3.0 핀맵 ]



 NODE MCU KIT V1.0 회로도 PDF 첨부합니다.

[NODE MCU KIT V1.0 거버]



[NODE MCU KIT V1.0 파트리스트]

[ESP8266] 아두이노 IDE 개발 환경 구축

아두이노 보드를 사용하는 것이 아니라, 아두이노 개발환경만 사용해서 ESP8266 개발키트를 프로그램할 수 있네요.

이제 검색해서 알았는데, 제가 산 개발키트 이름이 NODE MCU DEVKIT V1.0 입니다.

먼저 아두이노 IDE를 다운 받아야 하는데, 다운 받을 수 있는 주소는 다음과 같습니다.

저는 IBM PC를 사용하므로 Windows Install 을 선택했습니다.
 현재 최신버전은 1.8.1 입니다. 어떤 사이트에서는 상위 버전은 버그가 있으니 1.6.5를 받으라 했는데,
그동안 버전이 많이 올라가서 수정됐다 싶어서 1.8.1 을 받아서 깔았는데 오류는 없는 것 같습니다.

Just DOWNLOAD 클릭하면 파일이 다운로드 됩니다.


다운로드 받은 설치 파일을 실행합니다.





 바탕화면에 단축아이콘이 생기는데 클릭해서 실행 하십시요.


 ESP8266 계열의 보드와 예제를 추가하기위해서, 파일->환경설정 으로 가서,
추가적인 보드 매니저 URL 란에 http://arduino.esp8266.com/stable/package_esp8266com_index.json 를 추가합니다.


 툴->보드->보드매니저로 이동.


 ESP-8266 계열의 보드 라이브러리 설치.


 파일->예제->ESP8266 에서 간단한 예제 BLINK 를 열어봅시다.


 툴->보드 로 이동해서, 자신이 갖고 있는 보드와 맞는 개발키트 이름을 선택합니다.
다른 보드를 선택했더니 에러가 나서 다운로드가 안되더군요. 맞는 보드를 잘 선택 하시기 바랍니다.


 툴->포트로 이동해서, 프로그램을 업로드하거나 시리얼 모니터링을 하기 위해서 통신 포트 번호를 맞춥니다.


 보드를 플래쉬 모드로 설정한다. 

나중에 알게된 사실인데, 현재 개발 보드 NODE MCU DEVKIT V3.0 은 업로드를 하면  자동으로 플래쉬모드가 설정되므로 아래 업로드 설정 방법은 필요 없었다. 하지만 수동으로 해도 플래쉬 모드에 들어간다. 이 보드에서는 의미 없지만..


 업로드 버튼을 누르면 컴파일이 된 후, 프로그램이 ESP-8266 개발키트에 업로드됩니다.


 툴->시리얼 모니터를 실행 시키면 시리얼 터미날 창이 뜹니다.


 시리얼 모니터링 창의 보레이트를 74880bps 로 맞춘다. (이런 보레이트 처음 보네요. 특이하다. ^^)
이 상태에서 리셋 버튼을 누르면 몇 줄의 메세지가 뜨면서 프로그램이 실행된다.


 BLINK 프로그램은 포트가 HIGH,LOW 로 반복 출력되는 프로그램인데.. 어떤 핀이 토글되는지 몰라서 그냥 스코프로 여기저기 찍어 보니 보드상에 D0 핀이 토글되는 것을 오실로 스코프로 확인하였다.
뭐 LED를 달아서 테스트 해도 좋다. ^^


[블링크 예제 테스트 영상]

[ESP8266] 개발 키트 및 모듈 가격 정보

이번에는 ESP8266 개발 키트를 구입해서 공부중입니다.

ESP8266 개발키트는 Eleparts 에서 11,500원입니다.



이번에 산 개발키트의 구성품 입니다.




 내용물을 꺼내서 조립도 해 봤습니다.



 USB 케이블을 연결한 모습입니다.


USB 케이블을 연결하니까, 전원 LED가 켜지면서 Wifi 모듈자체에서 주기적으로 Blue LED가 깜박입니다.




다음은 ESP8266 모듈 구매처 및 가격입니다. 모듈이 $1.7 니까, 칩가격은 $1 이하일까요? ^^ 링크



USB 케이블을 PC 와연결하니까, COM 포트가 생깁니다.


터미날 프로그램을 연결하니 계속해서 SSID 를 스캔합니다.
키는 안먹네요. 어찌해야 하지? (앞으로 좀 더 공부를 해 봐야 겠습니다)