0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【WIZnet】W55RP20ボードでMicroPythonを利用したTCPクライアント実装

Posted at

はじめに

最近、IoTデバイスの開発においてEthernet接続の安定性高速通信が求められています。そんな要望に応えるのが、WIZnetのToE(TCP/IPオフロードエンジン)搭載Ethernetチップ(Ethernetchip)W5500です。特に、W55RP20-EVB-PicoとMicroPythonを使って手軽にTCPクライアントを作成する方法をご紹介します。

使用するコンポーネント

  • WIZnet - W55RP20-EVB-Pico
  • MicroPython環境

W5500 Ethernetchipとは?

WIZnetのW5500はハードウェアベースのTCP/IPプロトコルスタックを搭載した**ioNIC(Input/Output Network Interface Controller)**であり、マイコンの負荷を大幅に軽減します。そのため、安定性が重要なIoTデバイス開発に最適な選択肢です。

今回のプロジェクトの概要

本プロジェクトは、MicroPythonとWIZnetのW55RP20-EVB-Picoを使用して、サーバーに接続し、受信したデータをエコーバック(echo)するTCPクライアントのサンプルコードです。

主な機能:

  • TCPサーバーへの継続的な接続
  • 受信データをデコードして表示、送信元へ即座にエコーバック

ソースコードの構造

ライブラリ 目的
socket, usocket TCP通信を管理
machine, network ハードウェアとネットワークの機能を提供
time, uasyncio タイミング制御と非同期処理
w5x00_init W5500 Ethernetchipの初期化

実行方法

ハードウェア準備

  • WIZnet W55RP20-EVB-Picoをネットワーク(Ethernet)に接続します。

コードのデプロイ

  1. MicroPythonボードに提供されたスクリプトをアップロード。
  2. REPLまたは起動時に自動的にmain.pyを実行。

TCPサーバー設定例(テスト用)

簡易的なテストサーバーを構築:

ターミナルでnetcatを使う場合:

nc -lvp 2300

PythonでTCPサーバーを立てる場合:

import socket

s = socket.socket()
s.bind(('0.0.0.0', 2300))
s.listen(1)
conn, addr = s.accept()
while True:
    data = conn.recv(2048)
    if data:
        conn.send(data)

実行結果のサンプル

接続成功時の例:

my ip is 192.168.7.100
Loopback client Connect! (0.5) seconds
recv from 192.168.7.3:[2300]: Hello Server

サーバー切断時の例:

disconnect [Errno 104] ECONNRESET
connect error [Errno 111] ECONNREFUSED

まとめ

WIZnetのW55RP20ボードとMicroPythonを組み合わせることで、シンプルかつ効率的なTCPクライアントを実装可能です。IoTプロジェクトで安定した高速なEthernet通信が必要な場合、このToE搭載Ethernetchipが最適です。

詳細とソースコードはこちら

W55RP20 MicroPython Examples for TCP Client

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?