반응형

와치독(watchdog)은 가동중인 시스템이 어떤 외부적인 상황으로 시스템 구동이 멈췄을 때, 이를 타이머로 감지한 후 일정시간 반응이 없으면 자동으로 재부팅시켜 시스템이 완전히 다운되지 않도록 하는 방법이다.

 

라즈베리파이를 IOT 장비로 사용한다면 밖에 나가있을 때 고장나면 알아서 감지하여 재부팅하도록 설정하여야 한다.

이를 설정하는 방법이다.

 

1. watchdog 세팅

sudo modprobe bcm2835_wdt

 

2. 와치독을 모듈에 설정

echo "bcm2835_wdt" | sudo tee -a /etc/modules

 

3. watchdog 데몬 설치 (백그라운드로 돌는 것)

sudo apt-get install watchdog
sudo update-rc.d watchdog defaults

 

4. nano 편집기로 timeout에 대한 세팅

sudo nano /etc/watchdog.conf
max-load-1       =  24		<- 주석을 제거함.
watchdog-timeout = 14		<- 없으므로 내가 작성. 이숫자가 작아질수록 렉걸린후 기다리는 시간이 짧아짐.

        좀 더 아래로 내린 후 아래도 수정

watchdog-device = /dev/watchdog
realtime        = yes
priority        = 1

다되면 Ctrl + X로 저장

 

5. Watchdog 기능 활성화

sudo /etc/init.d/watchdog restart

 

 

(테스트)

강제로 에러를 일으켜 먹통으로 만들고 렉걸리게 하는 코드 (주의 아무곳이 사용하면 안된다!)

:(){ :|:&amp; };:

코드를 실행하면 무제한 루프에 가두고 먹통으로 만들어 버림
결국엔 이렇게 죽어버려서 원격이 끊긴다.

반응형

재접속 시도.

성공, 접속이 다시 되었다. 필자가 가서 재부팅을 한것도 아니고, 그저 원격으로 먹통을 만들었는데 와치독이 그것을 인식하고 알아서 재부팅을 시켜버렸다.

이제 이 와치독과 함께 시작시 프로그램을 자동으로 돌리는 코드를 함께 사용하면, 신뢰성이 향상된 IOT기기처럼 쓸 수 있을 것이다.

https://ansan-survivor.tistory.com/1310

 

[Raspberry Pi] 라즈베리파이 자동 시작프로그램 등록하기

라즈베리파이가 실행되자마자 프로그램을 실행시킬 수 있는 방법이 있다. 1. 시작프로그램 설정 파일 $ sudo nano /etc/rc.local 2. 아랫부분에 원하는 동작 등록 . . . fi [여기에 등록] exit0 3. 재부팅하면

ansan-survivor.tistory.com

 

 

 

반응형
반응형

https://qengineering.eu/install-opencv-4.5-on-raspberry-pi-4.html

 

이전에 윈도우에서 실행하는 파이썬으로 OpenCV에 대해서 다뤘다.

https://ansan-survivor.tistory.com/category/%ED%8C%8C%EC%9D%B4%EC%8D%AC%28python%29/Python%20OpenCV

 

'파이썬(python)/Python OpenCV' 카테고리의 글 목록

 

ansan-survivor.tistory.com

 

 

OpenCV는 C언어 또는 Python등의 언어로 카메라에 각종 여러 프로그래밍을 넣어서 사물을 탐지하고 인식하는 등의 비전시스템을 개발 할 수 있는 오픈소스를 제공하는 라이브러리 이다.

 

라즈베리파이의 리눅스OS에서도 역시 이 오픈소스인 OpenCV를 넣어서 개발을 할 수 있다.

그러기 위한 개발환경을 구축하는 방법이다.

 

아래 순서를 따라하면 된다.

 

1. apt-get 최신버전 패치

$ sudo apt-get update -y
$ sudo apt-get upgrade -y

 

2. 컴파일링을 위한 패키지 설치

$ sudo apt-get install -y build-essential cmake

$ sudo apt-get install -y libjpeg-dev libtiff5-dev libjasper-dev libpng12-dev	

// for videos
$ sudo apt-get install -y libavcodec-dev libavformat-dev libswscale-dev libxvidcore-dev libx264-dev libxine2-dev	

// 주의 1(숫자)이 아니고 l(알파벳)임
$ sudo apt-get install -y libv4l-dev v4l-utils										

$ sudo apt-get install -y libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev

 

3. Opencv GUI 환경 설치 (옵션 패키지)

// tk 2.0 설치
$ sudo apt-get install -y libgtk2.0-dev	

// tk 3.0 설치
$ sudo apt-get install -y libgtk-3-dev	

// qt 4.0 설치
$ sudo apt-get install -y libqt4-dev

 

4. OpenGL 지원패키지 설치

$ sudo apt-get install -y mesa-utils libgl1-mesa-dri libgtkgl2.0-dev libgtkglext1-dev

 

5. 파이썬에 필요한 OpenCV관련 패키지 설치

$ sudo apt-get install -y libatlas-base-dev gfortran libeigen3-dev
$ sudo apt-get install -y python2.7-dev python3-dev python-numpy python3-numpy

 

6. home디렉터리에 새로운 디렉터리 생성 후 이동

// 현재 위치에 opencv 라는 디렉터리 생성
mkdir opencv

// 해당 디렉터리로 이동
cd opencv

 

7. opencv 필요 패키지 다운로드 및 압축해제

// opencv 설치패키지 다운로드
$ wget -O opencv.zip https://github.com/opencv/opencv/archive/4.1.0.zip

//	압축 해제
$ unzip opencv.zip		

// opencv_contrib 설치패키지 다운로드
$ wget -O opencv_contrib.zip https://github.com/opencv/opencv_contrib/archive/4.1.0.zip	

//	압축 해제
$ unzip opencv_contrib.zip

        ( 옵션 ) 압축이 잘 풀렸나 확인. 아래와 같이 디렉터리 2개가 생성되어야 한다.

$ ls

 

8. 압축을 푼 디렉터리로 이동하여 build 디렉터리 생성 후 이동

$ cd opencv-4.1.0
$ mkdir build
$ cd build

 

9. 해당 디렉터리에서 OpenCV 컴파일 설정하기

$ cmake -D CMAKE_BUILD_TYPE=RELEASE \
-D CMAKE_INSTAL_PREFIX=/usr/local  ?\
-D WITH_TBB=OFF  ?\
-D WITH_IPP=OFF  ?\
-D WITH_1394=OFF  ?\
-D BUILD_WITH_DEBUG_INFO=OFF  ?\
-D BUILD_DOCS=OFF  ?\
-D INSTALL_C_EXAMPLES=ON  ?\
-D INSTALL_PYTHON_EXAMPLES=ON  ?\
-D BUILD-EXAMPLES=OFF  ?\
-D BUILD_TESTS=OFF  ?\
-D BUILD_PERF_TESTS=OFF  ?\
-D ENABLE_NEON=ON  ?\
-D ENABLE_VFPV3=ON  ?\
-D WITH_QT=OFF  ?\
-D WITH_GTK=ON  ?\
-D WITH_OPENGL=ON  ?\
-D OPENCV_EXTRA_MODULES_PATH=../../opencv_contrib-4.1.0/modules  ?\
-D WITH_V4L=ON  ?\
-D WITH_FFMPEG=ON  ?\
-D WITH_XINE=ON  ?\
-D BUILD_NEW_PYTHON_SUPPORT=ON  ?\
-D OPENCV_GENERATE_PKGCONFIG=ON ../

위와 같이 입력하고 엔터.
이렇게 진행한다.
끝날 때 위와같이 나타난다.

 

10. Swap 멀티코어 사용, 메모리 부족 대비

  - nano 편집기로 해당 파일을 연다

sudo nano /etc/dphys-swapfile

 - 기존의 것은 주석처리하고 사이즈를 20배(2048)으로 늘린다.

#...
# CONF_SWAPSIZE=100
CONF_SWAPSIZE=2048		// <= 메모리를 20배 확장
...

Ctrl+X - (Y)눌러서 저장 - 엔터

 

11. 변경한 SWAP 업데이트

// 이전 메모리 확인
$ free 										

// 스왑실행
$ sudo /etc/init.d/dphys-swapfile restart	

// 이후 메모리 확인
$ free

늘어난 것을 확인.

 

12. 컴파일 실행 (여기에서 엄청 오래 걸림 컴퓨터에 따라 몇시간? 도 걸림)

반응형
$ make

100%가 다 차면 완료

 

13. 컴파일 결과물을 설치

$ sudo make install

설치 완료

 

14. OpenCV 라이브러리를 찾을 수 있도록 명령

//  l(알파벳) 임.
$ sudo ldconfig

 

15. 설치가 끝났으니 다시 메모리를 100으로 원상 복귀

$ sudo nano /etc/dphys-swapfile

    아까 주석처리한 100을 해제하고, 2048을 주석처리, 그리고 저장.

 

16. Swap 재시작 변경 확인

// swap 재시작
$sudo /etc/init.d/dphys-swapfile restart

// 확인
$free

 

 

이제 라즈베리파이에 OpenCV를 설치했다.

Python코드를 작성하고, 카메라를 연결하여 사용할 수 있다.

 

 

https://link.coupang.com/a/j3JK2

"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."

 

라즈베리파이 4 4B 비주얼 개발 세트 OpenCV 얼굴인식 Pyth

COUPANG

www.coupang.com

 

https://link.coupang.com/a/j3JNR

 

기존 라즈베리 파이 4 모델 B 2 4 8GB RAM 옵션 9 레이어 아크릴 케이스 32GB TF 카드 스위치 전원 어댑

COUPANG

www.coupang.com

 

 

반응형
반응형

라즈베리파이가 실행되자마자 프로그램을 실행시킬 수 있는 방법이 있다.

 

1. 시작프로그램 설정 파일

$ sudo nano /etc/rc.local

반응형

2. 아랫부분에 원하는 동작 등록

.
.
.
fi

[여기에 등록]

exit0

 

3. 재부팅하면 해당부분이 자동 시작된다.

reboot

 

 

시작시 프로그램을 자동으로 돌리는 코드와 고장났을 때를 탐지하여 재부팅 시켜주는 와치독을 함께 사용하면, 신뢰성이 향상된 IOT기기처럼 쓸 수 있을 것이다.

https://ansan-survivor.tistory.com/1320

 

[Raspberry Pi] 라즈베리파이 와치독(watchdog) 설정하기 (시스템 에러 감지 후 재부팅)

와치독(watchdog)은 가동중인 시스템이 어떤 외부적인 상황으로 시스템 구동이 멈췄을 때, 이를 타이머로 감지한 후 일정시간 반응이 없으면 자동으로 재부팅시켜 시스템이 완전히 다운되지 않도

ansan-survivor.tistory.com

 

반응형
반응형

라즈베리파이의 일반적으로 Wifi를 연결하는 방법은 아래 참고.

https://ansan-survivor.tistory.com/1305

 

[Raspberry Pi] 라즈베리파이4 와이파이 연결하기 (무선인터넷 연결)

1. 연결할 와이파이정보 확인 2. 터미널에 아래와 같이 입력한다. $ wpa_passpharse [와이파이이름] [와이파이_Password] 그리고 아래 psk= 뒷부분을 복사한다. 3. 아래 명령을 실행하여 변경한다. sudo nano/et

ansan-survivor.tistory.com

 

 

 

Wifi 주소를 숨겨서 표시가 안되는 경우 해당 와이파이를 등록하는 방법.

아래 코드를 순서대로 하면 된다.

 

1. 설정파일 nano 편집기로 열기

$ sudo nano /etc/wpa_supplicant/wpa_supplicant.conf

 

2. 아래 사항을 수정 (설정이 적용되지 않는 경우 country를 US 또는 GB로 한다.)

ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
country=US

network={
ssid="와이파이이름"			// 숨긴 Wifi 이름
scan_ssid=1				// 숨긴 Wifi 스캔
mode=0
proto=WPA2
pairwise=TKIP
group=TKIP
key_mgmt=WPA-PSK
psk="패스워드"		// 숨긴 wifi 비밀번호
}
반응형

3. 재부팅

reboot

 

 

 

 

 

고정 IP주소 설정은 아래 참고.

https://ansan-survivor.tistory.com/44

 

[Raspberry Pi] 라즈베리파이 고정 IP 할당하기

본인 IP주소 확인 $ ifconfig 1. 네트워크 설정 편집 파일 수정 (vim 또는 nano편집기 둘중 하나 선택) $ sudo vim /etc/dhcpcd.conf  또는 $ sudo nano /etc/dhcpcd.conf 2. 아래 마크한 부분 주석해제, 본인 주..

ansan-survivor.tistory.com

 

 

<최신버전 라즈베리파이4 구매 링크>

"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."

https://link.coupang.com/a/rxd79

 

라즈베리 파이 4 모델 B 2GB 4GB 8GB 키트 알루미늄 케이스 3A 스위치 전원 HDMI 케이블 옵션 64 32GB SD

COUPANG

www.coupang.com

 

 

 

 

 

 

 

 

 

 

반응형
반응형

 

반응형

https://link.coupang.com/a/jZBw1

 

기존 라즈베리 파이 4 모델 B 2 4 8GB RAM 옵션 9 레이어 아크릴 케이스 32GB TF 카드 스위치 전원 어댑

COUPANG

www.coupang.com

 

터미널에서 아래 코드를 순서대로 실행하면 한글이 깨지지 않는다.

 

 

1. 한글패치 설치

sudo apt-get -y install ibus-hangul

2. 폰트 설치

sudo apt-get install fonts-unfonts-core

3. 재부팅

reboot
반응형
반응형

윈도우의 캡쳐 프로그램처럼 라즈베리파이도 화면을 캡쳐할 수 있는 어플리케이션을 설치하여 사용할 수 있다.

https://makersportal.com/blog/2018/9/4/how-to-take-a-screenshot-using-raspberry-pi

반응형

패키지 다운로드

sudo apt-get install scrot -y

 

실행 명령어

scrot

 

특정 폴더에 스샷 후 저장

scrot /home/pi/screenshots/test.png

 

반응형
반응형

라즈베리파이를 직접 연결해서 사용할 수 있는 방법이 있다.

https://ansan-survivor.tistory.com/1304

 

[Raspberry Pi] 라즈베리파이 모니터와 연결하기, 키보드 마우스 연결하기

이 라즈베리파이를 다루기 위해서는 입력할 수 있는 마우스, 모니터가 필요하고 출력을 볼 수 있는 모니터가 필요하다. 이 작은 보드자체가 하나의 컴퓨터이다. * 사전에 라즈베리파이의 SD카드

ansan-survivor.tistory.com

 

그러나 내 모니터와 키보드, 마우스 등을 할당해야 함으로 리소스 낭비이다.

라즈베리파이는 그저 원격으로 연결해서 컨트롤만 해주면 좋을것이다.

 

원격설정을 하기전에 사전에 해야 할 작업은 바로 "인터넷" 연결이다.

간단하게 라즈베리파이에 랜선을 꽂으면 해결된다. 그러나 그렇지 않을 경우에는 WiFi를 연결하면 되는데, WiFi가 생각보다 쉽게 연결되지 않는다. 고로 아래를 참고한다.

https://ansan-survivor.tistory.com/1305

 

[Raspberry Pi] 라즈베리파이4 와이파이 연결하기 (무선인터넷 연결)

1. 연결할 와이파이정보 확인 2. 터미널에 아래와 같이 입력한다. $ wpa_passpharse [와이파이이름] [와이파이_Password] 그리고 아래 psk= 뒷부분을 복사한다. 3. 아래 명령을 실행하여 변경한다. sudo nano/et

ansan-survivor.tistory.com

 

원격터미널 패키지 설치하기

 

위 방법으로 직접 라즈베리파이를 연결하고 터미널로 원격으로 연결하기 위해 유용한 패키지들을 설치한다.

이 작업을 한번 해두고 그 뒤로는 원격으로 접속이 가능하다.

 

1. apt-get 을 업데이트 및 업그레이드 해준다.

sudo apt-get update
sudo apt-get upgrade

 

2. xrdp를 설치한다.

sudo apt-get install xrdp -y

 

 

윈도우에서 라즈베리파이로 원격 연결하기

 

원격으로 연결하기 위해서는 라즈베리파이의 IP주소가 필요하다.

ifconfig

유선과 무선에 따라 ip주소 표시 위치가 다르다. (필자는 무선이다)

 

1. 윈도우에 "원격 데스크톱 연결" 이라는 소프트웨어가 있다. 이를 실행한다.

2. 위 IP주소를 입력한다.

 

3. 라즈베리파이의 계정 정보를 입력한다.

    (특별한 설정 없으면 계정명은 pi 이다. 아마 패스워드도 pi 일것이다.)

반응형

 

 

(결과)

이제 내 윈도우에서 라즈베리파이의 배경화면에 접속이 가능하다.

 

 

<최신버전 라즈베리파이4 구매 링크>

https://link.coupang.com/a/jZl4C

"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."

 

기존 라즈베리 파이 4 모델 B 2 4 8GB RAM 옵션 9 레이어 아크릴 케이스 32GB TF 카드 스위치 전원 어댑

COUPANG

www.coupang.com

 

 

 

 

 

 

반응형
반응형

 

1. 연결할 와이파이정보 확인

 

2. 터미널에 아래와 같이 입력한다.

$ wpa_passpharse [와이파이이름] [와이파이_Password]

    그리고 아래 psk= 뒷부분을 복사한다.

 

3. 아래 명령을 실행하여 변경한다.

 sudo nano/etc/wpa_supplicant/wpa_supplicant.conf

아래와 같은 코드 가있다.

반응형
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
country=GB

network={
        ssid= "와이파이이름"
        psk= (위에서 복사한거 붙여넣기)
}

 

 

4. 그리고 재부팅하면 와이파이가 들어온다.

sudo reboot

 

 

* 숨겨진 와이파이 연결하기

https://ansan-survivor.tistory.com/1309

 

[Raspberry Pi] 라즈베리파이 숨겨진 와이파이 연결하기

라즈베리파이의 일반적으로 Wifi를 연결하는 방법은 아래 참고. https://ansan-survivor.tistory.com/1305 [Raspberry Pi] 라즈베리파이4 와이파이 연결하기 (무선인터넷 연결) 1. 연결할 와이파이정보 확인 2. 터.

ansan-survivor.tistory.com

 

 

<최신버전 라즈베리파이4 구매 링크>

"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."

https://link.coupang.com/a/rxd79

 

라즈베리 파이 4 모델 B 2GB 4GB 8GB 키트 알루미늄 케이스 3A 스위치 전원 HDMI 케이블 옵션 64 32GB SD

COUPANG

www.coupang.com

 

 

반응형
12

+ Recent posts