본문 바로가기

분류 전체보기

(29)
Raspberry Pi 4 서버 구축하기 - 설치 라즈베리파이를 산 목적이 개인 서버 구축이었으니 시작해보기로 하였다. 내가 웹과 관련되서 아는건 학부시절에 배운게 전부라서 사실 잘 모른다. HTML + CSS 로 홈페이지 만드는것도 이제 거의 기억이 안나고, Apache, MySQL 도 백지상태이다. 서버를 구축하면서 홈페이지를 직접 만들지도 모르겠지만 일단은 최대한 간단한 방식으로 해보기로 하였다. 일단 라즈베리파이에 Raspberry Pi OS 를 설치하고 시작했다. 그리고는 SSH를 열어 본체에서 원격으로 연결하였다. sudo apt-get update sudo apt-get upgrade sudo apt-get install vim 기본 업그레이드는 항상 OS 설치 후 필수다. 라즈베리파이OS가 리눅스나 거의 동일해서 무언가 하는 건 어렵지 않..
Raspberry Pi 4 구매기 개인적으로 다룰 수 있는 장치 하나를 가지고 있는 건 재밌는 일이다. 나는 주 분야가 임베디드쪽인지라 꼭 그 장치가 PC만 해당하지 않는다. 대학생때에는 bluetooth가 가능한 아두이노를 가지고 있었다. 당시에는 그 아두이노를 이용하여 위치를 측량하는 그런 프로그램을 만들었다. 그리고 취직을 한 뒤로 딱히 무언가를 사지 않다가 이상한 바람이 들어서 라즈베리파이를 구매하였다. 이번에 라즈베리파이를 구매한 이유는 센서 동작 및 개인 서버 구축을 위하여 구매하였다. NAS 서버를 살까도 생각했는데, 명색이 임베디드 개발자인데 센서를 처리할 수 있는 장비 하나쯤은 가지고 있어야하지 않는가 싶었다. 그래서 월급도 채 들어오지 않았는데도 질러버렸다. #라즈베리파이 4 라즈베리파이를 직접 만져보는건 이번이 처음이..
Leshan LWM2M - Object 생성 지난 게시글에서 LWM2M xml에 대하여 설명하였다. 이번에는 Leshan에서 만든 xml파일의 Object를 생성하는 작업을 하도록 하자. 새로 class를 생성하여 작성하여도 되지만, 시간도 오래걸리고 할 작업도 많다. 그래서 demo class를 수정하여 사용하였다. #leshan client demo LeshanClientDemo.java 파일에 xml을 등록하고, 그 xml을 동작시킬 클래스를 등록해야 한다. 테스트를 위하여 example 이라는 Object를 1000.xml 로 만들었다. 먼저, xml model을 불러올 경로를 지정한다. 이미 기본적으로 /models 폴더를 불러오는 Path가 있지만, 하나 더 등록하였다. 그리고 경로 안에서 불러올 xml 파일명을 선언해준다. 파일을 선언..
struct tm 을 쓸 때 하는 실수들 기능 개발을 하면서 가져온 데이터의 시간을 파싱하는 일을 많이 한다. 보통 가져온 데이터들은 앞 7자리를 시간으로 나타내는데, 년도 2bytes(년도를 통채로 hex화 한다. 즉, 2020년이면 07 e4가 된다.), 월 1byte, 일 1byte, 시 1byte, 분 1byte, 초 1byte로 표시한다. 이렇게 가져온 시간값을 비교하는 작업을 종종 하는데, 할 때마다 자꾸 실수를 하여 금방 끝날일을 오래 걸리게 한다. 이렇게 나뉘어져있는 값을 편하게 비교하기 위하여 time_t로 바꾸어 비교하면 간단히 상수 비교를 할 수 있어 이런 식으로 종종사용한다. 여기서 자주 실수하는 일은 선언한 struct tm 을 초기화하지 않는 것이다. struct tm을 초기화 하려면 localtime을 이용하여 초기화..
Leshan LWM2M - Object xml 작성 Leshan을 실행해보았다면 이제 안에 들어갈 Object를 추가해야 한다. Object를 추가하기 위해서는 xml 파일을 작성하여 넣어주고, 소스에서 불러와 사용한다. 예제로 작성된 xml 코드들이 demo 파일 안에 이미 들어있다. 파일의 위치는 leshan - leshan-client-demo - src - main - resources - models 이다. OMA에서 제공하는 Object를 수정하고 싶다면 leshan-core 에 있는 Object를 수정하여야한다. OMA규격 Object의 경로는 leshan - leshan-core - src - main - java - resources - models 이다. OMA Object가 있는 xml 파일은 OMA 홈페이지에서 다운받을 수 있다. O..
Leshan LWM2M 회사에서 임베디드 장치에 여러가지 LWM2M 소스를 포팅했었다. 실제로 0부터 구현하진 않았고, 보통 Open Source나 기존에 구현된 코드들을 사용하였다. 그 중, 가장 많이 만졌었던 소스는 Leshan 이라는 LWM2M source이다. Leshan은 JAVA로 구현된 LWM2M Server, Client 이다. Californium CoAP 을 사용하였고, Scandium DTLS를 가지고 있다. 원래 나의 주 언어는 C/C++ 이지만, 최근에는 회사의 어플리케이션을 모듈화하기 위하여 Linux에 JAVA를 이용하기로 하였다. 거기에 서버와 통신을 위한 프로토콜을 넣기 위하여 LWM2M을 사용하였다. C/C++을 사용하였다면 Wakaama나 awa를 사용하였을것이다. #기본 준비물 다른 팀원들은..
자기소개글 C/C++로 시작해 JAVA도 하는 임베디드 리눅스 개발자. E-mail : twomoon124@gmail.com 상세 : 국립대 컴퓨터공학 전공 ( 대학교 3학년부터 임베디드 개발을 전공. 종종 안드로이드를 할껄 그랬나 후회중. ) C/C++ 및 JAVA 사용 Shell script도 종종 사용. 주로 하드웨어 제어나 구동 시 어플리케이션 실행에 이용 주 업무는 게이트웨이 - 서버 간 네트워크 통신 구축 ( 서버팀과 같이 프로토콜을 개발하기도 하였고, LWM2M 프로토콜을 사용하기도 하였음 ) Serial 통신 ( RS-485, 광케이블 ) 개발 경험 RTOS, Mbed OS, Embedded Linux 의 어플리케이션을 주로 개발 STM32 보드 사용 취미활동 : 그림그리기 ( 현재는 수채화. 정물 ..
C++ Korea 제 7회 세미나 후기 7월 25일, C++ Korea 가 주관한 세미나를 보았다. 기존에는 오프라인으로 마이크로 소프트 건물에서 진행했는데, 이번에는 온라인으로 진행하여 유튜브에서 하였다. 사실 이 세미나는 최근에 인터넷에서 우연히 발견하였다. JAVA 나 웹 쪽 세미나는 몇번 봤는데, C++ 세미나는 이번에 처음 봤다. 더 있는데 관심을 안가져서 발견을 못한걸지도 모르겠다. 이번 세미나 주제는 게임 개발 타임이었다. 비록 나는 임베디드 리눅스 개발자이지만, 세미나 내용을 보니 봐도 좋을 주제들이라 보게되었고, 실제로도 괜찮았다. 세미나는 총 4개 세션으로 구성되었다. 1. 게임 엔진 개발과 C++ 2. 현실적인 CMake 3. 포인터를 사용하지 않고 게임 개발 해보기 4. 3D 게임에서의 빠른 렌더링을 위한 최적화 기법 이..