Показаны различия между двумя версиями страницы.
| Следующая версия | Предыдущая версия | ||
| products:laboratory_iot_c:exp62 [2024/12/06 17:17] – создано labuser30 | products:laboratory_iot_c:exp62 [2024/12/06 22:04] (текущий) – [Программный код эксперимента] labuser30 | ||
|---|---|---|---|
| Строка 19: | Строка 19: | ||
| < | < | ||
| <form action="/"> | <form action="/"> | ||
| - | Red: <input type="text" name=" | + | Red: <input type="number" name=" |
| - | Green: <input type="text" name=" | + | Green: <input type="number" name=" |
| - | Blue: <input type="text" name=" | + | Blue: <input type="number" name=" |
| <input type=" | <input type=" | ||
| </ | </ | ||
| Строка 29: | Строка 29: | ||
| Теперь наша форма имеет три текстовых поля с именами '' | Теперь наша форма имеет три текстовых поля с именами '' | ||
| - | |||
| - | <WRAP center round important 60%> | ||
| - | Сохрани эту страницу в корне файловой системы микроконтроллера под именем rgb_page.html | ||
| - | </ | ||
| Код программы: | Код программы: | ||
| - | < | + | < |
| - | from micropyserver import MicroPyServer | + | #include < |
| - | import time | + | #include < |
| - | from machine import Pin, PWM | + | |
| - | import network | + | |
| - | import gc | + | |
| - | _init() | + | |
| - | gc.collect() | + | |
| - | LedR = PWM(Pin(13, Pin.OUT)) | + | #define WIFI_NAME |
| - | LedG = PWM(Pin(14, Pin.OUT)) | + | #define WIFI_PASSWORD " |
| - | LedB = PWM(Pin(15, Pin.OUT)) | + | |
| - | wlan_id = " | + | #define PIN_LED_R 13 |
| - | wlan_pass = " | + | #define PIN_LED_G 14 |
| + | #define PIN_LED_B 15 | ||
| - | wlan = network.WLAN(network.STA_IF) | + | ESP8266WebServer server(80); |
| - | wlan.active(True) | + | |
| - | wlan.connect(wlan_id, | + | |
| - | time.sleep(1) | + | |
| - | while wlan.isconnected() == False: | + | void indexPage() { |
| - | | + | int duty_r |
| + | int duty_g | ||
| + | | ||
| - | print(' | + | if (server.hasArg(" |
| + | if (server.hasArg(" | ||
| + | if (server.hasArg(" | ||
| + | |||
| + | analogWrite(PIN_LED_R, | ||
| + | analogWrite(PIN_LED_G, | ||
| + | analogWrite(PIN_LED_B, | ||
| + | String page = "< | ||
| + | page += "< | ||
| + | page += "< | ||
| + | page += "</ | ||
| + | page += "< | ||
| + | page += R" | ||
| + | page += R" | ||
| + | page += R" | ||
| + | page += R" | ||
| + | page += R" | ||
| + | page += "</ | ||
| + | page += "</ | ||
| + | page += "</ | ||
| - | def index(request, params): | + | page.replace("< |
| - | | + | |
| - | duty_g | + | |
| - | | + | server.send(200, |
| + | } | ||
| - | if (' | + | void setup() { |
| - | | + | |
| - | LedR.duty(1023 - int(duty_r)) | + | |
| + | pinMode(PIN_LED_R, OUTPUT); | ||
| + | pinMode(PIN_LED_G, | ||
| + | pinMode(PIN_LED_B, | ||
| + | analogWriteRange(256); | ||
| + | analogWrite(PIN_LED_R, | ||
| + | analogWrite(PIN_LED_G, | ||
| + | analogWrite(PIN_LED_B, | ||
| - | if (' | + | Serial.print(" |
| - | | + | |
| - | LedG.duty(1023 - int(duty_g)) | + | WiFi.begin(WIFI_NAME, |
| + | while (WiFi.status() != WL_CONNECTED) { | ||
| + | | ||
| + | delay(500); | ||
| + | } | ||
| + | Serial.println(); | ||
| + | Serial.println(" | ||
| + | Serial.print(" | ||
| + | Serial.println(WiFi.localIP()); | ||
| - | if (' | + | server.on("/", |
| - | duty_b = params[' | + | server.begin(); |
| - | LedB.duty(1023 - int(duty_b)) | + | } |
| - | + | void loop() { | |
| - | + | server.handleClient(); | |
| - | html_file = open("rgb_page.html") | + | } |
| - | html = html_file.read() | + | |
| - | + | ||
| - | html = html.replace('< | + | |
| - | html = html.replace('< | + | |
| - | html = html.replace('< | + | |
| - | + | ||
| - | html_file.close() | + | |
| - | | + | |
| - | + | ||
| - | + | ||
| - | LedR.duty(0) | + | |
| - | LedG.duty(0) | + | |
| - | LedB.duty(0) | + | |
| - | + | ||
| - | + | ||
| - | server = MicroPyServer() | + | |
| - | server.add_route("/", | + | |
| - | server.start() | + | |
| </ | </ | ||
| Строка 106: | Строка 113: | ||
| </ | </ | ||
| - | Следует обратить внимание, | + | Следует обратить внимание, |
| + | |||
| + | <code python[enable_line_numbers=" | ||
| + | analogWriteRange(256); | ||
| + | </ | ||