Показаны различия между двумя версиями страницы.
| products:laboratory_iot_c:exp66 [2024/12/05 16:47] – создано labuser30 | products:laboratory_iot_c:exp66 [2024/12/05 16:52] (текущий) – [Программный код эксперимента] labuser30 | ||
|---|---|---|---|
| Строка 12: | Строка 12: | ||
| ==== Программный код эксперимента ==== | ==== Программный код эксперимента ==== | ||
| - | < | + | < |
| - | import time | + | #include < |
| - | from machine import I2C, Pin | + | #include < |
| - | import onewire | + | #include < |
| - | import ds18x20 | + | #include < |
| - | from micropyserver import MicroPyServer | + | |
| - | import network | + | |
| - | import gc | + | |
| - | _init() | + | |
| - | gc.collect() | + | |
| - | ap_id = " | + | #define AP_NAME |
| - | ap_pass = " | + | #define AP_PASSWORD |
| - | + | #define BUS_PIN 12 //the device is on GPIO12 | |
| - | # the device is on GPIO12 | + | |
| - | ow = onewire.OneWire(Pin(12)) | + | |
| - | # create the onewire object | + | OneWire oneWire(BUS_PIN); |
| - | ds = ds18x20.DS18X20(ow) | + | DallasTemperature sensors(& |
| + | ESP8266WebServer server(80); | ||
| - | ap = network.WLAN(network.AP_IF) | + | void showMessage() { |
| - | ap.active(True) | + | |
| - | ap.config(essid=ap_id, password=ap_pass) | + | float tempC = sensors.getTempCByIndex(0); |
| - | time.sleep(2) | + | |
| - | + | } | |
| - | while ap.isconnected() == False: | + | |
| - | pass | + | void setup() { |
| - | + | | |
| - | print(' | + | |
| - | + | ||
| - | def show_message(request, params): | + | WiFi.mode(WIFI_AP); |
| - | ''' | + | WiFi.softAP(AP_NAME, AP_PASSWORD); |
| - | roms = ds.scan() | + | |
| - | ds.convert_temp() | + | |
| - | time.sleep_ms(750) | + | |
| - | + | ||
| - | for rom in roms: | + | server.on("/", |
| - | temp = str(ds.read_temp(rom)) | + | server.begin(); |
| - | | + | } |
| - | + | ||
| - | server = MicroPyServer() | + | void loop() { |
| - | ''' | + | |
| - | server.add_route("/", | + | } |
| - | ''' | + | |
| - | server.start() | + | |
| </ | </ | ||
| - | Создаем объект интерфейса, но на этот раз настраиваем его как | + | Переключаем WiFi в режим точки доступа: |
| - | < | + | < |
| - | ap = network.WLAN(network.AP_IF) | + | WiFi.mode(WIFI_AP); |
| </ | </ | ||
| - | Настраиваем свойства точки доступа. А именно устанавливаем имя сети и пароль | + | Настраиваем свойства точки доступа, а именно устанавливаем имя сети и пароль: |
| - | < | + | < |
| - | ap.config(essid=ap_id, password=ap_pass) | + | WiFi.softAP(AP_NAME, AP_PASSWORD); |
| </ | </ | ||
| + | |||
| + | Получаем IP адрес и печатаем его в последовательный порт: | ||
| + | <code arduino[enable_line_numbers=" | ||
| + | IPAddress IP = WiFi.softAPIP(); | ||
| + | Serial.print(" | ||
| + | Serial.println(IP); | ||
| + | </ | ||
| + | |||
| + | |||
| Других принципиальных отличий программы от программы из предыдущего эксперимента нет. | Других принципиальных отличий программы от программы из предыдущего эксперимента нет. | ||
| Строка 75: | Строка 76: | ||
| {{ : | {{ : | ||
| - | Необходимо подключиться к нашей точке доступа. Сообщение об отсутствии интернета — нормально. Ведь откуда ему взяться в нашей сети? Ведь сейчас микроконтроллер не подключен к сети, в которой есть интернет. Сейчас он сам точка доступа. Однако отсутствие интернета никак не помешает подключиться к нашему веб- серверу и посмотреть температуру как раньше, | + | Необходимо подключиться к нашей точке доступа. Сообщение об отсутствии интернета — нормально. Ведь откуда ему взяться в нашей сети? Ведь сейчас микроконтроллер не подключен к сети, в которой есть интернет. Сейчас он сам точка доступа. Однако отсутствие интернета никак не помешает подключиться к нашему веб-серверу и посмотреть температуру как раньше, |
| После установки соединения в терминал будет выведен IP адрес, который принадлежит микроконтроллеру. В нашем случае это '' | После установки соединения в терминал будет выведен IP адрес, который принадлежит микроконтроллеру. В нашем случае это '' | ||
| {{ : | {{ : | ||