반응형




Node.js를 라즈베리파이에 설치하는 방법은 아래 글을 참고하세요 


[임베디드/Raspberry Pi] - Node.js를 이용하여 라즈베리파이2에 연결된 LED 제어하기



새로운 폴더를 생성한 후 ..필요한 Node.js용 패키지를  설치합니다. 

mkdir test & cd test

npm install onoff


그리고 나서 다음 두 개의 파일을 작성합니다. 


index.html

  1. <html>  
  2.   
  3. <head>  
  4. <title>LED TEST</title>  
  5. </head>  
  6.   
  7. <body>  
  8.   
  9. <h1> LED TEST </h1>  
  10.   
  11.     <form method="POST" action="form">  
  12.         ON:<input type="radio" name="radio" value="ON">   
  13.         OFF:<input type="radio" name="radio" value="OFF"><br><br>  
  14.         <input type="submit">  
  15.     </form>  
  16. </body>  
  17.   

  18. </html>  



server.js
  1. var http = require('http');  
  2. var fs = require('fs');  
  3. var Gpio = require('onoff').Gpio,  
  4.     led = new Gpio(21, 'out' );  
  5.   
  6.   
  7. http.createServer(function (request, response) {  
  8.     if (request.method == 'GET') {  
  9.         // GET 요청이 들어오면 웹페이지를 웹브라우저에 전송한다.  
  10.         fs.readFile('index.html'function (error, data) {  
  11.             response.writeHead(200, { 'Content-Type''text/html' });  
  12.             response.end(data);  
  13.         });  
  14.     } else if (request.method == 'POST') {  
  15.         // POST 요청이 들어오면 전송받은 데이터를 비교하여 LED를 제어한다.  
  16.         request.on('data'function (data) {  
  17.         if ( data == "radio=ON" ) led.writeSync(1);  
  18.         else led.writeSync(0);  
  19.   
  20.         });  
  21.     }  
  22. }).listen(9999, function () {  
  23.     console.log('Server Running at http://127.0.0.1:9999');  
  24. });  



하드웨어에 접근해야 하므로 실행할 때 sudo 명령을 사용해야 합니다.

$ sudo node server.js

Server Running at http://127.0.0.1:9999



피시에서 웹브라우저로 라즈베리파이의 IP인 192.168.0.20의 9999포트에 접속해보면 아래와 같은 화면이 보이게 됩니다.   마우스로 ON을 클릭 후.. 제출을 누르면 LED가 켜지고 다시 OFF를 클릭한 후 제출을 누르면 LED가 꺼지게 됩니다. 



반응형

문제 발생시 지나치지 마시고 댓글 남겨주시면 가능한 빨리 답장드립니다.

도움이 되셨다면 토스아이디로 후원해주세요.
https://toss.me/momo2024


제가 쓴 책도 한번 검토해보세요 ^^

+ Recent posts