#21/28 [매직미러 HowTo] / 스텝 3

2020. 11. 23. 13:11IT

공유폴더 이용해서 포토 앨범 만들기

두 번째 포토 앨범은 왜?

  앞서서 구글 포토를 이용해서 포토 앨범을 만들어 봤습니다. 요즘은 스마트 폰을 많이들 사용하기 때문에 구글 포토를 이용하는 것이 좋은 방법 중의 하나임은 분명합니다.

하지만 저 같은 경우는 사진을 취미로 하고 있습니다. 그래서 모든 사진이 구글 포토에 담겨있지 않습니다. 사진은 NAS나 윈도우 컴퓨터에 보관 하게 되죠. 그래서 NAS나 윈도우에 저장을 해 놓은 사진을 포토 앨범으로 보여줄 수 있도록 하는 바램을 가지고 있었습니다. 그래서 이번에는 config.js에서 구글 포토를 주석처리해서 동작하지 않도록 하고 집에 있는 NAS와 윈도우 컴퓨터의 공유 폴더를 이용해서 포토액자를 만들어 보고자 합니다.

 

  서드파티 모듈 MMM-BackgroundSlideshow를 사용할 예정인데 우선은 공유 폴더를 라즈베리파이와 연결하는 방법을 따라해 보도록 하겠습니다.

 

윈도우 공유 폴더 연결하기

  윈도우 컴퓨터의 IP 주소와 Gateway 정보를 얻기 위해서는 라즈베리파이 OS에서 사용을 했었던 ifconfig 대신에 ipconfig를 사용해서 확인을 할 수 있습니다.  윈도우에서 

 

   윈도우 단추 + ‘R’

 

을 누르면 실행 창이 작게 나타납니다. 거기에 “cmd”를 입력하고 엔터를 치시면 터미널이 뜹니다. 터미널에서 

 

   C:\>ipconfig

  

를 입력하면 다음과 같은 결과가 나타납니다.

 

그림 138. 윈도우 IP 주소


컴퓨터도 고정 IP 설정

  여기서는 IP 주소, 서브넷마스크와 게이트웨이 정보를 메모해 두시기 바랍니다. 이제 고정 IP 주소를 설정하도록 하겠습니다. 탐색기에서 네트워크를 선택하고 마우스의 오른쪽 버튼을 누르고 속성을 선택합니다. 고정 IP 주소를 설정하지 않으면 매번 컴퓨터를 켤때마다 다른 IP 주소로 할당이 될 수 있기 때문에 IP를 고정하는 것입니다. 잠시 테스트만을 위해서는 앞에서 찾은 IP 정보를 그대로 이용해도 됩니다. 



 

그림 139. 어댑터 속성

 

  네트워크 속성으로 들어가서 좌측 메뉴에서 어댑터 설정 변경으로 들어갑니다. 그러면 [그림 139]의 오른쪽과 같이 Wi-Fi가 연결된 상태임을 보여줍니다. 컴퓨터가 무선 네트워크로 연결이 되어 있음을 알 수 있습니다. Wi-Fi에서 마우스 오른쪽 버튼을 클릭해서 속성으로 들어가 보겠습니다.

 

그림 140. 고정 IP 주소 설정



  속성 창에서 “인터넷 프로토콜 버전4(TCP/IPv4)”를 선택하면 [그림140]의 우측에서 보는 것과 같은 창이 나타납니다. 여기서 “다음 IP 주소 사용"을 선택하고 IP 주소, 서브넷 마스크와 기본 게이트웨이 주소를 앞에서 ipconfig로 얻은 값들을 입력하고 확인을 클릭합니다. 


공유폴더 만들기

  다음은 공유 폴더를 만들어야 합니다. 공유 폴더가 있어야 매직미러가 윈도우 폴더를 엿볼 수 있습니다. 저는 Photo라는 폴더를 만들어 놓고 그 안에 여러 개의 사진을 복사해 두었습니다. 탐색기에서 Photo라는 폴더를 마우스로 클릭하고 오른쪽 버튼을 눌러 옵션을 선택합니다.

 

 

그림 141. 폴더 공유

 

  [그림141]를 순서대로 보면 처음 Photo 속성창에서 상단의 공유를 클릭합니다. 그리고 공유 창에서 상단의 공유 버튼을 선택을 합니다. 그럼 3번째 창이 나타나는데 여기서 상단에 user를 입력하고 추가를 누릅니다. User라는 ID를 사용하려고 하는 것입니다. 이 ID는 윈도우에서 기본적으로 생성이 된 ID입니다. 별도로 만들어 두신 ID가 있다면 user 대신에 입력하시면 됩니다. 

 

그림 142. 접근권한


공유폴더 권한 설정

  다음은 공유 폴더에 대한 접근 권한을 설정해야 합니다. 매직미러에서는 화면에 사진만 보여주면 되기 때문에 읽기 기능만 주려고 합니다. 이렇게 하기 위해서는 속성 창에서 “고급 공유"를 클릭해서 고급 공유로 들어가고 하단부의 권한을 클릭해 들어갑니다. 그러면 “그룹 또는 사용자 이름"이 나타나고 아래에는 권한이 나타납니다. 상단에서 앞에서 입력했던 사용자 user를 선택하고 아래에서 “읽기" 허용에만 설정을 해 둡니다. 그러면 라즈베리파이에서 연결을 하더라도 삭제하거나 수정이 불가능 합니다. 따라서 단순히 사진만 읽어서 화면에 보여주는 기능만 가능합니다. 다른 용도로 사용하시려면 모든 권한을 주시면 됩니다. 

 

  한가지 주의할 점은 비밀번호를 지정해 두지 않았다면 라즈베리파이에게서 연결이 안됩니다. 그리고 또 하나의 단점은 윈도우 컴퓨터가 항상 켜 있어야지만 네트워크 드라이브를 사용할 수 있다는 점입니다.


네트워크 드라이브 연결

  이제는 라즈베리파이로 돌아옵니다. 라즈베리파이 OS에서 네트워크 드라이브를 연결하기 위해서는 일반적으로 /mnt 하위에 폴더를 만들고 연결을 합니다. 하지만 우리가 사용하려고 하는 서드파티 모듈에서는 MagicMirror/modules에 만들어줘야 문제가 없음을 확인했습니다. 

 

  터미널을 열고 연결될 포인트가 될 폴더를 만들어 주고, 만든 폴더에 chmod(CHange MODe) 명령을 이용해서 모든 권한을 부여해 줍니다. 777은 모든 권한을 나타내며 -R은 Recursive로 하위 폴더와 그 폴더들 내의 파일들까지 명령이 반영되게 됩니다.

 

  $mkdir ~/MagicMirror/modules/media

   $chmod 777 -R ~/MagicMirror/modules/media

 

마지막으로 마운트를 하는 방법은 

 

$sudo mount -t cifs -o username=user,password=user //192.168.1.9/Photo ~/MagicMirror/modules/media

 

   앞의 명령은 한 줄 입니다. 각각의 명령들은 스페이스로 구분이 되어 있으며 password 다음에 user라고 된 비밀번호와 IP 주소와 폴더명을 바꿔주시면 됩니다. 에러가 없다면 탐색기로 media 폴더로 가시면 폴더만 만들었는데 윈도우에 들어있는 파일들이 있습니다. 윈도우에서 읽기 전용으로 공유를 했기 때문에 삭제를 할 수는 없습니다.

 

나스와 네트워크 드라이브 연결하기

  앞서 연결을 해 봤었던 윈도우에서의 네트워크 드라이브의 단점은 컴퓨터가 상시 켜져있는 것이 아니라는 점이었습니다. 그래서 저는 NAS를 사용하고 있습니다. Network Attached Storage의 약자로 로컬 네트워크 즉, 사무실이나 가정에서 데이터 저장용으로 사용을 합니다. 그리고 대부분 항상 켜 놓고 사용을 하죠. 그런데 다양한 종류의 NAS 서버가 있으며 전체를 다룰 수는 없기 때문에 제가 가지고 있는 시놀로지 사의 NAS를 기준으로 설명을 하고자 합니다. 

 

  이미 NAS를 쓰고 있을 정도라면 윈도우에서 NAS를 이미 연결해서 사용하고 있을 것이라는 가정으로 라즈베리파이에서 연결하는 방법을 설명합니다. NAS에서 연결을 할 때에는 NFS(Network File System)이라는 형식으로 접속을 해야 한다고 합니다.

 

그림 143. NAS 연결

 

 

NAS 설정

  [그림 143]은 NAS에서의 설정 화면입니다. Shared Folder 메뉴에 보면 Photo와 같이 라즈베리파이와 연결을 하고 싶은 폴더가 있습니다. 선택을 하고 Create를 누릅니다. 그 다음에 나타나는 창에서 Hostname이나 IP를 입력하는 창이 나오는데 여기에 앞서 설정을 했던 라즈베리파이의 IP 주소를 적어주면 됩니다. 앞서 윈도우에서 공유 폴더를 만들때와 같이 속성은 Read Only로 지정을 합니다. 이렇게 해서 NFS의 설정을 NAS에서 완료했습니다. 한가지 확인할 사항은 그림 좌측 하단부에 mount path라고 나온 /volume1/Photo를 기억해 주시기 바랍니다.



라즈베리파이에서 NAS 연결

  라즈베리파이로 돌아와서 터미널을 열어 설정을 해 줍니다. IP 주소는 NAS의 주소이고 NAS의 주소와 mount path를 ‘:’로 연결을 합니다. 그리고 라즈베리파이에서 마운트 될 위치를 적어줍니다. 앞서 윈도우에서 공유폴더를 사용할 때와 같은 ~/MagicMirror/modules/media를 마운트 위치로 합니다.

 

$sudo mount -t nfs 192.168.1.59:/volume1/Photo /mnt/Photo  ~/MagicMirror/modules/media

 

공유 폴더를 이용한 포토 앨범

앞서 여러차례 서드파티 모듈들을 설치했었습니다. 기억을 더듬기 위해서 다음의 그림을 참고하시기 바랍니다. MagicMirror 웹사이트에서 Modules를 클릭해 서드파티 모듈로 이동을 합니다.

그림 144. MMM-BackgroundSlideshow



  우리가 설치하고자 하는 프로그램은 MMM-BackgroundSlideshow로 라즈베리파이의 로컬에 있는 이미지 파일들을 사용해서 백그라운드 이미지를 일정 시간마다 보여주는 기능입니다. 다음에 간단하게 명령어와 config.js 파일의 기본 설정을 보여주고, 최종적으로 설정한 config.js 파일을 보도록 하겠습니다.

 

소스 다운로드 받기와 설치의 과정은 다음과 같습니다.

 

  $cd ~/MagicMirror/modules

   $git clone https://github.com/darickc/MMM-BackgroundSlideshow.git

   $cd MMM-BackgroundSlideshow

   $npm install

 

서드파티 모듈 사이트에서 보여준 config.js에 추가해야 할 설정은 다음과 같습니다.

 

사진을 보여줄 곳은 라즈베리파이의 로컬 폴더가 아니라 NAS 서버에 있는 폴더를 NFS로 연결해서 보여주고자 합니다. 따라서 먼저 다음과 같이 NAS를 연결합니다.

 

$sudo mount -t nfs 192.168.1.59:/volume1/Photo  ~/MagicMirror/modules/media

 

그리고 이에 맞춰 수정한 config.js는 다음과 같습니다.

 

 

  설정한 config를 잠시 설명하면 imagePaths는 NAS 서버로 연결했던 media 폴더이고, 하위 폴더까지 검색을 해서 보여주는 recursiveSubDirectories를 True로, 우측하단에 이미지 정보를 보여주는 showImageInfo를 true로, 이미지를 있는 그대로의 비율대로 보여주도록 backgroundSize 를 contain으로 마지막으로 백그라운드 이미지를 1분마다 변경하도록 slideshowSpeed를 1000*60으로 설정을 해 줬습니다. 



그림 145. NAS의 사진이용한 포토 앨범

 

  앞서 NAS에 있는 폴더를 mount 명령을 통해서 NFS를 연결했습니다. 매번 시작할때마다 마운트 시키는 것은 번거로워 부팅을 할 때마다 자동으로 마운트 하는 방법을 설명드리고자 합니다. 이렇게 설정하지 않으면 매직미러를 만들어 벽에 걸어 두었을 때 문제가 됩니다. 전원을 넣을 때 마다 키보드 연결해서 마운트를 시켜줘야 하죠. /etc/fstab를 nano를 이용해서 [그림 144]와 같이 수정을 해 줍니다.

수정을 할 때에는 윈도우의 공유 폴더를 사용할 것이면 맨 아래줄을 그렇지 않으면 그 위의 줄을 사용해야 합니다. 선택에 따라 fstab에 원하는 공유 폴더를 사용할 수 있도록 설정해 주시기 바랍니다. 이미 윈도우의 공유폴더가 연결이 되어 있다면 “sudo umount ~/MagicMirror/modules/media”를 이용해서 기존 연결을 끊어줍니다. 그리고 fstab를 수정한 다음에는 sudo mount -a 명령을 이용해서 수정한 fstab를 이용해 제대로 mount 되는지 확인할 수 있습니다.

그림 146. fstab


네트워크 설정 변경

  한가지를 추가적으로 해 줘야 하는데 앞의 fstab가 실행이 될 때는 WiFi가 아직 연결이 되기 직전이기 때문에 명령은 실행이 되지만 네트워크가 연결되지 않아 실패를 하고 맙니다. 따라서 인터넷이 연결 된 다음에 앞의 스크립트가 실행이 될 수 있도록 [그림 145]와 같이 시작 → 기본설정 → Raspberrypi Pi Configuration에서 Network at Boot를 체크해 줍니다. 

 

그림 147.  네트워크 연결 옵션

 

그러면 라즈베리파이가 부팅이 되고 네트워크가 연결이 된 이후에 /etc/fstab가 실행이 되어 네트워크 드라이브가 연결이 됩니다.

 

반응형