Ethernet Cloud DPF (Arduino DUE + 1.8' TFT LCD shield+ WIZ550io)

Simple Ethernet Cloud Digital Photo Frame (DPF) with Arduino DUE + 1.8' TFT LCD shield+ WIZ550io

Simple Ethernet Cloud Digital Photo Frame

거창하게 “Cloud"를 붙여 보았다. Cloud의 넓은 의미중 FTP을 만들 적용할 것이고 FTP Server에 있는 Image를 Arduino Board로 구성된 DPF가 Display하도록 해보았다. 앞에서 Posting한 아래의 두 post를 조합하면 말그대로 간단한 Simple Ethernet Cloud Digital Photo Frame를 맛 볼 수 있다 . 밑에서 중복되거가 생략되는 내용(Lib.업데이트 & 추가)은 아래의 Post들을 참고하면 된다.

-Arduino Due + 1.8“ TFT LCD with Joystick and MicroSD
-Arduino Ethernet Lib. -FTP Client를 Ethernet Shield-WIZ550io 에 적용해보자

Preparation materials

  1. Hardware
    Arduino board : Arduino Due
    - TFT LCD Shield : 1.8" TFT LCD with Joystick and MicroSD
    - Ethernet Shield : WIZ550io
    - Micro-SD Memory card
  2. Software
    - TFT LCD Lib. : Adafruit-ST7735-Library
    - Core Graphic Lib. : Adafruit-GFX-Library
    - Ethernet Lib. : WIZ_Ethernet_LIB_IDE-1.5.7
    - SD Lib. : https://github.com/adafruit/SD
    - Arduino IDE : IDE 1.5.7
    - Ethernet example : FTPPassiveClient & oft_spitftbitmap sketch

Make EthCloudDPF sketch
기본적으로는 FTPPassiveClient & oft_spitftbitmap예제를 잘 섞기만 하면된다. 아주 쉽지만 간단히 고려 해야할 부분들은 정리해보자

  1. SPI Chip Select(CS)는 어떻게 정리되나?
    Micro-SD (SD-card) / TFT LCD(display) / WIZ550io(Ethernet) 는 모두 SPI를 사용한다. 그러면 필요한 CS는 3개이고 아래와 같이 정리했다.
    - Micro-SD : 4번 Pin
    - TFT LCD : 10번 Pin
    - WIZ550io : 52번 Pin
    TFT LCD와 WIZ550io이 CS가 겹친다. 따라서 WIZ550io를 52번으로 변경했다. 변경하는 방법이 몇가지 있겠지만 Lib.의 코드를 직접 변경하는 방법은 아래와 같다.
    "~/arduino-1.5.7/libraries/Ethernet/src/utility/” “w5500.cpp”를 아래와 같이 변경한다.
    21line: //#define SPI_CS 10 //기존 10번 Pin사용하던것을
    22line: #define SPI_CS 52 // Arduino Due보드의 52번 Pin사용으로 변경
  2. Network setting
    Arduino Due + Ethernet Shield와 FTP Server가 구동중인 PC가 같은 Network로 묶기 위해 Network를 설정해야 하며 이것은 PC 혹은Board쪽에서 설정할 수 있다.
    먼저, Sketch에서 설정하는 방법은 PC가 IP address가 192.168.1.10이고 subnet과 gateway가 각각 255.255.255.0, 192.168.1.1로 설정되어 있을 경우
    Sketch의 IPaddress함수를 아래와 같이
    IPaddress ip(192.168.1.177);
    IPaddress gateway(192.168.1.1);
    IPaddress subnet(255.255.255.0);

    로 설정할 수 있다.
    두번째 방법은 Sketch의 Network의 설정을 보고 windows인 경우는Local area connection-> Properties ->Internet Protocol -> Properties에서 첫번째 예시에서 든 주소를 사용하여 각각 IP/Subnet/gateway를 설정하면된다.
  3. FTP address Account / password setting / filename
    FTP의 Address와 Account 및 passowrd는 미리 FTP server에서 설정해 놓은 것을 이용하여 Sketch에 적용하면된다.
    예를 들어 FTP Server의 설정이 아래와 같은 경우
    FTP의 IP address : 192.168.1.10
    Account : test
    password : testtest
    다운할 file name : test.bmp 사이즈는 128X160으로 !!
    Sketch에서 아래의 부분을 수정하면 된다.
    -IPAddress server ( 192.168.1.10 ); //FTP Server IP address
    -char fileName[13] = “test.bmp”; //Server쪽에
    test.bmp를 반드시 준비.
    -clinet.println(F(“USER test”)); //FTP account
    -clinet.println(F(“PASS testtest”)); //FTP account
  4. loop함수는 ?
void loop()
{
byte inChar;
inChar = Serial.read();
if(inChar == ‘f’)
{
if(doFTP())
{
Serial.println(F(“FTP OK”));
bmpDraw(“parrot.bmp”, 0, 0);
}
else Serial.println(F(“FTP FAIL”));
}
 if(inChar == ‘r’)
{
readSD();
}
}

뭐 이정도면 prototype으로 충분 ?? ㅋㅋ

5. 이제 Arduino와 WIZ55oio를 이용하여 TFT LCD에 정상적 Image가 출력되는지 감상해보자.

Show your support

Clapping shows how much you appreciated Embeddist (Soohwan Kim)’s story.