Skip to content

crane-emergency-stop

ESP32-based remote crane emergency stop (EMO) system

crane-emergency-stop

Components

Hardware components

WIZnet parts

Project description

crane-emergency-stop

๐Ÿ“ŒOverview

This is an open-source project that implements a remote emergency-stop system for bridge cranes that use the Danfoss R13 F receiver. It develops a TCP/IP โ†” CANopen gateway using two hardware platformsโ€” a BL335 Linux gateway and an ESP32-S3/EdgeBox Lite(equipped with a WIZnet W5500 Ethernet module)โ€” to remotely control crane operations and provide an emergency-stop function.

Purpose
The goal is to build an industrial safety system that provides remote emergency stop (E-STOP) and real-time status monitoring to protect crane operators in industrial environments, while also enabling hazard detection and event logging.

๐Ÿ“ŒFeatures

  • Multi-gateway support โ€“ Implements a dual-hardware strategy using a Linux-based BL335 gateway and the ESP32-S3 EdgeBox Lite to convert TCP client commands into CANopen messages.
  • CANopen and CiA 402 implementation โ€“ Fully supports the CiA 301/402 protocol of the Danfoss R13 F receiver, aiming to implement control words, status words, PDO/SDO communication, and even NMT/EMCY objects.
  • Emergency Stop (E-STOP) and safety functions โ€“ The emergency_stop TCP command immediately sends a CANopen control word to stop the crane, and events are recorded as Safety-grade entries through the event logger.
  • Event logging system โ€“ The Python-based EventLogger provides 6 severity levels (DEBUG to SAFETY) and 7 categories, supporting file logs, JSON logs, real-time callbacks, and statistical collection.
  • High-reliability testing and automation โ€“ Includes a CANopen simulator, a pytest-based test suite, and GitHub Actions workflows to automatically verify EDS/ESP32 progress.
  • GUI / Web UI โ€“ A PyQt6 desktop GUI and a FastAPI-based web UI allow monitoring of system status, sending commands, and viewing logs.
  • SD card logging & OTA updates โ€“ The ESP32 gateway supports SD-card logging and remote firmware updates (OTA).

๐Ÿ“ŒSystem Architecture

ComponentDescription
Transmitter/ReceiverSends crane control signals using a transmitter compatible with the Danfoss K13 F receiver, which outputs commands onto the CANopen bus.
GatewayTwo versions: BL335 (ARM Linux) and ESP32-S3 EdgeBox Lite. A TCP server (ports 9999/5000) receives client commands and converts them into CANopen control words. The ESP32 version uses a FreeRTOS multitasking architecture.
NetworkWi-Fi / Ethernet. EdgeBox Lite provides wired Ethernet via the WIZnet W5500, while the BL335 uses a SocketCAN interface on Ubuntu IoT.
Control Softwarek13_controller, written in Python, generates and sends CANopen messages on BL335 and RPi environments.
MonitoringReal-time status, speed, and error information are displayed via a desktop GUI (PyQt6), web UI (FastAPI), and log viewer.
Data LayerEventLogger and EventStorage store logs in memory, files, or SQLite and provide statistical analysis.

๐Ÿ“ŒRole and Application of the W5500

  • Hardware Communication Interface โ€“ The EdgeBox Lite includes an ESP32-S3 paired with a WIZnet W5500 Ethernet controller, providing wired Ethernet connectivity suitable for industrial environments.
    The W5500 is used to achieve more stable, lower-latency communication compared to Wi-Fi, and it interfaces with the ESP32 via SPI.
  • Ethernet Manager Implementation โ€“ In the ESP32 firmware, ethernet_manager.h/.cpp defines a structure that supports both W5500 and LAN8720 modules. When W5500 is selected, the initialization routine configures SPI pins, sets DHCP or static IP, and handles network events.
  • EdgeBox Setup Script โ€“ edgebox_setup.py automates W5500 driver installation, SPI interface activation, and network configuration, enabling rapid deployment of an industrial gateway.
  • Improved Network Reliability โ€“ By using wired Ethernet with a static IP, emergency-stop commands and status reports for crane operation are delivered without delay, enhancing overall safety.

๐Ÿ“ŒMarket & Application Value

  • Industrial Safety Market โ€“ In cranes, heavy machinery, and logistics automation, remote emergency stop and status monitoring are essential for meeting legal requirements and safety regulations. This project can be applied to any industrial site using CANopen-based equipment and serves as a high-value solution capable of detecting hazardous conditions early and preventing accidents.
  • Scalability โ€“ Using an ESP32 gateway allows low-cost expansion to many nodes, while the W5500 on the EdgeBox Lite enables easy integration into wired factory networks. The BL335 version is compatible with existing Linux systems, allowing rapid deployment across various industrial machines.
  • Compliance with Technical Standards โ€“ Because it adheres to CiA 301/402 and CANopen protocols, it provides excellent interoperability with other CANopen devices, and standard EDS files can be used to automate configuration.

๐Ÿ“ŒWIZnet Strategic Value

This project demonstrates the use of the WIZnet W5500 to introduce wired Ethernet into a CANopen-based crane control system. It showcases a new application by combining multiple platforms, including FreeRTOS and C++, Python, and FastAPI. The dual-hardware strategy using both the BL335 and the ESP32 provides an opportunity to directly compare and evaluate the performance of the EdgeBox Lite, which incorporates a WIZnet Ethernet chip.

๐Ÿ“ŒSummary

The crane-emergency-stop project is an open-source solution that enables remote emergency stopping of cranes using the CANopen protocol. It implements a TCP/IP โ†” CANopen bridge using both the BL335 gateway and the ESP32-S3 EdgeBox Lite (W5500 Ethernet). The system includes industrial features such as event logging, a CAN simulator, and a web UI, with development automated through GitHub Actions. The W5500 plays a key role by providing stable wired communication, ensuring the reliability required for industrial safety systems. Given its strong potential in the industrial safety and automation domain, this project is well suited to be showcased as a WIZnet application example.


๐Ÿ“ŒOverview

์ด ํ”„๋กœ์ ํŠธ๋Š” Danfoss R13 F ์ˆ˜์‹ ๊ธฐ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ธŒ๋ฆฌ์ง€ ํฌ๋ ˆ์ธ์„ ๋Œ€์ƒ์œผ๋กœ ์›๊ฒฉ ๋น„์ƒ์ •์ง€ ์‹œ์Šคํ…œ์„ ๊ตฌํ˜„ํ•˜๋Š” ์˜คํ”ˆ์†Œ์Šค ํ”„๋กœ์ ํŠธ์ž…๋‹ˆ๋‹ค.
BL335 Linux ๊ฒŒ์ดํŠธ์›จ์ด์™€ ESP32-S3/EdgeBox Lite(WIZnet W5500 ์ด๋”๋„ท ๋ชจ๋“ˆ์ด ํƒ‘์žฌ๋œ) ๋‘ ๊ฐ€์ง€ ํ•˜๋“œ์›จ์–ด ํ”Œ๋žซํผ์„ ํ™œ์šฉํ•˜์—ฌ TCP/IP โ†” CANopen ๊ฒŒ์ดํŠธ์›จ์ด๋ฅผ ๊ตฌ์ถ•ํ•˜๊ณ , ์ด๋ฅผ ํ†ตํ•ด ํฌ๋ ˆ์ธ ๋™์ž‘์„ ์›๊ฒฉ์œผ๋กœ ์ œ์–ดํ•˜๊ณ  ๋น„์ƒ์ •์ง€ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

Purpose

์ด ํ”„๋กœ์ ํŠธ์˜ ๋ชฉ์ ์€ ์‚ฐ์—… ํ™˜๊ฒฝ์—์„œ ํฌ๋ ˆ์ธ ์ž‘์—…์ž์˜ ์•ˆ์ „์„ ๋ณดํ˜ธํ•˜๊ธฐ ์œ„ํ•ด, ์›๊ฒฉ ๋น„์ƒ์ •์ง€(E-STOP), ์‹ค์‹œ๊ฐ„ ์ƒํƒœ ๋ชจ๋‹ˆํ„ฐ๋ง์„ ์ œ๊ณตํ•˜๋Š” ์‚ฐ์—…์šฉ ์•ˆ์ „ ์‹œ์Šคํ…œ์„ ๊ตฌ์ถ•ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.
๋˜ํ•œ ์œ„ํ—˜ ์ƒํ™ฉ ๊ฐ์ง€์™€ ์ด๋ฒคํŠธ ๋กœ๊น… ๊ธฐ๋Šฅ์„ ํ†ตํ•ด ์•ˆ์ „์„ฑ์„ ๋”์šฑ ํ–ฅ์ƒ์‹œํ‚ค๋Š” ๊ฒƒ์„ ๋ชฉํ‘œ๋กœ ํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ“ŒFeatures

  • ๋ฉ€ํ‹ฐ ๊ฒŒ์ดํŠธ์›จ์ด ์ง€์› โ€“ Linux ๊ธฐ๋ฐ˜ BL335 ๊ฒŒ์ดํŠธ์›จ์ด์™€ ESP32-S3 EdgeBox Lite๋ฅผ ํ™œ์šฉํ•œ ์ด์ค‘ ํ•˜๋“œ์›จ์–ด ์ „๋žต์„ ๊ตฌํ˜„ํ•˜์—ฌ, TCP ํด๋ผ์ด์–ธํŠธ ๋ช…๋ น์„ CANopen ๋ฉ”์‹œ์ง€๋กœ ๋ณ€ํ™˜ํ•ฉ๋‹ˆ๋‹ค.
  • CANopen ๋ฐ CiA 402 ๊ตฌํ˜„ โ€“ Danfoss R13 F ์ˆ˜์‹ ๊ธฐ์˜ CiA 301/402 ํ”„๋กœํ† ์ฝœ์„ ์™„์ „ ์ง€์›ํ•˜๋ฉฐ, Control Word, Status Word, PDO/SDO ํ†ต์‹ , NMT/EMCY ๊ฐ์ฒด๊นŒ์ง€ ๊ตฌํ˜„ํ•˜๋Š” ๊ฒƒ์„ ๋ชฉํ‘œ๋กœ ํ•ฉ๋‹ˆ๋‹ค.
  • ๋น„์ƒ ์ •์ง€(E-STOP) ๋ฐ ์•ˆ์ „ ๊ธฐ๋Šฅ โ€“ emergency_stop TCP ๋ช…๋ น์€ ์ฆ‰์‹œ ํฌ๋ ˆ์ธ์„ ์ •์ง€์‹œํ‚ค๋Š” CANopen Control Word๋ฅผ ์ „์†กํ•˜๊ณ , ์ด๋ฒคํŠธ ๋กœ๊ฑฐ๋Š” ์ด๋ฅผ Safety ๋“ฑ๊ธ‰์œผ๋กœ ๊ธฐ๋กํ•ฉ๋‹ˆ๋‹ค.
  • ์ด๋ฒคํŠธ ๋กœ๊น… ์‹œ์Šคํ…œ โ€“ Python ๊ธฐ๋ฐ˜ EventLogger๋Š” 6๋‹จ๊ณ„ ์‹ฌ๊ฐ๋„(DEBUG~SAFETY)์™€ 7๊ฐœ ์นดํ…Œ๊ณ ๋ฆฌ๋ฅผ ์ œ๊ณตํ•˜๋ฉฐ, ํŒŒ์ผ ๋กœ๊ทธ, JSON ๋กœ๊ทธ, ์‹ค์‹œ๊ฐ„ ์ฝœ๋ฐฑ, ํ†ต๊ณ„ ์ˆ˜์ง‘์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.
  • ๊ณ ์‹ ๋ขฐ์„ฑ ํ…Œ์ŠคํŠธ ๋ฐ ์ž๋™ํ™” โ€“ CANopen ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ, pytest ๊ธฐ๋ฐ˜ ํ…Œ์ŠคํŠธ ์Šค์œ„ํŠธ, GitHub Actions ์›Œํฌํ”Œ๋กœ์šฐ๋ฅผ ํฌํ•จํ•˜์—ฌ EDS/ESP32 ๊ฐœ๋ฐœ ์ง„ํ–‰ ์ƒํ™ฉ์„ ์ž๋™์œผ๋กœ ๊ฒ€์ฆํ•ฉ๋‹ˆ๋‹ค.
  • GUI / Web UI โ€“ PyQt6 ๋ฐ์Šคํฌํ†ฑ GUI์™€ FastAPI ๊ธฐ๋ฐ˜ Web UI๋ฅผ ํ†ตํ•ด ์‹œ์Šคํ…œ ์ƒํƒœ ๋ชจ๋‹ˆํ„ฐ๋ง, ๋ช…๋ น ์ „์†ก, ๋กœ๊ทธ ์กฐํšŒ๊ฐ€ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.
  • SD ์นด๋“œ ๋กœ๊ทธ & OTA ์—…๋ฐ์ดํŠธ โ€“ ESP32 ๊ฒŒ์ดํŠธ์›จ์ด๋Š” SD ์นด๋“œ ๋กœ๊น…๊ณผ ์›๊ฒฉ ํŽŒ์›จ์–ด ์—…๋ฐ์ดํŠธ(OTA)๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ“ŒSystem Architecture

์ปดํฌ๋„ŒํŠธ์„ค๋ช…
์†ก์ˆ˜์‹ ๊ธฐDanfoss K13 F ์ˆ˜์‹ ๊ธฐ์™€ ํ˜ธํ™˜๋˜๋Š” ์†ก์‹ ๊ธฐ๋ฅผ ํ†ตํ•ด ํฌ๋ ˆ์ธ ์ œ์–ด ์‹ ํ˜ธ๋ฅผ ์ „๋‹ฌํ•˜๋ฉฐ, ์ˆ˜์‹ ๊ธฐ๋Š” CANopen ๋ฒ„์Šค๋กœ ๋ช…๋ น์„ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค.
๊ฒŒ์ดํŠธ์›จ์ดBL335(ARM Linux)์™€ ESP32โ€‘S3 EdgeBox Lite ๋‘ ๊ฐ€์ง€. TCP ์„œ๋ฒ„(ํฌํŠธ 9999/5000)๊ฐ€ ํด๋ผ์ด์–ธํŠธ ๋ช…๋ น์„ ์ˆ˜์‹ ํ•ด CANopen ์ œ์–ด์–ด๋กœ ๋ณ€ํ™˜ํ•˜๋ฉฐ, ESP32 ๋ฒ„์ „์€ FreeRTOS ๋ฉ€ํ‹ฐํƒœ์Šคํฌ ๊ตฌ์กฐ๋ฅผ ์ฑ„ํƒํ–ˆ์Šต๋‹ˆ๋‹ค.
๋„คํŠธ์›ŒํฌWiโ€‘Fi/์ด๋”๋„ท. EdgeBox Lite๋Š” WIZnet W5500์„ ํ†ตํ•ด ์œ ์„  ์ด๋”๋„ท์„ ์ œ๊ณตํ•˜๊ณ , BL335๋Š” Ubuntu IoT์—์„œ SocketCAN ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
์ œ์–ด ์†Œํ”„ํŠธ์›จ์–ดk13_controller๋Š” Python์œผ๋กœ ์ž‘์„ฑ๋˜์–ด BL335 ๋ฐ RPi ํ™˜๊ฒฝ์—์„œ CANopen ๋ฉ”์‹œ์ง€ ์ƒ์„ฑยท์ „์†ก์„ ๋‹ด๋‹นํ•ฉ๋‹ˆ๋‹ค.
๋ชจ๋‹ˆํ„ฐ๋ง๋ฐ์Šคํฌํ†ฑ GUI(PyQt6), ์›น UI(FastAPI) ๋ฐ ๋กœ๊ทธ ๋ทฐ์–ด๋ฅผ ํ†ตํ•ด ์‹ค์‹œ๊ฐ„ ์ƒํƒœ, ์†๋„, ์˜ค๋ฅ˜ ๋“ฑ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๋ฐ์ดํ„ฐ ๋ ˆ์ด์–ดEventLogger์™€ EventStorage๊ฐ€ ๋กœ๊ทธ๋ฅผ ๋ฉ”๋ชจ๋ฆฌ/ํŒŒ์ผ/SQLite์— ์ €์žฅํ•˜๊ณ  ํ†ต๊ณ„๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ“ŒRole and Application of the W5500

  • ํ•˜๋“œ์›จ์–ด ํ†ต์‹  ์ธํ„ฐํŽ˜์ด์Šค โ€“ EdgeBox Lite๋Š” ESP32-S3์™€ WIZnet W5500 ์ด๋”๋„ท ์ปจํŠธ๋กค๋Ÿฌ๊ฐ€ ๊ฒฐํ•ฉ๋œ ๊ตฌ์กฐ๋กœ, ์‚ฐ์—… ํ™˜๊ฒฝ์— ์ ํ•ฉํ•œ ์œ ์„  ์ด๋”๋„ท ์—ฐ๊ฒฐ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
  • Wi-Fi ๋Œ€๋น„ ๋” ์•ˆ์ •์ ์ด๊ณ  ๋‚ฎ์€ ์ง€์—ฐ์˜ ํ†ต์‹  ์ œ๊ณต โ€“ W5500์€ ESP32์™€ SPI๋กœ ์—ฐ๊ฒฐ๋˜๋ฉฐ, Wi-Fi๋ณด๋‹ค ํ›จ์”ฌ ์•ˆ์ •์ ์ด๊ณ  ์ง€์—ฐ์ด ์ ์€ ํ†ต์‹ ์„ ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค.
  • Ethernet Manager ๊ตฌํ˜„ โ€“ ESP32 ํŽŒ์›จ์–ด์˜ ethernet_manager.h/.cpp๋Š” W5500๊ณผ LAN8720 ๋ชจ๋“ˆ์„ ๋ชจ๋‘ ์ง€์›ํ•˜๋Š” ๊ตฌ์กฐ๋ฅผ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค.
    W5500์ด ์„ ํƒ๋˜๋ฉด ์ดˆ๊ธฐํ™” ๋ฃจํ‹ด์€ SPI ํ•€ ์„ค์ •, DHCP/๊ณ ์ • IP ์„ค์ •, ๋„คํŠธ์›Œํฌ ์ด๋ฒคํŠธ ์ฒ˜๋ฆฌ๋ฅผ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.
  • EdgeBox ์„ค์ • ์Šคํฌ๋ฆฝํŠธ โ€“ edgebox_setup.py๋Š” W5500 ๋“œ๋ผ์ด๋ฒ„ ์„ค์น˜, SPI ์ธํ„ฐํŽ˜์ด์Šค ํ™œ์„ฑํ™”, ๋„คํŠธ์›Œํฌ ๊ตฌ์„ฑ์„ ์ž๋™ํ™”ํ•˜์—ฌ ์‚ฐ์—…์šฉ ๊ฒŒ์ดํŠธ์›จ์ด๋ฅผ ์‹ ์†ํ•˜๊ฒŒ ๊ตฌ์ถ•ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.
  • ํ–ฅ์ƒ๋œ ๋„คํŠธ์›Œํฌ ์‹ ๋ขฐ์„ฑ โ€“ ๊ณ ์ • IP ๊ธฐ๋ฐ˜์˜ ์œ ์„  ์ด๋”๋„ท์„ ์‚ฌ์šฉํ•จ์œผ๋กœ์จ ๋น„์ƒ์ •์ง€ ๋ช…๋ น๊ณผ ํฌ๋ ˆ์ธ ์ž‘๋™ ์ƒํƒœ ๋ณด๊ณ ๊ฐ€ ์ง€์—ฐ ์—†์ด ์ „๋‹ฌ๋˜์–ด ์ „์ฒด ์•ˆ์ „์„ฑ์ด ํ–ฅ์ƒ๋ฉ๋‹ˆ๋‹ค.

๐Ÿ“ŒMarket & Application Value

  • ์‚ฐ์—… ์•ˆ์ „ ์‹œ์žฅ โ€“ ํฌ๋ ˆ์ธ, ์ค‘์žฅ๋น„, ๋ฌผ๋ฅ˜ ์ž๋™ํ™” ๋ถ„์•ผ์—์„œ๋Š” ์›๊ฒฉ ๋น„์ƒ์ •์ง€์™€ ์ƒํƒœ ๋ชจ๋‹ˆํ„ฐ๋ง์ด ๋ฒ•์  ์š”๊ตฌ ์‚ฌํ•ญ๊ณผ ์•ˆ์ „ ๊ทœ์ •์„ ์ถฉ์กฑํ•˜๋Š” ๋ฐ ํ•„์ˆ˜์ ์ž…๋‹ˆ๋‹ค.
    ์ด ํ”„๋กœ์ ํŠธ๋Š” CANopen ๊ธฐ๋ฐ˜ ์žฅ๋น„๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ชจ๋“  ์‚ฐ์—… ํ˜„์žฅ์— ์ ์šฉ๋  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์œ„ํ—˜ ์ƒํ™ฉ์„ ์กฐ๊ธฐ์— ๊ฐ์ง€ํ•˜๊ณ  ์‚ฌ๊ณ ๋ฅผ ์˜ˆ๋ฐฉํ•  ์ˆ˜ ์žˆ๋Š” ๋†’์€ ๊ฐ€์น˜์˜ ์†”๋ฃจ์…˜์œผ๋กœ ํ™œ์šฉ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ํ™•์žฅ์„ฑ(Scalability) โ€“ ESP32 ๊ฒŒ์ดํŠธ์›จ์ด๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ €๋น„์šฉ์œผ๋กœ ๋‹ค์ˆ˜์˜ ๋…ธ๋“œ๋ฅผ ํ™•์žฅํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, EdgeBox Lite์˜ W5500์€ ๊ณต์žฅ ์œ ์„  ๋„คํŠธ์›Œํฌ์™€์˜ ์†์‰ฌ์šด ํ†ตํ•ฉ์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.
    BL335 ๋ฒ„์ „์€ ๊ธฐ์กด Linux ์‹œ์Šคํ…œ๊ณผ ํ˜ธํ™˜๋˜์–ด ๋‹ค์–‘ํ•œ ์‚ฐ์—… ์žฅ๋น„์— ๋น ๋ฅด๊ฒŒ ๋ฐฐํฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๊ธฐ์ˆ  ํ‘œ์ค€ ์ค€์ˆ˜ โ€“ CiA 301/402 ๋ฐ CANopen ํ”„๋กœํ† ์ฝœ์„ ์ค€์ˆ˜ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋‹ค๋ฅธ CANopen ์žฅ์น˜์™€ ๋›ฐ์–ด๋‚œ ์ƒํ˜ธ ์šด์šฉ์„ฑ์„ ์ œ๊ณตํ•˜๋ฉฐ, ํ‘œ์ค€ EDS ํŒŒ์ผ์„ ์‚ฌ์šฉํ•ด ๊ตฌ์„ฑ์„ ์ž๋™ํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๐Ÿ“ŒWIZnet Strategic Value

์ด ํ”„๋กœ์ ํŠธ๋Š” WIZnet W5500์„ ํ™œ์šฉํ•ด CANopen ๊ธฐ๋ฐ˜ ํฌ๋ ˆ์ธ ์ œ์–ด ์‹œ์Šคํ…œ์— ์œ ์„  Ethernet์„ ๋„์ž…ํ•˜๋Š” ์‚ฌ๋ก€๋ฅผ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.
FreeRTOS์™€ C++, Python, FastAPI ๋“ฑ ๋‹ค์–‘ํ•œ ํ”Œ๋žซํผ์„ ๊ฒฐํ•ฉํ•˜์—ฌ ์ƒˆ๋กœ์šด ํ˜•ํƒœ์˜ ์‘์šฉ ์‚ฌ๋ก€๋ฅผ ์ œ์‹œํ•˜๋ฉฐ,
BL335์™€ ESP32๋ฅผ ๋ชจ๋‘ ์‚ฌ์šฉํ•˜๋Š” ์ด์ค‘ ํ•˜๋“œ์›จ์–ด ์ „๋žต์€ WIZnet ์ด๋”๋„ท ์นฉ์ด ํƒ‘์žฌ๋œ EdgeBox Lite์˜ ์„ฑ๋Šฅ์„ ์ง์ ‘ ๋น„๊ตยทํ‰๊ฐ€ํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐํšŒ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ“ŒSummary

crane-emergency-stop ํ”„๋กœ์ ํŠธ๋Š” CANopen ํ”„๋กœํ† ์ฝœ์„ ์‚ฌ์šฉํ•˜์—ฌ ํฌ๋ ˆ์ธ์„ ์›๊ฒฉ์œผ๋กœ ๋น„์ƒ ์ •์ง€ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•˜๋Š” ์˜คํ”ˆ์†Œ์Šค ์†”๋ฃจ์…˜์ž…๋‹ˆ๋‹ค.
์ด ์‹œ์Šคํ…œ์€ BL335 ๊ฒŒ์ดํŠธ์›จ์ด์™€ ESP32-S3 EdgeBox Lite(W5500 ์ด๋”๋„ท)๋ฅผ ๋ชจ๋‘ ํ™œ์šฉํ•˜์—ฌ TCP/IP โ†” CANopen ๋ธŒ๋ฆฌ์ง€๋ฅผ ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค.

๋˜ํ•œ ์ด๋ฒคํŠธ ๋กœ๊น…, CAN ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ, ์›น UI ๋“ฑ ์‚ฐ์—…์šฉ ๊ธฐ๋Šฅ์„ ํฌํ•จํ•˜๊ณ  ์žˆ์œผ๋ฉฐ, GitHub Actions๋ฅผ ํ†ตํ•œ ์ž๋™ํ™”๋œ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ๋„ ๊ฐ–์ถ”๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

W5500์€ ์•ˆ์ •์ ์ธ ์œ ์„  ํ†ต์‹ ์„ ์ œ๊ณตํ•จ์œผ๋กœ์จ ์‚ฐ์—… ์•ˆ์ „ ์‹œ์Šคํ…œ์— ์š”๊ตฌ๋˜๋Š” ๋†’์€ ์‹ ๋ขฐ์„ฑ์„ ๋ณด์žฅํ•˜๋Š” ํ•ต์‹ฌ ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค.
์‚ฐ์—… ์•ˆ์ „ ๋ฐ ์ž๋™ํ™” ๋ถ„์•ผ์—์„œ์˜ ๋†’์€ ํ™•์žฅ ๊ฐ€๋Šฅ์„ฑ๊ณผ ์‹ค์šฉ์„ฑ์„ ๊ณ ๋ คํ•  ๋•Œ, ์ด ํ”„๋กœ์ ํŠธ๋Š” WIZnet์˜ ํ™œ์šฉ ์‚ฌ๋ก€๋กœ ์†Œ๊ฐœํ•˜๊ธฐ์— ์ ํ•ฉํ•œ ํ”„๋กœ์ ํŠธ์ž…๋‹ˆ๋‹ค.


https://github.com/arturo393/crane-emergency-stop/blob/clean-main/jira/gateway_esp32_update_nov01.md

 

Comments

Similar projects you might like

Comments