MicroPython:Платы/ESP8266/Руководство по MicroPython для ESP8266/Температура и влажность: различия между версиями
Myagkij (обсуждение | вклад) Нет описания правки |
Myagkij (обсуждение | вклад) Нет описания правки |
||
Строка 5: | Строка 5: | ||
=Температура и влажность<ref>[http://docs.micropython.org/en/latest/esp8266/tutorial/dht.html docs.micropython.org - Temperature and Humidity]</ref>= | =Температура и влажность<ref>[http://docs.micropython.org/en/latest/esp8266/tutorial/dht.html docs.micropython.org - Temperature and Humidity]</ref>= | ||
DHT-датчики (от англ. «Digital Humidity & Temperature», т.е. «цифровые данные о влажности и температуре») – это недорогие цифровые устройства с емкостными датчиками влажности и термисторами для измерения показателей окружающего воздуха. В них также есть чип, выполняющий аналогово-цифровое преобразование и оснащенный интерфейсом OneWire. В более новых версиях есть также интерфейс I2C. | DHT-датчики (от англ. ''«Digital Humidity & Temperature»'', т.е. ''«цифровые данные о влажности и температуре»'') – это недорогие цифровые устройства с емкостными датчиками влажности и термисторами для измерения показателей окружающего воздуха. В них также есть чип, выполняющий аналогово-цифровое преобразование и оснащенный интерфейсом OneWire. В более новых версиях есть также интерфейс [[I2C]]. | ||
У датчиков DHT11 (синий) и DHT22 (белый) одинаковый интерфейс OneWire, но объекты им нужны разные, потому что DHT22 выполняет более сложные вычисления. У DHT22 разрешение возвращаемых значений – один знак после запятой, у DHT11 – целые числа. | У датчиков [[DHT11]] (синий) и [[DHT22]] (белый) одинаковый интерфейс [[OneWire]], но объекты им нужны разные, потому что [[DHT22]] выполняет более сложные вычисления. У [[DHT22]] разрешение возвращаемых значений – один знак после запятой, у [[DHT11]] – целые числа. | ||
В MicroPython для считывания данных с DHT- | В [[MicroPython]] для считывания данных с [[DHT-датчик]]ов используется собственная версия протокола [[OneWire]], а не тот, что был разработан компанией [[Dallas]]. Полезная нагрузка включает в себя значение влажности, значение температуры и контрольное число. | ||
Чтобы воспользоваться интерфейсом OneWire, создайте объекты датчиков, указав контакт для передачи данных, к которому они подключены: | Чтобы воспользоваться интерфейсом [[OneWire]], создайте объекты датчиков, указав контакт для передачи данных, к которому они подключены: | ||
<syntaxhighlight lang="python" enclose="div"> | <syntaxhighlight lang="python" enclose="div"> | ||
Строка 33: | Строка 33: | ||
Значения, возвращаемые temperature(), будут в градусах Цельсия, а значения, возвращаемые humidity() – в процентах относительной влажности. | Значения, возвращаемые temperature(), будут в градусах Цельсия, а значения, возвращаемые humidity() – в процентах относительной влажности. | ||
В целях получения наиболее точного результата DHT11 нужно вызывать не более 1 раза в секунду, а DHT22 – не более двух раз в секунду. Со временем точность датчика будет ухудшаться. У DHT11 и DHT22 разный диапазон считываемых значений. Более подробно смотрите в документации к каждому датчику. | В целях получения наиболее точного результата [[DHT11]] нужно вызывать не более 1 раза в секунду, а [[DHT22]] – не более двух раз в секунду. Со временем точность датчика будет ухудшаться. У [[DHT11]] и [[DHT22]] разный диапазон считываемых значений. Более подробно смотрите в документации к каждому датчику. | ||
В режиме OneWire используется только три из четырех контактов датчика, но в режиме I2C используются все четыре контакта. У старых моделей может быть четыре контакта, даже несмотря на то, что они не поддерживают работу в режиме I2C. | В режиме [[OneWire]] используется только три из четырех контактов датчика, но в режиме [[I2C]] используются все четыре контакта. У старых моделей может быть четыре контакта, даже несмотря на то, что они не поддерживают работу в режиме [[I2C]]. | ||
Их 3-ий контакт просто не подключен. | Их 3-ий контакт просто не подключен. | ||
Строка 41: | Строка 41: | ||
Конфигурации контактов | Конфигурации контактов | ||
* Датчик без I2C в режиме OneWire (например, DHT11, DHT22, AM2301, AM2302): | * Датчик без [[I2C]] в режиме [[OneWire]] (например, [[DHT11]], [[DHT22]], [[AM2301]], [[AM2302]]): | ||
** 1=VDD (питание), 2=Data (данные), 3=NC (не подключен), 4=GND (земля) | ** 1=VDD (питание), 2=Data (данные), 3=NC (не подключен), 4=GND (земля) | ||
* Датчик с I2C в режиме OneWire (например, DHT12, AM2320, AM2321, AM2322): | * Датчик с [[I2C]] в режиме [[OneWire]] (например, [[DHT12]], [[AM2320]], [[AM2321]], [[AM2322]]): | ||
** 1=VDD, 2=Data, 3=GND, 4=GND | ** 1=VDD, 2=Data, 3=GND, 4=GND | ||
* Датчик с I2C в режиме I2C (например, DHT12, AM2320, AM2321, AM2322): | * Датчик с [[I2C]] в режиме [[I2C]] (например, [[DHT12]], [[AM2320]], [[AM2321]], [[AM2322]]): | ||
** 1=VDD, 2=SDA (данные), 3=GND, 4=SCL (тактовый сигнал) | ** 1=VDD, 2=SDA (данные), 3=GND, 4=SCL (тактовый сигнал) | ||
Для контактов Data, SDA и SCL нужно использовать подтягивающий резистор. | Для контактов [[Data]], [[SDA]] и [[SCL]] нужно использовать подтягивающий резистор. | ||
У новых I2C- | У новых [[I2C-датчик]]ов есть обратная совместимость с режимом [[OneWire]] – для этого контакты 3 и 4 нужно подключить к [[GND]] (т.е. заземлить). Это отключит интерфейс [[I2C]]. | ||
Датчики DHT22 теперь продаются под названием AM2302, но это все те же самые датчики. | Датчики [[DHT22]] теперь продаются под названием [[AM2302]], но это все те же самые датчики. | ||
=См.также= | =См.также= |
Версия от 13:52, 1 июля 2020
Температура и влажность[1]
DHT-датчики (от англ. «Digital Humidity & Temperature», т.е. «цифровые данные о влажности и температуре») – это недорогие цифровые устройства с емкостными датчиками влажности и термисторами для измерения показателей окружающего воздуха. В них также есть чип, выполняющий аналогово-цифровое преобразование и оснащенный интерфейсом OneWire. В более новых версиях есть также интерфейс I2C.
У датчиков DHT11 (синий) и DHT22 (белый) одинаковый интерфейс OneWire, но объекты им нужны разные, потому что DHT22 выполняет более сложные вычисления. У DHT22 разрешение возвращаемых значений – один знак после запятой, у DHT11 – целые числа.
В MicroPython для считывания данных с DHT-датчиков используется собственная версия протокола OneWire, а не тот, что был разработан компанией Dallas. Полезная нагрузка включает в себя значение влажности, значение температуры и контрольное число.
Чтобы воспользоваться интерфейсом OneWire, создайте объекты датчиков, указав контакт для передачи данных, к которому они подключены:
>>> import dht
>>> import machine
>>> d = dht.DHT11(machine.Pin(4))
>>> import dht
>>> import machine
>>> d = dht.DHT22(machine.Pin(4))
Затем измерьте и прочтите их значения:
>>> d.measure()
>>> d.temperature()
>>> d.humidity()
Значения, возвращаемые temperature(), будут в градусах Цельсия, а значения, возвращаемые humidity() – в процентах относительной влажности.
В целях получения наиболее точного результата DHT11 нужно вызывать не более 1 раза в секунду, а DHT22 – не более двух раз в секунду. Со временем точность датчика будет ухудшаться. У DHT11 и DHT22 разный диапазон считываемых значений. Более подробно смотрите в документации к каждому датчику.
В режиме OneWire используется только три из четырех контактов датчика, но в режиме I2C используются все четыре контакта. У старых моделей может быть четыре контакта, даже несмотря на то, что они не поддерживают работу в режиме I2C.
Их 3-ий контакт просто не подключен.
Конфигурации контактов
- Датчик без I2C в режиме OneWire (например, DHT11, DHT22, AM2301, AM2302):
- 1=VDD (питание), 2=Data (данные), 3=NC (не подключен), 4=GND (земля)
- Датчик с I2C в режиме OneWire (например, DHT12, AM2320, AM2321, AM2322):
- 1=VDD, 2=Data, 3=GND, 4=GND
- Датчик с I2C в режиме I2C (например, DHT12, AM2320, AM2321, AM2322):
- 1=VDD, 2=SDA (данные), 3=GND, 4=SCL (тактовый сигнал)
Для контактов Data, SDA и SCL нужно использовать подтягивающий резистор.
У новых I2C-датчиков есть обратная совместимость с режимом OneWire – для этого контакты 3 и 4 нужно подключить к GND (т.е. заземлить). Это отключит интерфейс I2C.
Датчики DHT22 теперь продаются под названием AM2302, но это все те же самые датчики.