아두이노 코딩-94: Processing 클라이언트에 의한 Ethernet 웹서버 Red & Green LED ON OFF 제어

in #kr6 years ago (edited)

noname01.png
Processing 의 HTTP 기능을 사용하여 이더넷 쉴드가 설치된 아두이노 우노 보드에 설치된 2개의 LED 즉 Red LED 와 Green LED를 제어하여 보자. 이더넷 쉴드가 설치된 아두이노 우노 보드에서 아래처럼 LED를 배선하자.

noname02.png

LED 1개를 이더넷을 통해 제어하는 코딩 문제와 본질적인 차이는 없겠지만 Processing 코드에 의한 디지털 제어라는 측면에서 경우의 수를 고려하여 코드를 수정해야 한다.

Processing 그래픽 화면에서 입력 방법을 고려해 보자. 그래픽 스크린을 size(400, 400)으로 설정하자. 그래픽 화면을 반으로 나누어 0< mouseX <200 과 200< mouseX <400 인 구간으로 나누어 각각 Red 와 Green 영역으로 대응시키자. Red LED on 명령은 if 제어문을 사용하여 200 이하의 mouseX 값과 동시에 mouseButton == LEFT 클릭으로 설정하고 반면에

noname03.png

Green LED on 명령은 else if 제어문을 사용하여 200 이상의 mouseX 값과 동시에 mouseButton == LEFT 클릭으로 설정한다. 이도 저도 아닌 경우 즉 mouseX 의 위치가 그래픽 화면 내 어디에 위치하든 간에 mouseButton == RIGHT 클릭이면 else 처리하여 2개의 LED를 동시에 OFF 시키도록 클라이언트 통신 신호를 보내도록 하자.

noname04.png

Ethernet에 의해 HTTP 통신 연결이 된 아두이노에서 코드 수정 사항을 고려해 보자. 2개의 Red LED 와 Green LED를 각각 디지털 핀 3번과 4번에 설정하여 연결하자.
int red_Pin =3, int green_Pin =4 가 필요하며 setup()에서 각각 pinMode 출력 설정이 필수적이다.

loop() 내부에서sms Processing 으로부터 보내 온 문자 데이터를 client.read(0 명령으로 일일이 읽어 다 더하여 입력 버퍼 데이터 문자열 즉 readString을 준비한다. 참고로 NodeMCU/WeMos 와이파이 보드 사용 시에는 문자 데이터를 일일이 읽을 필요 없이 입력버퍼로부터 직접 문자열 데이터를 읽을 수 있다. 즉 이더넷 칩 W5100이 NodeMCU/WeMos 보드의 ESP8266 12E에 비해 약간 old 한 칩이라는 느낌이 든다.

Processing 으로부터 HTTP 통신 프로토콜에 의해 전달된 입력 버퍼 내용을 대상으로 “Ron” 또는 “Gon” 도는 “OFF”가 들어 있는지 readString.indexOf(“”) 명령을 사용하여 식별한다.

noname05.png

입력 버퍼 내용이 “Ron” 이라면 3번 핀의 Red LED를 ON 함과 동시에 4번 핀의 Green LED를 OFF 한다. 반대로 입력 버퍼 내용이 “Gon” 이라면 3번 핀의 Red LED를 OFF 함과 동시에 4번 핀의 Green LED를 ON 한다. 만약 입력 버퍼 데이터가 “OFF”라면 Red LED 와 Green LED를 모두 OFF 시키도록 한다. Red LED 와 Green LED를 함께 ON 시키는 경우는 Processing에서 그러한 명령을 준비하지 않았으므로 배제 시킨다. 고려되지 않은 경우의 수가 있다면 디지털 제어 시스템에서 큰 위험을 초래할 수도 있다.

Processing에서 마우스 클릭을 사용하여 LED를 ON OFF하는 동영상을 관찰하자

코딩에 HTML 태그가 많이 사용되었으므로 필자의 다음 블로그 주소에서 코드를 참고하기 바란다.
http://blog.daum.net/ejleep1/616

//Client_Ethernet_Mouse_Red_Green_LED_ON_OFF_01
//Webserver_ethernet_Red_Green_LED_ON_OFF_01

Sort:  

(jjangjjangman 태그 사용시 댓글을 남깁니다.)
[제 0회 짱짱맨배 42일장]3주차 보상글추천, 1,2주차 보상지급을 발표합니다.(계속 리스팅 할 예정)
https://steemit.com/kr/@virus707/0-42-3-1-2

3주차에 도전하세요

그리고 즐거운 스티밋하세요!

pairplay 가 kr-dev 컨텐츠를 응원합니다! :)

Coin Marketplace

STEEM 0.32
TRX 0.12
JST 0.032
BTC 58254.01
ETH 2971.20
USDT 1.00
SBD 3.89