비글본 블랙: 실내 공기질 모니터링 서버 만들기

(*이 포스팅은 ICBANQ 10기 무상체험단에 선정되어 작성하는 비글본 블랙 개봉기입니다.)

비글본 블랙은 arm 프로세서를 달고 많은 GPIO를 제공하는 소형 컨트롤러 보드임과 동시에 OS가 구동되는 싱글보드 컴퓨터입니다. 지난 10월 ICBANQ 무상체험단을 통해 비글본 블랙을 제공받아 본 글에서는 다음과 같은 프로젝트를 비글본 블랙을 통해서 테스트 하고자 합니다.

모니터링 시스템 구성

간단한 센서 값을 아두이노로 받아 이를 비글본 블랙에서 저장하고 웹서버를 구동시켜 웹을 통해 데이터를 확인하는 테스트입니다. 이 테스트를 위해서 지금까지 준비해 온 작업들에 대해서는 이전의 글들을 참조하시면 됩니다.

위의 포스팅에서 지금까지 한 일은 우분투를 설치했고, 웹서버 구동을 위한 환경 설정을 비글본 블랙에 완료했습니다.

이제 본격적인 작업으로 먼저 먼지센서와 아두이노 연결작업을 합니다. 사용한 센서는 일반 공기청정기에 사용되는 ( 1마이크로미터 이상) 먼지 입자 개수를 측정할 수 있습니다. 아두이노에서 센서로부터 값을 받아서 시리얼로 30초마다 보내는 작업을 다음과 같이 코딩합니다. 코드는 아래 주석에서 참조했습니다.

이 코드로 이제 아두이노에서는 먼지의 concentration값(측정된 먼지량)을 시리얼 통신으로 30초마다 계속 보내게 됩니다. 다음은 아두이노로부터 비글본 블랙이 이 값을 받아올 수 있도록 해야 합니다. 연결은 간단히 usb가지고 합니다. 먼저 비글본 블랙에 아두이노를 연결하기 전에 현재 연결된 디바이스를 다음과 같이 확인합니다.

비글본 블랙 디바이스 확인이제 아두이노와 비글본 블랙을 usb로 연결해 봅니다. 아래 사진은 센서와 아두이노 그리고 비글본 블랙이 연결된 모습입니다.시스템 연결 사진 USB로 비글본 블랙과 아두이노가 연결되었다면 다시 비글본블랙에서 연결된 디바이스를 확인합니다.

USB 연결 후 확인

위와 다르게 ‘ttyACM0″가 추가된 것을 알 수 있습니다. 이 녀석으로 시리얼 연결을 하고 값을 받아오게 됩니다. 제대로 아두이노가 usb연결되었는지 확인하는 방법은 아래와 같이 lsusb를 통해서도 알 수 있습니다.

스크린샷 2013-11-08 오후 3.22.04

이제 시리얼로 아두이노로부터 값을 받는 건 파이썬으로 간단히 코딩할 수 있습니다. 하지만 파이썬에서 시리얼로 데이터를 받아오려면 먼저 pyserial 라이브러리를 설치해야 합니다.

설치하고 나서 다음과 같이 일단 간단히 연결확인용 코드를 작성해 봅니다.

그리고나서 실행해보면 다음과 같이 센서의 값이 비글본 블랙에 전송됨을 알 수 있습니다.

스크린샷 2013-11-08 오후 3.18.47

여기까지 센서 연동을 확인했고 이제 센서로부터 받은 데이터를 db에 넣기 위한 준비를 합니다. 파이썬 커넥터를 다음과 같이 설치합니다. (pip로 설치하려 했으나 잘 안되었습니다.)

phpmyadmin에서 test 디비에 다음과 같이 간단한 테이블을 생성합니다.

스크린샷 2013-11-08 오후 1.49.27 테스트용 데이터를 몇 개 삽입하는 코드를 통해서 파이썬에서 정상적으로 디비로 데이터가 들어가는 지 확인해 봅니다.

실행 후 정상적으로 코드가 작동하면  데이터가 입력되었음을 확인할 수 있습니다.

스크린샷 2013-11-08 오후 3.30.31

스크린샷 2013-11-08 오후 3.31.19

여기까지면 다 왔습니다. 테스트 용으로 이제 간단히 먼지 센서 값을 db에 넣고 웹페이지에서 보여주기로 합니다.

시간이 많으면 데이터를 그래프로도 보여주고 할 수 있겠지만 일단은정말 간단히 그냥 값만 테이블로 뿌려주기로 합니다. 자 다음과 같이 정상적으로 값을 받아서 보여줍니다.

센서 모니터링 페이지

 

정리하자면, 지금까지 한 모든 작업이 비글본 블랙 위에서 이루어진 것입니다. 간단한 웹서버용으로는 충분히 그 진가를 발휘할 만 합니다. 아쉽게도 리소스를 줄이기 위해 arch리눅스를 올려보지는 못했지만 그래도 우분투 위에 nginx를 올려 간단하게 테스트 해 본것으로는 불편함이 없었습니다.

저는 전자 쪽 지식은 부족해서 다른 테스트는 해볼 수 없었지만 소형 컴퓨터로, 서버로서 비글본 블랙의 성능을 알아볼 수 있는 체험이었습니다.

비글본 블랙: nginx+php+mysql설치

(*이 포스팅은 ICBANQ 10기 무상체험단에 선정되어 작성하는 비글본 블랙 개봉기입니다.)

지난 포스팅에서는 비글본 블랙의 기본 OS인 Angstrom 대신 우분투13.04 이미지 설치하는 방법을 설명했다. 이번 포스팅에서는 nginx서버와 함께 PHP, MySQL을 설치해보기로 한다.

먼저 우분투에 설치되어 있는 apache를 제거해서 미리 nginx와의 충돌을 피해야 한다.

apache 제거 후 nginx와 PHP FPM를 설치한다. 먼저 다음과 같이 nginx 패키지를 설치한다.

그리고 PHP관련 패키지를 설치한다.

nginx와 PHP 설치는 끝이 났지만 한가지 nginx 설정에서 PHP FPM과 연동을 해줘야 한다. 우선 다음 명령으로 설정 파일을 연다.

파일을 열면 아래와 유사한 설정 부분을 찾아 주석을 제거하고 마지막 줄에 “try_files $uri =403″을 넣어준다.

설졍을 변경했으니 관련 프로그램을 재시작한다.

nginx가 잘 운영되는지 직접 서버의 주소로 들어가 확인하여 아래와 같은 화면을 만나면 성공이다.

nginx 서버 설치 성공

nginx의 동작을 확인했으면 이제 PHP와 nginx가 잘 연동되었는지 확인하기 위해서 phpinfo()함수를 넣은 파일을 하나 만들어 nginx의 웹 루트 폴더(/usr/share/nginx/html)에 넣어서 브라우저에서 실행해 본다.

브라우저에서 아래와 같은 창이 뜨면 PHP FPM이 잘 설치되어 nginx와 연동되었다는 뜻이다.

phpinfo

mysql은 다음의 명령으로 설치 한다. 중간에 묻는 패스워드 설정만 하면 쉽게 설치할 수 있다.

다음으로 편의를 위해서  phpmyadmin도 설치한다. 설치할 때 웹서버를 묻는데 일단 아파치로 하고 넘어간다.

설치 중간 중간에 비번을 잘 입력하고 난 후 설치가 끝나면 현재  phpmyadmin의 폴더를 nginx 서버의 웹루트 폴더에 심볼릭 링크를 걸고 nginx를 재시작한다.

phpmyadmin을 실행시켜 정상적으로 뜨면 성공이고, 403 에러가 뜬다면 nginx의 설정을 확인해 봐야 한다.

설정 파일에서 처음 서버 설정 밑에 index에 “index.php”가 추가되었는지 확인하고 안 되어 있어 넣었더니 정상적으로 phpmyadmin이 작동했다.

오늘 작업은 여기저기 참조를 많이 했다. 아래 참조한 사이트들이다.

  • http://www.networkinghowtos.com/howto/installing-nginx-php-and-mysql-on-ubuntu-13-04/
  • http://www.unixmen.com/install-lemp-server-nginx-mysql-mariadb-php-ubuntu-13-10-server/
  • https://bbs.archlinux.org/viewtopic.php?id=163714

비글본 블랙: 우분투 설치

(*이 포스팅은 ICBANQ 10기 무상체험단에 선정되어 작성하는 비글본 블랙 개봉기입니다.)

비글본블랙으로 실험해 볼 프로젝트는 실내 공기질 모니터링 시스템입니다. 대략의 구성은 아래 그림과 같습니다.

모니터링 시스템 구성

공기질 측정은 일반 공기청정기에 사용되는 저렴한 센서를 사용하고 이를 아두이노에 연결할 계획입니다. 여기서 질문이 생기시는 분들이 있을겁니다. 왜 비글본 블랙에 센서를 바로 연결하지 않는지 말입니다. 이유는 아두이노에서 제공하는 함수들이 센서의 데이터를 받기에 편하기 때문입니다.

예를들면 위의 공기질 센서에서 값을 얻기 위해서는 반드시 Voltage 값이 high에서 low로 떨어졌다가 다시 high 되는 사이의 시간을 필요로 하는데 아두이노에서는 pulseIn() 함수가 이를 측정하여 ms 단위로 반환합니다. 하지만 비글본 블랙에서는 일일이 날코딩을 다 해야하지요. (자세한 참고)

다시 돌아와서 아두이노에서 측정된 센서값은 비글본블랙에 USB를 통해서 시리얼로 보내줄 겁니다. 30초마다 아두이노가 보내는 공기질 정보를 비글본블랙 내 DB에 담고 이를 웹 상에서 모니터링할 수 있게 보여주는 것이 본 시스템에 간단한 설명이빈다.

시스템 설치 준비에 앞서 해야할 일이 있습니다. 기본적으로 비글본블랙은 Angstrom이라는 리눅스 배포판이 설치되어 있습니다. 처음에 여기에다가 웹서버로 LAMP 설치를 하려고 했는데 이래저래 인터넷에서 참조할 만한 정보도 많지 않고 설정하기가 까다로워 다른 리눅스 배포판을 설치하기로 마음 먹었습니다.

일단은 비글본블랙의 CPU가 armv7이므로 32bit용 우분투 13.04를 재설치하기로 했습니다. 설치를 위해서는 리눅스 이미지를 담을 microSD카드가 반드시 필요합니다. 비글본 블랙을 위한 우분투 이미지는 아래 첫번째 사이트를 참조하시면 다운받을 수 있고,  이미지 설치 방법은 이 두번째 사이트를 참조하시면 편리하게 따라하실 수 있습니다.

  1. 이미지 다운로드: http://rcn-ee.net/deb/flasher/raring/
  2. 이미지 설치방법: http://learn.adafruit.com/beaglebone-black-installing-operating-systems/overview

이미지 설치는 대략 5~10분 정도면 완료되고 아래와 같이 모든 상태 LED에 불이 들어오면 전원을 제거하고 microSD카드를 제거하고 재부팅하면됩니다.

IMG_0521

이제 192.168.7.2로 해서 SSH로 로그인해 봅니다. 그럼 아래와 같이 성공적으로 우분투가 설치되었음을 확인할 수 있습니다. 로그인 시의 유저명은 ubuntu이고 패스워드는 temppwd이거나 ubuntu입니다.

우분투 첫화면