본문 바로가기

라즈베리파이

(64)
라즈베리파이 확장 IO 보드 사양 스마트 IoT 설계 실습 시스템에서 사용하는 라즈베리파이 IO 보드다. 일단 라즈베리파이(Raspberry Pi)에 대해 간단한 설명을 참조하세요. 라즈베리파이는 40 Pin GPIO를 가지고 있는데 예약된 핀과 VCC, GND 핀을 빼면 약 27개 정도의 핀을 사용자가 설정하여 사용할 수 있다. GPIO에 대한 자세한 설명 참고는 이곳을 참고하세요. GPIO(General Purpose Input Output) 핀은 사용자의 목적에 맞도록 설정하여 범용적으로 사용할 수 있는 입 출력 핀을 말한다. 입력이나 출력으로 설정하고, 입력 풀업-풀다운, 출력 불업-풀다운, 인터럽트로 설정 가능하다. 인터럽트 핀으로 사용 시 입력이 하이로 올라갈 때 인터럽트를 인식한다든가, 입력이 로우 레벨로 내려갈 때 인터럽트..
라즈베리파이를 Access Point 로 만들기 - AP Mode 사용 라즈베리 파이를 AP Access Point로 만들기 무선 액세스 포인트(wireless access point, WAP)는 컴퓨터 네트워크에서 와이파이를 이용한 관련 표준을 이용하여 무선 장치들을 유선 장치에 연결할 수 있게 하는 장치를 가리킨다. WAP는 일반적으로 유선망을 거치는 라우터에 연결되며 컴퓨터, 프린터와 같은 무선 장치와 네트워크 상의 유선 장치 간 데이터를 중계할 수 있다. 그리고 무선 장비 연결중 블루투스 를 이용할때는 일반적으로 1:1로 연결을 하게 되므로 이때는 무선 액서스 포인트라고 하기보다는, 1:1 근거리 무선 통신 장비라고 한다. 이유는 일반적인 무선 액서스 포인트의 용도는 1:다수가 접속을 하는데 사용하기 때문이다. ( 위키백과 https://ko.wikipedia.org..
raspberry pi 3 에서 mcp3208 adc 안될때 spi 통신 이상 잘되던 SPI 방식의 ADC 제어가 안된다. 컴파일 하기 전 실행파일은 바른 ADC 값을 보내는데 컴파일을 하고 나면 값이 0으로 출력되는 현상이 발생되었다. Raspberry Pi 3로 바꾸고 나서 이런 현상이 발생한듯 보인다. 이것 저것 해보다가 reboot 하고 나니 잘된다. 왜 잘되는지 모르겠다. $history 명령으로 이전 입력 명령어를 찾아보니 다음과 같은 명령어를 순차적으로 실행해서 되었다고 추정이 되어 남겨본다. 한 번 더 해봐야겠다. 이게 맞는지도 자신있게 말씀드리지 못하는 점 양해부탁~ $wget http://www.airspayce.com/mikem/bcm2835/bcm2835-1.52.tar.gz 파일을 다운로드 압축을 풓고 폴더를 옮기고 컴파일을 실행. $tar zxvf bcm2..
apache2 리스타트 에러 - Job for apache2.service failed. 아파치2 서버를 설치하고 리스타트 명령을 주었을때 다음과 같이 나올때가 있다. 1 2 3 pi@raspberrypi:~ $ sudo service apache2 restart Job for apache2.service failed. See 'systemctl status apache2.service' and 'journalctl -xn' for details. Colored by Color Scripter cs 이런 경우는 다음 파일 어딘가가 잘못되어 있는 경우다. /etc/apache2/apache2.conf 따라서 파일을 열어서 주석처리라든가 잘못 수정된 부분을 고치고 하면 잘된다. 이렇게 한 번 해보자. $apache2ctl configtest 이렇게 하면 에러가 생긴곳이 하이라이트 된다. 수정한 ..
라즈베리파이에서 OS버전 확인하기 라즈베리파이에서 OS 버전 확인하기 리눅스에서 운영체제 버전을 확인하느 방법은 많습니다. 커날부터 OS 버전까지 확인할 때 좋습니다. 아래는 라즈베리파이 Rasbian 최신버전 stretch 에서 확인했습니다. 참고하십시요. 명령어와 출력을 라즈베리파이 화면에서 캡쳐한 내용입니다. 일반적인 커널정보 pi@raspberrypi:~ $ uname -a Linux raspberrypi 4.14.79-v7+ #1159 SMP Sun Nov 4 17:50:20 GMT 2018 armv7l GNU/Linux pi@raspberrypi:~ $ OS 버전에 대한 정보 1 pi@raspberrypi:~ $ pi@raspberrypi:~ $ cat /etc/issue Raspbian GNU/Linux 9 \n \l pi@..
리눅스 쉽고 간단한 다중 Thread 프로그램 with 라즈베리파이 리눅스 쉽고 간단한 다중 Thread 프로그램 1 with 라즈베리파이 Thread의 장 단점이 중요한 게 아니라 굉장히 많이 사용한다. 사실 Thread를 사용하지 않는 프로그램은 거의 없다. 작업을 동시에 실행한다는게 얼마나 멋진 일인가? 일단 가장 단순한 다중 Thread 프로그램을 보자. 근데 책의 예제라 그런지 무지하게 복잡하고, 어렵게 보인다. 으~ 이런거 정말 싫은데. 그냥 설명만 하고 쉬운건 아래에 있다. 여러가지 소스코드를 참고하자. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 #include #include #include #include #inclu..
자주 가끔 많이 항상 사용하는 리눅스 명령어 모음 자주 사용하는 리눅스 명령어 모음 생활코딩에서 모두에게 제공하는 리눅스 수업은 다음 링크로 배울 수 있다. 꼭 배워두시길 부탁드린다. ㅎㅎ https://opentutorials.org/course/2598 1. 리눅스 시스템 종료 방법 shutdown -h now halt init 0 - shutdown 명령어 shutdown -h +10 (10분후 종료, h:halt) shutdown -r 22:00 (오후 10시에 재부팅, r:reboot) shutdown -c (예약된 shutdown 명령 취소) shutdown -k now (종료 메시지는 보이나 종료 안됨) 2. 재부팅 shutdown -r now reboot init 6 3. 로그아웃 logout exit - init명령어(런레벨, Runle..
리눅스 signal 을 타이머 알람으로 사용하기 Linux signal use Timer Alarm 디바이스 드라이버를 이용해서 CPU의 내장 타이머들을 이용해서 직접적으로 제어를 해도 되지만, 대략 1초 이상의 초단위 타이머를 사용하고자 한다면 심플하게 signal 함수를 이용해서 초단위의 타이머를 구현할 수 있다. 아주 작은 순간 타이머 구현하느 방법은 아래 포스팅을 참고한다. signal 중에서 SIGALRM 이 있는데 이 signal은 alarm 함수가 보내는 signal 이다. 이 alarm을 주기적으로 발생하고 signal을 처리 하면 리눅스에서도 타이머를 사용할 수 있다. 소스코드다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 #include #include #include #defi..