1편에 이어..
[Raspberry pi] - 1편 적외선 리모콘 (IR Remote Controller)
[Raspberry pi] - 2편 적외선 리모콘 (IR Remote Controller)
[Raspberry pi] - 3편 적외선 리모콘 (IR Remote Controller) + 음성인식
[Raspberry pi] - 4편 적외선 리모콘 (IR Remote Controller) + 음성인식 개선
[Raspberry pi] - 5편 적외선 리모콘 (IR Remote Controller) + TV 스피커리시버 연동
7. 발신부 연결
설정파일에 지정한대로 GPIO 23번 연결, GND 연결
회로는 아래 블로그를 참조
http://egloos.zum.com/hcpark0121/v/9275271
(회로도를 열심히 참조하긴 했지만, 결국 저항,TR 다 떼어냈다. 주방 TV 바로 옆에서 송신할꺼라 증폭도 필요없었다.)
irsend 명령으로 발신 시험
역시 아래 사이트 참조
http://www.lirc.org/html/irsend.html
$ irsend SEND_ONCE -# 10 dm-2901 KEY_CHANNELUP
콘솔창 두개 열고, 한쪽에서 irw, 한쪽에서 위 명령어 치면 아래와 같이 나와야 함.
8. 신호를 받고 제어할 웹서버 개발
역시 Googling, 깃허브에 훌륭한 샘플이 많다.
https://github.com/alexbain/lirc_node
위 소스로 별도 웹서버를 만들어도 되지만, 난 스마트콘센트 웹서버가 이미 있으므로 통합을 했다.
우선 lirc_node 패키지를 설치해야 한다.
$ npm install lirc_node
별거 없지만 full source 공개. 나도 폼나게 깃허브에 올릴까?
var express = require('express'),
http = require('http'),
app = express(),
server = http.createServer(app),
bodyParser = require('body-parser'),
lirc_node = require('lirc_node'),
GPIO = require('onoff').Gpio,
plug = new GPIO(2, 'out');
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended : false }));
app.get('/plug', function(req, res) {
res.sendFile('/html/plug.html', {root : __dirname });
});
app.post('/plugdata', function(req, res) {
var state = req.body.switch;
if (state == 'ON') {
plug.writeSync(1);
}else {
plug.writeSync(0);
}
console.log(state);
res.sendFile('/html/plug.html', {root : __dirname });
});
lirc_node.init();
lirc_node.addListener(function(data){
console.log("Received IO keypress '" + data.key + "' from remote '" + data.remote +"'");
});
app.get('/remote', function(req, res) {
res.sendFile('/html/remote.html', {root : __dirname }) ;
});
app.post('/remotedata', function(req, res) {
var state = req.body.dm;
lirc_node.irsend.send_once("dm-2901",state,function() {
console.log("Send dm-2901 "+ state +" command!");
});
res.sendFile('/html/remote.html', {root : __dirname }) ;
});
server.listen(80, function() {
console.log('Express server listenling on port ' + server.address().port) ;
});
중간 시험
이제 음성인식을 고안해봐야 겠다.
node.js의 강력하면서도 간편한 구조는 정말 감탄스럽다.
node.js 만 심도있게 공부해보고 싶은 생각도 든다. 내가 공부하고싶다는 생각을 하다니...
이게 얼마만인지..
'Raspberry pi' 카테고리의 다른 글
3편 적외선 리모콘 (IR Remote Controller) + 음성인식 (2) | 2017.04.17 |
---|---|
3편 스마트 콘센트? Smart Plug! (0) | 2017.04.16 |
1편 적외선 리모콘 (IR Remote Controller) (8) | 2017.04.16 |
2편 스마트 콘센트? Smart Plug! (0) | 2017.04.16 |
1편 스마트 콘센트? Smart Plug! (0) | 2017.04.16 |