===== Эксперимент 66. Wi-Fi термометр в режиме точки доступа ===== В прошлом эксперименте мы сделали полноценный термометр с доступом по IP адресу. Он подключается к существующей сети Wi-Fi, и пользователь тоже подключается к той же сети для соединения с термометром. В такой схеме подключения задействованы три устройства: сам ночник, Wi-Fi роутер и устройство клиента (смартфон или компьютер). {{ :products:esp-iot:exp37_net.png?nolink |}} Но наша плата может работать сама в режиме точки доступа. В таком случае можно установить соединение между платой и клиентским устройством (смартфоном или ноутбуком) напрямую. Для этого нужно настроить микроконтроллер на работу в режиме точки доступа. {{ :products:esp-iot:exp37_net2.png?nolink |}} Схему прошлого эксперимента оставляем без изменений, но немного изменим код. ==== Программный код эксперимента ==== import time from machine import I2C, Pin import onewire import ds18x20 from micropyserver import MicroPyServer import network import gc _init() gc.collect() ap_id = "WIFI_TEMP" ap_pass = "12345678" # the device is on GPIO12 ow = onewire.OneWire(Pin(12)) # create the onewire object ds = ds18x20.DS18X20(ow) ap = network.WLAN(network.AP_IF) ap.active(True) ap.config(essid=ap_id, password=ap_pass) time.sleep(2) while ap.isconnected() == False: pass print('Device IP:', ap.ifconfig()[0]) def show_message(request, params): ''' request handler ''' roms = ds.scan() ds.convert_temp() time.sleep_ms(750) for rom in roms: temp = str(ds.read_temp(rom)) server.send(temp) server = MicroPyServer() ''' add request handler ''' server.add_route("/", show_message) ''' start server ''' server.start() Создаем объект интерфейса, но на этот раз настраиваем его как точку доступа ap = network.WLAN(network.AP_IF) Настраиваем свойства точки доступа. А именно устанавливаем имя сети и пароль ap.config(essid=ap_id, password=ap_pass) Других принципиальных отличий программы от программы из предыдущего эксперимента нет. После запуска программы видим нашу сеть среди списка доступных на смартфоне или на ноутбуке {{ :products:esp-iot:whatsapp_image_2021-04-25_at_18.30.06.jpeg?nolink |}} Необходимо подключиться к нашей точке доступа. Сообщение об отсутствии интернета — нормально. Ведь откуда ему взяться в нашей сети? Ведь сейчас микроконтроллер не подключен к сети, в которой есть интернет. Сейчас он сам точка доступа. Однако отсутствие интернета никак не помешает подключиться к нашему веб-серверу и посмотреть температуру как раньше, ведь интернет для этого не нужен. Обмен данными происходит внутри локальной сети, образованной микроконтроллером и клиентским устройством. После установки соединения в терминал будет выведен IP адрес, который принадлежит микроконтроллеру. В нашем случае это ''192.168.4.1''. Именно этот адрес и нужно теперь вводить в адресную строку браузера. Адрес из прошлого эксперимента уже не подойдет, ведь теперь у нас совсем другая сеть. {{ :products:esp-iot:whatsapp_image_2021-04-25_at_18.31.07.jpeg?nolink&400 |}}