Ethernet modul W5500 na Raspberry Pi Zero

Pro základnovou stanici (gateway) pro LoRa teploměry jsem se rozhodl použít Raspberry Pi Zero. Kvůli nestabilní WiFi v jednom z míst instalace nelze použít Raspberry Pi Zero W, ale je nutno připojení prostřednictvím LAN. K Raspberry Pi lze použít nějaký ten „USB DONGLE“, nebo „HAT“ (který stejně chce to USB). Ale tohle řešení mi nabourává estetický vzhled krabičky – blokuje to jeden micro USB konektor. Rozhodl jsem se proto použít nějaký ethernet modul, který se připojuje přes SPI přímo na GPIO header maliny. Volba padla na Mini Ethernet modul W5500


Ethernet modul W5500 na Raspberry Pi Zero Štítky:  , , , , LAN, W5500, , , , LoRaThermo

    Pro základnovou stanici (gateway) pro LoRa teploměry jsem se rozhodl použít Raspberry Pi Zero.
Kvůli nestabilní WiFi v jednom z míst instalace nelze použít Raspberry Pi Zero W, ale je nutné připojení prostřednictvím LAN.

K Raspberry Pi lze použít nějaký ten "USB LAN", nebo "HAT" (který stejně chce to USB). Ale tohle řešení mi nabourává estetický vzhled krabičky – blokuje to jeden USB konektor.

Rozhodl jsem se proto použít ethernet modul, který se připojuje přes SPI přímo na GPIO header maliny. Volba padla na „Mini Ethernet modul W5500“ - protože je skladem a za dobrou cenu na českém bastlířském Aliexpresu. Navíc už je k tomu zpracovaný návod na Instructables - How to Use Ethernet on Raspberry Pi Zero W

Takže tento článek je v podstatě jen rychlé shrnutí ať to nemusím příště hledat. Navíc jsem přidal nastavení pevné MAC adresy


HW, zapojení

Připojení W5500 k Raspberry Pi je dle schématu níže. Realizace „ustřuhnuté kšandy“ , ehm IDE propojovací placatý kabel. GND a 3.3V možno použít kterékoliv piny z GPIO headeru.

Propojení RPi a W5500 W5500 pinout

Konfigurace Raspberry Pi

Jde to naklikat v raspi-config, ale přes úpravu /boot/config.txt je to rychlejší. Stačí přidat dvě volby – povolit SPI a naloadovat patřičný modul při bootu


sudo nano /boot/config.txt

dtparam=spi=on
dtoverlay=w5500


Další parametry (int_pin, rychlost, Chip Select) viz README
Reboot a zkontrolovat, jestli je přítomen další síťový adapter – ifconfig …


Pevná MAC adresa

MAC adresa modulu se generuje nádodně při každém rebootu, což dělá bordel v DHCP, DNS a tak podobně - protože má malina pokaždé jinou IP.
Tohle je možno obhackovat přidáním pravidel/service pro systemd a skriptíku, který danému rozhraní přidělí MAC natvrdo.


sudo nano /lib/systemd/system/setmac.service

[Unit]
Description=DSet the MAC address for the W5500 net adapter at eth0
Wants=network-pre.target
Before=network-pre.target
BindsTo=sys-subsystem-net-devices-eth0.device
After=sys-subsystem-net-devices-eth0.device

[Service]
Type=oneshot
ExecStart=/path/to/setmac.sh

[Install]
WantedBy=multi-user.target


Samotný skriptík generuje MAC adresu ze seriového čísla Raspberry Pi. Případně to tam můžete nahackovat natvrdo.

sudo nano /path/to/setmac.sh

sudo /sbin/ip link set dev eth0 address `/bin/sed -n "s/Serial.*: 00000000..(..)(..)(..)/b8:27:eb:1:2:3/p" /proc/cpuinfo`


Nezapomenut na práva a automatické spuštění/povolení service

sudo systemctl enable setmac.service

sudo chmod +x /path/to/setmac.sh



Obdobný postup lze aplikovat i pro moduly s LAN8720, stačí pouze naloadovat jiný modul. (nezkoušel jsem)
;  
Vaše názory a komentáře: 0 ;  Zobrazeno: 1788 x ;  Hodnoceno: 0 x

Hodnocení článku: 1 2 3 4 5


Přidat komentář
Jméno
E-Mail
Zadejte pátou čísici z čísla Zadejte pátou čísici z čísla
Pokud očekáváte odpověď na Vámi vložený komentář, zadejte Váš e-mail.
Vložením komentáře souhlasíte s pravidly.