Показаны различия между двумя версиями страницы.
| Предыдущая версия справа и слеваПредыдущая версияСледующая версия | Предыдущая версия | ||
| products:laboratory_iot_c:exp65 [2024/12/05 16:06] – [Программный код эксперимента] labuser30 | products:laboratory_iot_c:exp65 [2024/12/05 16:31] (текущий) – [Программный код эксперимента] labuser30 | ||
|---|---|---|---|
| Строка 13: | Строка 13: | ||
| ==== Программный код эксперимента ==== | ==== Программный код эксперимента ==== | ||
| - | < | + | < |
| - | 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() | + | |
| - | # the device is on GPIO12 | + | #define WIFI_NAME |
| - | ow = onewire.OneWire(Pin(12)) | + | #define WIFI_PASSWORD " |
| + | #define BUS_PIN 12 //the device is on GPIO12 | ||
| - | # create the onewire object | + | OneWire oneWire(BUS_PIN); |
| - | ds = ds18x20.DS18X20(ow) | + | DallasTemperature sensors(& |
| - | wlan_id = " | + | ESP8266WebServer server(80); |
| - | wlan_pass = " | + | |
| - | + | void showMessage() { | |
| - | wlan = network.WLAN(network.STA_IF) | + | |
| - | wlan.active(True) | + | float tempC = sensors.getTempCByIndex(0); |
| - | wlan.connect(wlan_id, wlan_pass) | + | |
| - | time.sleep(1) | + | } |
| - | + | ||
| - | while wlan.isconnected() == False: | + | void setup() { |
| - | pass | + | |
| - | + | | |
| - | print(' | + | |
| - | + | | |
| - | def show_message(request, params): | + | WiFi.mode(WIFI_STA); |
| - | ''' | + | |
| - | roms = ds.scan() | + | while (WiFi.status() != WL_CONNECTED) { |
| - | | + | |
| - | | + | |
| - | + | } | |
| - | for rom in roms: | + | |
| - | temp = str(ds.read_temp(rom)) | + | Serial.println(" |
| - | | + | |
| - | + | | |
| - | server = MicroPyServer() | + | |
| - | ''' | + | server.on("/", |
| - | server.add_route("/", | + | server.begin(); |
| - | ''' | + | } |
| - | server.start() | + | |
| + | void loop() { | ||
| + | | ||
| + | } | ||
| </ | </ | ||
| - | <WRAP center round alert 60%> | + | Код подключения к сети и создания веб-сервера был изучен в предыдущих экспериментах, поэтому здесь повторно останавливаться на этом не будем. |
| - | Перед запуском программы необходимо | + | |
| - | </ | + | |
| - | <WRAP center round download 60%> | + | |
| - | {{ : | + | |
| - | </ | + | |
| - | Код подключения к сети и создания веб- сервера был изучен в предыдущих экспериментах, поэтому здесь | + | Создаем шину 1-Wire на 12 выводе |
| - | Создаем шину 1-Wire на 12 выводе микроконтроллера и создаем объект датчика температуры DS18B20 (подробно о работе с [[theory: | + | < |
| - | < | + | |
| # the device is on GPIO12 | # the device is on GPIO12 | ||
| - | ow = onewire.OneWire(Pin(12)) | + | OneWire |
| - | + | DallasTemperature sensors(& | |
| - | # create the onewire object | + | |
| - | ds = ds18x20.DS18X20(ow) | + | |
| </ | </ | ||
| - | Когда происходит обращение к веб-серверу по адресу / (корневая директория, | + | Когда происходит обращение к веб-серверу по адресу / (корневая директория, |