Показаны различия между двумя версиями страницы.
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)) | + | |
</ | </ | ||