硬體:機智雲開發板
參考程式:MicroPython – Getting Started with MQTT on ESP32/ESP8266
燒錄暨編寫工具:uPyCraft
boot.py:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | # Complete project details at https://RandomNerdTutorials.com try: import usocket as socket except: import socket from machine import Pin, PWM import network import esp esp.osdebug(None) import gc gc.collect() ssid = 'cmlin2' password = '0928931103' station = network.WLAN(network.STA_IF) station.active(True) station.connect(ssid, password) while station.isconnected() == False: pass print('Connection successful') print(station.ifconfig()) led = Pin(2, Pin.OUT) |
main.py:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 | import time # Complete project details at https://RandomNerdTutorials.com def web_page(): if led.value() == 1: gpio_state="ON" else: gpio_state="OFF" html = """<html><head> <title>ESP Web Server</title> <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="icon" href="data:,"> <style>html{font-family: Helvetica; display:inline-block; margin: 0px auto; text-align: center;} h1{color: #0F3376; padding: 2vh;}p{font-size: 1.5rem;}.button{display: inline-block; background-color: #e7bd3b; border: none; border-radius: 4px; color: white; padding: 16px 40px; text-decoration: none; font-size: 30px; margin: 2px; cursor: pointer;} .button2{background-color: #4286f4;}</style></head><body> <h1>ESP Web Server</h1> <p>GPIO state: <strong>""" + gpio_state + """</strong></p><p><a href="/?led=on"><button class="button">ON</button></a></p> <p><a href="/?led=off"><button class="button button2">OFF</button></a></p></body></html>""" return html s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.bind(('', 80)) s.listen(5) while True: conn, addr = s.accept() print('Got a connection from %s' % str(addr)) request = conn.recv(1024) request = str(request) print('Content = %s' % request) led_on = request.find('/?led=on') led_off = request.find('/?led=off') if led_on == 6: print('LED ON') led.value(0) RedLED = PWM(Pin(15)) GreedLED = PWM(Pin(12)) BlueLED= PWM(Pin(13)) RedLED.duty(0) GreedLED.duty(0) BlueLED.duty(0) for i in range(0, 1024, 10): RedLED.duty(i) time.sleep(0.01) RedLED.duty(0) for i in range(0, 1024, 10): GreedLED.duty(i) time.sleep(0.01) GreedLED.duty(0) for i in range(0, 1024, 10): BlueLED.duty(i) time.sleep(0.01) BlueLED.duty(0) if led_off == 6: print('LED OFF') led.value(1) RedLED = PWM(Pin(15)) GreedLED = PWM(Pin(12)) BlueLED= PWM(Pin(13)) RedLED.duty(0) GreedLED.duty(0) BlueLED.duty(0) response = web_page() conn.send('HTTP/1.1 200 OK\n') conn.send('Content-Type: text/html\n') conn.send('Connection: close\n\n') conn.sendall(response) conn.close() |
沒有留言:
張貼留言