Показаны различия между двумя версиями страницы.
Предыдущая версия справа и слеваПредыдущая версияСледующая версия | Предыдущая версия | ||
products:laboratory_iot_c:exp65 [2024/12/05 15:59] – [Эксперимент 65. Wi-Fi термометр] 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) | + | |
</ | </ | ||
- | Когда происходит обращение к веб-серверу по адресу / (корневая директория, | + | Когда происходит обращение к веб-серверу по адресу / (корневая директория, |