Показаны различия между двумя версиями страницы.
Следующая версия | Предыдущая версия | ||
products:laboratory_iot:exp33 [2020/05/21 13:45] – создано labuser29 | products:laboratory_iot:exp33 [2024/12/04 12:15] (текущий) – [Программный код эксперимента] labuser30 | ||
---|---|---|---|
Строка 1: | Строка 1: | ||
+ | ===== Эксперимент 33. Термометр ===== | ||
+ | |||
+ | Теперь, | ||
+ | |||
==== Схема эксперимента ==== | ==== Схема эксперимента ==== | ||
- | Оставляем схему собранную на прошлом эксперименте. | ||
{{ : | {{ : | ||
// | // | ||
+ | |||
+ | Добавляем подключения дисплея | ||
{{ : | {{ : | ||
// | // | ||
+ | |||
+ | ==== Программный код эксперимента ==== | ||
+ | <file python Exp33.py[enable_line_numbers=" | ||
+ | from machine import Pin, I2C | ||
+ | from esp8266_i2c_lcd import I2cLcd | ||
+ | import time | ||
+ | import math | ||
+ | |||
+ | _init() | ||
+ | |||
+ | Bcoef = 3950 | ||
+ | R1 = 10000 | ||
+ | Rtnom = 10000 | ||
+ | T0 = 273.15 | ||
+ | |||
+ | adc = machine.ADC(0) | ||
+ | |||
+ | |||
+ | DEFAULT_I2C_ADDR = 0x3F # Или 0x27 в зависимости от модели микросхемы на плате | ||
+ | |||
+ | |||
+ | i2c = I2C(scl=Pin(5), | ||
+ | lcd = I2cLcd(i2c, DEFAULT_I2C_ADDR, | ||
+ | lcd.backlight_on() | ||
+ | |||
+ | |||
+ | while True: | ||
+ | value = adc.read() | ||
+ | |||
+ | R = (-R1 * value)/ | ||
+ | |||
+ | temp = 1 / (math.log(R / Rtnom) / Bcoef + 1/(25+T0)) -T0 | ||
+ | |||
+ | round_temp = round(temp, 1) | ||
+ | |||
+ | print(round_temp) | ||
+ | | ||
+ | lcd.clear() | ||
+ | lcd.putstr(" | ||
+ | time.sleep(3) | ||
+ | </ | ||
+ | |||
+ | К предыдущей программе добавили то, что требуется для работы с дисплеем. Подключение библиотеки дисплея, | ||
+ | |||
+ | Температуру перед выводом на экран округляем до десятых (один знак после точки): | ||
+ | <code python[enable_line_numbers=" | ||
+ | round_temp = round(temp, 1) | ||
+ | </ | ||
+ | |||
+ | Перед выводом информации очищаем дисплей от старых данных. При этом курсор дисплея устанавливается в левый верхний угол. | ||
+ | |||
+ | <code python[enable_line_numbers=" | ||
+ | lcd.clear() | ||
+ | </ | ||
+ | |||
+ | Формируем строку для вывода на дисплей. Она состоит из подстроки ''" | ||
+ | |||
+ | <code python[enable_line_numbers=" | ||
+ | lcd.putstr(" | ||
+ | </ | ||
+ | |||
+ | ==== Дополнительное задание ==== | ||
+ | <WRAP center round tip 60%> | ||
+ | 1. Измени программу, | ||
+ | |||
+ | 2. Добавь символ градуса после показаний температуры. Символ градуса [[products: | ||
+ | </ | ||