본문 바로가기
Arduino(아두이노) 활용 강좌

Arduino Uno 로 아두이노 이더넷 쉴드 (Arduino Ethernet Shield) 를 사용해서 웹서버의 문자를 16X2 LCD에 출력해 보기

by 오마이엔지니어 2017. 6. 23.
반응형

Arduino Uno 로 Arduino Ethernet Shield 를 사용해서 웹서버에서 문자를 입력해서 16X2 캐릭터 LCD에 출력해 보는 프로젝트 입니다 

 

<아두이노 이더넷 쉴드 - 아두이노 우노에 장착한 이미지 (메가 2560에도 장착 가능합니다)>

 

<아두이노 이더넷 쉴드 이미지>

이더넷 쉴드 소개
Wiznet W5100 이더넷 칩 기반의 이더넷 쉴드 호환보드 입니다
가격은 저럼하지만 이태리 정품 이더넷 쉴드와 같이 표준 아두이노 이더넷 드라이버를 사용하며
아두이노 우노 등에 장착해서 이더넷에 접속하여 이더넷 통신을 할수 있게 해줍니다
TCP 와 UDP 프로토콜을 모두 지원하는 네트워크(IP) 스택을 제공하며  동시에 4개까지의 소켓 연결을 지원합니다
Ethernet library 를 사용해서 아두이노 IDE에서 프로그래밍 가능합니다
SD library 를 사용해서 온보드 SD슬롯에 엑세스할수 있으며 이더넷 연결을 위한 RJ45 커넥터가 장착되어 있습니다

Requires an Arduino board
Operating voltage 5V (supplied from the Arduino Board)
Ethernet Controller: W5100 with internal 16K buffer
Connection speed: 10/100Mb
Connection with Arduino on SPI port

아두이노 이태리 사이트 제품소개 및 사용방법 링크
https://www.arduino.cc/en/Main/ArduinoEthernetShieldV1
https://www.arduino.cc/en/Main/ArduinoEthernetShield
https://www.arduino.cc/en/Guide/ArduinoEthernetShield


사용된 부품
Arduino Ethernet Shield
Arduino Uno R3
미니 브래드 보드

점퍼케이블

1602 캐릭터 LCD


가변저항 10K Ohm
마이크로 SD카드 4GB

구성배선도

 

SD카드에 넣어주어야 하는 HTM파일

index.htm

 

사용된 예제코드

example code.txt


테스트 방법
우선 먼저 Micrso SD카드 첨부된 index.htm 파일을 넣어 주어야 합니다
---------------------------------------------------------------------------------------------------------
<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="utf-8">
        <title>Arduino Web Page Text to LCD - web2lcd</title>
        <script>

 

        strLine1 = "";
        strLine2 = "";
       
        function SendText()
        {
            nocache = "&nocache=" + Math.random() * 1000000;
            var request = new XMLHttpRequest();
           
            strLine1 = "&L1=" + document.getElementById("txt_form").line1LCD.value;
            strLine2 = "&L2=" + document.getElementById("txt_form").line2LCD.value;
           
            request.open("GET", "ajax_inputs" + strLine1 + strLine2 + nocache, true);
            request.send(null);
        }
        </script>
    </head>

    <body onload="GetArduinoIO()">
        <p><b>Enter text to send to Arduino LCD:</b></p>
        <form id="txt_form" name="frmText">
            <label>Line 1: <input type="text" name="line1LCD" size="16" maxlength="16" /></label><br /><br />
            <label>Line 2: <input type="text" name="line2LCD" size="16" maxlength="16" /></label>
        </form>
        <br />
        <input type="submit" value="Send Text" onclick="SendText()" />
    </body>

</html>
-------------------------------------------------------------------------------------------------------------
파일 내용은 위와 같습니다
웹서버 상에서 텍스트 입력 네모박스와 입력버튼 등을 구성해주는 HTML 입니다
메모장에 붙여넣고 htm 파일로 저장해 주어도 되고, 드림위버 등에서 htm 파일로 변환해 주어도 됩니다
파일명은 꼭 index.htm 으로 해주어야 합니다

---------------------------------------------------------------------------------------------------------
 
  Serial.println("SUCCESS - SD card initialized.");
    // check for index.htm file
    if (!SD.exists("index.htm")) {
        Serial.println("ERROR - Can't find index.htm file!");
        return;  // can't find index file

------------------------------------------------------------------------------------------------------------
위에 첨부된 example code 를 확인해 보면 SD카드의 index.htm 파일을 체크하는 코드를 확인할수 있습니다
SD카드에 SD카드 리더기등을 사용해서 파일을 넣어 줍니다

 

공유기의 랜선을 이더넷 쉴드와 연결후 이더넷 쉴드와 연결된 MY IP를 확인해 줍니다
IP를 확인하는 방법은 Arduino Uno 로 Arduino Ethernet Shield 를 사용해서 연결된 IP를 확인해보고 Webserver 예제 테스트해 보기
포스팅을 참고 해서 '파일--->예제--->Ethernet--->DhcpAddressPrinter' 순으로 클릭해서 예제를 불러 옵니다
MY IP 주소를 시리얼 모니터로 확인할수 있는 예제입니다
스케치 업로드를 해주고 시리얼 모니터를 확인한 결과 MY IP address: 192. 168. 0. 8 로 확인 되었습니다

위에 첨부된 example code 스케치 코드를 붙여 넣은뒤 
IPAddress ip(192, 168, 0, 8); 이 부분을 IPAddress ip(192, 168, 0, 8); 로 수정해 줍니다 (사용자의 MY IP를 확인후 수정해 주면 됩니다)

첨부된 예제코드를 확인해 보면 MAC 주소가
byte mac[] = {
  0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED
};

이렇게 되어 있는것을 확인할수 있습니다 (이더넷 쉴드 이태리 정품은 위의 범용 MAC 주소와는 다른 고유 MAC 주소를 가지고 있으므로 이점 주의 합시다-이태리 정품은 고유 MAC 주소가 제품 PCB 뒷면에 붙어 있습니다)

스케치 업로드를 하고 인터넷 익스플로러를 열어서 인터넷 주소창에
http://192.168.0.8/ 이렇게 입력해 줍니다

 


웹서버상에 http://192.168.0.8/ 주소를 입력하면 SD카드의 HTML 파일을 읽어서 위와 같은 화면이 출력 됩니다
Line 1 은 LCD의 첫번째줄에 출력되는 문자를 입력합니다 (16자 내외로 입력 가능합니다)
Line 2 은 LCD의 두번째줄에 출력되는 문자를 입력합니다 (16자 내외로 입력 가능합니다)

Line 1 와 Line 2 에 16자 내외로 입력하고 싶은 문자를 입력후 Send Text 를 누르면 연결된 16X2 캐릭터 LCD에
문자가 출력 됩니다

프로젝트 동영상

 

 
index.htm
0.0MB
 
example code.txt
0.01MB
반응형

댓글