본문 바로가기

개발자/Raspberry Pi

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..