라즈베리파이 5

라즈베리와 아두이노 USB로 통신하기

1. 간단하게 서로 통신할 방법이 없을까? 아두이노는 USB로 전원을 공급받을 수 있고, 프로그램 업로드도 가능하다. 즉 USB로 데이터 송수신을 할 수 있다. 2. Raspberry에서 어떻게 아두이노에 데이터를 줄까? Raspberry에서 serial 통신을 수행하면 된다. Python의 경우 PySerial을 통하여 시리얼 통신을 열고 read, write를 수행할 수 있다. 3. 라즈베리 예시코드 import serial com = serial.Serial(port = "/dev/ttyACM0", baudrate = 9600, bytesize = serial.EIGHTBITS, parity = serial.PARITY_NONE, timeout = 1) s = "TEST CODE" com.write..

[직구] 중고나라 보다 아마존 WD elements 8TB 직구 & 개봉 & 성능

1. 중고나라 보다 아마존 직구하기 Raspberry Pi를 이용해 NAS 대용하여 쓰고 있었는데, 외장 하드가 없어 외장 SSD 1TB를 연결해 쓰고 있었다. 그러다가 약간 아깝기도 하고, 사실 용량이 너무 부족하여 교체하기로 결심했다. 쭈욱 살펴보던중 3.5인치 1~2TB 새상품이 6만원정도, 2.5인치 1TB 새상품이 5만원 정도였다. 아무래도 라즈베리파이가 SATA를 지원하지 않기 때문에 2.5인치 하드디스크에 외장 케이스를 씌울까 생각하다가 그냥 3.5인치 유전원 외장하드가 나아보였다. 더욱이 일정 용량을 넘어가면 "하드디스크 단품" 보다 "유전원 외장하드"가 더 싼편이므로 WD의 elements로 마음을 굳히게 되었다. 근데 WD의 elements는 직구가 가격이 더 저렴하기 때문에 국내 온라..

일상/리뷰 2020.01.15

[라즈베리파이 / 리눅스] init.d 서비스 스크립트 작성을 통한 시작 프로그램 만들기

리눅스, 특히 라즈베리파이를 이용한 프로젝트를 진행하고 있다면 아두이노와 같이 재부팅(전원 인가)시에 작성한 프로그램이 자동으로 켜지도록 만들어야 한다. 이러한 시작 서비스를 만드는 방법은 구글에 linux start up program 또는 boot up program의 키워드로 검색하면 다양한 정보를 얻을 수 있다. 가장 간단한 방법은 rc.local이나 crontab에 커맨드를 등록하여 바로 실행하는 방법이 있고, 더 나아가 systemmd를 이용하는 방법도 있다. 어느 사이트에서는 5가지 방법에 대하여 다루고 있다. 이번 포스트에서는 그중 가장 널리 사용되는 init.d 서비스 스크립트를 작성하는 방법을 다룬다. init.d는 리눅스를 어느정도 만져본 대부분의 사람들은 특정 서비스를 start /..

[라즈베리파이/리눅스/우분투] RS232/RS485 to USB 장치 포트(ttyUSB) 검색 방법 및 코드

라즈베리파이(raspberry pi)에서 serial to ttl usb 컨버터 장치를 통해 통신을 하기 위해서는 장치명이 아닌 포트위치가 필요하다. 포트 위치는 /dev/ttyUSB1과 같이 디렉터리이며, 여기서 USB0, USB1...의 장치는 연결되는 USB 장치의 개수에 따라 달라진다. 물론 이 포트 위치는 제조사와 장치 명칭을 통해서 고정하여 쓸 수 있다. 하지만 장치는 언제나 동일 기능을 수행하는 다른 장치로 변경할 수 있으므로 나는 Device ID를 이용해서 해당 장치의 포트를 알아내는 방식을 선택했다. 우선 크게 동작하는 방법을 알아보면, 1) Device 입력 및 해당 device가 존재하는지 확인 configuration파일을 통해서 장치ID를 입력 받을 것이므로, 입력받은 ID 값이..

[라즈베리파이] USB 컨버터(RS485/RS232)를 이용한 시리얼 통신 읽/쓰기 파이썬 예제

라즈베리파이(Raspberry pi / RPi)에 USB TTL 컨버터(RS485/RS232)를 이용하여 시리얼 통신하는 예제 코드를 작성하여 둔다. 우선 컨버터를 이용하기 때문에 결국 프로토콜이 RS232이든 반이중 RS485이든 결국 라즈베리파이에 들어오는 것은 serial임을 기억해야 한다. (USB를 안쓰고 TTL 기반의 컨버터를 써도 결과는 똑같다. 다만 GPIO를 이용하는것 차이이다.) USB를 통하여 통신하는 경우, Java의 RXTX 라이브러리나 파일 자체(리눅스는 모든 장치를 파일로 처리하므로 /dev 안의 파일)를 읽,쓰기 해도 무방하다. 하지만 Python을 이용하는 것이 별도의 라이브러리를 설치하지 않고 딱 좋은 것 같다. 따라서 Python의 PiSerial를 이용한 예제 코드가 ..

페이스북으로 공유카카오톡으로 공유카카오스토리로 공유트위터로 공유URL 복사