Skip to content

Instantly share code, notes, and snippets.

@anecdata
Last active April 24, 2024 03:27
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save anecdata/f2e10134bb23be029d42f36662043451 to your computer and use it in GitHub Desktop.
Save anecdata/f2e10134bb23be029d42f36662043451 to your computer and use it in GitHub Desktop.
Multi-Ethernet via SocketPool class (thanks, @justin!)
import time
import traceback
import board
import busio
import digitalio
import adafruit_requests # pre-CM pr post-PR10-CM needed with this code
from adafruit_wiznet5k.adafruit_wiznet5k import WIZNET5K
import adafruit_wiznet5k.adafruit_wiznet5k_socketpool as socketpool
TEXT_URL = "http://wifitest.adafruit.com/testwifi/index.html"
spi_bus = board.SPI()
cs_pins = (board.A3, board.A4, board.A5)
cs = []
radio = []
pool = []
requests = []
for i in range(0, len(cs_pins)):
cs.append(digitalio.DigitalInOut(cs_pins[i]))
mac = f'de:ad:be:ef:fe:{(64 + 17*i):02x}'
radio.append(WIZNET5K(spi_bus, cs[i], mac=mac, debug=False))
print(f'WIZnet {i} {mac} {radio[i].pretty_ip(radio[i].ip_address)}')
pool.append(socketpool.SocketPool(radio[i]))
requests.append(adafruit_requests.Session(pool[i]))
while True:
for i in range(0, len(cs_pins)):
try:
with requests[i].get(TEXT_URL) as resp:
print(resp.status_code, resp.reason.decode(), i, radio[i].pretty_ip(radio[i].ip_address))
except Exception as ex:
traceback.print_exception(ex, ex, ex.__traceback__)
time.sleep(5)
@anecdata
Copy link
Author

Follow-on to https://gist.github.com/anecdata/c708dd9e5a0e0b582f01f27d24fc3aab using adafruit_wiznet5k PR#159

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment