Gratis verzending vanaf €74,95 NL (€99,95 BE/DE)

Voor 16:00 besteld = morgen in huis

Express voor 13:00 besteld = vanavond in huis*

14 dagen gratis terugsturen*


Land

Raspberry Pi Pico – Les 6: Raspberry Pi Pico met wifi voor een mini webserver

Neem de volgende stap in je programmeeravontuur met Les 6, waarin we een WiFi Mini Webserver bouwen met de Raspberry Pi Pico. Deze boeiende les is perfect geschikt voor beginners die willen starten met de Thonny programmeertool en MicroPython. Ontwikkel stap voor stap vaardigheden terwijl je leert hoe je de Raspberry Pi Pico aansluit op je computer, programma’s uploadt en WiFi configureert om een mini webserver te bouwen. Verken de wereld van draadloze connectiviteit en webontwikkeling met de Pico, en ontdek de veelzijdige mogelijkheden van dit compacte apparaat.

Deze handleiding behandeld: 

  • Niveau – Beginner 25% 25%
  • Tijdsduur 15 min 25% 25%
  • Kosten €7,95 8% 8%

Dit is de zesde les uit de introductie projecten voor de Raspberry Pi Pico. Voordat je met deze les start raden we aan om de vorige lessen eerst uit te voeren. Les 5 vind je HIER, les 1 vind je HIER.

Stap 1 – Benodigheden om de wifi te installeren op de Raspberry Pi Pico

Stap 2 – Software installeren op de Raspberry Pi Pico voor de mini webserver

Om de Raspberry Pico te kunnen programmeren met MicroPython moeten we eerst de firmware flashen van de Pico.
Dit betekent dat we de interne software waarmee de pico start, voorzien van een speciale python versie.

Download firmware van onderstaande website (uf2 file)
https://micropython.org/download/RPI_PICO_W/
(Zorg dat je de goede versie van de firmware selecteert, de wifi versie en de niet-wifi versie zijn verschillend)
Druk op de witte bootsel knop op de pico en blijf deze ingedruk houden.
Plug de pico in een USB poort van je computer. (Daarna kun je de knop loslaten)
Er zal nu een schijfletter, zoals met een memorystick benaderbaar komen.
Kopieer het firmware bestand RPI_PICO_xxxxxx.uf2 naar deze drive
(pico zal herstarten en de firmware wordt geïnstalleerd)
Download en installeer Thonny op je pc.
( https://thonny.org/ )

Selecteer de MicroPython Interpreter onder
Hulpmiddelen > Opties > Interpreter > MicroPython (Raspberry Pi Pico)

 

Stap 3 – Programmeren van de Raspberry Pi Pico wifi en webserver

Nu kun je in het onderstaande programma overtypen in de Thonny interface.

# boot.py Deze wordt standaard uitgevoerd wanneer je je pico aansluit op de stroom
import network, utime, machine

# Plaats hier je wifi informatie
SSID = "MIJN-ACCESSPOINT"
SSID_WACHTWOORD = "MIJNWIFIWACHTWOORD"

def do_connect():
    sta_if = network.WLAN(network.STA_IF)
    if not sta_if.isconnected():
        sta_if.active(True)
        sta_if.connect(SSID, SSID_WACHTWOORD)
        while not sta_if.isconnected():
            print("Ik probeer te connecten met Wifi")
            utime.sleep(1)
    print('Connected! Network config:', sta_if.ifconfig())    
do_connect()

Sla bovenstaande op als boot.py !
Verander natuurlijk de wifi SSID en Wachtwoord zoals jij ze heb geconfigureerd.

Uitleg van het programma in grote lijnen.

De modules voor netwerk (wifi) worden geladen, utime werk hetzelfde als time in dit geval.
Daarna staan de wifi gegevens gedefinieerd in variabelen.

Daarna is er een functie (te zien aan het woord def) gedefinieerd die de wifi connectie probeert op te zetten.

regel 17 : do_connect() 
start de functie 

Op regel 16 staat een regel die netwerk informatie print.

Het tweede programma is de mini webserver.

import socket
import network

html = """<!DOCTYPE html>
<html>
    <head><title>Mijn Pico website</title></head>
        <body> <h1>Mijn Pico website</h1> </body>
</html>
"""

addr = socket.getaddrinfo('0.0.0.0', 80)[0][-1]
s = socket.socket()
s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
s.bind(addr)
s.listen(1)
while True:
    cl, addr = s.accept()
    cl_file = cl.makefile('rwb', 0)
    while True:
        line = cl_file.readline()
        if not line or line == b'\r\n':
            break
    
    cl.send('HTTP/1.0 200 OK\r\nContent-type: text/html\r\n\r\n')
    cl.send(html)
    cl.close()

Uitleg van het programma:

  • importeer socket en network module
  • definieer een html webpagina met variabelenaam html
  • de regels van addr tot en met s.listen zorgen voor het starten van een (socket) webserver op poort 80 (http)
  • de herhalingslus die luistert naar inkomend verkeer op poort 80 en de string (webpagina) stuurt naar de browser van de client

Druk daarna op opslaan, en sla het programma op je eigen computer op.

Druk op het rode stopbord knopje om de ‘backend’ opnieuw te starten.
(Thonny maakt nu opnieuw verbinding met je Pico)

Daarna zou je groene knop (Voer huidig script uit) in kunnen drukken.

Als de pico nu verwijderd wordt van de computer en opnieuw aangesloten zal het programma niet gestart worden.
We hebben alleen de programmeercode getest.

Om het automatisch starten mogelijk te maken moeten we het programma opnieuw opslaan, maar dan de pico selecteren.
Bestand > Opslaan als > Raspberry Pi Pico

Sla het programma op met de naam main.py. De pico zal het programma met deze naam automatisch starten bij het aansluiten van de Pico op een USB-poort of een andere voeding.

Nadat boot.py is uitgevoerd om de netwerkverbinding te maken, wordt main.py gestart.

Als je nu de Pico start zul je in Thonny iets vergelijkbaars zien staan als onderstaande:

Connecting to your wifi…
Connected! Network config: (‘192.168.192.185’, ‘255.255.255.0’, ‘192.168.192.23’, ‘192.168.192.23’)

Het eerste IP nummer is het nummer dat toegekend is aan de pico.
Die zal bij jou anders zijn dan in dit voorbeeld.
Deze kun je in je browser als volgt in de adresbalk typen.

http://192.168.192.185/

Als alles nu goed is gegaan zie je een website met de tekst:

raspberry pico webserver

Stap 4 – Resultaat: Mini webserver met wifi op de Raspberry Pi Pico

Je hebt nu je eigen Raspberry Pi Pico Webserver gebouwd. Heb je alle 6 de Raspberry Pi Pico lessen gevolgd? Dan ben je klaar om zelf verder te experimenteren met het Raspberry Pi Pico platform! Veel bouw en programmeerplezier!

De waardering van www.elektronicavoorjou.nl bij WebwinkelKeur Reviews is 9.3/10 gebaseerd op 5004 reviews.