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-задач такой точности не требуется.
