Skip to content

Raspberry pi pico LAN

Pico x Network

WIZnet

Published November 28, 2022

Original author: あっきぃOriginal source (new tab)

Raspberry pi pico LAN

Components

Hardware components

Project description

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

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

f:id:Akkiesoft:20211202232655j:plain

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

モジュールTiny2040
GGND
V3.3V
RSTGP7
MIGP0
MOGP3
SCKGP2
CSGP1

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

f:id:Akkiesoft:20211202233414j:plain
 

何か動かす

とりあえずDHCPでアドレスを取得してもらうスクリプトを動かしてみます。以下のページの手順に従ってやってみました。

www.hackster.io

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

スクリプトの方はリポジトリをたどったらIPアドレス固定になっていたので、adafruit_wiznet5kライブラリを見てDHCPを有効にしました。

github.com
 

# 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アドレスにpingを打って帰ってくることも確認できました。よさげ。 

Webサーバーを立ててみる

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

github.com

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

消費電力……

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

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

まとめ

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

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

あと、タイムリーなことにWIZnetのTwitterが、RP2040と統合されたボードがAWS IoT Coreで使えるデバイスとしてAWSのカタログに載ったというツイートをしたのをEbenがRTしているところを見かけたので、AWS IoT Coreでなんかやってる人にもおすすめのようです。AWSなんもわからんので私は知らないのですが……。

 


 

Comments

Similar projects you might like

Comments