Предыдущая версия справа и слеваПредыдущая версияСледующая версия | Предыдущая версия |
products:laboratory_iot:exp57 [2020/06/19 10:55] – [Программный код эксперимента] labuser29 | products:laboratory_iot:exp57 [2024/12/05 10:54] (текущий) – [Программный код эксперимента] labuser30 |
---|
===== Эксперимент 57. Простой веб- сервер ===== | ===== Эксперимент 57. Простой веб-сервер ===== |
| |
В прошлом эксперименте мы получили список доступных сетей Wi-Fi. После подключения к одной из них мы станем полноценным участником информационного обмена в ней. Мы сможем быть как клиентом, так и сервером. Как мы уже узнали ранее, клиент — это программа, которая запрашивает данные, а сервер — это программа, которая отдает данные. Сервер ожидает когда клиент к нему подключится и запросит данные. | В прошлом эксперименте мы получили список доступных сетей Wi-Fi. После подключения к одной из них мы станем полноценным участником информационного обмена в ней. Мы сможем быть как клиентом, так и сервером. Как мы уже узнали ранее, клиент — это программа, которая запрашивает данные, а сервер — это программа, которая отдает данные. Сервер ожидает когда клиент к нему подключится и запросит данные. |
В прошлом эксперименте мы получали список доступных Wi-Fi сетей. Необходимо убедиться, что среди них есть нужная сеть — домашняя сеть или сеть, поднятая посредством смартфона. Имя этой сети нужно записать. Также нужно удостовериться, что уровень сигнала достаточный для подключения. Если RSSI (мощность сигнала) менее, чем -70, то необходимо переместиться ближе к точки доступа. | В прошлом эксперименте мы получали список доступных Wi-Fi сетей. Необходимо убедиться, что среди них есть нужная сеть — домашняя сеть или сеть, поднятая посредством смартфона. Имя этой сети нужно записать. Также нужно удостовериться, что уровень сигнала достаточный для подключения. Если RSSI (мощность сигнала) менее, чем -70, то необходимо переместиться ближе к точки доступа. |
| |
Попробуем написать простейший веб- сервер, который будет отвечать на запросы клиентов. Для этого нам потребуется библиотека ''micropyserver''. Ее нужно закачать в корень файловой системы микроконтроллера. | Попробуем написать простейший веб-сервер, который будет отвечать на запросы клиентов. Для этого нам потребуется библиотека ''micropyserver''. Ее нужно закачать в корень файловой системы микроконтроллера. |
Скачать ее можно по ссылке ниже. Как обычно, в архиве 2 версии — в виде исходных кодов с расширением .py и в откомпилированном виде с расширением .mpy. Мы рекомендуем загружать в микроконтроллер откомпилированную версию бибилотеки, а для самостоятельного изучения можно читать код в файле с исходным кодом. | Скачать ее можно по ссылке ниже. Как обычно, в архиве 2 версии — в виде исходных кодов с расширением .py и в откомпилированном виде с расширением .mpy. Мы рекомендуем загружать в микроконтроллер откомпилированную версию библиотеки, а для самостоятельного изучения можно читать код в файле с исходным кодом. |
| |
<WRAP center round download 60%> | <WRAP center round download 60%> |
| |
<WRAP center round important 60%> | <WRAP center round important 60%> |
Первым делом в коде программы нужно заменить ''Wi-Fi_Name'' на имя нужной ести, а ''Wi-Fi_Password'' на пароль от нее. | Первым делом в коде программы нужно заменить ''Wi-Fi_Name'' на имя нужной cети, а ''Wi-Fi_Password'' на пароль от нее. |
</WRAP> | </WRAP> |
| |
</code> | </code> |
| |
В сети есть специальный сервер, который выдает настройки вновь подключаемым устройствам — DHCP сервер. Помимо прочих настроек, он назначет устройствам IP- адреса. После подключения нашего устрйоства, ему был присвоен IP- адрес. Выведем этот адрес в терминал | В сети есть специальный сервер, который выдает настройки вновь подключаемым устройствам — DHCP сервер. Помимо прочих настроек, он назначает устройствам IP- адреса. После подключения нашего устройства, ему был присвоен IP-адрес. Выведем этот адрес в терминал |
<code python[enable_line_numbers="2", start_line_numbers_at="19"]> | <code python[enable_line_numbers="2", start_line_numbers_at="19"]> |
print('Device IP:', wlan.ifconfig()[0]) | print('Device IP:', wlan.ifconfig()[0]) |
</code> | </code> |
| |
Все, теперь на нашем устройстве запущен веб- сервер, который ждет присоединения клиента. Давайте присоединимся. Самое главное условие — чтобы сервер и клиент находились в одной сети. Например, если у тебя дома Wi-Fi роутер, к которому подключился микроконтроллер и к этому же роутеру подключен домашний компьютер, то микроконтроллер и компьютер находятся в одной сети. Тогда мы можем обратиться к нашему серверу с компьютера. | Все, теперь на нашем устройстве запущен веб-сервер, который ждет присоединения клиента. Давайте присоединимся. Самое главное условие — чтобы сервер и клиент находились в одной сети. Например, если у тебя дома Wi-Fi роутер, к которому подключился микроконтроллер и к этому же роутеру подключен домашний компьютер, то микроконтроллер и компьютер находятся в одной сети. Тогда мы можем обратиться к нашему серверу с компьютера. |
| |
Если твой смартфон подключен по Wi-Fi к этому же роутеру, то можно обратиться к серверу с этого смартфона. Но если смартфон не подключен к этому же Wi-Fi роутеру, а выходит в интернет через сотовую вышку — то подключиться с него не получится. Прежде чем попытаться обратиться к серверу убедись, что сервер и клиент находятся в одной сети. После этого в адресной строке браузера нужно набрать IP- адрес, который получил микроконтроллер. | Если твой смартфон подключен по Wi-Fi к этому же роутеру, то можно обратиться к серверу с этого смартфона. Но если смартфон не подключен к этому же Wi-Fi роутеру, а выходит в интернет через сотовую вышку — то подключиться с него не получится. Прежде чем попытаться обратиться к серверу убедись, что сервер и клиент находятся в одной сети. После этого в адресной строке браузера нужно набрать IP- адрес, который получил микроконтроллер. |
В ней всего одна строка, в которой вызывается метод ''send'', отправляющий клиенту ответ. Именно этот текст мы и увидели в браузере. | В ней всего одна строка, в которой вызывается метод ''send'', отправляющий клиенту ответ. Именно этот текст мы и увидели в браузере. |
| |
Таким образом мы написали простейший веб- сервер, который при обращении к нему отправляет строку приветствия. | Таким образом мы написали простейший веб-сервер, который при обращении к нему отправляет строку приветствия. |