Last active
April 24, 2024 03:27
-
-
Save anecdata/f2e10134bb23be029d42f36662043451 to your computer and use it in GitHub Desktop.
Multi-Ethernet via SocketPool class (thanks, @justin!)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Follow-on to https://gist.github.com/anecdata/c708dd9e5a0e0b582f01f27d24fc3aab using adafruit_wiznet5k PR#159