데스크탑 용도가 아닌 임베디드 서버용인 경우 내부 상태가 궁금할 때가 종종 있다. 뭐 나만 그럴 수도 있는거다.
이럴 때마다 원격 접속을 통해 시스템 모니터링해야하는 번거로움이 여간 번거로운게 아니었다.
이로인해 서버 가동시간, CPU, RAM, HDD, 시스템 온도를 실시간으로 작은 액정 모니터에 보여주는 작업을 진행하였다.
액정모니터는 1.69인치의 LCD모니터를 구입하였다.
아래와 같은 특징이 있다고 하며, 엘레파츠에서 13,420원에 구입했다.
참고로 라즈베리파이에 액정모니터 연결 했다고 자동으로 뭔가 나오고 그런 아니다. 액정 모니터를 제어하여 그곳에 디스플레이하는게 어찌보면 난이도가 있을지 모른다.
아래는 핀맵정보다.
LCD | Raspberry Pi | |
BCM2835 | Board | |
VCC | 3.3V | 3.3V |
GND | GND | GND |
DIN | MOSI | 19 |
CLK | SCLK | 23 |
CS | CE0 | 24 |
DC | 25 | 22 |
RST | 27 | 13 |
BL | 18 | 12 |
아래와 같이 연결을 하면 된다.
단, 저 색상에 혼동 되지 않으면된다. 실제 제공된 케이블 색상과 다르기 때문에 색상과 혼동하지 말고 연결하면된다.
아래는 실제 케이블 색깔이다.
이 제품에 대한 홈페이지 자료는 아래와 같다.
https://www.waveshare.com/wiki/1.69inch_LCD_Module
아래와 같이 드라이버를 받을 수 있다. C와 Python 드라이버를 받을 수 있다.
Download Drivers
sudo apt-get install cmake -y
cd ~
wget https://files.waveshare.com/upload/1/18/Waveshare_fbcp.zip
unzip Waveshare_fbcp.zip
cd Waveshare_fbcp/
sudo chmod +x ./shell/*
난 파이썬으로 작업했다.
처음엔 LCD 드라이버 제어라는 걸 망각하고 접근해서 한참을 헤맸었다.
가상환경에서 정상동작이 잘되지 않아 고생은 했지만 결국 라이브러리 설치 문제였다. 실행파일을 만들기 위해 spec파일을 만들고 관련 라이브러리들을 포함시켰다.
그리고, 생성된 실행 파일을 부팅 시 자동으로 실행하기 위해 system에 등록 한다.
[Unit]
Description=Raspberry Pi Health Monitor
After=multi-user.target
[Service]
Type=simple
ExecStart=/home/voka/program/pi-health/pi-health
WorkingDirectory=/home/voka/program/pi-health
User=root
Environment=”DISPLAY=:0″
Environment=”XAUTHORITY=/home/voka/.Xauthority”
Restart=on-failure
RestartSec=5
KillSignal=SIGTERM
TimeoutStopSec=10
[Install]
WantedBy=multi-user.target
그렇게 하여 완성된 라즈베리파이 외장 대시보드다.
ㄱ
확실히 외부에서 바로 바로 상태 확인이 되니 매우 만족 스럽다. 단점이라면 저렴한 부품 가격대비 엄청난 공임을 쏟아 부은 느낌…..