}
void loop() {
//digitalWrite(13, HIGH);
int incomingValue = 0; // nodeJS에서 보낸값
if ( Serial.available() > 0 ) { // 뭔가 입력값이 있다면
//digitalWrite(13, HIGH);
incomingValue = Serial.read();
Serial.println(incomingValue);
}
if ( incomingValue == 49 ) { // 값이 ‘1’ 이면
digitalWrite(13, HIGH); // LED를 켠다.
}
if ( incomingValue == 48 ) { // 값이 ‘0’ 이면
digitalWrite(13, LOW); // LED를 끈다.
}
}
소스가 이상하게 올라갔네요. 밑에 다시올렸습니다.
setLED 함수 8줄에 버그가 있는거같습니다.
예를들어 flag값이 1 이라고 하면
flag+’0′
하면 결과가 48이아니라 자바스크립트에서는 ’10’ 이지않나요?
글을 제대로 읽고 실습하신 분이 드디어 계시는군요.
감사합니다.
지적하신 부분은 수정해놓겠습니다. 😀
얼마전 부터 혼자 노드랑 아두이노 공부를 시작한 학생입니다..위의 소스를 똑같이 써서 했는데 node.js 에서
fs.js:415
binding.write(fd, buffer, offset, length, position, wrapper);
^
TypeError: Bad argument
at Object.fs.write (fs.js:415:11)
at C:\Users\514-2-1\workspace\Test\ardu.js:17:12
at Object.oncomplete (fs.js:297:15)
이러한 에러가 나는데 이럴때는 어떻게 해야하나요. 제가 아직 완전 문외한이라서 하루동안 메달려도 도저히 해결을 할 수 가 없네요 ㅠㅠ
선생님 감사합니다. 덕분에 많은걸 배웠습니다 ㅎㅎ
리눅스나 맥에서 하신것 같은데, ms윈도우즈에서는 어떻게 가능할지요?
해당소스에 ‘/dev/tty-usbserial1’ 부분은 리눅스나 유닉스용 장치명입니다.
윈도우일경우 ‘COM1’ 등과 같은 형태로 적으시면 됩니다.
<>
var isOn = false;
setInterval(function(){
if ( !isOn ) { // OFF면
setLED(1);
} else { // ON이면
setLED(0);
}
isOn = !isOn;
}, 1000);
function setLED(flag) {
var fs = require(‘fs’);
// Appending 모드로 /dev/tty-usbserial1 장치를 Open
fs.open(‘COM3’, ‘a’, 666, function( e, fd ) {
// flag가 0이 아니면 ‘1’을 보내고,
// 0이면 ‘0’을 보낸다.
fs.write( fd, flag ? ‘1’ : ‘0’, null, null, null, function(){
fs.close(fd, function(){
console.log(‘Sending ‘, flag);
});
});
});
}
한 후 cmd에서 node app.js 실행하면 커서만 깜밖이고 아무런 반응이 없는데 이건 이가 뭐죠??
고맙습니다. 참고해서 열심히 공부하겠습니다~
감사합니다. Node.js랑 다른 센서를 연결시키면 무선으로 동작시킬 수 있을텐데 아쉽네요. 혹시 따로 센서나 방법이 있나요?(USB 포트만 연결하면 재미없을 것 같네요.)
오 대박이예요.
감사합니다.
아두이노 쪽 소스에
Serial.begin(9600) 이 빠진거같네요.
다음과 같이 해야 동작되는거같습니다.
void setup() {
Serial.begin(9600); 0 ) { // 뭔가 입력값이 있다면
//digitalWrite(13, HIGH);
incomingValue = Serial.read();
Serial.println(incomingValue);
}
if ( incomingValue == 49 ) { // 값이 ‘1’ 이면
digitalWrite(13, HIGH); // LED를 켠다.
}
if ( incomingValue == 48 ) { // 값이 ‘0’ 이면
digitalWrite(13, LOW); // LED를 끈다.
}
}
void setup() {
Serial.begin(9600);
pinMode(13, OUTPUT);
Serial.println(“hello”);
}
void loop() {
//digitalWrite(13, HIGH);
int incomingValue = 0; // nodeJS에서 보낸값
if ( Serial.available() > 0 ) { // 뭔가 입력값이 있다면
//digitalWrite(13, HIGH);
incomingValue = Serial.read();
Serial.println(incomingValue);
}
if ( incomingValue == 49 ) { // 값이 ‘1’ 이면
digitalWrite(13, HIGH); // LED를 켠다.
}
if ( incomingValue == 48 ) { // 값이 ‘0’ 이면
digitalWrite(13, LOW); // LED를 끈다.
}
}
소스가 이상하게 올라갔네요. 밑에 다시올렸습니다.
setLED 함수 8줄에 버그가 있는거같습니다.
예를들어 flag값이 1 이라고 하면
flag+’0′
하면 결과가 48이아니라 자바스크립트에서는 ’10’ 이지않나요?
글을 제대로 읽고 실습하신 분이 드디어 계시는군요.
감사합니다.
지적하신 부분은 수정해놓겠습니다. 😀
얼마전 부터 혼자 노드랑 아두이노 공부를 시작한 학생입니다..위의 소스를 똑같이 써서 했는데 node.js 에서
fs.js:415
binding.write(fd, buffer, offset, length, position, wrapper);
^
TypeError: Bad argument
at Object.fs.write (fs.js:415:11)
at C:\Users\514-2-1\workspace\Test\ardu.js:17:12
at Object.oncomplete (fs.js:297:15)
이러한 에러가 나는데 이럴때는 어떻게 해야하나요. 제가 아직 완전 문외한이라서 하루동안 메달려도 도저히 해결을 할 수 가 없네요 ㅠㅠ
선생님 감사합니다. 덕분에 많은걸 배웠습니다 ㅎㅎ
리눅스나 맥에서 하신것 같은데, ms윈도우즈에서는 어떻게 가능할지요?
해당소스에 ‘/dev/tty-usbserial1’ 부분은 리눅스나 유닉스용 장치명입니다.
윈도우일경우 ‘COM1’ 등과 같은 형태로 적으시면 됩니다.
<>
var isOn = false;
setInterval(function(){
if ( !isOn ) { // OFF면
setLED(1);
} else { // ON이면
setLED(0);
}
isOn = !isOn;
}, 1000);
function setLED(flag) {
var fs = require(‘fs’);
// Appending 모드로 /dev/tty-usbserial1 장치를 Open
fs.open(‘COM3’, ‘a’, 666, function( e, fd ) {
// flag가 0이 아니면 ‘1’을 보내고,
// 0이면 ‘0’을 보낸다.
fs.write( fd, flag ? ‘1’ : ‘0’, null, null, null, function(){
fs.close(fd, function(){
console.log(‘Sending ‘, flag);
});
});
});
}
한 후 cmd에서 node app.js 실행하면 커서만 깜밖이고 아무런 반응이 없는데 이건 이가 뭐죠??
고맙습니다. 참고해서 열심히 공부하겠습니다~
감사합니다. Node.js랑 다른 센서를 연결시키면 무선으로 동작시킬 수 있을텐데 아쉽네요. 혹시 따로 센서나 방법이 있나요?(USB 포트만 연결하면 재미없을 것 같네요.)
디지털 센서라면 Raspberry Pi를 사용하시는 것도 방법입니다.