Skip to content

Technik Blog

Programmieren | Arduino | ESP32 | MicroPython | Python | Raspberry Pi | Raspberry Pi Pico

Menu
  • Smarthome
  • Gartenautomation
  • Arduino
  • ESP32 & Co.
  • Raspberry Pi & Pico
  • Solo Mining
  • Deutsch
  • English
Menu

Raspberry Pi Pico W – Webseite ins Internet veröffentlichen

Posted on 20. Juli 202229. April 2023 by Stefan Draeger

In diesem Beitrag zeige ich dir, wie du eine Webseite des Raspberry Pi Pico W ins Internet veröffentlichen kannst.

Dem Raspberry Pi Pico W habe ich bereits einige Beiträge gewidmet wie zbsp.:

  • Raspberry Pi Pico W mit Wi-Fi Support
  • Raspberry Pi Pico W – Webserver programmieren

Dort habe ich dir gezeigt, wie du eine Webseite auf dem Mikrocontroller erstellst und in dein lokales Wi-Fi-Netzwerk einbindest. Nun soll es darum gehen, wie du diese ins Internet veröffentlichst.

Der Einfachheit möchte ich nur eine einfache Webseite mit der Zeichenkette „Hello World!“ veröffentlichen. Du kannst dieses aber auch auf andere, komplexere Webseiten adaptieren.

  • Warum kann ich nicht direkt auf den Pi Pico zugreifen?
  • Benötigte Ressourcen für dieses Projekt
  • Aufbau der Verbindung und Webseite
  • Erstellen eines DynDNS Accounts
  • Fritz!Box einrichten
  • Portfreigabe
  • Testen der Konfiguration im Browser
  • Fazit & Ausblick

Warum kann ich nicht direkt auf den Pi Pico zugreifen?

Dazu muss man erkennen, dass es zwei getrennte Netzwerke gibt, zum einen das Internet welches hinter einem Router (FritzBox!, SpeedPort, etc.) und das interne Wi-Fi, LAN Netzwerk welches in der Wohnung / im Haus zu erreichen ist.

Der Router übernimmt dabei die Schnittstelle zwischen diesen beiden Netzwerken. Im normalen Zustand können wir von jedem Gerät aus unserem internen Wi-Fi oder LAN Netzwerk auf das Internet zugreifen. Jedoch können wir nicht andersherum aus dem Internet auf ein Gerät zugreifen (das ist auch gut so).

vereinfachter Aufbau der Kommunikation
Vereinfachter Aufbau der Kommunikation

Wenn wir nun den Raspberry Pi Pico W für den Zugriff aus dem Internet berechtigen wollen, müssen wir im Router einige Einstellungen für diesen treffen.

Zum einen muss der Mikrocontroller immer dieselbe IP-Adresse erhalten und der Port, über welchen dieser kommunizieren soll, muss geöffnet werden.

Achtung: ein geöffneter Port kann eine potenzielle Schwachstelle zum eigenen Netzwerk sein, daher sollte diese Freigabe nur solange existieren wie nötig. Und vor allem sollte nur ein Port geöffnet werden, keine Range!

Benötigte Ressourcen für dieses Projekt

Für den Nachbau benötigst du:

  • einen Raspberry Pi Pico W,
  • ein Micro-USB-Datenkabel

Da ich hier nur eine einfache Seite ohne Sensordaten etc. ausliefern möchte, benötigen wir nur den Mikrocontroller mit einem passenden USB-Kabel.

Aufbau der Verbindung und Webseite

Hier das kleine MicroPython Programm mit der ebenso einfachen Webseite.

Du musst an diesem Skript noch deine Daten (SSID und Passwort) in den entsprechenden Feldern eintragen.

import network
import socket
import time

from machine import Pin

ssid = '*****'
password = '******'

wlan = network.WLAN(network.STA_IF)
wlan.active(True)
wlan.connect(ssid, password)

html = '<!DOCTYPE html><html><head><title>Raspberry Pi Pico W</title></head><body><h1>Hello World!</h1></body></html>'
print('waiting for connection...')
max_wait = 10
while max_wait > 0:
    if wlan.status() < 0 or wlan.status() >= 3:
        break
    max_wait -= 1
    print('.', end='')
    time.sleep(1)

print('')

if wlan.status() != 3:
    raise RuntimeError('network connection failed')
else:
    print('connected')
    status = wlan.ifconfig()
    print('ip = ' + status[0])

addr = socket.getaddrinfo('0.0.0.0', 80)[0][-1]

s = socket.socket()
s.bind(addr)
s.listen(1)

print('listening on', addr)

while True:
    try:
        cl, addr = s.accept()
        print('client connected from', addr)
       
        cl.send('HTTP/1.0 200 OK\r\nContent-type: text/html\r\n\r\n')
        cl.send(html)
        cl.close()

    except OSError as e:
        cl.close()
        print('connection closed')

Wenn wir dieses Programm nun auf dem Mikrocontroller starten, dann wird eine Verbindung aufgebaut und die IP-Adresse in der Konsole angezeigt.

MicroPython v1.19.1-88-g74e33e714 on 2022-06-30; Raspberry Pi Pico W with RP2040

Type "help()" for more information.
>>> %Run -c $EDITOR_CONTENT
waiting for connection...
.......
connected
ip = 192.168.178.70
listening on ('0.0.0.0', 80)

Diese IP-Adresse können wir nun im Browser eingeben und erhalten unsere kleine Zeichenkette „Hello World!“.

Ausgabe der Zeile "Hello World!" im Browser
Ausgabe der Zeile „Hello World!“ im Browser

Erstellen eines DynDNS Accounts

Unser Router erhält nach 24h eine neue IP-Adresse, dieses bedeutet, dass wir, um sicher auf den Mikrocontroller zugreifen können immer erst diese IP-Adresse ermitteln müssen um dann die URL zu bilden. Das ist recht umständlich und daher nutzt man dazu einen DynDNS Service wie http://freedns.afraid.org/.

Ein Überblick zu den kostenfreien DynDNS Anbieter findest du unter https://www.ionos.de/digitalguide/server/tools/dyndns-anbieter-im-ueberblick/

In meinem Fall erstelle ich einen Account beim Dienst freedns.afraid.org. Dieser Dienst ist kostenfrei und recht gut dokumentiert.

Konto erstellen auf freedns.afraid.org
Konto erstellen auf freedns.afraid.org

Wenn du alles ausgefüllt und eine E-Mail mit dem Aktivierungslink erhalten hast, dann kannst du aus dem Dashboard deine erste Subdomain erstellen.

Subdomain auf freedns_afraid einrichten
Subdomain auf freedns_afraid einrichten

Fritz!Box einrichten

Im Nachfolgenden zeige ich dir, wie du eine Subdomain für diesen Dienst auf deiner Fritz!Box einrichtest.

Öffne dazu zunächst dein Dashboard der Fritz!Box unter fritz.box und klicke dich durch den Pfad „Internet“ > „Freigaben“ und wähle dort den Reiter „DynDNS“.

Zunächst musst du den Haken bei „DynDNS benutzen“ aktivieren und wählst aus der Auswahlliste „DynDNS-Anbieter“ den letzten Eintrag „Benutzerdefiniert“ aus.

Einrichten eines DynDNS Accounts in der Fritz!Box
Einrichten eines DynDNS Accounts in der Fritz!Box

Die benötigten Daten für die Felder findest du auf der Seite „Dynamic DNS„.

Hauptmenü von freedns_afraid
Hauptmenü von freedns_afraid

Auf der geöffneten Seite scrollen wir bis nach unten, wählen unserer zuvor erstellten Subdomain den Link „Direct URL“ (1) und öffnen das Kontextmenü mit der rechten Maustaste. Aus diesem Menü wählen wir den Eintrag „Adresse des Links kopieren“ (2) aus und kehren zurück zur Seite der Fritz!Box.

kopieren der "Direct URL"
kopieren der „Direct URL“

In das Feld „Update URL“ fügen wir den Link aus der Zwischenablage mit Strg+V ein.
Das Feld „Domainname“ wird mit der URL unserer erstellten Domain befüllt.
Die beiden Felder „Benutzername“ & „Kennwort“ werden jeweils mit „guest“ befüllt.

Portfreigabe

Im letzten Schritt müssen wir nun die Portfreigabe in der Fritz!Box für den Raspberry Pi Pico W einrichten.

Dazu wechseln wir in den Reiter „Portfreigaben“ (1) und wählen dort die Schaltfläche „Gerät für Freigaben hinzufügen“ (2).

Fritz!Box Dialog Portfreigaben
Fritz!Box Dialog Portfreigaben

Im neuen Fenster wählen wir nun aus der Liste der Geräte den Eintrag „PYBD“ aus (PYBD > PiBoard).

Portfreigabe für den Pi Pico W einrichten
Portfreigabe für den Pi Pico W einrichten

Es sollten nun die Felder „IPv4-Adresse“ & „MAC-Adresse“ vorbelegt werden.

Nun müssen wir noch den Port definieren, dazu klicken wir auf die Schaltfläche „Neue Freigabe“ unten rechts im Fenster.

Im neuen Dialog wählen wir zunächst den Punkt „Portfreigabe“ aus. Danach können wir aus der Auswahlliste „Anwendung“ den Eintrag „HTTP-Server“ auswählen und die Schaltfläche „OK“ betätigen.

HTTP Portfreigabe einrichten
HTTP Portfreigabe einrichten

Wenn wir nun auf die Übersichtsseite „Portfreigaben“ zurückkehren, dann sollten wir einen neuen aktiven Eintrag auffinden.

aktive Portfreigabe für den Raspberry Pi Pico W für das bereitstellen einer Webseite ins Internet
aktive Portfreigabe für den Raspberry Pi Pico W für das bereitstellen einer Webseite ins Internet

Die kleine grüne Lampe dient dabei zum Erkennen, ob der Mikrocontroller aktiv und somit erreichbar ist.

Testen der Konfiguration im Browser

Wenn wir nun die Adresse im Browser öffnen, dann wird uns die Zeichenkette „Hello World!“ angezeigt.

Fazit & Ausblick

Die Einrichtung eines DynDNS Accouns in der Fritz!Box ist recht einfach, zum Problem wird hier nur einen zuverlässigen Dienst zu finden.

Wir haben nun eine Adresse im Internet mit einem Zugriff auf den Raspberry Pi Pico W, da diese Seite jeder sehen kann, welcher die Adresse kennt, wollen wir im nächsten Schritt ein Login Dialog mit Benutzername & Passwort einbauen.

3 thoughts on “Raspberry Pi Pico W – Webseite ins Internet veröffentlichen”

  1. Klein Martin sagt:
    2. März 2023 um 17:44 Uhr

    Gibt es schon den nächsten Schritt:
    „ein Login Dialog mit Benutzername & Passwort einbauen.“ ?
    Danke und Viele Grüße

    Antworten
  2. Pingback: WisdPi ArduPico - Raspberry Pi Pico Adapter - Technik Blog
  3. Matthias Trabandt sagt:
    22. April 2025 um 20:09 Uhr

    Ganz vielen Dank für dieses Script. Ich habe as auf meinem Pico W ausprobiert und es läuft wunderbar. Ich bin neu in der Pico W Welt und möchte eigentlich etwas anderes: Statt vom Pico W in eine Website zu schreiben möchte ich auf eine Datei zugreifen, welche auf dem NAS der Fritz!-Box liegt, um dort Daten hineinzuschreiben (gemessene Temperatur).
    Geht so etwas?
    Ganz vielen Dank!

    Antworten

Schreibe einen Kommentar Antworten abbrechen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Fragen oder Feedback?

Du hast eine Idee, brauchst Hilfe oder möchtest Feedback loswerden?
Support-Ticket erstellen

Newsletter abonnieren

Bleib auf dem Laufenden: Erhalte regelmäßig Updates zu neuen Projekten, Tutorials und Tipps rund um Arduino, ESP32 und mehr – direkt in dein Postfach.

Jetzt Newsletter abonnieren

Unterstütze meinen Blog

Wenn dir meine Inhalte gefallen, freue ich mich über deine Unterstützung auf Tipeee.
So hilfst du mit, den Blog am Leben zu halten und neue Beiträge zu ermöglichen.

draeger-it.blog auf Tipeee unterstützen

Vielen Dank für deinen Support!
– Stefan Draeger

Kategorien

Tools

  • Unix-Zeitstempel-Rechner
  • ASCII Tabelle
  • Spannung, Strom, Widerstand und Leistung berechnen
  • Widerstandsrechner
  • 8×8 LED Matrix Tool
  • 8×16 LED Matrix Modul von Keyestudio
  • 16×16 LED Matrix – Generator

Links

Blogverzeichnis Bloggerei.de TopBlogs.de das Original - Blogverzeichnis | Blog Top Liste Blogverzeichnis trusted-blogs.com

Stefan Draeger
Königsberger Str. 13
38364 Schöningen
Tel.: 01778501273
E-Mail: info@draeger-it.blog

Folge mir auf

link zu Fabook
link zu LinkedIn
link zu YouTube
link zu TikTok
link zu Pinterest
link zu Instagram
  • Impressum
  • Datenschutzerklärung
  • Disclaimer
  • Cookie-Richtlinie (EU)
©2025 Technik Blog | Built using WordPress and Responsive Blogily theme by Superb
Cookie-Zustimmung verwalten
Wir verwenden Technologien wie Cookies, um Geräteinformationen zu speichern und/oder darauf zuzugreifen. Wir tun dies, um das Surferlebnis zu verbessern und um personalisierte Werbung anzuzeigen. Wenn Sie diesen Technologien zustimmen, können wir Daten wie das Surfverhalten oder eindeutige IDs auf dieser Website verarbeiten. Wenn Sie Ihre Zustimmung nicht erteilen oder zurückziehen, können bestimmte Funktionen beeinträchtigt werden.
Funktional Immer aktiv
Die technische Speicherung oder der Zugang ist unbedingt erforderlich für den rechtmäßigen Zweck, die Nutzung eines bestimmten Dienstes zu ermöglichen, der vom Teilnehmer oder Nutzer ausdrücklich gewünscht wird, oder für den alleinigen Zweck, die Übertragung einer Nachricht über ein elektronisches Kommunikationsnetz durchzuführen.
Vorlieben
Die technische Speicherung oder der Zugriff ist für den rechtmäßigen Zweck der Speicherung von Präferenzen erforderlich, die nicht vom Abonnenten oder Benutzer angefordert wurden.
Statistiken
Die technische Speicherung oder der Zugriff, der ausschließlich zu statistischen Zwecken erfolgt. Die technische Speicherung oder der Zugriff, der ausschließlich zu anonymen statistischen Zwecken verwendet wird. Ohne eine Vorladung, die freiwillige Zustimmung deines Internetdienstanbieters oder zusätzliche Aufzeichnungen von Dritten können die zu diesem Zweck gespeicherten oder abgerufenen Informationen allein in der Regel nicht dazu verwendet werden, dich zu identifizieren.
Marketing
Die technische Speicherung oder der Zugriff ist erforderlich, um Nutzerprofile zu erstellen, um Werbung zu versenden oder um den Nutzer auf einer Website oder über mehrere Websites hinweg zu ähnlichen Marketingzwecken zu verfolgen.
Optionen verwalten Dienste verwalten Verwalten von {vendor_count}-Lieferanten Lese mehr über diese Zwecke
Einstellungen anzeigen
{title} {title} {title}