Показаны различия между двумя версиями страницы.
| products:laboratory_iot_c:exp40 [2024/11/24 11:18] – создано labuser30 | products:laboratory_iot_c:exp40 [2024/11/24 11:29] (текущий) – [Программный код эксперимента] labuser30 | ||
|---|---|---|---|
| Строка 9: | Строка 9: | ||
| ==== Программный код эксперимента ==== | ==== Программный код эксперимента ==== | ||
| - | < | + | < |
| - | import time | + | #include < |
| - | import onewire | + | #include < |
| - | import ds18x20 | + | #include < |
| - | from machine import I2C, Pin | + | |
| - | from esp8266_i2c_lcd import I2cLcd | + | |
| - | _init() | + | |
| - | DEFAULT_I2C_ADDR | + | #define BUS_PIN 12 |
| + | # | ||
| - | i2c = I2C(scl=Pin(5), sda=Pin(4), freq=400000) | + | OneWire oneWire(BUS_PIN); |
| - | lcd = I2cLcd(i2c, DEFAULT_I2C_ADDR, | + | DallasTemperature sensors(& |
| - | lcd.backlight_on() | + | LCDI2C_Generic |
| - | def print_lcd(data): | + | void setup() { |
| - | lcd.clear() | + | |
| - | lcd.putstr('Temp: ' + str(data)) | + | |
| + | lcd.setBacklight(0); | ||
| + | } | ||
| - | ow = onewire.OneWire(Pin(12)) | + | void loop() { |
| - | + | sensors.requestTemperatures(); | |
| - | ds = ds18x20.DS18X20(ow) | + | float tempC = sensors.getTempCByIndex(0); |
| - | roms = ds.scan() | + | lcd.clear(); |
| - | + | lcd.print("Temp "); | |
| - | while True: | + | lcd.print(tempC, |
| - | ds.convert_temp() | + | delay(1000); |
| - | time.sleep(2) | + | } |
| - | + | ||
| - | for rom in roms: | + | |
| - | print_lcd(ds.read_temp(rom)) | + | |
| </ | </ | ||