아두이노와 홈페이지를 서로 연결하여 신호를 주고 받는 연습입니다.
홈페이지에서 아두이노에 연결된 LED를 켜고 끄는 연습을 하겠습니다.
아두이노를 연결하고 아두이노 프로그램을 실행시킵니다.
Tools -> Serial Port -> 를 확인해 보면 현재 아두이노가 /dev/ttyUSB0 에 연결되어 있는 것을 확인할 수 있습니다.
일단 php_serial.class.php와 serialledcontrol.php를 웹에 올립니다.
소스코드를 확인해 보시면, serialledcontrol.php 안에 아두이노의 시리얼포트를 설정해 주는 부분이 있습니다.
그 부분을 현재 서버쪽에 연결되어 있는 아두이노의 시리얼 포트 이름과 같아야 합니다.
현재 포트를 원하는 포트 이름으로 바꾸는 방법은,
터미널에서,
$ln -s /dev/ttyUSB0 /dev/ttyS99
입니다.
참조 : http://arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1241357468
ttyS99로 바꾸는 이유는, php_serial.class.php 내부에 Linux 포트설정에서 ttyS로 되어 있기 때문입니다.
$serial->deviceSet("/dev/tty.usbserial-A7006QCP"); //SET THIS TO WHATEVER YOUR SERIAL DEVICE HAPPENS TO BE, YOU CAN FIND THIS UNDER THE ARDUINO SOFTWARE'S MENU
serialledcontrol.php파일에서 위에 빨간색으로 씌여진 부분을 ttyS99 로 고치고 save합니다.
이렇게 포트도 코드와 맞춰주고 나면 웹에서 그 씨리얼 포트를 통해 통신 할 수 있는 권한을 줘야 합니다.
그 권한을 주는 방법은 www-data' 사용자를 'dialout' 그룹에 추가함으로써 해결됩니다.
$sudo adduser www-data dialout
그런다음 아파치 재시작해서 세팅 적용
$sudo /etc/init.d/apache2 restart
참조 :http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1232739501
이렇게 셋팅 된 후에 아래 자료실에서 SerialLEDComm.pde 를 다운받아서
아두이노에 굽습니다.
Drawing.pdf의 그림대로 LED를 연결하고,
홈페이지를 통해 serialledcontrol.php를 실행하여
LED를 켜고 끌 수 있습니다.
reference:
http://www.phpclasses.org/package/3679-PHP-Communicate-with-a-serial-port.html
http://missionduke.com/arduino-projects/