Introduction
============
.. image:: https://readthedocs.org/projects/wiznet5k/badge/?version=latest
:target: https://docs.circuitpython.org/projects/wiznet5k/en/latest/
:alt: Documentation Status
.. image:: https://raw.githubusercontent.com/adafruit/Adafruit_CircuitPython_Bundle/main/badges/adafruit_discord.svg
:target: https://adafru.it/discord
:alt: Discord
.. image:: https://github.com/adafruit/Adafruit_CircuitPython_Wiznet5k/workflows/Build%20CI/badge.svg
:target: https://github.com/adafruit/Adafruit_CircuitPython_Wiznet5k/actions
:alt: Build Status
.. image:: https://img.shields.io/badge/code%20style-black-000000.svg
:target: https://github.com/psf/black
:alt: Code Style: Black
Pure-Python interface for WIZNET 5k ethernet modules.
Dependencies
=============
This driver depends on:
* `Adafruit CircuitPython <https://github.com/adafruit/circuitpython>`_
* `Bus Device <https://github.com/adafruit/Adafruit_CircuitPython_BusDevice>`_
Please ensure all dependencies are available on the CircuitPython filesystem.
This is easily achieved by downloading
`the Adafruit library and driver bundle <https://circuitpython.org/libraries>`_.
Installing from PyPI
=====================
On supported GNU/Linux systems like the Raspberry Pi, you can install the driver locally `from
PyPI <https://pypi.org/project/adafruit-circuitpython-wiznet5k/>`_. To install for current user:
.. code-block:: shell
pip3 install adafruit-circuitpython-wiznet5k
To install system-wide (this may be required in some cases):
.. code-block:: shell
sudo pip3 install adafruit-circuitpython-wiznet5k
To install in a virtual environment in your current project:
.. code-block:: shell
mkdir project-name && cd project-name
python3 -m venv .venv
source .venv/bin/activate
pip3 install adafruit-circuitpython-wiznet5k
Usage Example
=============
This example demonstrates making a HTTP GET request to
wifitest.adafruit.com.
.. code-block:: python
import board
import busio
import digitalio
import adafruit_connection_manager
import adafruit_requests
from adafruit_wiznet5k.adafruit_wiznet5k import WIZNET5K
print("Wiznet5k WebClient Test")
TEXT_URL = "http://wifitest.adafruit.com/testwifi/index.html"
JSON_URL = "http://api.coindesk.com/v1/bpi/currentprice/USD.json"
cs = digitalio.DigitalInOut(board.D10)
spi_bus = busio.SPI(board.SCK, MOSI=board.MOSI, MISO=board.MISO)
# Initialize ethernet interface with DHCP
eth = WIZNET5K(spi_bus, cs)
# Initialize a requests session
pool = adafruit_connection_manager.get_radio_socketpool(eth)
ssl_context = adafruit_connection_manager.get_radio_ssl_context(eth)
requests = adafruit_requests.Session(pool, ssl_context)
print("Chip Version:", eth.chip)
print("MAC Address:", [hex(i) for i in eth.mac_address])
print("My IP address is:", eth.pretty_ip(eth.ip_address))
print("IP lookup adafruit.com: %s" %eth.pretty_ip(eth.get_host_by_name("adafruit.com")))
#eth._debug = True
print("Fetching text from", TEXT_URL)
r = requests.get(TEXT_URL)
print('-'*40)
print(r.text)
print('-'*40)
r.close()
print()
print("Fetching json from", JSON_URL)
r = requests.get(JSON_URL)
print('-'*40)
print(r.json())
print('-'*40)
r.close()
print("Done!")
This example demonstrates a simple web server that allows setting the Neopixel color.
.. code-block:: python
import board
import busio
import digitalio
import neopixel
from adafruit_wiznet5k.adafruit_wiznet5k import WIZNET5K
import adafruit_wiznet5k.adafruit_wiznet5k_wsgiserver as server
from adafruit_wsgi.wsgi_app import WSGIApp
print("Wiznet5k Web Server Test")
# Status LED
led = neopixel.NeoPixel(board.NEOPIXEL, 1)
led.brightness = 0.3
led[0] = (0, 0, 255)
# W5500 connections
cs = digitalio.DigitalInOut(board.D10)
spi_bus = busio.SPI(board.SCK, MOSI=board.MOSI, MISO=board.MISO)
# Initialize Ethernet interface with DHCP
eth = WIZNET5K(spi_bus, cs)
# Here we create our application, registering the
# following functions to be called on specific HTTP GET requests routes
web_app = WSGIApp()
@web_app.route("/led/<r>/<g>/<b>")
def led_on(request, r, g, b):
print("LED handler")
led.fill((int(r), int(g), int(b)))
return ("200 OK", [], ["LED set!"])
@web_app.route("/")
def root(request):
print("Root handler")
return ("200 OK", [], ["Root document"])
@web_app.route("/large")
def large(request):
print("Large pattern handler")
return ("200 OK", [], ["*-.-" * 2000])
# Here we setup our server, passing in our web_app as the application
server.set_interface(eth)
wsgiServer = server.WSGIServer(80, application=web_app)
print("Open this IP in your browser: ", eth.pretty_ip(eth.ip_address))
# Start the server
wsgiServer.start()
while True:
# Our main loop where we have the server poll for incoming requests
wsgiServer.update_poll()
# Maintain DHCP lease
eth.maintain_dhcp_lease()
# Could do any other background tasks here, like reading sensors
Documentation
=============
API documentation for this library can be found on `Read the Docs <https://docs.circuitpython.org/projects/wiznet5k/en/latest/>`_.
For information on building library documentation, please check out `this guide <https://learn.adafruit.com/creating-and-sharing-a-circuitpython-library/sharing-our-docs-on-readthedocs#sphinx-5-1>`_.
Contributing
============
Contributions are welcome! Please read our `Code of Conduct
<https://github.com/adafruit/Adafruit_CircuitPython_Wiznet5k/blob/main/CODE_OF_CONDUCT.md>`_
before contributing to help this project stay welcoming.
License
=============
This library was written by `Arduino LLC <https://github.com/arduino-libraries/Ethernet/blob/master/AUTHORS>`_. We've converted it to work
with `CircuitPython <https://circuitpython.org/>`_ and made changes so it works similarly to `CircuitPython's WIZNET5k wrapper for the WIZnet
5500 Ethernet interface <https://docs.circuitpython.org/en/latest/shared-bindings/wiznet/wiznet5k.html>`_ and CPython's `Socket low-level
networking interface module <https://docs.python.org/3.8/library/socket.html>`_.
This open source code is licensed under the LGPL license (see LICENSE for details).
Raw data
{
"_id": null,
"home_page": "",
"name": "adafruit-circuitpython-wiznet5k",
"maintainer": "",
"docs_url": null,
"requires_python": "",
"maintainer_email": "",
"keywords": "adafruit,blinka,circuitpython,micropython,wiznet5k,ethernet,,wiznet,,w5500,,w5200,,internet,,iot",
"author": "",
"author_email": "Adafruit Industries <circuitpython@adafruit.com>",
"download_url": "https://files.pythonhosted.org/packages/ad/de/469fd4f6ec6cfbec5e43c8bbaab0b9774e666637b1584c61ad6d9b65cce2/adafruit-circuitpython-wiznet5k-5.0.9.tar.gz",
"platform": null,
"description": "Introduction\n============\n\n.. image:: https://readthedocs.org/projects/wiznet5k/badge/?version=latest\n :target: https://docs.circuitpython.org/projects/wiznet5k/en/latest/\n :alt: Documentation Status\n\n.. image:: https://raw.githubusercontent.com/adafruit/Adafruit_CircuitPython_Bundle/main/badges/adafruit_discord.svg\n :target: https://adafru.it/discord\n :alt: Discord\n\n.. image:: https://github.com/adafruit/Adafruit_CircuitPython_Wiznet5k/workflows/Build%20CI/badge.svg\n :target: https://github.com/adafruit/Adafruit_CircuitPython_Wiznet5k/actions\n :alt: Build Status\n\n.. image:: https://img.shields.io/badge/code%20style-black-000000.svg\n :target: https://github.com/psf/black\n :alt: Code Style: Black\n\nPure-Python interface for WIZNET 5k ethernet modules.\n\nDependencies\n=============\nThis driver depends on:\n\n* `Adafruit CircuitPython <https://github.com/adafruit/circuitpython>`_\n* `Bus Device <https://github.com/adafruit/Adafruit_CircuitPython_BusDevice>`_\n\nPlease ensure all dependencies are available on the CircuitPython filesystem.\nThis is easily achieved by downloading\n`the Adafruit library and driver bundle <https://circuitpython.org/libraries>`_.\n\nInstalling from PyPI\n=====================\nOn supported GNU/Linux systems like the Raspberry Pi, you can install the driver locally `from\nPyPI <https://pypi.org/project/adafruit-circuitpython-wiznet5k/>`_. To install for current user:\n\n.. code-block:: shell\n\n pip3 install adafruit-circuitpython-wiznet5k\n\nTo install system-wide (this may be required in some cases):\n\n.. code-block:: shell\n\n sudo pip3 install adafruit-circuitpython-wiznet5k\n\nTo install in a virtual environment in your current project:\n\n.. code-block:: shell\n\n mkdir project-name && cd project-name\n python3 -m venv .venv\n source .venv/bin/activate\n pip3 install adafruit-circuitpython-wiznet5k\n\nUsage Example\n=============\nThis example demonstrates making a HTTP GET request to\nwifitest.adafruit.com.\n\n.. code-block:: python\n\n import board\n import busio\n import digitalio\n import adafruit_connection_manager\n import adafruit_requests\n from adafruit_wiznet5k.adafruit_wiznet5k import WIZNET5K\n\n print(\"Wiznet5k WebClient Test\")\n\n TEXT_URL = \"http://wifitest.adafruit.com/testwifi/index.html\"\n JSON_URL = \"http://api.coindesk.com/v1/bpi/currentprice/USD.json\"\n\n cs = digitalio.DigitalInOut(board.D10)\n spi_bus = busio.SPI(board.SCK, MOSI=board.MOSI, MISO=board.MISO)\n\n # Initialize ethernet interface with DHCP\n eth = WIZNET5K(spi_bus, cs)\n\n # Initialize a requests session\n pool = adafruit_connection_manager.get_radio_socketpool(eth)\n ssl_context = adafruit_connection_manager.get_radio_ssl_context(eth)\n requests = adafruit_requests.Session(pool, ssl_context)\n\n print(\"Chip Version:\", eth.chip)\n print(\"MAC Address:\", [hex(i) for i in eth.mac_address])\n print(\"My IP address is:\", eth.pretty_ip(eth.ip_address))\n print(\"IP lookup adafruit.com: %s\" %eth.pretty_ip(eth.get_host_by_name(\"adafruit.com\")))\n\n\n #eth._debug = True\n print(\"Fetching text from\", TEXT_URL)\n r = requests.get(TEXT_URL)\n print('-'*40)\n print(r.text)\n print('-'*40)\n r.close()\n\n print()\n print(\"Fetching json from\", JSON_URL)\n r = requests.get(JSON_URL)\n print('-'*40)\n print(r.json())\n print('-'*40)\n r.close()\n\n print(\"Done!\")\n\nThis example demonstrates a simple web server that allows setting the Neopixel color.\n\n.. code-block:: python\n\n import board\n import busio\n import digitalio\n import neopixel\n\n from adafruit_wiznet5k.adafruit_wiznet5k import WIZNET5K\n import adafruit_wiznet5k.adafruit_wiznet5k_wsgiserver as server\n from adafruit_wsgi.wsgi_app import WSGIApp\n\n print(\"Wiznet5k Web Server Test\")\n\n # Status LED\n led = neopixel.NeoPixel(board.NEOPIXEL, 1)\n led.brightness = 0.3\n led[0] = (0, 0, 255)\n\n # W5500 connections\n cs = digitalio.DigitalInOut(board.D10)\n spi_bus = busio.SPI(board.SCK, MOSI=board.MOSI, MISO=board.MISO)\n\n # Initialize Ethernet interface with DHCP\n eth = WIZNET5K(spi_bus, cs)\n\n # Here we create our application, registering the\n # following functions to be called on specific HTTP GET requests routes\n\n web_app = WSGIApp()\n\n @web_app.route(\"/led/<r>/<g>/<b>\")\n def led_on(request, r, g, b):\n print(\"LED handler\")\n led.fill((int(r), int(g), int(b)))\n return (\"200 OK\", [], [\"LED set!\"])\n\n @web_app.route(\"/\")\n def root(request):\n print(\"Root handler\")\n return (\"200 OK\", [], [\"Root document\"])\n\n @web_app.route(\"/large\")\n def large(request):\n print(\"Large pattern handler\")\n return (\"200 OK\", [], [\"*-.-\" * 2000])\n\n\n # Here we setup our server, passing in our web_app as the application\n server.set_interface(eth)\n wsgiServer = server.WSGIServer(80, application=web_app)\n\n print(\"Open this IP in your browser: \", eth.pretty_ip(eth.ip_address))\n\n # Start the server\n wsgiServer.start()\n while True:\n # Our main loop where we have the server poll for incoming requests\n wsgiServer.update_poll()\n # Maintain DHCP lease\n eth.maintain_dhcp_lease()\n # Could do any other background tasks here, like reading sensors\n\nDocumentation\n=============\n\nAPI documentation for this library can be found on `Read the Docs <https://docs.circuitpython.org/projects/wiznet5k/en/latest/>`_.\n\nFor information on building library documentation, please check out `this guide <https://learn.adafruit.com/creating-and-sharing-a-circuitpython-library/sharing-our-docs-on-readthedocs#sphinx-5-1>`_.\n\nContributing\n============\n\nContributions are welcome! Please read our `Code of Conduct\n<https://github.com/adafruit/Adafruit_CircuitPython_Wiznet5k/blob/main/CODE_OF_CONDUCT.md>`_\nbefore contributing to help this project stay welcoming.\n\nLicense\n=============\n\nThis library was written by `Arduino LLC <https://github.com/arduino-libraries/Ethernet/blob/master/AUTHORS>`_. We've converted it to work\nwith `CircuitPython <https://circuitpython.org/>`_ and made changes so it works similarly to `CircuitPython's WIZNET5k wrapper for the WIZnet\n5500 Ethernet interface <https://docs.circuitpython.org/en/latest/shared-bindings/wiznet/wiznet5k.html>`_ and CPython's `Socket low-level\nnetworking interface module <https://docs.python.org/3.8/library/socket.html>`_.\n\nThis open source code is licensed under the LGPL license (see LICENSE for details).\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "Pure-Python interface for WIZNET 5k ethernet modules.",
"version": "5.0.9",
"project_urls": {
"Homepage": "https://github.com/adafruit/Adafruit_CircuitPython_Wiznet5k"
},
"split_keywords": [
"adafruit",
"blinka",
"circuitpython",
"micropython",
"wiznet5k",
"ethernet",
"",
"wiznet",
"",
"w5500",
"",
"w5200",
"",
"internet",
"",
"iot"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "9e70b6d8e9309c652a9265e9758d67ac0e7633d0b008e4f2b53fe52922e0f457",
"md5": "a0e56b2789d98e28f6559c9146885cac",
"sha256": "ecf0df3752445a9075229b34251775a12ad203ccdc63b4bde499d82b790f728d"
},
"downloads": -1,
"filename": "adafruit_circuitpython_wiznet5k-5.0.9-py3-none-any.whl",
"has_sig": false,
"md5_digest": "a0e56b2789d98e28f6559c9146885cac",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 38065,
"upload_time": "2024-03-11T21:50:22",
"upload_time_iso_8601": "2024-03-11T21:50:22.393036Z",
"url": "https://files.pythonhosted.org/packages/9e/70/b6d8e9309c652a9265e9758d67ac0e7633d0b008e4f2b53fe52922e0f457/adafruit_circuitpython_wiznet5k-5.0.9-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "adde469fd4f6ec6cfbec5e43c8bbaab0b9774e666637b1584c61ad6d9b65cce2",
"md5": "b3c54059d9676fd216ef55f9bbf4a702",
"sha256": "4f0b5e716310a85f8751ba35273914ed80b057f7aae749e4bde94af79fcc7a6f"
},
"downloads": -1,
"filename": "adafruit-circuitpython-wiznet5k-5.0.9.tar.gz",
"has_sig": false,
"md5_digest": "b3c54059d9676fd216ef55f9bbf4a702",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 59854,
"upload_time": "2024-03-11T21:50:24",
"upload_time_iso_8601": "2024-03-11T21:50:24.078601Z",
"url": "https://files.pythonhosted.org/packages/ad/de/469fd4f6ec6cfbec5e43c8bbaab0b9774e666637b1584c61ad6d9b65cce2/adafruit-circuitpython-wiznet5k-5.0.9.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-03-11 21:50:24",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "adafruit",
"github_project": "Adafruit_CircuitPython_Wiznet5k",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"requirements": [],
"lcname": "adafruit-circuitpython-wiznet5k"
}