본문 바로가기

IoT

(11)
[wsl] 그래픽 깨짐 현상 최근 wsl2는 GUI 프로그램을 실행할 수 있다. 그런데, 내 환경에서는 GUI가 깨져 보이는 현상이 있었다. 다음 과정을 거쳐 해결했다.그래픽카드 드라이버 업데이트: 자신의 그래픽카드에 맞는 드라이버를 최신 버전으로 업데이트한다.WSL 버전 업데이트: wsl을 업데이트하고 한번 껐다가 켠다.wsl --updatewsl --shutdownwsl이 문제때문에 GUI를 제대로 사용할 수가 없었는데 해결되었다.
[라즈베리파이] 라즈베리파이 5 device driver에서 gpio에 접근 https://www.youtube.com/watch?v=P3Judr4i7QI&list=PLCGpd0Do5-I3b5TtyqeF1UdyD4C-S-dMa&index=5유튜브 강의를 수강하면서 device driver을 구현하고 있었다. 나는 14번 핀에 버튼을, 21번 핀에 LED를 연결한 상태였다. 그런데, 라즈베리파이 5 기준으로 두 핀이 인식되지 않는 문제가 있었다.#define BTN_NO 14 // 14#define LED_NO 21 // 21if(gpio_request(LED_NO, "rpi-gpio-21")) { printk("cannot allocate gpio 21\n"); goto AddError;}/* set gpio 21 as output direction */if(gpio_..
[라즈베리파이] vscode로 커널 개발 시 intellisence 에러 없애기 해결 방법vscode 설정 중 C / C++ intellisence와 관련된 설정 파일인 "c_cpp_properties.json" 파일의 내용을 다음과 같이 수정한다.{ "configurations": [ { "name": "Linux", "includePath": [ "${workspaceFolder}/**", "/lib/modules/6.6.51+rpt-rpi-2712/source/include", "/usr/src/linux-headers-6.6.51+rpt-rpi-2712/arch/arm64/include/generated", "/u..
[라즈베리파이] PC에서 SSH로 접근 나는 라즈베리파이를 위한 모니터를 가지고 있지 않으므로, PC에서 SSH로 라즈베리파이를 연결해 작업을 처리하고 있다. 이 방법에 대해 정리해본다.라즈베리파이를 wifi와 연결한다.공유기를 통해 라즈베리 파이에 할당된 주소를 찾는다.PC에서 라즈베리파이에 할당된 주소로 SSH 요청을 보내 접근한다.라즈베리파이 wifi 연결라즈베리파이 이미지는 공식 문서에서 제공하는 Raspberry PI Imager라는 프로그램을 이용해 만든다.사용자 정보: 라즈베리파이 유저의 이름 & 비밀번호가 된다. 차후 SSH 접속 시 사용한다.무선 LAN: 라즈베리파이가 기본으로 연결할 wifi 주소와 비밀번호를 입력한다. 두 정보를 작성하고 SSH 사용을 활성화한 후, OS를 만들어 라즈베리파이에 연결하자. 라즈베리파이에 전원..
MQTT - mosquitto & 통신 실습 https://mosquitto.org/ Eclipse MosquittoEclipse Mosquitto is an open source (EPL/EDL licensed) message broker that implements the MQTT protocol versions 5.0, 3.1.1 and 3.1. Mosquitto is lightweight and is suitable for use on all devicesmosquitto.orgMQTT 프로토콜을 구현하는 오픈소스 기반 메시지 브로커. 이클립스 재단에 의해 관리되고 있다. mosquitto: MQTT 브로커mosquitto_pub: MQTT 메시지를 게시하는 클라이언트mosquitto_sub: MQTT 메시지를 구독하는 클라이언트mosqui..
MQTT(Message Queueing Telemetry Transport) https://docs.oasis-open.org/mqtt/mqtt/v5.0/mqtt-v5.0.html MQTT Version 5.0 docs.oasis-open.orgMQTT는 주로 IoT 통신에 사용되는 OASIS 표준 pub-sub 기반 메시징 프로토콜이다. TCP/IP 위에서 동작하며, 헤더 크기가 작기 때문에 효율적인 통신이 가능하다.배경1999년 위성을 통해 정유 파이프라인을 모니터링하기 위한 목적으로,최소한의 배터리 손실 및 대역폭으로 통신할 수 있는 프로토콜로 개발되었다. 이후 IBM은 2010년 MQTT 3.1을 개방형 프로토콜로 오픈했고, 2013년 유지 관리를 위해 OASIS( Organization for the Advancement of Structured Information S..
[라즈베리 파이] cpu 온도 측정 + 웹 환경에서 보기 https://www.nicm.dev/vcgencmd/라즈베리 파이는 vcgencmd라는 라즈베리 파이 전용 cli 프로그램이 있다. 온도 이외에도 코어 개수, 전압 등 다양한 정보를 볼 수 있으며, 이번에는 vcgencmd 툴을 이용해서 라즈베리 파이의 온도를 측정한다.아래 명령을 입력하면 현재 라즈베리 파이의 CPU 온도를 알려준다.vcgencmd measure_temp이때, 파이썬의 os.popen 메서드를 이용하면 stdout을 입력받을 수 있다. popen은 cmd에 대한 파이프를 열어 명령어에 대해 내용을 읽거나 쓸 수 있는 기능으로 보인다. 현재는 실행한 명령의 결과를 읽어오는 용도로 사용한다.print(os.popen("vcgencmd measure_temp").readline())위와 같..
[라즈베리 파이] opencv 카메라 버퍼 어제 라즈베리파이로 카메라 찍기 기능을 실습했었다. 그런데 해당 기능을 이용하다 보니, 마치 랙 걸린 것처럼 예전에 가리키던 화면을 저장하고 있다는 것을 알게 되었다.이 현상이 발생하는 이유는 opencv가 내부적으로 화면에 대한 버퍼를 가지고 있기 때문이다. imread 메서드가 현재 카메라가 보고 있는 화면을 반환하는 것이 아니라, 과거에 버퍼에 저장해뒀던 화면을 반환하기 때문에 내가 원하는 사진이 나오지 않았다.따라서, "사진 찍기" 처럼 버퍼가 의미 없는 기능을 opencv로 구현하기 위해서는 버퍼 사이즈를 작게 유지해야 한다. 공식 문서에 따르면 CAP_PROP_BUFFERSIZE 옵션을 통해 버퍼 사이즈를 지정할 수 있다.https://docs.opencv.org/3.4/d4/d15/group..