Zum Hauptinhalt springen

Wi-Fi-Netzwerk

Was dieses Beispiel zeigt​

Das Beispiel verbindet sich mit Ihrem Wi-Fi-Netzwerk, ruft mit einer einfachen HTTP-GET-Anfrage eine kleine Testseite von micropython.org ab und gibt die gesamte Antwort auf dem Bildschirm aus. Tragen Sie vor dem Ausführen Ihren Netzwerknamen und Ihr Passwort in ssid und password ein.

Dieses Beispiel verwendet außerdem die eigenen MicroPython-Module network und socket (Grundlagen zu network), die nicht zu den Inkplate-Modulen gehören.

Beispielcode​

"""Connect to WiFi and fetch data from the internet."""

# Include needed libraries
from inkplate7spectra import Inkplate

# Enter your WiFi credentials here
ssid = "YOUR_SSID_HERE"
password = "YOUR_PASSWORD_HERE"


# Function which connects to WiFi
# More info here: https://docs.micropython.org/en/latest/esp8266/tutorial/network_basics.html
def do_connect():
import network

sta_if = network.WLAN(network.STA_IF)
if not sta_if.isconnected():
print("connecting to network...")
sta_if.active(True)
sta_if.connect(ssid, password)
while not sta_if.isconnected():
pass
print("network config:", sta_if.ifconfig())


# This function does a HTTP GET request
# More info here: https://docs.micropython.org/en/latest/esp8266/tutorial/network_tcp.html
def http_get(url):
import socket

res = ""
_, _, host, path = url.split("/", 3)
addr = socket.getaddrinfo(host, 80)[0][-1]
s = socket.socket()
s.connect(addr)
s.send(bytes("GET /%s HTTP/1.0\r\nHost: %s\r\n\r\n" % (path, host), "utf8"))
while True:
data = s.recv(100)
if data:
res += str(data, "utf8")
else:
break
s.close()
return res


# First, connect
do_connect()

# Do a GET request to the micropython test page
# If you were to do a GET request to a different page/resource, change the URL here
response = http_get("http://micropython.org/ks/test.html")

# Create and initialize our Inkplate object
inkplate = Inkplate()
inkplate.begin()

# Set text size to double from the original size, so we can see the text better
inkplate.set_text_size(1)

# Print response line by line
inkplate.print(response)

# Display image from buffer in full refresh
inkplate.display()

Verwendete Funktionen​

network.WLAN(network.STA_IF)returns WLAN

MicroPython: die Wi-Fi-Station-Schnittstelle. Das Beispiel ruft darauf isconnected(), active(True), connect(ssid, password) und ifconfig() auf.

ReturnsDas Schnittstellenobjekt.

socket.socket()returns socket

MicroPython: ein TCP-Socket. Das Beispiel löst den Host mit socket.getaddrinfo() auf und ruft dann connect(), send(), recv(100) auf, bis der Server die Verbindung schließt, sowie close().

ReturnsDas Socket-Objekt.

Inkplate()returns Inkplate

Erstellt das Display-Objekt aus dem Modul inkplate7spectra.

ReturnsDas Display-Objekt.

inkplate.begin()returns bool

Richtet das Board und einen weißen Framebuffer ein. Rufen Sie sie nur einmal auf.

ReturnsTrue.

inkplate.set_text_size(s)returns None

Legt den Skalierungsfaktor des Textes fest, hier 1 (der Kommentar darüber sagt „doppelt“, der Wert ist aber 1).

ReturnsNichts.

inkplate.print(text)returns None

Zeichnet den Text an der Cursorposition, beginnend in der oberen linken Ecke. Ein Zeilenumbruch im Text beginnt eine neue Zeile.

ReturnsNichts.

inkplate.display(leave_on=False)returns None

Sendet den Framebuffer an das Panel und aktualisiert es.

ReturnsNichts.

Was Sie erwartet​

Die Shell gibt connecting to network... aus (nur wenn das Board noch nicht verbunden war), danach network config: gefolgt von den Netzwerkeinstellungen des Boards. Nach dem Refresh zeigt der Bildschirm die HTTP-Antwort der Testseite als Text: zuerst die Header, dann den HTML-Code der Seite.

🔗Vollständiges Beispiel öffnen

examples/inkplate7spectra/example_network.py

→