아두이노 레오나르도 보드로 분류되는 프로마이크로 보드를 라즈베리 파이 USB포트에 연결하고 온습도 센서 DHT11을 보드의 디지털 데이터 핀 5번에 설치하기로 하자.
아두이노 프로마이크로 보드는 멀티위(Multiwii) 비행제어 코드를 사용하는 아두이노 드론에서 흔하게 사용되는 아두이노 보드이므로 온습도 측정 코드를 업로딩하여 사용하다가 다시 멀티위 드론 코드를 업로딩해 사용하면 된다.
DHT11.h 라이브러리를 불러들이고 DHT11 온습도 센서의 데이터 핀을 디지털 데이터 핀 5번으로 설정한다.
DHT11 이란 라이브러리 클라스 명령을 간단하게 소문자형 dht11()로 다시 명명한다. 이런 설정은 라이브러리 파일 내부에 포함되어 있는 내용에 근거하여 파라메터인 핀 번호를 입력할 수 있도록 조치해 주는 방법이다.
dht11.read() 명령에 의해 온습도 데이터를 센싱하고 출력하고 2초간 대기하도록 한다.
실내의 온습도 값은 2초만에 급변하지 않는다는 점에서 2초도 대단히 짧은 시간이다.
온습도 측정 실험에서 센서의 급격한 데이터 변화를 유발시키기 위해서는 온습도 센서를 손가락에 쥐고 따뜻하게 해주면 온도가 2∼3도 습도는 20∼30% 정도 변화가 가능하다.
아두이노 온습도 측정 코드를 라즈베리 파이에서 성공적으로 컴파일 업로딩하면 그림과 같이 Thank you 와 함께 설정된 통신속도 및 포트 번호가 출력된다. 여기서 포트 번호는 윈도우즈 PC 와는 조금 달리 /dev/ttyACM1 이다.
시리얼 모니터에서 온습도가 잘 측정되고 있는지 확인 후 시리얼 모니터를 반드시 끄도록 한다.
라즈베리 파이 파이선 IDLE에서 라즈베리 파이 의 통신 기능에 의해 아두이노의 시리얼 출력 결과를 읽어 들이기 위한 코드를 작성한다.
serial 모듈과 time 모듈을 설치하고 포트 이름, 통신속도 및 허용 시간을 설정한다.
while 1: 또는 while True는 아두이노의 무한루프 loop() 에 해당한다. 2초에 한번 ser.readline() 명령에 의해 USB를 통해 입력 버퍼에 들어오는 데이터를 줄 단위로 읽어 들이고 출력한다.
이와같이 아주 간단한 방법으로 아두이노의 시리얼 출력 데이터를 라즈베리 파이의 파이선 셸 화면에서 볼 수 있다. 특히 아두이노 보드에서 아날로그 센서로 받아들이는 데이터는 단지 시리얼 출력하여 손쉽게 라즈베리 파이에 넘겨줄 수 있다는 결론이다.
'아두이노프로세싱 프로그래밍' 카테고리의 다른 글
라즈베리 파이 파이선 Tkinter GUI 모듈 에 의한 LED ON OFF 코딩 (0) | 2017.08.16 |
---|---|
초보자를 위한 “초음파 센서 SR-04 거리 측정” (0) | 2017.08.12 |
아두이노 ESP8266 NodeMCU IOT(사물인터넷 ) 홈페이지 Login 시스템 (0) | 2017.08.04 |
라즈베리 파이 Flask 와이파이 마이크로 웹서버 IOT LOGIN 코딩 (0) | 2017.08.03 |
아두이노 프로마이크로 적외선 거리센서 (Sharp Ir GPY2Y0A21) 실험 (0) | 2017.08.03 |