LabVIEW Arduino TCP/IP
LabVIEW Arduino TCP/IP
1. 프로젝트 개요
이 프로젝트는
집 안의 Arduino + W5100 보드를 “원격 I/O 장치”로 두고,
PC에서 돌고 있는 LabVIEW가 상위 HMI·SCADA처럼 동작하는 구조입니다.
LabVIEW는:
TCP/IP를 통해 Arduino에 접속하는 TCP 클라이언트이고,
집 안의 가스 누출, 온도, 인체 움직임을
실시간으로 화면에 표시하고,
사용자의 버튼 조작을 릴레이 제어 명령으로 바꾸어 보내는 역할을 합니다.
즉, 한 줄로 말하면:
**“Arduino는 센서/릴레이를 직접 다루는 현장 단말(플랜트),
LabVIEW는 PC에서 돌아가는 중앙 감시·제어 소프트웨어”**입니다.
2. 시스템 구조
LabVIEW 관점에서 시스템을 보면 이렇게 나눌 수 있습니다.
1) 원격 I/O 노드 (Arduino + W5100)
LabVIEW 입장에서는 “TCP 소켓으로 접근 가능한 외부 장치”입니다.
센서 값 요청, 릴레이 On/Off 명령을 전달하면
→ 그 결과가 다시 텍스트/바이너리 응답으로 돌아온다고 보면 됩니다.
2) 네트워크 계층
LabVIEW에서는 별도의 드라이버 없이
TCP Open Connection / TCP Write / TCP Read VI로
Arduino의 IP·포트에 접속합니다.
동일 LAN 환경이기만 하면, 케이블 길이·물리적 거리와 무관하게
LabVIEW에서 원격 노드를 다룰 수 있다는 것을 보여주는 예제입니다.
3) LabVIEW 애플리케이션
Front Panel
가스 농도 게이지, 온도 그래프, PIR 상태 LED, 릴레이 스위치 UI
Block Diagram
TCP 연결 관리 루프
센서 요청/응답 처리 루프
릴레이 제어 명령 전송 로직
간단한 상태머신(연결 전/후, 통신 오류 처리 등)을 구현
이렇게 보면 LabVIEW는 사실상 소형 스마트홈 관제 프로그램 역할을 하고 있습니다.
3. 센서·제어 기능
센서의 전기적 동작은 Arduino가 처리하지만,
사용자가 “보는/조작하는 인터페이스”는 모두 LabVIEW가 담당합니다.
가스 센서(MQ-2)
Arduino가 A0 값으로 가스 농도를 읽고,
LabVIEW는 “가스 농도 요청” 명령을 보낸 뒤,
되돌아온 값을 **게이지(수평/수직 바)**로 시각화합니다.
임계값을 넘으면:
Gauge 색을 바꾸거나
경고 LED·알람을 띄우는 로직을 Block Diagram에서 구현할 수 있습니다.
온도 센서(DS18B20)
LabVIEW는 주기적으로 온도 요청 명령을 보내고,
수신한 값을 Waveform Chart/Graph에 넣어
시간에 따른 온도 변화를 실시간으로 표시합니다.
필요하면:
데이터 로깅(File I/O)
평균/최댓값 계산
히스토리 그래프 출력도 LabVIEW 안에서 쉽게 확장 가능.
PIR 센서
LabVIEW에서는 PIR 상태를 Boolean LED로 표현합니다.
HIGH면 “침입 감지”, LOW면 “정상” 같은 식으로 색을 바꿔 보여줄 수 있습니다.
일정 시간 이상 감지되면 팝업/사운드 알람을 띄우는 것도 VI 한두 개로 구현 가능하다는 시연 포인트가 됩니다.
릴레이 제어(가전 On/Off)
Front Panel에 4개의 토글 스위치를 만들고,
사용자가 스위치를 바꾸면
Block Diagram에서 해당 상태를 읽어
즉시 “릴레이 n ON/OFF” 명령 프레임을 만들어 Arduino로 보냅니다.
사용자는 실제 하드웨어를 의식하지 않고, LabVIEW UI만 보고
조명·팬·콘센트 등을 제어할 수 있습니다
4. LabVIEW 관점에서 본 의미·장점
이 프로젝트는 LabVIEW를 이렇게 보여줄 수 있는 좋은 예제입니다.
4-1. LabVIEW = 실시간 모니터링·제어 HMI
실제 센서/릴레이는 집 안 어딘가에 있지만,
사용자는 LabVIEW 화면 하나만 보고 전체 상태를 파악합니다.
가스·온도·침입 여부를 한 화면에서 통합 모니터링하고,
버튼 하나로 조명·가전 제어까지 할 수 있기 때문에
LabVIEW가 소형 스마트홈 SCADA/HMI 같은 역할을 한다고 설명할 수 있습니다.
4-2. 네트워크 기반 분산 시스템의 “상위 노드” 역할
LabVIEW는 TCP/IP를 이해하는 상위 클라이언트이고,
Arduino + W5100은 필드 노드입니다.
이 구조는 나중에:
노드 수를 늘리거나
다른 프로토콜(TCP, UDP, Modbus/TCP 등)로 확장할 때도
그대로 재사용할 수 있습니다.
4-3. 빠른 프로토타이핑 & 교육용으로 좋음
Block Diagram에서 블록 몇 개만 추가하면:
로그 파일 저장
알람 조건 설정
그래프 확대/축소
등을 바로 실습할 수 있어서,
“센서 → 네트워크 → LabVIEW → 시각화” 전 과정을
한 번에 경험하게 해주는 교육용 예제로 적합합니다.
5. LabVIEW 중심으로 본 활용·확장 아이디어
마지막으로, LabVIEW를 중심으로 어떻게 확장할 수 있는지 정리해보면:
교육용 LabVIEW 네트워크 실습
학생들이 LabVIEW에서 직접 TCP 소켓을 열고,
프로토콜을 설계하고, 센서 데이터를 표시해 보는 좋은 연습 과제.
작은 규모의 실제 관제 시스템
가스·온도·침입 모니터링이 필요한
원룸, 실험실, 창고, 기계실 등에
LabVIEW 기반 관제 PC + Arduino 노드를 설치하는 구조로 진짜 운영 가능.
다른 장비/프로토콜로 확장
같은 LabVIEW 프로그램에
다른 Arduino 노드,
Modbus/TCP 계측기,
NI DAQ 카드
를 추가로 붙여서 복합 관제 시스템으로 확장하기 용이.
