그동안 계속해서 실패하던 파이선으로 만든 디지털 시계를 라즈베리파이 부팅이후 자동으로 실행하고자 했던 부분이 마침내 성공했다.  인터넷으로 실행가능하다는 별별 내용을 적용해 보았지만 안되더니 한 블로그에서 본 내용을 적용했더니 바로 적용이 되었으나, 다음 부팅시 로그인을 요구하는 창이 무한반복해서 나타나는 버그가 있었다.

그래서 결국, 쉘 명령어로 부팅할 때, 시작되는 방식으로 변경하게 되었다.

1. 쉘 명령어 라인을 새로 만든다.
    sudo nano run_autostart.sh

2. 다음과 같이 명령어 라인을 입력하고 저장한다.
    #!/bin/bash
    echo "run_autostart.sh"

    sudo python /home/pi/******.py

3. 권한 정보를 변경합니다.
    sudo chmod +x run_autostart.sh

4. 테스트 실행을 해본다. 이상 없으면 다음단계..
    sh run_autostart.sh

5. 실제 부팅할때 실행하는 autostart 파일을 수정합니다.
    sudo nano /etc/xdg/lxsession/LXDE-pi/autostart

6. 마지막 줄에 다음과 같이 입력하고 저장한다.
    lxterminal -e ~/run_autostart.sh

7. reboot 하여 확인한다. 

 

[아래 방식은 실행은 되지만 무한 로그인을 요구하는 버그가 있습니다.]

profile  파일은 라즈베리파일이 부팅될때 반드시 실행되는 파일이란다. 이 파일을 열어서 파이썬 실행을 요청하면 된다.

sudo nano ~/.profile   

.profile 파일의 맨 끝줄에 다음의 내용을 추가하고 저장하면 가능해진다.

#시작과 동시에 python 파일을 실행하기
export PATH=~/.local/bin:%PATH
(sleep 10 && /usr/bin/python /home/pi/*******.py) &

이렇게 저장하고 나온뒤에 

source ~/.profile  을 실행하고 reboot 하면 적용된다.

Posted by 천칭
,

거의 10년가까이 된 스크린 터치가 지원되는 라즈베리파이용 5인치 LCD 모니터가 있다.

잘 사용하지도 않지만 이제는 여러개가 돌아다니는 라즈베리파이3B도 남아돌아서 사용처를 찾기도 어렵다.

이런 상황에서 이 둘을 합쳐 사무실에서 간단한 디지털 시계와 날씨를 표시하는 시계정도로 사용하고자 하였다. 그러나 라즈베리파이의 OS는 공식적으로 저 모니터 해상도를 지원하지 않는다. 간단한 설정으로는 저 해상도를 인식하지 않는다. 특히, 라즈비안의 최근버전인 Bookworm부터는 /boot/config.txt를 수정하는 방식을 제공하지 않는다.

그래서 제조사에서 제공하는 별도의 드라이버를 설치해야 한다.

$sudo rm -rf LCD-show
$git clone https://github.com/goodtft/LCD-show.git
$chmod -R 755 LCD-show
$cd LCD-show/
$sudo ./LCD5-show

Posted by 천칭
,

디지털 액자를 만들어봐야 겠다고 손을 댄지 시간이 흘러 예전 버전의 정보만으로는 만들기도 어려워졌고, 새로운 버전에 맞는 정보를 찾기도 어려워 졌다. 조금씩 맞는 정보들의 조합으로 하나하나 맞춰가다보면 정보부족의 벽에 부딪히고 만다. 

다행이 유튜브 "공대선배TV"를 통해 하나하나 따라가다보면 막혔던 부분에 대한 설명이 있어서 원하는 MagicMirror를 구성하고 유튜브 플레이까지 성공하고 구글 어시스턴트를 구현 할 수 있다. 

이렇게 사용하다보면 Alert기능에 의해 사용중인 모듈의 새로운 버전이 나오고 업그레이드가 필요하다는 메시지를 화면에 출력한다.  모듈의 경우 해당 디렉토리에 가서 [ npm run update ]를 실행하면 대부분 업데이트가 완료된다.  

그러나 정작 벽에 부딪히는 것은 메인 프로그램인 MagicMirror의 업데이트가 필요한 경우이다.  이 경우 MagicMirror 디렉토리에서 npm run update 로는 업데이트 되지 않는다.(node.js에대해서 아예 모르고 시작했다. 지금도 잘 모른다.)

과련 내용은 https://docs.magicmirror.builders/getting-started/upgrade-guide.html 사이트에 설명되어있다.

직접 해본바로는(기본 설정관련 사항을 백업하라고 했지만 안해도 되는 듯 하다. 조심할 필요는 있겠지...)

git pull && npm install --only=prod --omit=dev

위의 명령으로 새 버전을 가져와서 다시 인스톨하는 듯 한데... 실제로는 여러가지 에러를 나타낸다.(난 잘 안되었다.)

git reset --hard     이 명령어로 초기화하고 

git pull    이 명령어로 새 버전의 MagicMirror를 가져와서 실행할 수 있었다.

매직미러를 구성하고 상시운영하는 액자를 만들지 않았기에 자주 사용하지는 않지만 가끔 생각나서 실행시켜보면 나타나는 업데이트들... 모듈은 쉽게 해결하였지만 MagicMirror에 대한 업데이트에 관련한 내용은 우리나라 사이트에서는 찾기 어려웠다. 이번 글도 나의 필요에 대한 대답을 잊지 않기 위해 작성해 둔다.

Posted by 천칭
,
Posted by 천칭
,

라즈베리파이4를 중고나라에서 사용하지 않는 세트로 아주 저렴하게 구입할 수 있었다.

매직미러(MagicMirror)를 구현해서 사이즈가 좀 되는 외부 모니터를 연결해서 우리가족 사진들이 백그라운드로 슬라이드 되고, 날씨와 미세먼지, 시계를 구현하고 좀더 나아가 구글 어시스턴트와 유튜브를 말로 실행하는 시스템을 갖고 싶었다.  그러나 어떤 자료를 찾아보아도 구글 어시스턴트와 유튜브가 시원하게 잘 작동하는 동영상이나 블로그 등의 자료는 없었다. 

그렇게 몇번의 MicroSD 메모리카드를 굽고 다시 설치하는 과정을 거쳐 몇가지 타협점을 찾아 구글 어시스턴트와 유튜브를 제외한 기능의 디지털 액자형태를 구성하려고 했는데 문제가 발생했다.

알리익스프레스에서 구입한 테두리 베젤이 얇고 베젤 옆으로 연결선들이 보이지 않는 두께가 얇은 LCD모니터를 어렵게 찾아 구매했는데, 라즈베리파이4의 MicroHDMI 포트로 연결해보니 디스플레이 신호를 보여주지 못했다.

현재는 이 상태에서 더이상 진행하지 않았는데, 자료를 찾아보니 비슷한 경험을 한 사람들이 제법 있었나 보다.

해결방법을 이러하다.

[ /boot/config.txt 파일 수정 ]

#hdmi_force_hotplug = 1   //라인을 찾아 "#"을 푼다.(디스플레이 모니터를 바꾸어도 화면을 나타냄)

config_hdmi_boost=4    //hdmi 신호 출력을 높여준다고 한다.(Rpi4는 아직 미적용)

hdmi_group=1    //이렇게 수정해 준다.(없으면 추가)
hdmi_mode=32    // 1080p 모드로 설정함

hdmi_drive=2      //hdmi 연결기준

#라즈베리파이4일때 lcd 모니터 연결시 문제가 되는 부분인 dtiverlay=vc4-kms-v3d 라인을 주석처리해야 한다.
#dtiverlay=vc4-kms-v3d  //이렇게 수정한다. (이거 알아 내는데 몇달 걸렸다. ㅠㅠ)

reboot 한다.

 

위의 내용대로 수정한 후, reboot하면 라즈베리파이4가 부팅한 후 외부 모니터를 연결해도 화면이 정상적으로 보여질 것이다.  우리 모두를 위해 이 내용을 기록해 둔다.^^

 

Posted by 천칭
,

* 아두이노를 비롯해서 라즈베리파이로 만들어본 것들이 그동안 많았던것 같다.

- 네트워크 오디오 플레이어, 블루투스 리시버 등을 만들었었는데, 최근에는 MagicMirror에도 도전했었다. NAS에 있는 사진들을 Mount해서 백그라운드로 슬라이드 쇼하는 것 까지 해보고, Google Assistant에 도전했다가 응답도 받고 좋았지만, 원하는 대로는 잘 안되고 Youtube실행까지는 해보았지만 관리가 안되는 실패한 경험으로 마무리 했던 듯 하다.

-이제 다시금 라즈베리파이 신규 설정 방법이라는 타이틀로 이 글을 작성하는 이유는 어떤 작업을 하든 라즈베리파이에 OS인 라즈비안을 설치하고 네트워크 설정, 한글설치, 최신판 업그레이드 등을 기본적으로 다시 할 때마다 이런저런 인터넷 사이트를 다시 찾고 내게 맞는 자료들을 여기 저기 찾아다니는 불편함을 없애고 싶었기 때문이다.

-내가 사용할 것이기에 사진이나 이미지 없이 글자로만 단촐하게 적어서 참고하고자 한다.

[[ 라즈베리파이 신규 설정 순서 ]]

1. 라즈비안 OS를 받아서 rufus-1 프로그램으로 Micro-SD카드에 옮겨둔다.

2. 라즈베리파이 정상 부팅시키기

3. 라즈베리파이 기본 Config 설정(네트워크 포함)하기
  3-0) 우측 상단의 네트워크 아이콘 클릭하여 원하는 SSID를 찾아 비밀번호를 입력하여 네트워크 연결한다.
  3-1) [Preperence] - [Raspberrypi Config] 메뉴
  3-2) ssh, VNC모드 ON.  Location에서 Timeline을 Asia - Seoul로 세팅

4. 터미널모드
  4-1) sudo apt-get update -y
  4-2) sudo apt-get upgrade -y
  4-3) sudo raspi-config
         Advanced 메뉴에서 Filesystem expansion으로 공간확보

5. 한글폰트 설치
  5-1) sudo apt-get install fonts-unfonts-core -y
  5-2) sudo apt install ibus ibus-hangul
  5-3) [Preperence] - [iBus Config] 메뉴  Add - Hangul(태극문양)  추가

6. 라즈베리파이 절전기능 끄기
  (이렇게 하지 않으면 20분 정도 후에 LCD화면이 하얗게 되더군)
  6-1) sudo nano /etc/lightdm/lightdm.conf
  6-2) #xserver-command=X 라인의  #제거하고
  6-3) xserver-command=X -s 0 dpms   입력,  저장,  닫기
         [다시 부팅하면 적용됨]

7. 라즈베리파이 마우스 커서 보이기/안보이기
  (자동시작으로 전체화면을 이용하는 경우....디지털 시계 같이... 마우스 커서가 방해되는 경우..)
  7-1) sudo nano /etc/lightdm/lightdm.conf
  7-2) 설정중에서 "-nocursor" 라고 되어있는 라인을 찾는다.  
  7-3) xserver-command=X -nocursor  ( #으로 막으면 커서보이고, 막지 않으면 커서 안보인다.)

※ 이렇게 했더니, 위 6번의 절전모드 끄기가 해제된다. 
    아마도 같은 xserver-command 계열의 명령이라서 둘중의 마지막 설정만 유효한것 같다.
    그래서 찾아보니 다음과 같은 설정이 있어서 해보니 된다. 

 7-1)  sudo apt-get install unclutter    (unclutter를 설치한다.)
 7-2)  sudo nano /etc/xdg/lxsession/LXDE-pi/audostart
 7-3)  audostart 파일 맨 아래에 다음과 같이 입력한다.
         @unclutter -idle 0       
             -idle 0 : 평상시와 터치할 때 둘다 커서가 표시되지 않는다.
             -idle 0.1 : 평상시는 커서가 안보이고 화면터치 또는 마우스로 움직일때 커서가 표시된다.

 

Posted by 천칭
,

라즈베리파이4 4GB를 구입하여 MagicMirror를 구성했습니다.

WDMyCloud를 사용중이어서 이곳에 있는 사진들을 MMM-BackgroundSlidshow 모듈을 이용하여 슬라이드 쇼까지는 잘 구성하여 나름 뿌듯했는데...

문제는 구글 어시스턴트에서 여러번의 좌절을 하게되네요.

처음 한번만에 MMM-GoogleAssistant가 정상적으로 불러져서 대답도 잘했는데...

문제는 웹페이지를 불러오지 못하고 최종적으로는 유뷰브 호출에 실패해서

몇번의 재설치를 거듭했습니다.

어제 다시 최종적으로 최신판 라즈비안 2021-10-30일자 버전을 설치했는데, 이때문인지

npm 버전 8.1.0이 설치되었더군요. 기본적으로 디지털 액자 기능까지는 상관없이 사용가능하지만

MMM-GoogleAssistant는 npm 버전 6.14.15 까지만 지원합니다.

그래서 현재의 npm 8.1.0 버전을 6.14.15로 낮춰야 구글 어시스턴트에 도전해볼 수 있습니다.

어떻게 하면 npm 6.14.15 버전으로 바꿀 수 있을까요?

네이버 SBC 커뮤니티인 파이피씨(PIPC)에 이렇게 글을 남겼더니

네이블님께서 npm install -g npm@<version> 사용하시면 됩니다. 라고 답을 남기셨습니다.

 

저 명령어 써 봤던 건데... 아직 적응력이 많이 부족하군요...ㅠㅠ

기존 버전을 삭제하고 해야할지 한번더 문의드렸지만, 얼른 집에가서 적용하고

다시 구글 어시스턴트 적용에 도전해 보렵니다.

 

Posted by 천칭
,

https://githubmemory.com/repo/darickc/MMM-BackgroundSlideshow/issues/101

 

npm module sharp causes errors - githubmemory

npm module sharp causes errors

githubmemory.com

라즈베리파이3로 NAS에 있는 사진들을 MMM-BackgroundSlideshow 3rd Party 모듈로 잘 작동하는 것까지 확인하여, 큰 모니터에 적용할 것을 대비하여 라즈베리파이4를 구입하여 MagicMirrior를 다시 설정하는 중에 MMM-BackgroundSlideshow를 실행하는 중에 오류가 나타는 현상을 경험하게 되었다. 

sharp라는 모듈(?)이 읽어오는 중에 linux-armv7 버전용이 아니라는 메시지가 나타난다... 

 

[ERROR] Error: 'linux-armv6' binaries cannot be used on the 'linux-armv7' platform.

 

linux-armv6 라서 라즈베리파이3에서는 문제없이 실행된것이 아닌가 추측해본다.(나는 Linux에 대해 잘 모른다.)

이 부분의 문제로 인해 구글포토에 MagicMirror 전자액자 기능에서 플레이될 사진들을 올려놓고 사용해야 하는지, 또는 라즈베리파이3 나 3+로 MagicMirror를 구성해야 하는지 고민하고 있었다.

다행히 위의 링크를 찾아 실행해보고자 한다. 문제 해결자는 Linux-armv7로 다시 인스톨하는 방식으로 해결했다고 하니 오늘저녁 해결해 보려고 한다. 아마도 좋은 결과가 있지 않을까 한다. 기대중

 

Posted by 천칭
,

인터넷을 통해 라즈베리파이4에 한글 설정하는 법을 찾아보니 다양한 방법이 있었지만 그래도 쉽고 편한 방법이라고 판단되어 여기에 기록을 남기려고 한다.

기본적으로 

$sudo apt-get update

$sudo apt-get upgrade

까지 마치고 나면 하는 것이 한글 설정이다. upgrade는 시간이 많이 걸려서 명령을 실행하고 밤새도록 켜 놓은 적도 있다. 일단 여기까지가 보통의 라즈베리파이를 켜고 난 이후의 기본작업인것 같다.

[한글 설정 명령어]

$sudo apt-get install fonts-unfonts-core (폰트가 설치되고)

$sudo apt install ibus ibus-hangul (한글 입력기 설치)

라즈베리파이 메뉴의 [기본 설정] 메뉴에 [iBus설정] 메뉴가 새롭게 생겼고 실행하면 ibus 데몬이 실행되고 있지 않으니 실행할 것인가를 묻는다. "실행"하자. [입력방식] 탭을 선택하고 "한국어"를 선택하고 닫는다.

여기까지만 하게되면 매번 라즈베리파이를 켰을때마다 한글 입력기를 실행해줘야 한다.

$im-config -n ibus   (이렇게하면 매번 켰을때 자동으로 한글입력기가 실행된다.)

이상으로 한글 설정부분을 마무리하겠다.^^

 

Posted by 천칭
,

라즈베리파이를 이용해서 재미있는 것을 만드는것이 취미이자 즐거움으로 삼았었다.

지금까지 라즈베리파이를 이용해서 블루투스 자율RC카를 만들다가 실패했었고,  Rune Audio를 설치해서 네트워크 오디오에 입문해서 현재는 R-N855 네트워크 오디오를 구비하게 되었다. 아! 네이버 라즈겜동에서 RetroPi 게임기도 만들어서 열심히 버블버블을 아들과도 즐겼던것 같다.(현재는 책장위에 놓여있다.ㅠㅠ)

이번엔 매직미러라는 거울액자 만드는 작업에 빠져서 이렇게 저렇게 모니터에 시간, 날씨, 미세먼지 정도, 구글캘린더 일정, 뉴스 토픽 정도를 띄우는데 성공했다. 이제 남은것은 배경에 NAS에 있는 사진을 띄워야 하는데, 인터넷 검색을 해도 라즈베리파이에 WDMyCloud NAS를 띄우는 방법이 거의 없거나 어렵게 찾은 페이지에서는 잘못된 정보를 주고 있다.

기억에 의존할 수 없는 정보는 이렇게 기록해서 다시 연결할 일이 있을때(지금은 RPi3로 작업하고 있는데, 성공하면 RPi4로 해야 하기 때문에) 어렵지 않게 해결하고자 함이다. 물론 이런정보를 찾는 누군가가 잘 확인하고 사용하기를 바라는 마음도 있다.    그럼 설명 시작.

 

1.네트워크 연결이 가능한지 확인

$ping `192.168.X.X (WDMyCloud ip) 

ping Test가 아무문제 없이 진행되어야 어떻게하든 연결된다. 여기서 문제가 생기는 것은 바로 해결해야 한다.

 

2. WDMyCloud 접속

-설정화면에서 [ 공유설정 ]으로 이동하여 라즈베리파이에 연결하여 공유하고자 하는 폴더(상위폴더일 수 있다)명을 찾아 [ 공유 엑세스 ] 설정의 NFS 엑세르 메뉴를 켜야 한다. 켜 놓기만 해서는 안되고 바로 옆의 [ 구성 >> ]링크를 클릭하고 [ 쓰기 ]메뉴를 활성화하면 아래 이미지 제일 아래 처럼 "탑재 지점" 링크가 보여진다.

WDMyCloud  설정화면

 

3. 라즈베리파이 터미널을 열고 설정하자.

$sudo mkdir -p /nas/photo  

라즈베리파이가 사용할 폴더(WDMyCloud 연결 후 사용할 폴더명)를 새로 만들어 준다.

$sudo chmod 777 -R /nas/photo

읽고 쓰는 권한을 모두 풀어준다. 

4. 에디터(nano)로 /etc/fstab 을 열어 편집

$sudo nano /etc/fstab

/etc/fstab 파일의 맨 아래에 다음의 설정을 추가합니다.

192.168.x.x:/nfs/Public/Photos /nas/photo nfs defaults 0 0

콤마(,)없이 스페이스로만 구분하고 입력이 끝나면 저장하고 에디터를 나옵니다.

 

5. 마운트 내용 적용하기

$sudo mount -a

이 명령이후 별다른 메시지 없이 바로 프롬프트가 나와야 하며, 메시지가 나오면 입력 실수한 부분을 찾아야 한다.

성공했다면, ls /nas/photo 명령으로 WDMyCloud 공유 폴더의 파일들이 보여야 한다.

6. 네트워크설정 변경

지금까지 작업한 내용으로 원하는 사진들이 NAS를 통해서 잘 보여진다. 그러나 라즈베리파이를 다시 켰을때에는 사진이 제대로 올라오지 못할 수 있다. 라즈베리파이에 설정한 fstab명령은 wifi가 부팅되면서 연결되기 전에 실행되기 때문에 명령자체는 실행되지만 네트워크 연결이 되어있지 않아 실패하기 때문이다.

 그렇기 때문에 네트워크 설정을 변경해 주어야 한다. 

[기본설정] → [Raspberrypi Pi Configuration] → System 탭에서 Network at Boot 체크!! 

이렇게 하면 fstab이 네트워크 연결 후에 적용된다.

오늘도 즐거운 라즈베리파이 생활을 하시길...

Posted by 천칭
,