반응형

개발자/Raspberry Pi 79

ctrl-c 프로세스 종료시 주의할 점과 SIGINT 시그널 사용법

ctrl-c 프로세스 종료시 주의할 점과 리눅스 SIGINT 시스널 사용법 라즈베리 파이를 이용해서 개발할때 보통 GPOI 로 출력을 보내 LED를 켠다든지, 모터를 작동시키는 경우 반복적으로 테스트 하는데 중간에 ctrl-c 로 강제로 프로세스를 중지하고 나올 경우가 있다. 이런 경우 보통 라즈베리 파이 GPIO 에는 이전에 신호가 계속 들어와 있는 관계로 프로그램은 종료 되었는데 LED 는 계속 ON 상태고, 모터 같은 액츄에이터 들은 계속 돌고 있는 약간은 황당한 일이 일어난다. 이러한 애매한 상황이 일어나지 않기 위해 시스템이 보내는 시그널의 하나인 INTSIG 를 사용하는 방법을 알아보자. 액츄에이터 제어 실습시 보통 실험을 종료할 경우 ctrl-c 를 눌러 종료하게 되는데, 이 때 GPIO 신..

sudo kill -9 pid 로 발생하는 메세지 처리, kill 메세지 처리

결론적부터 말하자면 리눅스에서 시스템 메세지 발생하는 것 중에 SIGKILL과 SIGSTOP 메세지는 사용자가 처리할 수 없다. 아래 설명을 참고 하고, 해결방법은 SIGTERM 메세지를 사용한다. 비정상적으로 동작하는 프로세스는 당연히 $sudo kill -9 PID 로 죽이는게 맞으니, 굳이 정상 종료되로록 SIGTERM 을 사용 할 필요가 없으니, 어쩌면 백그라운드로 돌아가는 프로그램을 죽이는 명령은 SIGTERM(15번 메세지)을 사용해서 죽인는게 맞다고 생가된다. $sudo kill -15 PID 하면 이때 SIGTERM 메세지가 발생하고 이걸로 뒷처리를 한다. 참고로 ctrl-c 로 종료할때 SIGINT 메세지 사용방법과 예제코드는 이곳에서 참고한다. http://fishpoint.tistor..

랜케이블 하나로 가장 빠르게 라즈베리파이와 접속하는 방법

랜 케이블 하나로 가장 빠르게 라즈베리 파이와 연결하는 방법이다. 일전에 라즈베리 파이 개발환경 구성하는 3-4가지 방법을 올린것을 참조 http://fishpoint.tistory.com/1653 라즈베리 파이 개발환경을 3가지 방법으로 구현하기 이 방법은 얼마전에 동아대학교로 사물인터넷 강의하러 갔는데, 연결이 잘 안되어 우왕좌왕 하는데 컴공과 한 학생이 해보더니 너무나 잘 되는 것이다. 모두 이런 방식으로 IP 주소를 부여받아 실습을 잘 진행한 것이다. 너무 고마운 학생이다. 준비물은 라즈베리 파이 부팅 환경이 되어 있을것, 랜케이블, SD 카드 리더기가 되겠다. 1. 부팅 준비가 되어 있는 라즈베리파이를 랜케이블로 노트북이나 PC 에 연결한다. 2. 라즈베리 파이에 있는 SD 카드를 빼서 SD 카..

라즈베리 파이로 DHT22 온도 습도 센서 사용하기 C 언어

DHT22 온습도 센서를 라즈베리 파이에 연결해보자.PIN 맵을 살펴보면 아래 그림과 같다. 1번은 +5V 에 연결하고, GND 는 GND 에 연결한다. 2번 데이터 핀은 GPIO 어디에나 연결 가능하다. wiringPi 핀번호와 소프트웨어에서 핀 번호를 일치시켜 주면 된다. 테스트는 VCC 1번 핀과 데이터 핀 2번 핀 사이에 10K 저항을 달지 않고 테스트 했는데 이상없이 데이터가 잘 나온다. DHT22 센서의 간단한 사양은 아래와 같다. DHT22 MODULEPower: DC 3~5VPins: G (GND) – V (VCC) – D (Data)Humidity Measurement: 0~100% humidity reading with 2~5% accuracyTemperature Measurement:..

라즈베리파이 DHT11 온도 습도 센서 사용하기, LCD 에 온도와 습도를 출력

라즈베리 파이로 DHT11 온습도 데이터를 읽어오는 방법을 설명한다. DHT11 온습도 센서는 아래와 같은 모양이다. PCB 마운트 되어 있거나 그냥 4핀이 나와있는 형태다. 온습도 출력을 보기 위해 PuTTY 와 같은 SSH 지원 터미널을 사용한다. DHT11 온습도 센서의 간단한 사양을 살펴보면 DHT11 MODULE Power: DC 3~5V Pins: G (GND) – V (VCC) – D (Data) Humidity Measurement: 20~80% humidity reading with 5% accuracy Temperature Measurement: 0~50°C temperature reading with ±2°C accuracy Should not measure more than once..

라즈베리파이 LCD 1602 사용하기 16x2 LCD Hello World using C

기상 관측소(Weather Station)을 만들기 위해 캐릭터 LCD 1602 를 라즈베리파이와 사용하기 위한 사용법입니다. 16 by 2 Character LCD 의 기본적인 사양은 아래와 같습니다. 아두이노 실습에 사용한 프리젠테이션 이미지를 참고하시기 바랍니다. 16 * 2 - 1602 LCD LCD 의 다양한 사용 위 그림에 사용한 명령어는 아두이노 명령어임. 16x2 LCD pinout: 핀 할당은 아래와 같다. 1 = VSS (GND) 2 = VDD (VCC,5V) 3 = VE (connect with variable resistor) 4 = RS, Register Select 5 = RW, Read/Write 6 = E, Enable 7 = Data0, D0 8 = Data1, D1 9 =..

KT 제공 IoT Makers 에 연동시 컴파일 오류

설명서에 나온대로 $make clean 하고 $make 했더니 아래처럼 에러가 pi@raspberrypi:~/ktiot/test $ make cleanrm -rf main.opi@raspberrypi:~/ktiot/test $ makegcc -W -O0 -g -I../include -c main.c -o main.ogcc -o tt main.o ../lib/libiotmakers.a -lpthreadmain.o: In function `mycb_strdata_handler':/home/pi/ktiot/test/main.c:47: undefined reference to `pinMode'/home/pi/ktiot/test/main.c:53: undefined reference to `digitalWrite..

Nodejs 를 사용하여 mcp3208 ADC 컨버터 사용하여 데이터 읽어오기

Nodejs 환경에서 MCP3208 ADC 컨버터를 사용하여 ADC 데이터를 읽어오는 방법을 설명한다. 일단 nodejs 설치한다. Node 의 최신 버전을 설치한다. Node 6.x.$ curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash -The previous command updates our Debian apt package repository to include the NodeSource packages.설치화면은 아래와 같다. pi@raspberrypi:~ $ curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash - ## Installing the NodeSource Node.js ..

라즈베리 파이에서 Gstreamer 설치 테스트 스트리밍하는 방법

G 스트리머 홈페이지 : https://gstreamer.freedesktop.org/ GStreamer 홈페이지입니다. 최근까지도 자료들이 꾸준히 업데이트되고 있습니다. ~$ wget http://gstreamer.freedesktop.org/src/gst-rtsp/gst-rtsp-0.10.8.tar.bz2~$ bzip2 -d gst-rtsp-0.10.8.tar.bz2~$ tar xvf gst-rtsp-0.10.8.tar~$ cd gst-rtsp-0.10.8 위의 명령어를 차례로 입력합니다. Gstreamer RTSP 서버 프로그램을 다운받고 압축을 푸는 과정입니다. 그러면 이제 Gstreamer 라이브러리를 설치해야 합니다. 서버의 버전과 호환이 되야하기 때문에 더 높은 GStreamer 패키지를 설..

8G SD 카드 이미지 백업 받은것을 32G SD 카드에 굽고 난 다음

df 명령어 - (파일시스템들의 사용량 정보확인) 현재 사용중인 파일시스템의 전체용량, 사용한 용량, 사용가능한 용량, 사용율, 마운트정보등을 보여준다. 즉, 이 명령어는 현재 사용중인 파일시스템들의 디스크사용량을 출력한다. 서버 장애의 주된 원인이 될 수 있는 File System Full(파일시스템이 꽉참)을 방지하기 위하여 서버관리자의 주된 업무중 한가지가 주기적인 파일시스템 사용량 점검이다. 이때 파일시스템의 사용량점검을 위해 사용되는 명령어가 df이다. 또한 df 명령어는 /etc/fstab파일에서 파일시스템정보를 참조하고, /etc/mtab에서 마운트된 정보를 참조한다. 그리고 기본표시 용량단위는 KB(Kilo Byte)이며, 주로 서버관리자(root)가 사용하는 명령어이다. 사용형식 df [..

라즈베리 파이 GPIO pin 상태를 읽어 이용하기 - GPIO pull up 사용

라즈베리 파이 GPIO pin 상태를 읽어 이용하기 - GPIO pull up 사용 라즈베리 파이의 GPIO 핀 상태에 따라 라즈베리 파이를 다르게 동작시키기 위한 방법을 설명한다. 라즈베리 파이에 wiringpi 라이브러리가 설치되어 있어야 한다. 라즈베리 파이와 wiringPi 라이브러리에 대한 자세한 설명과 설치방업은 아래 링크를 참조한다. http://fishpoint.tistory.com/1814 - Raspberry Pi GPIO 와 wiringPi 라이브러리 현재 GPIO pin 4개는 아래와 같이 연결되어 있다. 즉 GPIO 16, GPIO 20, GPIO 19, GPIO 26 이 네 핀의 상태를 읽어오는 작업이다. 순서를 이야기 하면 1. 상태를 얻고자 하는 gpio pin 을 입력 in..

반응형