지역난방아파트의 겨울 난방에 있어서 더운방/추운방 문제의 해결, 난방수를 통해 전달받는 열에너지의 확실한 소진, 결론적으로 난방 밸브를 주인맘대로 제어하는 사례 소개이자, node.js on top of Rasberry Pi의 실제 적용 사례 (추가 on 2/13, 밸브의 신(Valve God) 시스템을 필요로 하는 분들의 연락이 오고 있어서 페북그룹 만들었습니다. 많은 사람들이 필요로 하고 원하면 메이커운동, 마을 공동체 운동, IoT 스타트업등으로 확산하여 발전해 나갈 수 있을 것입니다. 관심과 욕구를 여기에 모아서 시각화하고 서포트 확보하고 발전시켜 나가죠. 대한민국 모든 난방수요자가 모두 "밸브의 신"이 될 수 있도록! https://www.facebook.com/groups/valve.god/ )
2. 밸브의 신
분당 지역난방 아파트 거주자 K씨의
난방관련 문제해결 사례
- Version 1.01 -
- Real application of node.js on Raspberry Pi -
2015년1월22일
김규호
3. 다른 가능한 주제들
• 구글링 만으로 node.js 전문가 되기
• Raspberry Pi GPIO 100% 활용하기
• 수학과 인내력, 알고리듬과 매뉴얼
• 아두이노 없이 Raspberry Pi로 센서 사용하기
• “IoT”에서 Big Data의 역할
• “IoT”에서 Context의 역할
• “IoT”와 Embedded System
• “IoT”와 원격제어시스템
• 온돌과 복사냉난방시스템
• 장작, 연탄, 중앙난방, 지역난방 業의 本質
• 지구 구하기
• 제레미 러프킨의 IoT로 에너지혁명 하기
• …
4. 오늘의 Topic
• 저런문제도 있구나
– 지역난방 아파트에 이런 문제가 있구나..
• 저렇게 해결할 수도 있구나
– Node.js + Raspberry Pi 로 이런걸 할 수 있구나
5. 한국의 온돌은 바닥에 열을 저장해 그 복사열로 실내를 데우는 세계 어느 나라
에서도 찾을 수 없는 독특한 난방방식으로 두만강 유역에서 발견된 가장 오래
된 온돌의 흔적으로 미뤄 5000년 이상의 역사를 가진 문화다. 현재 우리나라의
온돌은 바닥에 매설된 배관에 온수를 공급해 난방하는 방식으로 발전했으며 거
의 모든 주거 건물에 적용하고 있다.
땔감을 때는 전통 아궁이에서 연탄보일러, 기름보일러 방식의 온돌을 쓰다가 지
금은 가스보일러와 전기보일러를 쓰는 방식으로 바뀌었다. 특히 2000년대 초반
온돌의 쾌적함을 향상시키고자 각방제어난방 방식이 도입되면서 새로운 온돌
시스템의 도입과 시장확대 단계에 접어들고 있다.
[출처] 한국의 온돌난방, 세계 시장으로 뻗어간다 |작성자 콜드체인
http://blog.naver.com/coldchain777/60049675528
17. 시사점
• 망치를 들고 있으면 못 만 보인다.
• 머리가 아플때, 내과 의사는 약을 주고, 외과 의사는 수술
할 부위를 찾고, 정신과 의사는 어떤 트라우마가 있는지
를 찾는다.
• 보고 싶은 것, 볼 수 있는 것만 보고, 듣고 싶은 것, 들을
수 있는 것만 듣는다.
• 배관전문가는 배관만, 전기 전문가는 전기만… 업종
별 SILO
융합적 방법으로 쉬운 해결방법 모색
26. var http = require('http');
var Stats = require('fast-stats').Stats;
var mysql = require('mysql');
var express = require('express');
var xml2js = require('xml2js');
var Mcp3008 = require('mcp3008.js');
var gpio = require('rpi-gpio');
Modules
27. ADC 3008 읽어오기
var m = {};
var Mcp3008 = require('mcp3008.js');
adc = new Mcp3008()
function func (p) {
if (p > 7) return;
adc.read(p, function (value) {
var V = "s" + p;
m[V] = Math.round(Number(value)/1024. * 330.) - 50;
func(p+1);
});
}
func(0)
28. Relay 제어하기
var gpio = require('rpi-gpio');
var RelayP = [11, 12, 13, 15, 16, 18, 22, 7]
for (var i=0; i<8; i++) {
var r = RelayP[i];
//console.log("virtualp="+ i +", physicalP="+ r);
gpio.setup(r, gpio.DIR_OUT, function(err) {
if (err) {
console.log("setup ReplayP err:"+ err);
}
all_done++;
});
}
function RelayOn(v) {
gpio.write(RelayP[v], 0, function(err) {
if (err) console.log("RelayOn: " + err);
});
}
function RelayOff(v) {
gpio.write(RelayP[v], 1, function(err) {
if (err) console.log("RelayOff: " + err);
});
}
29. 기상청 데이터 가져오기
var options = {
host: 'www.kma.go.kr',
path: '/wid/queryDFSRSS.jsp?zone=4113552000'
}
handler = function() {
// handle e
}
http.request(options, callback).on('error', handler).end();
callback = function(response) {
var str = '';
response.on('data', function (chunk) {
str += chunk;
});
response.on('end', function () {
parser.parseString(str, function (err, r) {
if ('rss' in r && 'channel' in r.rss && 'item' in r.rss.channel[0]) {
var o = r.rss.channel[0].item[0].description[0].body[0].data[0];
WTIME = r.rss.channel[0].item[0].description[0].header[0].tm[0];
T1H = o.temp[0];
REH = o.reh[0];
WSD = parseInt(o.ws[0]*10)/10;
SKY = o.sky[0];
POP = o.pop[0];
}
44. Other Observations
• 추울때는 유입난방수 온도가 43도, 그런데 외기온도
가 영상 으로 가면 39도정도가 됨
• 난방수가 순환되지 않을때의 밸브온도는 무의미
• 각방 개별환수 밸브 온도와 무관히, 전체 환수밸브의
온도는 가장 낮은 온도로 측정됨
• 작년까지만 해도 추운겨울에는 버려두었던 방이었
지만, 금년은 영하 10도의 날씨에도 컴퓨터작업 가
능해짐
• 날이 상당히 추운관계로 난방 밸브를 많이 개방해둔
상태이지만, 난방비 폭탄건은 발생가능성 없슴
46. Problems & Results of Experiment
• 난방쏠림
– 완전해결
• 난방비효율
– 일단 우리집으로 들어온 난방수는 26도 이상의 상태로 돌
아가지 못함
– 난방이 제대로 되고 있는지에 대한 불안감 해소
날이 추우니 난방비는 나오더라도, 내가 돈주고 산 “난방
열”은 최대한 활용하는 상태임 보장으로 마음이 편해짐
• 난방비 폭탄
– 시스템이 정상작동하는한 난방비 폭탄가능성 없슴
1개월 이상 운전결과 아직은 그런현상 없고, 프로세스 모
니터링 툴 적용을 통해 2중 모니터링으로 해결가능한 문제
47. 가치 및 시사점
• Maker 활동으로 일상의 불편사항 해결
• 난방효과를 높이는 방법을 발견하고, 먼저 실천함으로써, 지구
를 구하는 작지만 큰 첫발 이동
• Raspberry Pi의 Powerful한 기능 확인
• Raspberry Pi의 GPIO 작동성 완전제어 경험
• node.js 의 Powerful한 기능, 확장성 확인
• 2-30대때의 프로그램 경험이 50대가 된다고 사라지는 것 아
님
• 개념만 명확히 알고있다면 프로그램언어의 Detailed Syntax를
모두 기억하지 않아도 구글링 통해서 복잡한 프로그램 가능함
• Sensing < Connecting < Actuating < < Thinking