Difference between revisions of "Third example"

From MyWiki
Jump to: navigation, search
(Created page with "<source lang = "python"> import network import socket import time from machine import Pin led = Pin(15, Pin.OUT) ssid = 'YOUR NETWORK NAME' password = 'YOUR NETWORK PASSWOR...")
 
 
(13 intermediate revisions by the same user not shown)
Line 1: Line 1:
 +
This code was from the official manual, but it didn't work<br>
 +
I had to add and and initialise the variable "stateis"<br><br>
 +
Modify code at  beginning from:
 +
<source lang = "python">
 +
led = Pin(15, Pin.OUT)
 +
</source>
 +
to:
 +
<source lang = "python">
 +
led = machine.Pin("LED", machine.Pin.OUT)
 +
 +
stateis = ""
 +
</source>
 +
Now everything works<br>
 
<source lang = "python">
 
<source lang = "python">
 
import network
 
import network
Line 6: Line 19:
 
from machine import Pin
 
from machine import Pin
  
led = Pin(15, Pin.OUT)
+
led = machine.Pin("LED", machine.Pin.OUT)
  
ssid = 'YOUR NETWORK NAME'
+
stateis = ""
password = 'YOUR NETWORK PASSWORD'
+
 
 +
ssid = 'dlink2'
 +
password = 'bananatree'
  
 
wlan = network.WLAN(network.STA_IF)
 
wlan = network.WLAN(network.STA_IF)
 
wlan.active(True)
 
wlan.active(True)
 
wlan.connect(ssid, password)
 
wlan.connect(ssid, password)
 
+
 
html = """<!DOCTYPE html>
 
html = """<!DOCTYPE html>
<html>
+
<html>
    <head> <title>Pico W</title> </head>
+
  <head> <title>Pico W</title> </head>
    <body> <h1>Pico W</h1>
+
  <body> <h1>Pico W</h1>
        <p>%s</p>
+
  Switches on and off the on board LED on my Pico W
    </body>
+
      <p>%s</p>
</html>
+
  </body>
"""
+
</html>
 
+
"""
 +
 +
# Wait for connect or fail
 
max_wait = 10
 
max_wait = 10
 
while max_wait > 0:
 
while max_wait > 0:
Line 31: Line 48:
 
     print('waiting for connection...')
 
     print('waiting for connection...')
 
     time.sleep(1)
 
     time.sleep(1)
 
+
 +
# Handle connection error
 
if wlan.status() != 3:
 
if wlan.status() != 3:
 
     raise RuntimeError('network connection failed')
 
     raise RuntimeError('network connection failed')
Line 38: Line 56:
 
     status = wlan.ifconfig()
 
     status = wlan.ifconfig()
 
     print( 'ip = ' + status[0] )
 
     print( 'ip = ' + status[0] )
 
+
 +
# Open socket
 
addr = socket.getaddrinfo('0.0.0.0', 80)[0][-1]
 
addr = socket.getaddrinfo('0.0.0.0', 80)[0][-1]
  
Line 44: Line 63:
 
s.bind(addr)
 
s.bind(addr)
 
s.listen(1)
 
s.listen(1)
 
+
 
print('listening on', addr)
 
print('listening on', addr)
 
+
 
# Listen for connections
 
# Listen for connections
 
while True:
 
while True:
Line 60: Line 79:
 
         print( 'led on = ' + str(led_on))
 
         print( 'led on = ' + str(led_on))
 
         print( 'led off = ' + str(led_off))
 
         print( 'led off = ' + str(led_off))
 
+
 
         if led_on == 6:
 
         if led_on == 6:
 
             print("led on")
 
             print("led on")
 
             led.value(1)
 
             led.value(1)
 
             stateis = "LED is ON"
 
             stateis = "LED is ON"
 
+
 
         if led_off == 6:
 
         if led_off == 6:
 
             print("led off")
 
             print("led off")
 
             led.value(0)
 
             led.value(0)
 
             stateis = "LED is OFF"
 
             stateis = "LED is OFF"
 
+
        #stateis = "LED"
 
         response = html % stateis
 
         response = html % stateis
  

Latest revision as of 15:11, 12 February 2023

This code was from the official manual, but it didn't work
I had to add and and initialise the variable "stateis"

Modify code at beginning from:

 led = Pin(15, Pin.OUT)

to:

led = machine.Pin("LED", machine.Pin.OUT)
 
stateis = ""

Now everything works

import network
import socket
import time
 
from machine import Pin
 
led = machine.Pin("LED", machine.Pin.OUT)
 
stateis = ""
 
ssid = 'dlink2'
password = 'bananatree'
 
wlan = network.WLAN(network.STA_IF)
wlan.active(True)
wlan.connect(ssid, password)
 
html = """<!DOCTYPE html>
 <html>
   <head> <title>Pico W</title> </head>
   <body> <h1>Pico W</h1>
  Switches on and off the on board LED on my Pico W
       <p>%s</p>
   </body>
 </html>
 """
 
# Wait for connect or fail
max_wait = 10
while max_wait > 0:
    if wlan.status() < 0 or wlan.status() >= 3:
        break
    max_wait -= 1
    print('waiting for connection...')
    time.sleep(1)
 
# Handle connection error
if wlan.status() != 3:
    raise RuntimeError('network connection failed')
else:
    print('connected')
    status = wlan.ifconfig()
    print( 'ip = ' + status[0] )
 
# Open socket
addr = socket.getaddrinfo('0.0.0.0', 80)[0][-1]
 
s = socket.socket()
s.bind(addr)
s.listen(1)
 
print('listening on', addr)
 
# Listen for connections
while True:
    try:
        cl, addr = s.accept()
        print('client connected from', addr)
        request = cl.recv(1024)
        print(request)
 
        request = str(request)
        led_on = request.find('/light/on')
        led_off = request.find('/light/off')
        print( 'led on = ' + str(led_on))
        print( 'led off = ' + str(led_off))
 
        if led_on == 6:
            print("led on")
            led.value(1)
            stateis = "LED is ON"
 
        if led_off == 6:
            print("led off")
            led.value(0)
            stateis = "LED is OFF"
        #stateis = "LED"
        response = html % stateis
 
        cl.send('HTTP/1.0 200 OK\r\nContent-type: text/html\r\n\r\n')
        cl.send(response)
        cl.close()
 
    except OSError as e:
        cl.close()
        print('connection closed')