---
title: "Raspberry pi pico LAN"
url: "https://maker.wiznet.io/louis_m/projects/raspberry-pi-pico-lan/"
markdown_url: "https://maker.wiznet.io/louis_m/projects/raspberry-pi-pico-lan/md"
type: "UCC: User Created Content"
author: "あっきぃ"
author_url: "https://akkiesoft.hatenablog.jp/entry/20211203/1638458921"
editor: "WIZnet"
editor_url: "https://maker.wiznet.io/"
original_author: "あっきぃ"
original_url: "https://akkiesoft.hatenablog.jp/entry/20211203/1638458921"
published: "2022-11-28"
language: "en"
hardware: ["WIZnet WIZ850io"]
likes: 4
views: 1235
comments: 0
source: "WIZnet Makers (https://maker.wiznet.io/)"
---

# Raspberry pi pico LAN

> Pico x Network

Original author: あっきぃ (source: https://akkiesoft.hatenablog.jp/entry/20211203/1638458921)

## Components

- **WIZnet WIZ850io** x 1 ([docs](https://docs.wiznet.io/Product/ioModule/WIZ850io))

## Article

#### W5500モジュールをつなぎこむ

上の写真の一番右がW5500モジュールなのですが、裏返すとチップ類がまとまっていてコンパクトです。

![f:id:Akkiesoft:20211202232655j:plain](https://cdn-ak.f.st-hatena.com/images/fotolife/A/Akkiesoft/20211202/20211202232655.jpg)

配線は電源に3.3V接続を利用する以外は、MOSI,MISO,CS,SCLKとリセット用ピンを使う普通のSPIって感じです。今回はなんとなくTiny2040を引っ張り出してきました。

| モジュール | Tiny2040 |
| --- | --- |
| G | GND |
| V | 3.3V |
| RST | GP7 |
| MI | GP0 |
| MO | GP3 |
| SCK | GP2 |
| CS | GP1 |

配線の参考サイトはこちら。

- [How to add W5500 on RaspberryPi Pico with CircuitPython – WIZnet Makers](https://maker.wiznet.io/2021/06/01/how-to-add-w5500-on-raspberrypi-pico-with-circuitpython/)

- [Tiny 2040 – Pimoroni](https://shop.pimoroni.com/products/tiny-2040)

![f:id:Akkiesoft:20211202233414j:plain](https://cdn-ak.f.st-hatena.com/images/fotolife/A/Akkiesoft/20211202/20211202233414.jpg)

#### 何か動かす

とりあえず[DHCP](http://d.hatena.ne.jp/keyword/DHCP)でアドレスを取得してもらう[スクリプト](http://d.hatena.ne.jp/keyword/%A5%B9%A5%AF%A5%EA%A5%D7%A5%C8)を動かしてみます。以下のページの手順に従ってやってみました。

[www.hackster.io](https://www.hackster.io/bjnhur/how-to-add-w5500-ethernet-to-raspberry-pi-pico-python-2-77c78c#toc-2--dhcp-example-1)

CircuitPython環境を用意して、ライブラリはadafruit_bus_device、adafruit_requests.mpy、adafruit_wiznet5kの3点を放り込みます。

[スクリプト](http://d.hatena.ne.jp/keyword/%A5%B9%A5%AF%A5%EA%A5%D7%A5%C8)の方は[リポジトリ](http://d.hatena.ne.jp/keyword/%A5%EA%A5%DD%A5%B8%A5%C8%A5%EA)をたどったら[IPアドレス](http://d.hatena.ne.jp/keyword/IP%A5%A2%A5%C9%A5%EC%A5%B9)固定になっていたので、adafruit_wiznet5kライブラリを見て[DHCP](http://d.hatena.ne.jp/keyword/DHCP)を有効にしました。

[github.com](https://github.com/bjnhur/pico-W5500/blob/main/Pico_W5500_Ping_Test.py)

```
# SPI接続先の指定をTiny2040に合わせた
SPI1_SCK = board.GP2
SPI1_TX = board.GP3
SPI1_RX = board.GP0
SPI1_CSn = board.GP1
W5500_RSTn = board.GP7

(中略)

# コメントアウトの切り替え
# Initialize ethernet interface with DHCP
eth = WIZNET5K(spi_bus, cs)
# Initialize ethernet interface without DHCP
#eth = WIZNET5K(spi_bus, cs, is_dhcp=False, mac=MY_MAC)

# Set network configuration
# コメントアウト
#eth.ifconfig = (IP_ADDRESS, SUBNET_MASK, GATEWAY_ADDRESS, DNS_SERVER)
|<<

動かしてみると、以下の通り出力が得られました。MACアドレスは指定しないとde:ad:be:ef:fe:edになるようで、どうもW5500自体にはMACアドレスは含まれてないみたいです（参考: [http://nopnop2002.webcrow.jp/Arduino_Networking/Network-2.html]）。ので、家の中で重複しないランダムなものを作って使えば良さそうな気がします。

>||
Wiznet5k Ping Test (no DHCP)
Chip Version: w5500
MAC Address: ['0xde', '0xad', '0xbe', '0xef', '0xfe', '0xed']
My IP address is: 192.168.29.127
```

取得された[IPアドレス](http://d.hatena.ne.jp/keyword/IP%A5%A2%A5%C9%A5%EC%A5%B9)に[ping](http://d.hatena.ne.jp/keyword/ping)を打って帰ってくることも確認できました。よさげ。　

#### Webサーバーを立ててみる

冒頭に貼ったPico Wireless Packを使ったWebサーバーをW5500用に移植してみました。と言ってもそれほど手間ではなく、[Wi-Fi](http://d.hatena.ne.jp/keyword/Wi-Fi)的な部分をW5500の初期化に置き換えて、wsgiserverモジュールをesp32spiからwiznet5kに変える程度でした。

[github.com](https://github.com/Akkiesoft/akkiesoft-pico/blob/main/CircuitPython/web-macro-keyboard/web-macro-keyboard-w5500.py)

これで、Pico Wireless Packで作ったときと同じようにWebページにアクセスできるようになりました。なお、ページを開く速度も同じだった模様。ちょって調べてみた感じSPI接続の限界説がありそうです。

#### 消費電力……

W5500+Tiny2040で作って、消費電力はどんなものかと興味がわいたので計測してみたところ、接続中はアイドルでも通信中でも0.15Aとなりました。W5500モジュールを引っこ抜いた状態が0.03Aなので、W5500モジュールがまあまあ電気を食うようです……。ちなみにPico Wireless Pack+Picoはアイドル0.04A、使ってる間は0.1Aでした。

[Raspberry Pi](http://d.hatena.ne.jp/keyword/Raspberry%20Pi) Zero Wを[カリカ](http://d.hatena.ne.jp/keyword/%A5%AB%A5%EA%A5%AB)リにチューニングするとアイドル時0.09Aで動くことを考えると、それならPiZero使いますわ……という気持ちになります。でも、PiZeroにUSB-LANアダプターをつないだらその分消費電力もプラスになるから、一応Picoのほうが省エネとも考えられて、悩ましいところです。

#### まとめ

[Raspberry Pi](http://d.hatena.ne.jp/keyword/Raspberry%20Pi) Picoに有線LANをはやしてみるネタでした。例えばもし、[Raspberry Pi](http://d.hatena.ne.jp/keyword/Raspberry%20Pi)でセンサーから値を取ってどこかに送りつけるだけの工作みたいなのがあるとしたら、そいつを置き換えるのに有用そうです。そんな贅沢な例があるのかは知りませんが……いやあるぞ、弊社のサーバールームでPi 1B+を使って温度をZabbixに投げるだけのやつがあったぞ……🤔！？

モジュールをケーブル配線するのが面倒！という人には、なんとWIZnetからRP2040と統合されたボードが発売されているので、これを買うとヨサゲです。Picoに乗せて使えるタイプもあるようなので、お好みで選ぶと良いでしょう。

- [W5100S-EVB-Pico – Pimoroni](https://shop.pimoroni.com/products/w5100s-evb-pico)

- [WIZnet Ethernet HAT – Pimoroni](https://shop.pimoroni.com/products/wiznet-ethernet-hat)

あと、タ[イムリ](http://d.hatena.ne.jp/keyword/%A5%A4%A5%E0%A5%EA)ーなことにWIZnetの[Twitter](http://d.hatena.ne.jp/keyword/Twitter)が、RP2040と統合されたボードが[AWS](http://d.hatena.ne.jp/keyword/AWS) IoT Coreで使えるデ[バイス](http://d.hatena.ne.jp/keyword/%A5%D0%A5%A4%A5%B9)として[AWS](http://d.hatena.ne.jp/keyword/AWS)のカタログに載ったというツイートをしたのをEbenがRTしているところを見かけたので、[AWS](http://d.hatena.ne.jp/keyword/AWS) IoT Coreでなんかやってる人にもおすすめのようです。[AWS](http://d.hatena.ne.jp/keyword/AWS)なんもわからんので私は知らないのですが……。

---

Source: https://maker.wiznet.io/louis_m/projects/raspberry-pi-pico-lan/
