더위를 결정하는 데 있어서 중요한 물리량은 기온과 습도이다. 이와 관련하여 환경 데이터를 신속하게 측정하는 ‘기온, 습도, 기압 무선 데이터 로거’를 제작했다. 최종 목표인, 실내로 바람을 통과시키는 팬 컨트롤에 응용할 수 있다.
여기서 제작한 로거 사양은 센서를 출하 상태 그대로 조정 없이 사용했으므로 다음과 같다.
온도 : ±1.5℃, 습도 : ±3RH%(상대습도)
압력 : ±1.5%(풀 스케일)
무선화에는 XBee를 사용했기 때문에 무선 전문 기술이 필요없다. 센서는 모두 선형화 기능이 있는 아날로그 출력에 출력 전압 범위와 오프셋을 맞춰 넣을 경우 테스터에도 직접 연결할 수 있는 것을 선택했다. 앰프 회로를 만들 필요가 없어 측정이라는 목표에 가장 빨리 도달할 수 있다.
각 방의 더위 정보를 XBee로 모은다
1. 바람의 경로를 만든다
이번 주제를 결정한 데에는 동기가 있었다. 그림 1과 같이 실내에 바람의 경로를 만드는 에어컨을 사용하지 않고도 시원함을 유지하고 싶다는 생각이 있었다. 오리지널은 기억나지 않지만 TV 뉴스 프로그램에서 본 적이 있었다. 바람의 흐름을 만들기 위해 팬을 사용한다. 원래는 모든 제어가 수동이었지만 제어 전문가인 만큼 자동화할 수 있을 것 같았다.
▲그림 1. 실내에서 바람이 원활하게 통과하는 길을 만들어 시원하게 지내기 위한
예비 실험을 실시했다 (센서와 팬 사이는 무선 통신으로 깔끔하게 만든다)
이 때 단순히 한 곳의 실온을 측정하여 ON/OFF해서는 효과를 측정할 수 없다. 그림 2(a)와 같이 건물 안과 밖의 여러 곳에서 동시에 기온, 습도, 기압을 측정하여 효과를 확인할 수 있을지 생각해 봤다.
이번에는 예비 실험용으로 그림 2(b)와 같이 간단한 회로를 제작했다. LED ON/OFF는 팬 ON/OFF를 모의했다. 사진 1은 제작한 친기(親機)와 자기(子機)의 외관이다.
▲사진 1. 제작한 무선 센싱 모듈 (친기는 PC와 연결하여 팬을 모방한 자기의 LED를
ON/OFF하거나 센서 신호를 로깅한다. 자기에는 온도, 습도, 기압 센서를 접속했다)
▲그림 2. 각 실내, 실외의 온도 및 습도를 센싱하는 장치를 만들었다
2. XBee 사용법
여기서 실행하려고 하는 것은 PC 본체 내 온도 제어와 동일하다. 그러나 치수가 전혀 다르다. PC 케이스 안이라면 배선이 짧아도 되지만 4.5다다미(다다미 1장은 180cm×90cm)인 내 방에서도 구석구석까지 배선을 깔면 수m나 된다. 항상 설치되어 있다면 거추장스러울 것이다. 그래서 무선 모듈 XBee를 사용했다. XBee는 무선 PAN(Personal Area Network) 형성용 무선 모듈이다. 직류 데이터를 약간 떨어진 장소에서 거의 동시에 많이 모으고자 할 경우 최적이다. 데이터는 시작 정지 동기 시리얼 포트를 통해 외부와 주고받는다. 모듈당 4개의 10비트 A-D 컨버터 입력을 갖추었으므로 아날로그 입력을 주요 용도로 해도 좋다. I/O 포트를 사용한 팬 ON/OFF 등 간단한 조작도 컨트롤할 수 있다.
3. 컨트롤은 PC로
데이터 로거 본체는 PC를 사용했다. 액셀 매크로를 사용하여 COM 포트를 경유, XBee와 접속했다. 조사·연구용으로는 표 계산 소프트웨어에 직접 연결하므로 데이터 해석이 간단하다. 그림 3, 그림 4는 2012년 6월 19일~20일에 걸친 데이터이다. 태풍 4호가 규슈 남해상에서 접근해 기이반도에 상륙, 도카이 → 간토 → 도호쿠로 북상하여 태평양으로 빠져나갔다. 기온과 습도 데이터는 실내이므로 제각각이지만, 기압 데이터는 태풍의 모습을 잘 보여주고 있다.
▲그림 3. 온도와 실온 계측 결과
▲그림 4. 기압을 계측해 보았다
이 기기의 하드웨어
1. 자기에서 데이터를 모아 PC에 전송하는 친기
친기의 회로는 그림 5와 같다. XBee와 PC 인터페이스에 USB 시리얼 변환 모듈을 사용했다. 전원은 USB 버스 파워에서 LDO로 +3.3V로 떨어뜨려 사용했다. 온도 센서 LM35D의 전원전압은 4~30V이므로 버스 파워에서 직접 공급한다. XBee의 A-D 변환 입력 단자에는 각종 센서를 접속할 수 있도록 LM358에 의한 입력 버퍼를 설치했다. 이로써 XBee 입력 단자에 전원전압을 초과하는 전압이 가해지는 것을 방지한다. 동작 확인용으로 XBee의 P1(7핀 : DIO11)과 D4(11핀 : DIO4)에 LED를 접속했다.
▲그림 5. 친기의 회로
2. 각 방의 온도/습도/기압을 계측하여 친기에 알리는 자기
자기의 회로는 그림 6과 같다. 날씨와 관계된 기압도 결국 측정할 수 있게 된다. 전원은 배터리에서 공급했다. 4계통인 A-D 변환 입력은 다음과 같이 할당했다.
▲그림 6. 자기의 회로
① 전원전압 감시 ② 습도 센서 ③ 압력 센서 ④ 온도 센서
①의 전원전압은 센서에 공급하는 전압을 감시한다. LDO로 안정화되어 있으므로 일반적으로 일정하다. 설치 장소에 따라서는 온도가 올라가거나 내려간다. 그런 장소에 설치된 자기가 정상 동작하고 있는지 간접적으로 확인할 수 있다.
LM35D는 4V부터 동작 가능하므로 건전지 또는 NiMH 축전지 3개의 방전 종지 전압(1V/셀)까지 사용할 수 있다. 습도 센서와 압력 센서의 출력값 산출식에는 전원전압이 파라미터로서 포함되어 있다. 이번에는 VS=5.00V로 계산했다. 리셋 IC, M51957B(르네사스 일렉트로닉스)를 사용하여 배터리로 구동할 경우의 전원전압을 감시할 수 있도록 했다.
XBee의 I/O핀 설정은 표 1과 같다. 모든 XBee에서 공통이다. 이로써 I/O 수신 데이터 포맷을 통일시킬 수 있다.
▲표 1. XBee의 I/O 핀 설정은 계측 데이터를 간단히 처리하기 위해
모든 XBee에서 동일하게 해둔다
3. XBee 실장에는 2-2.54mm 피치 변환 기판이 편리하다
XBee는 핀 피치가 2mm이므로 실장이 다소 번거롭다. 친기와 같이 2mm 피치의 유니버설 기판을 사용하는 방법도 있지만, 자기와 같이 시판되고 있는 피치 변환 기판을 이용하면 간단하다. 이번에 자기의 피치 변환 기판에는 프린트 기판 통신판매 사이트인 P판.com에서 공급하는 ‘패널 de 보드’ 시리즈의 XBee-TR001A를 사용했다. 센서는 1.27mm 피치의 SOP → 28핀 DIP 변환 기판에 탑재했다. 그 결과, 72×47mm 크기의 유니버설 기판에 다 넣을 수 있었다.
액셀을 사용하여 데이터 정리
그림 7의 액셀 매크로를 사용하여 워크시트에 준비한 XBee 데이터 요구 명령(IS 명령)을 친기에서 자기로 정기적으로 송신하고 회신 데이터를 워크시트에 기록했다. COM 포트의 인터페이스에는 무료인 VB 모듈을 사용했다.
XBee가 형성하는 PAN에서는 터미널(XBee)로 동시에 송신 요구가 발행돼도 문제없다. 단, 친기 PC와 XBee 사이는 동시에 명령을 낼 경우 통신 에러가 된다. 그래서 이번에 친기는 다음과 같은 순서로 반복해서 처리하도록 했다.
▲그림 7. 계측용으로 제작한 매크로의 PC 화면 (자기의 센싱 데이터 로깅이나
자기의 팬 ON/OFF를 본뜬 LED ON/OFF 명령 송신 가능)
(1) 센서 데이터 샘플링
① COM 포트를 연다
② 자기에 I/O 상태 데이터를 요구하는 명령 송신
③ 자기에서 회신된 데이터를 수신하여 해석
④ COM 포트를 닫는다
⑤ 필요한 데이터를 액셀의 셀에 저장
(2) 매크로시트에서 LED(팬을 모방했다) ON/OFF
① 워크시트의 스위치(버튼)에 의해 임의 타이밍에서 플래그가 ON/OFF한다
② COM 포트를 연다
③ 플래그 상태에 맞춰 DIO의 ON 또는 OFF 명령 송신
④ COM 포트를 닫는다
원래는 (1)을 주기적으로 실행하고, (2)는 임의 타이밍에 실행 가능하지만, (1)을 실행·처리하는 도중 (2)를 실행하면 동일한 COM 포트를 함께 취해 통신 에러가 된다. 이것을 피하기 위해 (1) 실행에 동기하여 (1)이 COM 포트를 사용하지 않는 시간에 (2)를 실행한다.
액셀로 매크로를 사용할 때 액셀 내에서 다른 북을 열면 액티브 시트를 잘못 인식하여 오동작할 위험성이 있다. 데이터를 취득하고 있는 PC는 액셀 전용으로 동작했다.
사용한 센서
센서 소자의 출력 신호는 물리량에 대해 선형이 아닌 경우가 많아, 증폭하는 것만으로는 대부분 사용할 수 없다. 출력 특성에 따라서는 대수 앰프나 정류 회로, 온도 보정 회로 등이 필요하다. 한편, 검출한 물리량에 비례하는 전압이나 디지털 데이터를 출력하는 회로가 내장된 센서 모듈도 있다. 이번에는 온도, 습도, 압력의 각 센서 모듈을 찾았다.
1. 교정이 중요하다
설계·제작보다 번거로운 것이 완성된 회로를 교정하는 일이다. 센서 소자는 눈금을 긋기 전의 척도와 같다. 반드시 교정해야 한다. 센서 모듈 중에는 제조 공정에서 교정이 완료된 것이 있다. 더 엄격하게 운용하려면 교정은 필수적이지만, 구입한 상태 그대로도 오차의 최대값이 보증되는 신용할 수 있는 출력값을 얻을 수 있다. 이번에는 개인용이므로 익숙한 것으로 동작을 확인한다.
온도는 주변에 있는 저렴한 온도계를 사용하더라도 5℃나 틀리는 경우는 없으므로 그것과 비교한다. 기압은 온도나 습도 정도로는 설치 장소의 영향을 받지 않으므로 기상청 발표 지역의 기압을 알 수 있다. 대략적으로 동작 확인만 하려면 초대형 태풍의 중심에 있지 않는 한, 표준 대기압에서 대용해도 풀스케일의 몇 % 정도밖에 차이가 나지 않는다(단, 고도의 영향은 크다). 습도도 기준이 되는 값을 원 포인트라도 발생시켜 교정해야 한다. 정확한 습도를 간단하게 발생시키는 방법으로 포화 염법이 있다(나중에 설명한다).
2. 온도 센서 LM35D
온도 센서는 LM35D(텍사스 인스트루먼트)를 사용했다. 직접 제작한 PC의 습도 제어 등에서 친숙한 센서 IC이며, 그림 8과 같이 온도에 비례하는 직류 전압을 출력한다. 출력 전압의 계수는 10mV/℃이므로 전압계 판독이 소수점 위치를 어긋나게 하기만 해도 그대로 온도 데이터가 된다. 패키지는 리드선이 있는 소신호 트랜지스터 중 대표적인 TO-92이므로 실장도 간단하다.
▲그림 8. 온도 센서 LM35의 온도 대 출력 전압 특성
(출력 전압은 온도에 비례한다)
(1) 실장 방법
센서 설치 상태는 측정값에 큰 영향을 준다. 의미 있는 데이터를 얻기 위해서는 설치 방법에도 배려가 필요하다. 일반론에서 봤을 때 열은 다음과 같은 3가지 형태로 전달된다.
① 전도, ② 방사, ③ 대류
기온을 측정하려면 공기에서 전도되는 열만 센서에 전달하고 다른 것은 차단한다(백엽상이나 통풍관의 주요 역할).
LM35의 데이터시트에는 ‘리드선이 있는 TO-92형 패키지는 특히 실장의 영향을 받기 쉽다’고 써 있다. 측온 대상물과 공기의 온도가 다를 때에는 리드선이 방열기로 되어 공기(주위 온도)의 영향을 받기 때문이다. 공기 이외의 온도를 핀포인트로 측정하려면 애플리케이션 노트에 있는 것과 같이 리드선을 차단, 패키지 표면(평탄한 면)만 대상에 밀착한다.
이번에는 기온 측정이 목적이므로 애플리케이션 노트와는 반대로 대책을 세운다. 칩 온도를 측온 대상인 공기와 동일하게 하기 위해서는 리드선을 공기에 적극적으로 노출시키는 것도 유효하다. 경우에 따라서는 소형 방열기를 사용하는 것도 효과적이다.
그림 9에서는 LM35D로 거의 같은 장소의 기온을 측정했지만, 설치 방법에 따라 높은 기온 데이터가 얻어진 예이다. 온도 상승이 있는 쪽은 그림 10(a)와 같이 LM35D를 직접 기판에 실장한 경우이다. 전원을 투입하면 소비전력에 의해 기판 온도가 상승하기 시작하고 그 열이 LM35D에 전달된다. 그림 10(b)와 같이 LM35D의 리드선을 연장하여 기판에서 분리하면 기온을 정확하게 측정할 수 있다.
▲그림 9. 온도 센서를 기판에 실장하면 온도를 높게 계측해 버린다
▲그림 10. 온도 센서로 기온을 측정할 때는 열원이 있는 기판에서 떨어뜨려 접속한다
3. 습도 센서 HIH-5030
습도 센서로는 HIH-5030(하니웰)을 사용했다. 상대습도-전압 특성을 그림 11에 나타낸다. 폴리머 수지의 용량 변화를 이용했으며, 반응속도(시정수)가 5s로 고속인 것이 특징이다. 전원을 넣기만 하면 습도에 비례하는 전압이 출력된다. 비례상수는 단락이 좋은 값이 아니며, 더욱이 출력에 오프셋이 있으므로(Vout=0V가 습도 0%는 아니다) 연산 처리가 필요하다. 연산식은 단순한 1차 식이며 상수와 함께 데이터시트에 기재되어 있다.
▲그림 11. 습도 센서 HIH-5030의 상대습도 대 출력 전압 특성
(출력 전압은 상대습도에 비례한다)
엄밀하게는 온도 보정이 필요하다. 25℃를 기준으로 1℃당 0.2% 정도 영향을 주므로 교정 없이 사용할 수 있는 경우도 많을 것이다. 1.27mm 피치의 표면실장형이며 전극은 SOP 풋 패턴으로 실장할 수 있다(단, 일반적인 SOP의 폭보다 길다).
데이터시트에는 값이 기재되어 있지 않지만 출력 전류가 작은 것 같으므로 부하저항은 65Ω보다 커야 한다. 같은 규격으로 센서 창구에 방진 필터가 달린 HIH-5031도 있다.
(1) 포화 염법에 의한 원포인트 교정
HIH-5030의 오차는 ±3RH% 이내로 데이터시트 값에 비해 뛰어난 성능이지만, 백엔숍의 습도계와 저렴한 테스터 습도 측정 레인지를 배열하여 측정했더니 10~ 20RH%나 낮은 값을 보였다. 어느 쪽이 정확한지 확인이 필요하다.
정확한 습도를 간단하게 발생시키는 방법으로 포화 염법이 있다. 그림 12는 이번에 실시한 포화 염법에 의해 구성한 모습, 그림 13은 HIH-5030에 의한 습도 계측 데이터이다.
▲그림 12. 포화 염법에 의한 습도 센서 교정 방법
▲그림 13. 포화 염법에 의한 습도 측정 결과 (HIH-5030의 출력 데이터 교정에 사용한다)
염화나트륨 등 염의 포화 수용액과 평행 상태에 있는 공기의 상대습도가 염의 종류와 용액 온도에 따라 결정되는 것을 이용한다. 바꿔 말하면, 밀폐된 용기에 염이 녹아서 남을 정도로 짙은 용액을 넣고 일정한 온도로 유지하면 비어 있는 공간의 습도가 정해진 값으로 된다는 것이다.
JIS(JIS B7920)에 사용하는 염의 종류와 온도에 대해 기술되어 있다. 염화나트륨을 사용한 경우, 20℃에서 75.5±0.2RH%, 25℃에서 75.3±0.2RH%, 30℃에서 75.5±0.2RH%나 된다.
염에 식염(염화나트륨 99%)을 사용한 경우, 실온 약 27℃에서 HIH-5030의 출력은 76.0RH%로 사양인 ±3RH%를 만족시키는 값이었다. 용매로는 수도에서 나오는 음용수(우물물)를 사용했다. 정식으로는 시약인 염화나트륨과 정제수를 사용해야 한다. 염화나트륨 이외의 염을 구할 수 있다면 75RH% 외에서도 교정할 수 있다(폐기 여부는 확인 필요).
용액은 JIS 설명에 셔벗 형태라고 되어 있듯이, 액체라기보다는 염에 물을 찰랑찰랑할 정도로 부은 정도가 좋다. 공간과 용액이 접하는 면적은 크게 한다. 용기는 밀폐성이 높은 것으로 하여 불순물이 부착되지 않도록 잘 세정한 후 사용한다. 세정 후 물방울 등 불필요한 수분이 용기 내에 부착되면 그것이 증발하여 용액에 흡수될 때까지 정확한 습도로 되지 않는다. 용기 내 공기와 용액의 균질성도 필요하지만, 이번에 사용한 직경 10cm 높이 6cm 정도의 용기에서는 내부를 휘저어 섞지 않았는데도 결과가 바뀌지 않았다.
4. 기압 센서 MPXHZ6116A
기압 센서는 MPXHZ6116A(프리스케일 세미컨덕터)를 사용했다. 압력-전압 특성은 그림 14와 같다. 얼핏 보기에는 기존의 압력 센서 소자와 다르지 않지만 전자 회로를 내장하고 있어 온도, 습도와 마찬가지로 전원을 넣기만 하면 압력에 비례하는 전압을 싱글 엔드로 출력한다. 그리고 핀 피치는 1.27mm로 SOP와 같지만 폭이 넓으므로 SOP의 풋 패턴에는 한쪽밖에 실리지 않는다. 3개의 전극은 한쪽에 일렬로 세우고 다른 한 열은 유지용이므로 문제없이 동작한다.
프리스케일 제품에는 MPL3115A2라는, I2C 출력에서 분해능 1.5Pa(표준)인 제품도 있다. 30cm의 고도차까지 검출하는 터무니없는 성능이지만 집필 시에는 구할 수 없었다.
▲그림 14. 기압 센서 MPXHZ6116A의 기압 대 출력 전압 특성
(출력 전압은 기압에 비례한다)
(1) 대기압 계측용 압력 센서
압력 센서로 대기압을 측정하기 위해서는 ‘절대압’ 타입이며 표준 대기압(=1013.25hPa=101.325kPa) 부근의 압력을 비교적 높은 분해능으로 측정할 수 있는 것이 필요하다. 상기의 제품이 최고 압력 115kPa을 일부러 제품명에 포함시킨 것은 ‘대기압용’을 표현하고자 했기 때문일 것이다.
신문 등에서의 기상도 등압선은 4hPa 간격이다. 즉, 1/1000 단위의 기압 변화가 기상을 좌우하게 된다. 기상 데이터의 분해능은 보통 0.1hPa이다.
MPXHZ6116A의 출력 전압 최대값은 4.8V이므로 이번에는 출력을 1/4로 분압하여 XBee의 A-D 컨버터에 입력했다. XBee의 A-D 컨버터 분해능은 10비트(0~1023카운트)이므로 잘 할당해도 1hPa까지의 분해능이 있을지는 장담할 수 없다. 그래도 등압선의 차이를 구할 정도의 분해능은 있으므로 우선은 그대로 사용했다. 실제로 비가 오는 날과 맑은 날에는 차이를 알 수 있으며, 기상청 발표의 지역 데이터와 일치했다(일반 기상도의 기압값은 표고에 의한 기압차를 표고 0m 상당으로 보정한 액면기압이라는 것에 주의한다).
팬 ON/OFF 회로
방 안의 온도/습도를 검출할 수 있었으므로 다음에는 팬을 제어한다. 이 경우, XBee를 이용한 기존의 PAN에 XBee와 팬 모듈만 추가하면 된다.
센서 신호를 토대로 제어를 거는 피드백 제어는 신호를 무선 통신하므로 불확정 시간 지연이 있어 책상 위에서 생각했던 것처럼 잘 되지 않을지도 모른다. 그러나 오픈 루프에서 어딘가의 온도가 상한을 초과하면 팬은 문제없이 ON된다.
XBee의 디지털 I/O 포트는 미리 범용적으로 사용할 수 있도록 설정해 둘 필요가 있다. XBee 디지털 포트의 출력 전류는 유출, 유입 모두 최대 4mA(일부 8mA)이므로 LED는 다행히 점등할 수 있지만 팬 등은 직접 구동할 수 없다. 이 경우에는 그림 15와 같이 릴레이 등으로 중계하여 다룰 수 있는 전류와 전압을 증강한다. 파워가 커지면 노이즈 등의 트러블 위험성이 증가한다. 파워를 다루는 회로와 XBee+ 센서의 소신호 회로의 전원 & 그라운드는 포토커플러 등으로 분리해야 할 수도 있다.
▲그림 15. XBee에서 팬을 ON/OFF시킬 때에는 릴레이 등 대전력을 구동할 수 있는 외장 회로가 필요하다
(XBee의 출력 전류는 4mA이므로 팬을 직접 구동할 수 없다)
本 記事는 日本 CQ出版社가 發行하는 「トランジスタ技術」誌와의 著作權 協定에 依據하여 提供받은 資料입니다.
게재월 | 2014 - 01
146231
0