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...")
 
Line 3: Line 3:
 
import socket
 
import socket
 
import time
 
import time
 +
import machine
  
 
from machine import Pin
 
from machine import Pin
 
+
led = machine.Pin("LED", machine.Pin.OUT)
led = Pin(15, Pin.OUT)
+
stateis = ""
 
+
 
ssid = 'YOUR NETWORK NAME'
+
ssid = 'dlink2'
password = 'YOUR NETWORK PASSWORD'
+
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>
+
      <p>%s</p>
    </body>
+
  </body>
</html>
+
</html>
"""
+
"""
 
+
 +
# Wait for connect or fail
 
max_wait = 10
 
max_wait = 10
 
while max_wait > 0:
 
while max_wait > 0:
Line 31: Line 33:
 
     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 41:
 
     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 48:
 
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 64:
 
         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
  

Revision as of 16:34, 11 February 2023

import network
import socket
import time
import machine
 
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>
       <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')