TCP 기반 원격 장치 제어 프로그램
본 프로젝트는 TCP 소켓 통신을 활용하여 원격지에 있는 하드웨어 장치를 제어하기 위한 시스템입니다. 우분투 환경에서의 CLI 제어와 웹 브라우저를 통한 GUI 제어를 모두 지원하며, 실시간 데이터 송수신을 통해 안정적인 장치 제어 환경을 구축하는 것을 목표로 합니다.
OS: Ubuntu Linux (Host) / Raspberry Pi OS (Target)
IDE: VS Code (Remote - SSH 사용)
Terminal/Tool: MobaXterm
Compiler: aarch64-linux-gnu-gcc, gcc
Build System: Make
TCP 서버/클라이언트 구현: 소켓 통신을 이용한 안정적인 데이터 송수신 처리.
하드웨어 제어: LED, 조도 센서, Buzzer, 7-Segment 모듈 제어.
멀티 인터페이스:
CLI: 우분투 클라이언트를 통한 명령 전달.
GUI: 웹 브라우저 접속을 통한 시각적 제어 인터페이스.
안정성 보완: 뮤텍스 및 인터럽트를 활용한 동작 충돌 방지 및 명령 처리 로직 최적화.
-
소스 코드 빌드 make
-
대상 하드웨어(라즈베리파이)로 배포 make deploy
-
서버 실행: 라즈베리파이 터미널에서 다음 명령어를 입력합니다. ./main_server [포트 번호]
-
클라이언트 접속 Web: 브라우저에서
http://[서버IP]:[포트번호]접속 CLI:./client [서버IP] [포트번호]실행
세그먼트 동작: 타이머 상태 관리 변수를 사용하여 중복 동작을 방지하였습니다. 동기화 문제: 하드웨어 동작 간의 충돌은 뮤텍스 처리를 통해 안정성을 확보했습니다. 디버깅: 실행 시 통신 프로토콜 형식 검증 로직을 추가하여 명령 오류를 방지합니다.