GPIO 및 웹 서버를 이용하여 라즈베리파이 제어
2015. 11. 14. 10:07
리눅스/라즈베리파이
반응형
# 개요
GPIO와 웹서버를 통하여 라즈베리파이를 제어하자.
본 포스팅의 내용대로 수행 시 서버 보안의 큰 문제가 생길 수 있기 때문에 테스트 서버에서 혼자서만 사용하도록 하자.
# 설정
php에서 wiringPi소스를 실행하기 위해 (wiringPi 소스는 root 권한으로 실행해야 한다)
/etc/sudoers 파일에서 모든 파일 접근 시 권한 요구를 받지 않도록 설정해준다.
www-data ALL = NOPASSWD: ALL
# 동작 설명
웹 서버의 버튼을 클릭하면 Ajax통신을 통해 해당 버튼의 기능을 실행한다.
각 버튼은 php의 쉘 명령어 실행 코드로 wiringPi 코드를 실행하도록 한다.
# Ajax 코드
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 | <script language="javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script> <script> $(document).ready(function(){ $("#fw").mousedown(function(){ $.ajax({ type:'post' ,url:'./fw.php' }); }) }); $(document).ready(function(){ $("#bw").mousedown(function(){ $.ajax({ type:'post' ,url:'./bw.php' }); }) }); $(document).ready(function(){ $("#lw").mousedown(function(){ $.ajax({ type:'post' ,url:'./lw.php' }); }) }); $(document).ready(function(){ $("#rw").mousedown(function(){ $.ajax({ type:'post' ,url:'./rw.php' }); }) }); $(document).ready(function(){ $("#st").mousedown(function(){ $.ajax({ type:'post' ,url:'./st.php' }); }) }); </script> | cs |
# php 코드
1 2 3 4 5 | <? $out = exec("sudo ./python/wiringPi/rc_test f"); echo $out; ?> | cs |
# C 코드
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 | //left void movLeft(){ digitalWrite(M1_L,0); digitalWrite(M1_R,1); digitalWrite(M2_F,1); digitalWrite(M2_R,0); } //right void movRigt(){ digitalWrite(M1_L,1); digitalWrite(M1_R,0); digitalWrite(M2_F,0); digitalWrite(M2_R,1); } //stop void movStop(){ digitalWrite(M1_L,0); digitalWrite(M1_R,0); digitalWrite(M2_F,0); digitalWrite(M2_R,0); } //forw void movForw(){ digitalWrite(M1_L,0); digitalWrite(M1_R,1); digitalWrite(M2_F,0); digitalWrite(M2_R,1); } //back void movBack(){ digitalWrite(M1_L,1); digitalWrite(M1_R,0); digitalWrite(M2_F,1); digitalWrite(M2_R,0); } | cs |
# 실행
# 풀 코드
https://github.com/bcy3161/godHands
반응형
'리눅스 > 라즈베리파이' 카테고리의 다른 글
[방범 DIY] CCTV를 만들어보자 #2 (0) | 2017.05.10 |
---|---|
[방범 DIY] CCTV를 만들어보자 #1 (0) | 2017.05.10 |
WiringPi 설치 (0) | 2015.11.08 |
파이캠을 이용한 웹스트리밍 서버 (1) | 2015.11.08 |
SSH 연결 구축 (0) | 2015.09.24 |