LabVIEW Arduino TCP/IP
LabVIEW Arduino TCP/IP
1. 프로젝트 개요
이 프로젝트는 Arduino + WIZnet W5100 이더넷 모듈과
PC의 LabVIEW를 TCP/IP로 연결해서,
집 안의 가스 누출,
온도 변화,
인체 움직임(침입 여부) 를 실시간으로 모니터링하고,
조명·콘센트 같은 가전 제품의 전원을 원격으로 제어하는
작은 스마트 홈 시스템을 구현한 예제입니다.
Arduino는 집 안에 설치된 센서와 릴레이를 직접 제어하는 하위 장치이고,
LabVIEW는 PC에서 돌아가는 상위 모니터링·제어 프로그램입니다.
두 장치는 WIZnet W5100 이더넷 칩을 통해 TCP/IP로 통신합니다.
2. 시스템 구조
구성 요소를 크게 나누면 다음과 같습니다.
센서·액추에이터 층 (집 안 물리 세계)
MQ-2 가스 센서: 연기·메탄 등 가스 농도 감지
DS18B20 디지털 온도 센서: 실내 온도 측정
PIR(압전 적외선) 센서: 사람 움직임 감지 → 침입/도난 감지
4채널 릴레이: 조명, 팬, 기타 가전 ON/OFF
엣지 컨트롤러 – Arduino + W5100
Arduino Uno가 모든 센서/릴레이를 직접 읽고 제어
W5100 이더넷 모듈이 TCP/IP 통신 담당
Arduino는 TCP 서버(예: 192.168.1.177:8000) 로 동작하면서
LabVIEW에서 오는 명령을 받아 처리하고, 센서 값을 되돌려 보냄
상위 관제 – LabVIEW(PC)
TCP 클라이언트로 Arduino에 접속
프런트 패널에:
가스 농도 게이지
온도 파형 그래프
네 개의 전기 스위치(릴레이 제어 버튼)
PIR 상태 표시 LED
사용자는 이 화면 하나로 집 안 상태를 보고, 버튼으로 가전을 제어할 수 있음
3. 센서·제어 기능 요약
가스 센서(MQ-2)
연기, 메탄, LPG 등을 감지하는 저항형 센서입니다.
농도가 올라가면 저항이 변하고, Arduino에서 A0로 아날로그 값을 읽어 가스 농도를 추정합니다.
히터 예열 시간이 필요해서, 전원을 켠 직후 약 10분 정도는 안정화 시간을 주는 것이 좋습니다.
온도 센서(DS18B20)
1-Wire 디지털 센서라서, 데이터 선 하나(D2)와 4.7kΩ 풀업 저항만 있으면 됩니다.
온도 값을 바로 디지털로 읽을 수 있어서 변환 회로가 필요 없습니다.
LabVIEW의 파형 차트로 시간에 따른 온도 변화를 표시할 수 있습니다.
PIR 적외선 센서
사람 몸에서 나오는 적외선의 움직임을 감지해서, 사람이 지나갔는지 여부를 HIGH/LOW로 알려줍니다.
도난 방지·침입 감지 용도로 쓰이고, LabVIEW에서는 작은 경고 LED로 표시합니다.
릴레이(4채널)
Arduino D3~D6 핀에 연결되며, 각 핀을 HIGH/LOW로 바꾸어 가전을 켜고 끕니다.
LabVIEW에서 스위치를 클릭하면, 그 정보가 TCP로 Arduino에 전달되고 → 릴레이가 실제로 On/Off됩니다.
4. LabVIEW ↔ Arduino 통신 방식
둘 사이의 통신은 아주 단순한 3바이트 프로토콜을 사용합니다.
프레임 구조:0x55 0xAA + 동작코드 1바이트 (총 3바이트)
예시 명령 코드
0x80 : PIR 센서 값 요청
0x81 : 가스 농도 요청
0x82 : 온도 값 요청
0x11 / 0x10 : 릴레이1 ON / OFF
0x21 / 0x20 : 릴레이2 ON / OFF
0x31 / 0x30 : 릴레이3 ON / OFF
0x41 / 0x40 : 릴레이4 ON / OFF
동작 흐름은 이렇게 됩니다.
LabVIEW가 어떤 동작을 하고 싶을 때(예: 온도 읽기, 릴레이1 ON),
해당하는 3바이트 명령을 TCP로 전송합니다.
Arduino는 W5100을 통해 이 3바이트를 받고,
헤더(0x55, 0xAA)인지 확인한 뒤, 명령 코드에 맞는 동작을 수행합니다.
센서 요청이라면 값을 읽어서 print()로 응답하고,
릴레이 명령이라면 해당 출력 핀을 HIGH/LOW로 바꾸어 가전을 제어합니다.
이 구조 덕분에, LabVIEW 쪽에서는 문자열/바이트만 주고받으면 되기 때문에 구현이 간단합니다.
5. WIZnet W5100 관점에서의 의미
이 프로젝트에서 W5100 이더넷 칩이 담당하는 역할을 정리하면:
유선 TCP/IP 통신 전담
TCP 연결 관리, 재전송, 버퍼링 등을 하드웨어로 처리해 줍니다.
Arduino 코드에서는 Ethernet.begin(), EthernetServer, EthernetClient 정도만 사용하면 됩니다.
안정적인 스마트 홈 네트워크 기반
스마트 홈 장치는 24시간 계속 켜져 있어야 하므로,
Wi-Fi보다 유선 이더넷이 더 안정적인 경우가 많습니다.
W5100 기반 Ethernet Shield는 이런 실습·프로토타입에 적합한 구조를 제공합니다.
LabVIEW 같은 PC 소프트웨어와 자연스럽게 연동
PC 쪽에서는 “TCP 소켓 하나”만 열면 되기 때문에
LabVIEW, Python, C#, Node.js 등 어떤 환경과도 손쉽게 연결할 수 있습니다.
이 프로젝트에서는 LabVIEW를 썼지만, 같은 W5100 구조로 Web UI나 클라우드와도 연동이 가능합니다.
6. 활용 및 확장 가능성
이 시스템은 단순한 실습 예제를 넘어서, 다음과 같이 확장 가능합니다.
교육용 스마트 홈 키트
한 번에 센서 읽기, 릴레이 제어, TCP/IP, LabVIEW GUI까지 경험할 수 있어
학생/메이커 교육용으로 좋습니다.
실제 소규모 스마트 홈/보안 시스템
가스·온도·침입 모니터링 + 가전 제어를 하나의 보드로 구현할 수 있어,
작은 집·원룸·실험실·창고 등에서 바로 응용 가능합니다.
클라우드/모바일 연동
LabVIEW 대신 웹 서버나 클라우드 API를 붙이면,
스마트폰 앱이나 브라우저에서 “우리 집 상태를 보고 제어”하는 시스템으로 발전시킬 수 있습니다.
