Raspberry Pico és a LAN (W5100S-EVB-Pico)

A Pico-t ugyebár bármiféle hálózati illesztő nélkül adták ki, de időközben alternatív kiadásai is megjelentek. Nemrég írtam a wifis megoldásról (PicoW), ezúttal pedig pár szót szeretnék ejteni az egyik számomra legszimpatikusabb megoldásról: a LAN-osról, hiszen a vezetékes kapcsolatnál nincs stabilabb.
Ezt a modellt nem maga a Raspberry, hanem a hálózati termékeiről ismert Wiznet adta ki, és a jól csengő W5100S-EVB-Pico nevet kapta.

w5100s-evb-pico_side1.jpg

A lapka a két rá integrált chip, és a 8P8C RJ45 csatlakozó miatt hosszabb a szokásosnál.
Mindent tud természetesen, amit a Pico, ugyanaz az ARM Cortex M0 ketyeg benne, 264kB memóriával és 2MB flash tárhellyel integrálva, viszont kapott egy LAN vezérlő chipet, ez a Wiznet W5100S modellje, ami a következőket tudja adatlap szerint:

  • 4 egyidejű hálózati socket
  • 16 kbyte átviteli puffermemória
  • SPI csatlakoztatás
  • 10/100 mbps Half/Full duplex Ethernet sebesség, automatikus egyeztetéssel
  • 132 mA max fogyasztás

Természetesen erre is rámértem, meglepő módon stabilan hozza a fogyasztást, ha 100mbps élő LAN kapcsolata van, akkor 120mA körül mozog, ha nincs élő LAN, akkor 66mA a fogyasztása.

És hogy honnan szerezzünk ilyet?

Szinte hallom a kérdést felmerülni, hogy miért is foglalkozom a Pico-val, elfordultam volna az ESP chipektől? Nos való igaz, hogy az ESP bizonyos dolgokra jobb, egyszerűbb megoldás, viszont egyrészt a kínai beszerzéseimet igyekszem minimalizálni a vámkezelési szabályok módosulása óta, másrészről sokszor nem mindegy mennyi egy tétel beszerzési ideje, ha egy eszköz, lásd Pico beszerezhető Magyarországon is, néha ez sokkal többet nyom a latban az áránál is.. Tudom (sima) ESP32 van magyar webshopokon is, viszont a LAN-os WT32-ETH01 nem igazán kapható itthon, ahogy a PSRAM-al szerelt ESP32 WROVER fejlesztői lapok sem túl elterjedtek kis hazánkban. Ugyan Nagy-Britannia kilépett az EU-ból, de példának okáért a Pimoroni beregisztrált az IOSS rendszerbe, úgyhogy az ÁFÁ-t intézik automatikusan. Nem mellesleg a Raspberry termékek máshol is kaphatók az EU-ban, lásd szlovén illetve román webshopok, így ezekhez akkor is hozzá lehet jutni belátható időn belül, ha a magyar viszonteladónál éppen nincs - reményeim szerint.

w5100s-evb-pic-pinout_v1.jpg

Azt jó tudni, hogy az SPI-n csatolt LAN illesztőhöz vannak kötve a Pico GP16, GP17, GP18, GP19, GP20 és GP21 lábai, így ezeket lehetőség szerint ne akarjuk más célra használni.

Mire jó ez?

Nos, ha tudunk programozni, bármire, amire egy ESP. :) A PicoW kapcsán már jeleztem, hogy az mPyEasy-t átdolgoztam Pico-ra, így ha ezt a firmwaret feltesszük rá, kényelmesen, webes felületen állíthatjuk be az egyes funkcióit, ahogy korábban az ESPEasy kapcsán már megszokhattuk.

Korábban írtam a LAN relé projektemről, amit akkor MapleMini-vel oldottam meg, viszont a hardver elég szűk erőforrásokkal rendelkezik, így a szoftver fejlesztése és karbantartása elég körülményes, nem is nagyon foglalkoztam vele igazság szerint azóta. Ezt a funkcionalitást teljesen ki tudja váltani egy W5100S-EVB-Pico.
Másik projektem a LAN-os áramkimaradás-figyelő, ami szintén megvalósítható a LAN-os Picoval, SSL képes a hálózati rétege, így tud GMail-el direktben kommunikálni, GPIO-t képes kezelni, maga a tökély.

Amennyiben MicroPython-t szeretnénk rátenni, a korábbihoz hasonló módon először is le kell töltenünk egy megfelelő nightly build-et.

https://micropython.org/download/W5100S_EVB_PICO/

Működtető rendszert pont úgy tudunk rá tenni, mint a sima Pico-ra:

A rajta található BOOTSEL gomb nyomva tartása mellett kell USB kábellel gépünkre kötni (mikro-USB csatlakozása van még mindig), ekkor megjelenik hordozható meghajtóként, mint egy pendrive, és ebbe a maghajtóba kell felmásolnunk az .UF2 kiterjesztésű firmware állományt, feltöltés után automatikusan újraindítja magát.

Amennyiben sikerült egy microPython rendszert feltennünk, a Thonny IDE segítségével rá tudunk csatlakozni, és python parancsokkal direktben vezérelni.

thonny1_1.jpg

Ha csatlakoztunk, a Thonny Shell-ben az alábbi parancsokkal tudjuk tesztelni, működik-e a LAN:

import network
lan_if = network.WIZNET5K()
lan_if.active(True)
lan_if.ifconfig('dhcp')

Kész firmware-ek nem nagyon vannak még hozzá, bár én vettem a fáradtságot, és a korábban ESP32-re írt mPyEasy-t átportoltam mPyEasy-Async néven elérhető a github-on:

https://github.com/enesbcs/mpyeasy-async

mPyEasy feltöltése:

1/ Letöltjük a release-ek közül a megfelelő binárist, ez most épp az mpyeasy-11260-pico-w5100.uf2
https://github.com/enesbcs/mpyeasy-async/releases

2/ megnyomjuk a BOOTSEL gombot és csatlakoztatjuk USB kábellel a gépünkre a PicoW-t

3/ felmásoljuk az .UF2 fájlt a megjelenő új meghajtóra

4/ Feltöltés után csatlakoztatjuk LAN kábellel hálózatunkhoz, és amennyiben van DHCP szerver, akkor kap tőle egy címet, ezt a routerünkből tudjuk kinyerni. Ha nincs DHCP szerver, alapértelmezetten 192.168.1.10 IP címet fog felvenni az eszköz, így érhetjük el böngészőből.

mpyeasy_3.jpg

Az mPyEasy-ről már írtam korábban, akár HTTP-n, akár MQTT-n tudjuk saját okosotthon vezérlőnkbe csatlakoztatni, a Controllers menüben. A Devices-ban tudunk alapvető szenzorokat GPIO be/kimenet, hőmérő.. létrehozni, a Rules-ban belső szabályokat felvenni, a Notifications-ban, pedig értesítések beállítását felvenni, példának okáért GMAIL SMTP-t, ami teljes mértékben működik, ugyanis SSL képes az eszköz.

A bejegyzés trackback címe:

https://bitekmindenhol.blog.hu/api/trackback/id/tr4017902541

Kommentek:

A hozzászólások a vonatkozó jogszabályok  értelmében felhasználói tartalomnak minősülnek, értük a szolgáltatás technikai  üzemeltetője semmilyen felelősséget nem vállal, azokat nem ellenőrzi. Kifogás esetén forduljon a blog szerkesztőjéhez. Részletek a  Felhasználási feltételekben és az adatvédelmi tájékoztatóban.

OrszágLÁTÓ.hu · https://www.orszaglato.hu/ 2022.10.13. 17:10:17

Szia! Létezik, hogy az W5500-EVB-Pico-val nem működik mpyeasy-11260-pico-w5100.uf2 ? Első nekifutásra nem sikerült felélednie, nam kapott DHCP-től IP címet. Thonny IDE-ből parancssorban viszont működik a DHCP-s IP kérés...

eNeS 2022.10.13. 17:16:36

@FLZs: bármi elképzelhető. mit ír a Thonny log, mikor nyomsz rajta egy újraindítást és az mpyeasy bebootol?

OrszágLÁTÓ.hu · https://www.orszaglato.hu/ 2022.10.14. 19:01:14

@eNeS: Azt hol kéne látnom? Most próbálok először Thonny-t használni. Ráadásul windows-osn. Miután felmásoltam a picora az mpyeasy-t és újraindul, ezt követően már aa Thonny nem tud hozzá kapcsolódni - úgy látom. Ez jó így? A backend.log-ban ez van, bár nem tudom, ez mennyire releváns:
17:33:26.751 INFO thonny: sys.flags: sys.flags(debug=0, inspect=0, interactive=0, optimize=0, dont_write_bytecode=1, no_user_site=0, no_site=0, ignore_environment=0, verbose=0, bytes_warning=0, quiet=0, hash_randomization=1, isolated=0, dev_mode=False, utf8_mode=0, warn_default_encoding=0)

17:33:26.751 INFO thonny.plugins.micropython.bare_metal_backend: Starting backend, args: {'clean': True, 'port': 'COM11', 'dtr': None, 'rts': None, 'submit_mode': 'raw_paste', 'interrupt_on_connect': True, 'write_block_size': 64, 'write_block_delay': None, 'proxy_class': 'RaspberryPiPicoBackendProxy', 'sync_time': True, 'validate_time': False, 'local_rtc': True}

tomih 2023.02.17. 17:55:03

Szia! mPyEasy 1.1.332-t teszteltem.
Ha nincs a boardra rákötve szenzor akkor, az NTP nem frissül.
Viszont, ha kézzel beadom a Thonny-n keresztül, az import utime -t, akkor frissül az ntp.

eNeS 2023.02.17. 18:00:53

@tomih: Nekem működik. 1: milyen board. 2: mit ír a Thonny log miközben elindul az mpyeasy?
Ntp általában akkor nem megy, ha nincs internet az induláskor.
Milyen szenzor van rákötve, amitől frissül? Nem igazán látom az összefüggést mert a hálózat inicializálás és az ntp a szenzorok inicializációja előtt fut... erre való a log.

tomih 2023.02.19. 14:26:56

@eNeS:
1. W5100S-EVB-Pico with RP2040 ( statikus ip címmel van beállítva)
2. Csak egy soft reboot-os logom van:
MPY: soft reboot
Loading settings
Loading AdvSettings
Init hardware...
Loading HW settings
Loading Pinout settings
hwic spic
Init LAN
-
-
NTP time sync
RTC time sync
RTC init err: name 'libhw' isn't defined
192.168.1.10
Loading tasks
Loading controllers
Loading notifiers
00:02:12: Event: System#Boot
Starting main loop
00:02:12: Event: pingntp#State=0
00:02:12: Event: Clock#Time=Fri,00:02
00:03:00: Event: Clock#Time=Fri,00:03
00:03:13: Event: pingntp#State=1

A szenzoros frissülést ne vedd figyelembe, szerintem csak sok mindent kipróbáltam és megváltozott időnek megörültem.

eNeS 2023.02.19. 14:28:20

@tomih: Köszönöm, így már értem.. egy import eltűnt valamiért a végleges fordítás előtt.. :( Bár azt nem értem nekem hogyan működött.

eNeS 2023.02.19. 15:23:58

Feltettem az ntpfix-es binárisokat is, remélem jobb lesz:
github.com/enesbcs/mpyeasy-async/releases/tag/v1.1.332-beta

tomih 2023.02.19. 17:36:14

A Bootsel nyomása után, simán felmásoltam az új uf2 binárist.

Thonny 4.0.2-t használok.
Az Interpreter-nél van nálam olyan opció, hogy
"Synchronize device's real time clock"
"Use local time in real time clock"
Ezeket kikapcsoltam.

Python 3.4.0; MicroPython v1.19.1-663-ge35bcb0f0-dirty on 2023-02-19 uPython v1.19.1-663-ge35bcb0f0-dirty on 2023-02-19 (GNU 10.3.1 MinSizeRel)

MPY: soft reboot
Loading settings
Loading AdvSettings
Init hardware...
Loading HW settings
Loading Pinout settings
hwic spic
Init LAN
-
-
NTP time sync
192.168.1.10
Loading tasks
Loading controllers
Loading notifiers
00:00:19: Event: System#Boot
Starting main loop
00:00:19: Event: Clock#Time=Fri,00:00
00:01:00: Event: Clock#Time=Fri,00:01
00:01:02: Event: pingntp#State=1

eNeS 2023.04.02. 08:40:50

@tomih: Thonnyban rebootot nyomva nekem se megy az NTP. De mikor lekapcsoltam a Thonnyt és rebootoltam a PICO-t, akkor beállt a pontos idő.

Támogatók:
okosotthon.jpg
allterco.jpg

Utolsó kommentek

  • faterkm: Jó ötlet, köszönöm. Most kicsit megyek utó-nyaralni, de később kipróbálom és mindenképpen referálo... (2024.08.30. 17:35) Tasmota firmware
  • eNeS: Az 5V az jó ha stabil, viszont a 3V-os tápra az ESP elé tehetnél egy kicsit nagyobb kondenzátort p... (2024.08.29. 19:34) Tasmota firmware
  • faterkm: Köszönöm, hogy foglalkozol a problémámmal. További infók: a "rendszerem"-ben 5 ilyen modul van, és... (2024.08.29. 19:32) Tasmota firmware
  • eNeS: @faterkm: az nem jó jel. 5V 3A-es tápegyésggel próbáltad már? Nem kizárt egyébként a lapon levő fe... (2024.08.29. 17:10) Tasmota firmware
  • faterkm: Pontosan ezt valósítottam meg: bitekmindenhol.blog.hu/2018/02/03/wifi_mini_rele_5v_esp-01s és azt ... (2024.08.29. 17:06) Tasmota firmware
  • Utolsó 20

Címkék

433mhz (12) alkatrész (22) alternatív kapcsoló (2) amg8833 (1) analóg (2) android (1) arduinoeasy (5) audio (1) automatizálás (3) bemenet (3) bk7231n (1) ble (1) blitzwolf (4) bluetooth (9) bridge (2) camhi (2) csináld magad (22) dimmer (1) diy (28) do-it-yourself (27) domoticz (11) ds18b20 (1) ebay (3) érintő (2) érintőkapcsoló (7) érzékelő (11) esp-01 (2) esp32 (11) esp8266 (21) espeasy (2) espurna (1) esp projekt (18) Eview7 (1) ewelink (1) feldolgozó (1) felhő (1) fényérzékelő (1) firmware (7) flame detector (1) fogyasztásmérő (5) ftdi (1) füstérzékelő (1) gázérzékelő (1) gpio (1) hang (4) hangjelző (1) hőmérséklet (22) https (1) ikea (1) impulzus relé (1) izzó (2) javascript (1) jelenlétérzékelő (3) kamera (18) keresztkapcsoló (1) kézmozdulat (1) kijelző (3) kimenet (21) konnektor (8) lan (9) lángérzékelő (2) led (3) linux (4) logic level converter (1) lua (1) lux (1) maple mini (2) mcu (3) micropython (1) mikrovezérlő (2) milkv (1) mobil (1) mosfet (1) mozgás (5) mpyeasy (4) mq-2 (2) mqtt (3) működtető rendszer (5) multiroom (1) nedvesség (1) neo (1) neopixel (1) Node-RED (1) nvr (4) nyitás (7) okosház (4) okosizzó (3) okosotthon (8) oled (1) onvif (8) openbeken (1) opencv (1) openwrt (4) orange pi (4) páratartalom (6) php (1) pico (1) pi pico (2) poe (1) programozás (9) projekt (25) proximity olvasó (1) python (2) raspberry (14) raspberry projekt (6) raspbian (1) reed (1) relé (27) rf (2) rgb (6) rock pi (1) rögzítő (2) rp2 (1) rpieasy (1) rtc (1) shelly (24) smartwise (1) solid state relay (1) sonoff (20) SonOTA (1) soros (1) ssl (1) ssr (1) stm32 (4) szenzor (11) szilárdtest relé (1) szintillesztő (2) sziréna (1) szkript (3) szünetmentesítés (4) t1 (1) tasmota (8) távirányító (3) Telegram (1) termékteszt (85) termosztát (2) touch (2) ups (5) usb (7) usb hub (1) valós idejű óra (1) vezérlések (20) vezérlő (5) világítás (5) villanykapcsoló (12) webkamera (1) wiegand (1) wifi (32) ws2812 (1) xiaomi (5) xm (4) xmeye (4) yoosee (1) zigbee (16) zwave (3) Címkefelhő
süti beállítások módosítása