2025/10 28

PyQt-05. PyQt와 MySQL 통합하기

여기에서는 PyQt 애플리케이션 안에서 MySQL과의 연결을 통해 데이터를 다루는 흐름을 만들어내는 훈련을 진행합니다. 이해를 돕기 위한 최소한의 기능을 구현하는 정도지만, 개발 흐름을 익히는 데에는 어느 정도 도움이 될 것입니다. 데이터베이스 생성하기CREATE DATABASE IF NOT EXISTS sampledb DEFAULT CHARACTER SET utf8mb4;USE sampledb;CREATE TABLE IF NOT EXISTS users ( id INT PRIMARY KEY AUTO_INCREMENT, username VARCHAR(50) UNIQUE NOT NULL, password VARCHAR(100) NOT NULL);-- username key가 중복일 경우 에러 대신 업..

PyQt-04. 파이썬과 MySQL 함께 사용하기

다량의 데이터를 표시하는 응용 프로그램을 개발하는 경우에는 대부분 데이터베이스를 사용합니다. 여기에서는 파이썬 코드와 MySQL 데이터베이스를 연결하는 방법을 소개합니다. 이를 통해 PyQt 애플리케이션에서 실제 데이터를 저장하고 불러오는 방법을 이해할 수 있게 될 것입니다.패키지 설치하기파이썬에서 MySQL 데이터베이스를 사용하기 위해서는 전용 라이브러리를 설치해야 합니다. 대표적으로 mysql-connetor-python과 pymysql이 많이 사용되는데, 상대적으로 접근성이 좋은 것은 pymysql 쪽입니다(진입장벽이 상대적으로 낮다는 의미). 명령 프롬프트나 파워셸을 열고 다음 명령어를 실행하여 패키지를 설치해주세요(가상환경을 사용중이었다면 반드시 활성화한 후에 실행해주세요).pip install..

PyQt-03. 데이터 표시하기

이전 페이지에서는 텍스트나 이미지를 화면에 표시할 때 사용하는 기본적인 위젯으로QLabel을 소개했습니다. 여기에서는 다량의 데이터를 좀 더 정돈된 형태로 표시할 수 있는 다른 위젯을 몇 가지 알아보고, 예제를 통해 사용법까지 정리하는 흐름으로 학습을 진행해보겠습니다. 표를 만드는 클래스와 모델-뷰 구조PyQt에서 데이터를 표 형식으로 표시할 때는 QTableWidget과 QTableView 두 가지 위젯을 사용할 수 있습니다. 소규모 데이터를 셀에 직접 넣어가며 작업할 때는 QTableWidget을, 데이터를 외부 모델과 연결해 표시하고자 할 때는 QTableView를 사용합니다.구분QTableWidgetQTableView구분QTableWidgetQTableView특징pm">간단한 테이블 UI 제작에 ..

PyQt-02. 기본 위젯과 레이아웃

프로그램을 구성하는 기본 요소를 가리켜 위젯(widget)이라 합니다. 예를 들면 버튼, 텍스트 입력창, 라벨 등이 모두 위젯입니다. 이러한 위젯들은 화면 안에서 자기만의 위치나 크기를 가지는데, 위젯들을 화면에 배치하는 방법을 정의하는 도구를 가리켜 레이아웃(layout)이라고 합니다. 여기에서는 대표적인 위젯 몇 가지와 레이아웃 사용법 등을 알아보겠습니다.위젯위젯의 종류는 무척 다양한데, 대표적인 몇 가지 위젯을 다루는 방법을 살펴보며 Qt와 친해지는 시간을 가져보겠습니다.QLabelQLabel은 텍스트나 이미지를 화면에 표시할 때 사용하는 가장 기본적인 위젯입니다. 단순히 정보를 보여주기 위한 용도로 주로 사용됩니다. 대표적인 메소드는 다음과 같습니다.메소드설명setText("텍스트")라벨에 표시할..

PyQt-01. 처음 만나는 PyQt

세상에는 명령어 기반 프로그램, 텍스트 기반 프로그램, 음성 기반 프로그램 등 무척 다양한 유형의 프로그램이 존재합니다. 그러나 프로그램하면 가장 먼저 떠오르는 것은 역시 그래픽 기반(Graphical User Interface, 이하 GUI) 프로그램입니다. PyQt는 GUI 애플리케이션을 만들 때 사용하는 프레임워크입니다.PyQtPyQt(파이큐티라고 발음하면 됩니다)는 파이썬(Python) 언어로 GUI(Graphical User Interface, 그래픽 사용자 인터페이스) 프로그램을 만들 수 있도록 도와주는 프레임워크입니다. 쉽게 말해, 콘솔(검은 화면)에서만 실행되는 프로그램이 아니라 버튼, 메뉴, 창, 다이얼로그 같은 그래픽 요소를 갖춘 응용 프로그램을 만들 수 있게 해줍니다.PyQt는 다양한..

무선 통신 모듈 활용하기 2

ESP-8266 & ESP-01 모듈ESP-8266 모듈은 Wi-Fi 무선 통신 기능을 탑재한 저전력 마이크로컨트롤러입니다. ESP-01 모듈은 이를 장착한 모듈입니다. ESP-01 모듈은 8핀 소형 폼팩터로, 보통 ESP-01 어댑터나 USB to TTL 변환 모듈을 통해 연결하고, 아두이노 IDE 등을 사용해 프로그램을 업로드하여 사용합니다.ESP-01 모듈을 사용하기에 앞서, 모듈에 대한 펌웨어 업데이트를 수행해야 합니다. 펌웨어 업데이트의 목적은통신 속도 조절, 명령어 기능 추가 등입니다. 아래는 펌웨어 업데이트를 위한 회로 구성입니다. 빨간 것은 USB to TTL 컨버터, 파란 것은 ESP-01 모듈입니다. VCC3.3VCH_PD3.3VGNDGNDGPIO0GNDRXDTXDTXDRXD회로 구성이..

아두이노 2025.10.28

무선 통신 모듈 활용하기

아두이노 블루투스 HC-06 모듈HC-06은 아두이노와 같은 마이크로컨트롤러 보드에서 많이 사용하는 저가형 블루투스 직렬 통신 모듈입니다. 기본적으로 마스터가 아닌 슬레이브 모드로 동작하며, 스마트폰이나 PC와 시리얼 통신을 통해 데이터를 주고받을 수 있습니다. 간단한 AT 명령으로 통신 속도와 이름 등을 설정할 수 있어 무선 제어와 센서 데이터 전송 실습에 널리 활용됩니다.모듈에서 TX, RX 핀은 직렬 통신에서 데이터를 주고받는 역할을 하는 핵심 핀들입니다.TX (Transmit): 모듈이 데이터를 내보내는 핀입니다. HC-06이 아두이노로 전송하는 데이터는 이 TX 핀을 통해 나갑니다. 따라서 아두이노의 RX 핀에 연결해야 합니다.RX (Receive): 모듈이 데이터를 받는 핀입니다. 아두이노에서..

아두이노 2025.10.28

거리 계측 및 데이터 응용하기

초음파 거리센서 모듈HC-SR04는 초음파를 이용해 거리를 측정하는 센서입니다. 트리거(Trig) 핀으로 초음파 신호를 보내고, 물체에 반사되어 돌아오는 시간을 에코(Echo) 핀에서 측정해 거리를 계산합니다. 아두이노와 쉽게 연결할 수 있고, 로봇의 장애물 감지, 주차 센서 등 다양한 프로젝트에 활용됩니다.핀 순서는 전원, 트리거, 에코, 접지 순입니다. 이 센서는 핀마다 이름이 쓰여 있어 사용하기 편합니다. 다음 결선도를 참고하여 회로를 구성해보세요.HC-SR04아두이노GNDGNDEchoD7TrigD6VCC5V다음은 반사되어 돌아온 신호를 토대로 거리를 계산하여 출력하는 프로그램입니다.#define TRIG_PIN 6#define ECHO_PIN 7void setup() { Serial.begin(..

아두이노 2025.10.28

온습도 계측과 데이터 표시

DHT11 미니 온습도 센서 모듈다음은 주변의 온도와 습도를 측정할 수 있는 ‘온습도 센서’ 중에서도 입문(학습)용으로 많이 사용하는 DHT11 모듈입니다. 3개 단자로 구성되어 있으며, 순서는 왼쪽부터 Data, VCC, GND 입니다.아두이노 기본 라이브러리에는 DHT11 센서 값을 읽기 위해 필요한 기능이 포함되어 있지 않으므로, 라이브러리 매니저를 통해 [DHT Sensor Library]를 설치해야 합니다.5V 전압과 GND를 연결하고, 온습도 출력 단자는 디지털 2번 핀에 연결합니다. 저항이 따로 필요하지 않아 결선도는 생략합니다. 다음 예제는 온습도 값을 읽어와서 시리얼모니터에 출력하는 프로그램입니다.#include "DHT.h"#define DHTPIN 2 // 데이터 핀#defi..

아두이노 2025.10.28

아두이노 소개 및 준비

아두이노란?아두이노(Arduino)는 마이크로컨트롤러 기반의 오픈소스 하드웨어 플랫폼입니다. 쉽게 말해, 작은 컴퓨터 역할을 하는 보드에 다양한 센서와 부품을 연결하여 프로그램을 실행할 수 있는 도구입니다.오픈소스 하드웨어: 회로도와 소프트웨어가 모두 공개되어 있어 누구나 자유롭게 학습·응용·개발할 수 있습니다.확장성: 센서(온도, 습도, 조도, 거리 등)와 액추에이터(LED, 모터, 부저 등)를 자유롭게 연결할 수 있어, 단순한 LED 깜빡임부터 사물인터넷(IoT) 프로젝트까지 구현이 가능합니다.쉬운 프로그래밍: 아두이노 IDE를 통해 간단한 C/C++ 기반 코드로 제어할 수 있습니다. setup()과 loop()라는 구조 덕분에 초보자도 빠르게 프로그램의 동작 원리를 익힐 수 있습니다.교육 및 메이커..

아두이노 2025.10.28