______________________________________________________________________________________
Processing의 HTTP 기능을 사용하여 PC에 설치된 무선 공유기를 통해 무선 WiFi 가 가능한 아두이노 WeMos 보드에 설치된 LED를 제어할 수 있었다. 이번에는 이더넷 쉴드가 설치된 아두이노 우노 보드에 설치된 LED를 제어하여 보자.
두 모델에서의 차이점은 다 같이 가상ip를 사용하지만 이더넷의 경우에는 무선 공유기의 ID 와 비밀번호가 필요치 않으며 그 대신 이더넷 통신선을 Processing 코드를 실행하는 PC의 무선 공유기의 커넥터에 연결하였다.
아두이노 이더넷 보드의 코드는 첨부된 코드를 참조하여라. Processing 에서의 클라이언트 코드도 첨부하였다. 두 코드에서 가상 ip 는 192.168.0.11 을 사용하였다. 이 가상ip는 필자가 보유한 WeMos 보드의 실제 가상ip인데 이더넷 보드에서도 잘 작동된다. 이 가상ip가 혹 문제가 된다면 마지막 11을 한자리 수로 바꿔 잘되는 번호를 찾아보기 바란다.
아두이노 이더넷 보드에 설치된 LED를 ON OFF 하기 위해서는 Processing 코드를 실행 후 마우스 버튼을 좌측 우측 번걸아 가면서 클릭해 보도록 하자. 아울러 아두이노 시리얼 모니터에서 ON OFF 가 출력됨을 확인해 보자.
다음 동영상을 참조하기 바란다.
https://www.youtube.com/watch?v=JwMvBLKCHWo
스팀잇에서 넘어 오신 분은 아래의 첨부된 코드를 참조하기 바람
//Webserver_ethernet_LED_ON_OFF_from_Processing_01
#include <SPI.h>
#include <Ethernet.h>
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; //physical mac address
byte ip[] = { 192, 168, 0, 11 }; // fixed IP addr in LAN
EthernetServer server(80); //server port
String readString;
int ledPin = 2;
void setup(){
pinMode(ledPin, OUTPUT); //pin selected to control LED
Ethernet.begin(mac, ip);
server.begin();
Serial.begin(9600);
Serial.print("server is at ");
Serial.println(Ethernet.localIP());
}
void loop(){
EthernetClient client = server.available();
if (client) {
while (client.connected()) {
if (client.available()) {
char c = client.read();
//read char by char HTTP request
if (readString.length() < 100) {
//store characters to string
readString += c;
//Serial.print(c);
}
if (c == '\n') {
Serial.println(readString); //print to serial monitor for debuging
if(readString.indexOf(on") != -1) {
digitalWrite(ledPin, HIGH);
}
else {
if(readString.indexOf("OFF") != -1) {
digitalWrite(ledPin, LOW);
}
}
delay(1);
client.stop();
readString=""; //clearing string for next read
}//if (c == '\n') {
}//if (client.available()) {
}//while (client.connected()) {
}// if (client) {
}//끝
//Client_WeMos_LED_ON_OFF_01: A simple web client using HTTP
import processing.net.*;
Client c;
String data;
void setup() {
size(400,400);
background(255);
}
void draw() {
}
void mousePressed() {
if (mouseButton == LEFT) {
background(255);
c = new Client(this, "192.168.0.11", 80); // Connect to server on port 80
c.write(on\n");
background(255,0,0);
delay(10);
}
else {
background(0);
c = new Client(this, "192.168.0.11", 80);
c.write("OFF\n");
delay(10);
}
}//end of program
'아두이노프로세싱 프로그래밍' 카테고리의 다른 글
아두이노 코딩에 의한 RC 저주파 필터 회로 실험 (0) | 2018.07.09 |
---|---|
Processing 클라이언트에 의한 이더넷 보드의 HTTP LED analogWrite 제어 (0) | 2018.07.08 |
아두이노 이더넷(Ethernet) 웹서버 코딩에 의한 LED ON OFF (0) | 2018.07.06 |
MPU6050 센서 사용 Pitching(피칭), Rolling(롤링), Yawing(야잉)각 측정 (0) | 2018.07.05 |
아두이노 이더넷(Ethernet) 웹서버 코딩 (0) | 2018.07.05 |