본문 바로가기
Arduino/AVR/2. Arduino프로젝트

아두이노를 인터넷에 연결해보자 - arduino ethernet shield 호환모듈 WIZ811MJ

by pepsiman 2009. 6. 8.
2009/05/19 arduino에 사용가능한 이더넷 모듈에서 소개했던 WIZ811MJ이 도착했습니다.
사실 벌써 도착했는데 만질 시간이 없어서 못하고 있었다는...

보시다 시피 썰렁하게 연결되어 있는데, 간단한 연결(6핀)만으로 아두이노를 인터넷에 연결이 가능합니다.

사진과 같이 연결하였고, 연결은 엉성해도 동작은 잘 되더군요. ^^

필요한 핀에만 소켓을 끼웠습니다.

많은 핀중에 6개만 사용하면 됩니다. 나머지 하나는 리셋핀....

조그만한게 귀엽게 생겼죠? ^^;


WIZ811MJ 모델은 2.54mm 간격의 40핀으로 핀이 구성되어 있습니다. 듀얼핀이라 브레드보드에 직접은 안되네요.
아두이노와 각 핀의 연결은 위의 그림과 같이 D10~D13, 3V3, GND 6개의 핀을 연결합니다.
아두이노 두에밀라노브(데시밀라)에는 3.3v 출력이 있어서 직접 연결이 가능합니다.



WIZ811MJ는 arduino ethernet shield와 같은 칩을 사용하기 때문에 라이브러리도 호환된다는것이 최대 장점이라고 할 수 있습니다. 이미 만들어져 있는 아두이노 이더넷 라이브러리를 가져다 쓰기만 하면 됩니다. 예제까지도....

아두이노 소스는 아두이노 웹서버로  Examples/Library-Ethernet/WebServer 에 있는 예제를 사용해봤습니다.

/*
 * Web Server
 *
 * A simple web server that shows the value of the analog input pins.
 */

#include 

byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
byte ip[] = { 192, 168, 0, 20 };

Server server(80);

void setup()
{
  Ethernet.begin(mac, ip);
  server.begin();
}

void loop()
{
  Client client = server.available();
  if (client) {
    // an http request ends with a blank line
    boolean current_line_is_blank = true;
    while (client.connected()) {
      if (client.available()) {
        char c = client.read();
        // if we've gotten to the end of the line (received a newline
        // character) and the line is blank, the http request has ended,
        // so we can send a reply
        if (c == '\n' && current_line_is_blank) {
          // send a standard http response header
          client.println("HTTP/1.1 200 OK");
          client.println("Content-Type: text/html");
          client.println();
          
          // output the value of each analog input pin
          for (int i = 0; i < 6; i++) {
            client.print("analog input ");
            client.print(i);
            client.print(" is ");
            client.print(analogRead(i));
            client.println("
"); } break; } if (c == '\n') { // we're starting a new line current_line_is_blank = true; } else if (c != '\r') { // we've gotten a character on the current line current_line_is_blank = false; } } } // give the web browser time to receive the data delay(1); client.stop(); } }
소스중 위의 mac과 ip 부분은 자신에 맞게 수정해야 합니다.

WIZ811MJ는 DHCP를 지원하지 않는데, 아마도 DHCP기능이 없어서 그냥은 연결이 안되는듯합니다.
소스의 빨간색부분을 공유기의 IP 수동할당에 추가하고, 오른쪽에 추가버튼을 누르면 왼쪽에 추가 됩니다.


브라우저에서 설정한 IP로 아두이노에 접속한 모습입니다. 아날로그 핀의 값을 출력하는 웹서버 프로그램입니다.

이제 아두이노에 달린 날개를 잘 활용하는 일만 남았네요. ^^