---
title: "rasber-controller"
url: "https://maker.wiznet.io/Hannah/projects/rasber-controller/"
markdown_url: "https://maker.wiznet.io/Hannah/projects/rasber-controller/md"
type: "UCC: User Created Content"
author: "winterzh"
author_url: "https://github.com/winterzh/rasber-controller"
editor: "WIZnet"
editor_url: "https://maker.wiznet.io/"
original_author: "winterzh"
original_url: "https://github.com/winterzh/rasber-controller"
published: "2026-03-06"
language: "en"
likes: 0
views: 476
comments: 0
source: "WIZnet Makers (https://maker.wiznet.io/)"
---

# rasber-controller

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

Original author: winterzh (source: https://github.com/winterzh/rasber-controller)

## Article

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

#### 배경 & 동기 (Background / Motivation)

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

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

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

#### **소프트웨어 구성 (KR)**

소프트웨어는 **임베디드 펌웨어**와 **Android 앱**의 두 부분으로 구성됩니다.

먼저, **CircuitPython 기반 펌웨어**는 장치의 핵심 제어를 담당합니다. 이 펌웨어에는 **설정 관리**, **RS485 통신 제어**, **4G / Wi-Fi / Ethernet 네트워크 통신**, **Modbus RTU,** CSV 데이터 로깅, LED 상태 표시, 전원 관리, BLE UART, 사설 프로토콜 V2026, 등의 **디바이스 내부 동작을 담당하는 펌웨어** 기능으로 구성되어있습니다

다음으로, ** Android 앱 코드**는 현장 설정과 유지보수를 위한 도구 역할을 합니다. 사용자는 이 앱을 통해 **BLE 연결**, **센서 스캔**, **주소 변경**, **Modbus ID 설정**, **네트워크 및 MQTT 설정** 등을 수행할 수 있습니다.

즉, 이 프로젝트는 **디바이스 내부 동작을 담당하는 펌웨어**와 **현장 엔지니어를 위한 모바일 설정 앱**을 함께 제공하는 **완결형 시스템**입니다.

#### 결과 & 마무리 (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>

#### 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 폴링·데이터 구성·로깅·전력 관리가 많은 장치에서 펌웨어 복잡도를 낮추는 데 유리합니다.

---

Source: https://maker.wiznet.io/Hannah/projects/rasber-controller/
