CircuitPython

Для работы с датчиком QIIC используем библиотеку adafruit_ahtx0 (ссылка в конце урока). Всё, что нам нужно сделать для её установки — это скопировать файл adafruit_ahtx0.mpy в папку lib на накопителе CIRCUITPY.

Более подробно о работе с библиотеками CircuitPython мы писали в одном из ранних наших уроков: Библиотеки для CircuitPython

УСТАНОВКА ЗАВИСИМОСТЕЙ

Чтобы библиотека adafruit_ahtx0 заработала, необходимо будет добавить еще две «зависимости»:

  • adafruit_bus_device
  • adafruit_register

Все эти библиотеки есть в сборнике от Adafruit. Точно также, копируем их на накопитель CIRCUITPY.

Программа

Для составления программы используем среду разработки Mu.

Пусть, самая первая наша программа будет выводить в последовательный порт значения температуры и относительной влажности. Начнём с подключения всех необходимых библиотек. Помним, что в python это делается с помощью команды import.

Кроме adafruit_ahtx0 нам будут нужны еще три библиотеки:

  • time — предоставляет функцию sleep для организации паузы;
  • board — хранит названия всех контактов платы контроллера и их синонимы.
import time
import board
import adafruit_ahtx0

i2c = board.I2C()
sensor = adafruit_ahtx0.AHTx0(i2c)

while True:
    print("\nTemperature: %0.1f C" % sensor.temperature)
    print("Humidity: %0.1f %%" % sensor.relative_humidity)
    time.sleep(2)

Сохраняем программу и открываем монитор последовательного порта (кнопка «Последовательный»). Датчик должен выдавать поток чисел каждые 2 секунды.

Temperature: 20.8 C
Humidity: 38.9 %

Temperature: 20.8 C
Humidity: 38.9 %
...

В заключении

Несмотря на лучшие, относительно DHT11 и DHT22 характеристики, датчик AHT20 имеет ряд недостатков. Они обусловлены типом чувствительного элемента. Ёмкостные элементы имеют склонность к старению, загрязнению и дрейфу калибровочных значений.

Кроме того, все датчики требуют регулярной калибровки, что тоже сопряжено с различными проблемами.

Как вы уже понял, точное измерение относительной влажности — сложный процесс, подверженный искажениям из-за множества факторов. Благо, что в большинстве DIY-задач такой точности не требуется.


Изменено: