Показаны различия между двумя версиями страницы.
Предыдущая версия справа и слеваПредыдущая версияСледующая версия | Предыдущая версия | ||
products:laboratory_iot_c:exp60 [2024/12/06 15:25] – [Программный код эксперимента] labuser30 | products:laboratory_iot_c:exp60 [2024/12/06 21:54] (текущий) – [Программный код эксперимента] labuser30 | ||
---|---|---|---|
Строка 20: | Строка 20: | ||
==== Программный код эксперимента ==== | ==== Программный код эксперимента ==== | ||
- | Сначала создадим файл веб страницы '' | + | Сначала создадим файл веб страницы '' |
<file html page.html[enable_line_numbers=" | <file html page.html[enable_line_numbers=" | ||
+ | < | ||
< | < | ||
< | < | ||
Строка 29: | Строка 30: | ||
< | < | ||
<form action="/"> | <form action="/"> | ||
- | <input type="text" name=" | + | <input type="number" name=" |
<input type=" | <input type=" | ||
</ | </ | ||
Строка 35: | Строка 36: | ||
</ | </ | ||
</ | </ | ||
- | |||
- | <WRAP center round important 60%> | ||
- | Сохрани эту страницу в корне файловой системы микроконтроллера под именем page.html | ||
- | </ | ||
Большинство тегов в HTML состоят из двух частей — открывающего тега и закрывающего, | Большинство тегов в HTML состоят из двух частей — открывающего тега и закрывающего, | ||
- | Внутри тела страницы мы создаем заголовок второго уровня < | + | Внутри тела страницы мы создаем заголовок второго уровня < |
<code html[enable_line_numbers=" | <code html[enable_line_numbers=" | ||
<form action="/"> | <form action="/"> | ||
- | <input type="text" name=" | + | <input type="number" name=" |
<input type=" | <input type=" | ||
</ | </ | ||
Строка 52: | Строка 49: | ||
Форма имеет атрибут '' | Форма имеет атрибут '' | ||
- | Текстовое поле ввода создается тегом < | + | Текстовое поле ввода создается тегом < |
Кнопка отправки формы создаются также тегом input, но с типом type=" | Кнопка отправки формы создаются также тегом input, но с типом type=" | ||
Теперь код программы: | Теперь код программы: | ||
- | < | + | < |
- | from micropyserver import MicroPyServer | + | #include < |
- | import time | + | #include < |
- | from machine import Pin, PWM | + | |
- | import network | + | |
- | import gc | + | |
- | _init() | + | |
- | gc.collect() | + | |
- | + | ||
- | Led = Pin(13, Pin.OUT) | + | |
- | pwmLed = PWM(Led) | + | |
- | + | ||
- | wlan_id = " | + | |
- | wlan_pass = " | + | |
- | + | ||
- | wlan = network.WLAN(network.STA_IF) | + | |
- | wlan.active(True) | + | |
- | wlan.connect(wlan_id, | + | |
- | time.sleep(1) | + | |
- | while wlan.isconnected() == False: | + | #define WIFI_NAME |
- | pass | + | #define WIFI_PASSWORD " |
+ | #define PIN_LED 13 | ||
- | print(' | + | ESP8266WebServer server(80); |
+ | void indexPage() { | ||
+ | if (server.hasArg(" | ||
- | def index(request, params): | + | String page = "< |
- | | + | page += "< |
- | | + | page += "< |
- | | + | page += "</ |
- | | + | page += "< |
- | | + | page += "< |
- | server.send(html, content_type="Content-Type: | + | page += R"(<form action="/"> |
+ | page += R"(<input type=" | ||
+ | page += R"(<input type=" | ||
+ | page += "</ | ||
+ | | ||
+ | page += "</ | ||
+ | |||
+ | server.send(200, " | ||
+ | } | ||
+ | void setup() { | ||
+ | Serial.begin(9600); | ||
+ | Serial.println(); | ||
+ | pinMode(PIN_LED, | ||
+ | analogWriteRange(1024); | ||
+ | analogWrite(PIN_LED, | ||
+ | | ||
+ | Serial.print(" | ||
+ | WiFi.mode(WIFI_STA); | ||
+ | WiFi.begin(WIFI_NAME, | ||
+ | while (WiFi.status() != WL_CONNECTED) { | ||
+ | Serial.print(" | ||
+ | delay(500); | ||
+ | } | ||
+ | Serial.println(); | ||
+ | Serial.println(" | ||
+ | Serial.print(" | ||
+ | Serial.println(WiFi.localIP()); | ||
- | server = MicroPyServer() | + | |
- | server.add_route("/", | + | server.begin(); |
- | server.start() | + | } |
+ | void loop() { | ||
+ | server.handleClient(); | ||
+ | } | ||
</ | </ | ||
<WRAP center round important 60%> | <WRAP center round important 60%> | ||
- | Первым делом в коде программы нужно заменить '' | + | Первым делом в коде программы нужно заменить '' |
</ | </ | ||
- | Главным отличием этой программы от предыдущего эксперимента является работа | + | Главным отличием этой программы от предыдущего эксперимента является |
- | < | + | < |
- | | + | |
- | html = html_file.read() | + | |
- | html_file.close() | + | |
</ | </ | ||
- | Оператор '' | + | Таким образом при обращении пользователя к нашему мини веб-серверу содержимое |
{{ : | {{ : |