반응형

데이터베이스 table이 생성되지 않는 문제


- 기본적으로 SQL쿼리의 문법에 맞지 않을 경우 발생하는 에러

   :  if(!qry.exec(query)) 조건에 걸리는 에러


- 하지만 문법은 맞고 Table의 Value값들을 변경 했을 경우에 에러가 난다면 참고






아래와 같이 에러 발생






기존에 만들어졌던 sqlite 파일을 삭제(Delete)하여 준다



다시 빌드한다면 문제없이 빌드가 될 것이다

반응형
블로그 이미지

yesnomark

이것저것 개발하며 애매하게 경력쌓고 있는 중니어 개발자

,
반응형

QT Creator 에서 SQLite Manager 를 통해 데이터베이스를 다뤄보자


순서

1. Qt Creator 에서 코드 작성하여 데이터베이스 파일 생성

2. 생성된 파일을 SQLite Manager 를 통해 데이터베이스 파일 연동




1. QT Creator 에서 코드 작성 및 데이터 베이스 파일 생성


.project 파일에 sql library 를 추가시켜준다




헤더파일과 데이터베이스에 추가할 값에 대한 함수 선언

- #include <QDebug> : 디버깅을 위한 헤더

- #include <QtSql>    :  SQlite를 사용하기 위한 헤더

- void AddValues       : 데이터베이스에 추가할 값에 대한 함수 선언




데이터베이스 파일 생성

데이터베이스 테이블에 Column query 생성

에러 예외처리 및 데이터베이스 테이블 생성 및 값 추가




데이터베이스에 추가할 값에 대한 함수 메인




2. 생성된 데이터베이스 파일을 SQLite Manager 를 통해 연동


SQLite Manager 에서 데이터베이스 파일(db.sqlite)을 Open

(※SQLite Manager 를 설치하는 방법은 간단하게 설명하자면 Firefox 웹에서 Add-ons 시켜서 간단하게 설치할 수 있다)


생성한 테이블 기입 (testtable) ▶ Run SQL




다음과 같이 데이터베이스 테이블이 생성되는 것을 볼 수 있다

반응형
블로그 이미지

yesnomark

이것저것 개발하며 애매하게 경력쌓고 있는 중니어 개발자

,
반응형

개발 진행중에 있는 프로젝트로 차후 변경될 수 있습니다


1. 프로젝트

- 3차원 지중관로 측량시스템


2. 용도

- 맨홀과 맨홀 사이 관로의 형상을 추정하여, 지하매설물의 위치 좌표 및 심도에 대한 잘못된 정보로 발생할 수 있는 각족 안전사고를 사전에 예방




3. 역할

- F/W, Embedded

- 방대한 센서(각도, 지자계) 데이터 제어처리


4. 사용언어, 개발환경 및 기술

- Raspberry-pi3 / C / C++ / Linux Device Driver / Kernel Module / Qt Creator / SQLite / RS-485통신




측량 방법




[30M Prototype]


개발 예정인 프로토타입 도식화

- Node 1개당 필요한 데이터 9개(각도 센서 3개 + 자이로 센서 3축 2개) x 50개(Node갯수) x 2개(중계기 갯수)를 관리

- 중계기 / Node 의 전원 상태 및 On/Off 정보 통합관리

- Kernel module 


반응형
블로그 이미지

yesnomark

이것저것 개발하며 애매하게 경력쌓고 있는 중니어 개발자

,
반응형

본 내용은 라즈베리파이와 데스크탑 간의 UART 시리얼 통신을 하는 방법에 대한 내용이다


1. 준비

- USB to UART 케이블

- Desktop : Putty 실행파일을 준비한다

- Raspberry pi3 : QT로 UART 송/수신 코드 작성




2. USB to UART 케이블 연결

라즈베리파이3에 5V, GND, UART Tx, UART Rx (4가닥)과 Desktop의 USB포트 케이블 선을 하드웨어 개발자에게 부탁한다.

(참고 : 라즈베리파이3의 모델은 Model B 이다)

다음과 같이 라즈베리파이/Desktop 을 연결하여 UART 시리얼 통신을 할 준비를 한다.



3. QT Creator 코드 작성


나같은 경우에는 Design Forms 에서 UI 화면을 꾸미지 않고,

소스상에서 UI를 다 구현하였다

안드로이드로 예를 들면 res 의 XML 상에서 GUI를 꾸민게 아니라, src 소스상에서 구현을 하였단 것과 동일하다


아래에 UI를 구현하기 위한 코드들에 대한 설명을 넘어가도록 하고,

UART 시리얼 통신을 하기 위한 아주 기본적인 설정들을 세팅한다


Device    :  /dev/ttyAMA0

Baudrate : 9600

Data bits : 8

Stop bits : 1

흐름제어 : X


SIGNAL/SLOT 시스템에 대해서는 따로 설명하지 않겠다



다음은 데이터를 송/수신 하기 위한 코드를 살펴보자

보통의 경우에는 데이터를 1Byte씩 송/수신 하는 방법들이 나와있는데

나같은 경우에는 Line 단위로 데이터를 송/수신 하는 방법을 구현하여 보았다 


text_Sending() / text_Reading() 함수가 Line 단위로 데이터를 송/수신하는 함수이다




4. 결과 및 동영상








반응형
블로그 이미지

yesnomark

이것저것 개발하며 애매하게 경력쌓고 있는 중니어 개발자

,
반응형

본 내용은 Raspberry pi 3에 QT 5.7을 직접 빌드 하여 사용하는 방법을 설명하고 있다



1. 설치


$ sudo apt update

$ sudo apt upgrade

$ sudo apt get install build-essential

$ sudo apt-get install qtcreator

$ sudo apt-get install qt5-default





2. QT Creator 실행


시작  Programming ▶ Qt Creator






3. 프로젝트 생성


File ▶ New File or Project... 선택






Choose ▶ 프로젝트명 ▶ Next ▶ Next ▶ Next ▶ Finish



프로젝트는 생성되었지만,

크로스 컴파일 설정을 하지 않았으므로, 아직까진 빌드를 할 수 없다


그럼, 크로스 컴파일을 위한 빌드 환경 설정을 해보자





4. 빌드 환경 설정


Tools ▶ Options...



Build & Run 탭 ▶ Qt Version 의 Auto-detected 에 빨간색 느낌표 표시가 있을 것이다


빌드 환경 설정을 통해 느낌표를 없애보자



Compilers 탭 ▶ 우측의 Add ▶ GCC ▶ C 선택


Compiler path 에 /usr/bin/gcc 추가




우측의 Add ▶ GCC ▶ C++ 선택


Compiler path 에 /usr/bin/g++ 추가






Apply 후, 다시 Qt Version 확인하여


느낌표 표시가 있는지 확인해보자





5. 실행


Build ▶ Run





빌드 후, 실행 GUI 화면이다



반응형
블로그 이미지

yesnomark

이것저것 개발하며 애매하게 경력쌓고 있는 중니어 개발자

,