Wiznet makers

Hannah

Published March 06, 2026 ©

72 UCC

22 WCC

1 VAR

0 Contests

0 Followers

0 Following

Original Link

rasber-controller

Rasber controller with customed built python project, including custom protocol and MODBUS support, and Android APP.

COMPONENTS
PROJECT DESCRIPTION

Rasber Controller — W5500 기반 산업용 경사 센서 데이터 수집 시스템

 

배경 & 동기 (Background / Motivation)

지질재해 모니터링, 기초 굴착 변위 계측, 사면 안정성 분석 등 현장 계측 환경은 수백~수천 개의 센서 노드가 동시에 운용되며, 안정적이고 지속적인 데이터 전송이 필수입니다.

기존 Wi-Fi 기반 솔루션은 전파 간섭, 지하·터널 환경에서의 음영 구역, 보안 정책 제한 등으로 인해 산업 현장에 적합하지 않은 경우가 많습니다. 특히 지하 굴착 현장이나 건설 현장처럼 전기적 노이즈가 심한 환경에서는 무선 통신의 신뢰성이 크게 저하됩니다.

이러한 문제를 해결하기 위해 WIZnet W5500 SPI 이더넷을 핵심 유선 통신 채널로 채택하였습니다. W5500의 하드웨어 TCP/IP 스택은 MCU의 소프트웨어 부담 없이 안정적인 네트워크 연결을 보장하며, 4G LTE / Wi-Fi 를 병행 채널로 구성함으로써 유선 인프라가 없는 오지 현장에서도 동일한 펌웨어와 프로토콜로 운용이 가능합니다. 또한 CircuitPython을 펌웨어 언어로 선택하여 현장 엔지니어가 Python 수준에서 직접 설정 파일을 편집하고, USB Mass Storage로 데이터를 즉시 열람할 수 있는 유지보수 친화성을 확보하였습니다.

이 프로젝트는 CircuitPython 펌웨어와 Android BLE 설정 앱으로 구성된 산업용 경사계(틸트 센서) 컨트롤러입니다. 다채널 RS485 센서 체인에서 A/B/Z 축 데이터를 수집해 MQTT로 클라우드에 전송하며, WIZnet W5500은 SPI 기반 유선 이더넷 업로드 경로를 제공해 4G/와이파이가 불안정하거나 현장에 유선망이 있는 환경에서 안정적인 전송을 가능하게 합니다.

레포지토리는 지반/사면, 흙막이, 구조물 변위 모니터링 같은 현장에서 쓰이는 “플렉시블 경사계” 데이터 수집·전송 스택을 제공합니다. 엣지 컨트롤러는 여러 RS485 포트를 통해 센서 노드를 순차 폴링하며(필요 시 SC16IS752 I2C-UART 확장도 고려), 수집된 값을 정해진 포맷의 JSON(세그먼트 헤더 + 데이터 세그먼트)으로 묶어 MQTT로 서버에 업로드합니다. 장치 설정은 현장에서 Android 앱으로 BLE를 통해 파라미터를 변경할 수 있고, CSV 로깅/USB 저장장치(대용량 스토리지) 접근 같은 운영 기능도 포함합니다.

결과 & 마무리 (Results / Conclusion)

Rasber Controller는 지질재해 모니터링 현장에서 RS485 4채널을 통해 수천 개의 경사 센서 노드를 안정적으로 수집하고, W5500 유선 이더넷 · 4G · Wi-Fi 3중 통신 경로로 클라우드에 실시간 업로드하는 완성도 높은 산업용 플랫폼입니다.

주요 성과

  • AutoID 0~1023 범위 자동 스캔 및 배치 주소 쓰기로 대규모 센서 초기화 시간 대폭 단축
  • 분절 JSON 포맷으로 대량 센서 데이터를 MQTT 페이로드 제한 내에서 안정 전송
  • NVM 기반 USB 모드 전환으로 현장 데이터 회수와 펌웨어 업데이트를 동일 포트로 처리
  • CircuitPython + config.json 구조로 Python 기본 지식만으로도 현장 유지보수 가능
  • 딥슬립 ~10µA 구현으로 배터리 또는 태양광 전원 환경에서 장기 운용 적합

활용 가능성 : 기초 굴착 계측, 댐·사면 안정성 감시, 터널 변위 모니터링, 철도 노반 계측 등 유선 이더넷 인프라가 있는 모든 산업 현장에 즉시 적용 가능합니다.

Original Link : https://github.com/winterzh/rasber-controller


 WIZnet 메이커 커뮤니티에 대한 가치

Rasber Controller 프로젝트는 W5500 의 산업 현장 활용 가능성을 구체적인 실증 사례로 보여준다는 점에서 WIZnet 메이커 커뮤니티에 여러 가지 중요한 가치를 제공합니다.

첫째, W5500의 신뢰성 입증 측면입니다. 지질재해 모니터링처럼 연속 운용이 필수인 환경에서 4G·Wi-Fi와 나란히 1순위 통신 채널로 선택됨으로써, W5500 하드웨어 TCP/IP 스택의 산업 등급 안정성이 실제 배포 코드로 증명됩니다. 이는 W5500을 처음 검토하는 메이커들에게 가장 설득력 있는 레퍼런스가 됩니다.

둘째, CircuitPython + W5500 조합의 선례 역할입니다. 대부분의 WIZnet 예제가 Arduino/C 기반인 가운데, 이 프로젝트는 CircuitPython adafruit_wiznet5k 드라이버를 활용한 실전 사례를 제공하여 Python 친화적인 메이커층에 새로운 개발 경로를 열어줍니다.

셋째, 다중 통신 페일오버 설계 패턴의 공유입니다. W5500(유선) → SIM7672E(4G) → Wi-Fi 순서로 구성된 3중 통신 구조는 IoT 프로젝트에서 흔히 요구되는 고가용성 네트워크 설계의 실용적인 템플릿이 됩니다. W5100S, W6100 등 다른 WIZnet 칩을 사용하는 메이커도 동일한 아키텍처 패턴을 자신의 프로젝트에 즉시 응용할 수 있습니다.

넷째, 오픈소스 전체 스택 공개라는 커뮤니티 기여입니다. 펌웨어(CircuitPython) · Android 앱(Kotlin) · 자체 프로토콜 V2026 · Modbus RTU 구현까지 전체 코드가 MIT 라이선스로 공개되어 있어, RS485 멀티드롭 버스·산업용 계측·저전력 설계에 관심 있는 메이커 누구나 실질적인 출발점으로 활용할 수 있습니다.

 

FAQ

Q1. 이 컨트롤러에서 왜 WIZnet W5500을 쓰나요? Wi-Fi/4G만으로도 되지 않나요?
A1. 레포가 다중 업링크(4G/와이파이/이더넷)를 전제로 하고 있고, 현장에서는 RF 품질이 나쁘거나 유선망이 이미 깔려 있는 경우가 많습니다. W5500은 SPI로 붙는 유선 인터페이스로, 펌웨어가 복잡한 네트워크 스택을 직접 떠안지 않고도 소켓 기반 통신(MQTT)을 안정적으로 구현할 수 있습니다.

Q2. W5500은 이 프로젝트에서 어떤 방식으로 연결되나요?
A2. SPI(SCK/MOSI/MISO) + CS + RST 조합입니다. 드라이버가 busio.SPI(...)로 SPI를 만들고, CS를 디지털 출력으로 설정한 다음 RST 핀을 토글해 W5500을 리셋하고 WIZNET5K(self.spi, self.cs_pin)로 초기화합니다.

Q3. 이 프로젝트에서 W5500이 맡는 “정확한 역할”은 무엇인가요?
A3. “유선 업로드” 경로의 네트워크 인터페이스입니다. DHCP/고정 IP 설정 후, MiniMQTT가 W5500 소켓을 사용하도록 바인딩해 RS485에서 읽은 경사계 데이터를 MQTT로 발행할 때 유선망으로 전송되게 합니다.

Q4. 초보자도 이 프로젝트의 W5500 파트를 따라 할 수 있나요?
A4. 가능합니다. 필수는 (1) SPI/CS/RST 배선을 정확히 맞추는 것, (2) CircuitPython 환경에 adafruit_wiznet5k, adafruit_minimqtt 같은 라이브러리를 올바르게 배치하는 것입니다. 이 드라이버는 라이브러리 누락 시 ImportError 메시지로 원인을 드러내도록 구성돼 있어 디버깅에도 도움이 됩니다.

Q5. W5500 유선 이더넷은 “MCU에 LwIP 올린 Wi-Fi/이더넷” 방식과 비교해 어떤 차이가 있나요?
A5. Wi-Fi는 설치가 쉬운 대신 재접속 지연, RF 간섭, 현장 구조물(철근/지하/사면) 영향이 큽니다. W5500 유선은 이동성을 포기하는 대신 링크 품질과 지연이 예측 가능하고, 네트워킹을 소켓 주변장치로 분리해 RS485 폴링·데이터 구성·로깅·전력 관리가 많은 장치에서 펌웨어 복잡도를 낮추는 데 유리합니다.

Documents
Comments Write