//구글광고

아두이노 yun 을 이용한 문자알림 웹온습도계 만들기(1)


 회사 전산실에 에어컨이 시원찮아 계속 고장이 난다. 온도가 높아지면 서버들이 다 꺼지는데 큰 문제가 아닐 수 없다.


주말이나 야간에 누군가 조치하러 다녀가고 여간 골치가 아니다.


 FMS 솔루션을 도입하자니 우리 전산실 규모가 그정도는 아니고 오픈소스 하드웨어를 사용해서 저렴하게  온도가 올라가면 문자로 알려주면 정말 좋겠다 싶을때 만들면 좋은 초 심플 프로젝트 되시겠다.



1. 프로젝트 개요

아두이노(Arduino) yun 의 장점을 이용하여 온습도 데이터를 로깅하고 임계점 이상의 값에서 문자 메세지를 보내주는 심플한 프로젝트


2. 주요기능

- 웹으로 현재 온습도를 조회할 수 있다.
- 특정 온습도 이상이면 문자메세지로 알림을 받을수 있다.

3. 준비물

  - H/W(wifi환경이어야 한다.)

                               1. 아두이노 yun 보드


 

                                 2.AM2302 ( AOSONG 사 제품 - DHT22 ) 온습도계 센서


온습도계 센서 스팩


센서명

 AM2302 

 제조사

AOSONG 

 입력전원

3.3v ~ 5.5v DC 

 습도측정범위 

0에서 99.9% 

 온도측정범위 

-40에서 80 도 

 정밀도 

+- 2% 습도  +- 0.5 온도 

 출력 

디지털 1 와이어 

 수집시간 

2초에 1번 

측정에소요되는 전류 

 최대 2.5mA 

 크기

27mm 폭 x 58.75mm 높이 x 13.30mm 깊이 



이센서를 선택한 이유(장점)



1. 오픈소스 하드웨어 만들때 제일 불편한게 케이스임. 이건 하우징이 되어 있어서 만들때 깔끔함

(온습도 측정의 경우 표면온도 이기 때문에 온습도계를 아무데나 놓을순 없기 때문에 플라스틱 하우징으로 깔끔해서 선호 )


2. 가격이 적당히 저렴


3. 온습도 스팩 및 정밀도가 매우 우수함


4. 별도의 풀업저항을 연결할 필요없이 1가닥 와이어로 값을 센싱해올 수 있음. 

(저렴한 온습도 센서는 별도의 저항을 연결해서 배선해야 하지만 이제품은 다 내장 되어있음 )


5. 라이브러리 제공으로 아두이노에서 간단한 코드로 수치 해석 가능






                                3. 아두이노 yun 케이스



   
   - S/W
                            아두이노 개발툴 (  https://www.arduino.cc/en/Main/Software ) : 다운로드 하여 설치한다.



   AM2302(온습도센서) 라이브러리   

       https://github.com/adafruit/DHT-sensor-library 에서 DHT.h 파일을 다운로드 한다.
 
       

DHT.h




   - 기타
   SMS 연동 API
   ( 본 예제에서는 coolsms 의 API를 이용하므로 coolsms 에 회원가입해서 약간의 금액을 충전해야 함. )



4. 배선


                              1. 아두이노 yun 보드를 케이스에 안착시킨다.





                             2. 빨간선을 5V 에 , 검정선을 GND에 연결한다.


                                 

                              3. 노란선(데이터선)을 8번 핀에 연결한다.


 

                              4. 전선을 꾸깃꾸깃 정리 해서 케이스 뚜껑을 닫고 센서를 양면테잎으로 고정해준다.



                        이번강좌에서는 준비물과 하드웨어 배선까지 알아보았다.

                        다음 강좌에서 계속


많은분들이 오픈소스 하드웨어입문으로 아두이노를 선택합니다.

그 이유는 많은 레퍼런스, 검증된 안정성, 쉬운 프로토 타이핑

입니다.


거기에 중국산 호환보드로 엄청 저렴한 가격에 구성을 할 수 있기 때문입니다.


처음에 임베디드 입문해서 각종 센서들을 테스트 해보면

이제 집에 뭔가를 만들어보자 라고 생각을 하게 되죠


거기에서 제일 처음 막히는게 바로 이더넷 연결입니다.

그 문제를 해결하기 위해 이더넷 쉴드를 연결해서 통신을 구축합니다.


가격적인 부분으로 따져보면요, 아두이노 보드 + 이더넷 쉴드 > 아두이노 윤(yun) 으로

어차피 네트워크 구성할꺼 윤으로 처음부터 시작하시는게 좋을 선택일 수도 있습니다.



아두이노 윤 에는 wifi, ethernet 이 내장되어 있으며

별도의 영역에서 linux 로 호스팅 되는 Ar99331 Linux 코어가 따로 있습니다.


이것의 장점은


여러분들이 아두이노에서 센서 데이터 수집한 값을 자체 리눅스의 mySQL DB로 저장할 수 있습니다.

Python 을 설치해서 문자메세지(SMS) 연동으로 전송할 수 있구요


php를 설치해서 웹 페이지를 제작할 수 있습니다.




로직은 이렇게 구성됩니다.


1) 아두이노 Atmega 32u4 에서 센서값을 센싱한다

2) 센싱한값을 리눅스로 전송한다 (pipe)

3) 리눅스에서 DB에 저장하거나 웹 전송, 웹서버, 문자메시지 전송등의 고급 어플리케이션 레이어를 구동한다.



아두이노 윤의 장점은 아두이노 + 인터넷 쉴드보다 가격이 저렴하고 크기도 작다. 



그럼 차라리 라즈베리파이나 다른 임베디드 보드로 가는 것이 좋은것 아니냐 하는 분들도 있을수 있습니다.



여기에서 개인적인 경험으로는

라즈베리 파이 보드를 전원을 꼽앗다 뺏다 다섯번안에 파일시스템 크러쉬가 날것 입니다.


아두이노 윤은 수십번 테스트 해도 멀쩡했습니다.


임베디드 환경에 따라 안정적인 전원공급여부에 따라 다를수 있겠지만,

저는 그래서 라즈베리 파이등의 시스템을 쓰지 않고 아두이노 윤으로 구성한곳이 많습니다.


파워풀한 컴퓨팅 파워보다는 전원에 따른 시스템 안정성이 아두이노 윤이 높았고

오래 운영가능했습니다.


앞으로 아두이노 윤으로도 몇가지 프로젝트를 진행해보고자 합니다.


+ Recent posts