Содержание
Контроль за температурой является самым частым условием при использовании автоматики, особенно когда автоматика используется для повышения комфорта жизни. Поэтому, для начинающего исследователя домашней автоматики на Arduino будет полезен опыт подключения датчика к блоку.
Такой контроль за температурой может понадобиться в домашней автоматике. Конечно, в контексте данной статьи может говорить об «Умном доме» на платформе Arduino не уместно, но тем не менее, многие полезные вещи для домашнего быта можно реализовать на столь простом и доступном контроллере.
Всё, что нам понадобится на данном этапе изучения контроллера на основе Arduino — это датчик температуры DHT11 или DHT22 в сборке на плате, блок Arduino и компьютер, через который будет закачиваться скетч и контроль за показаниями. И конечно же три провода для подсоединения датчика к плате Arduino.
Видео — Датчик влажности и температуры DHT11 и Arduino
Вся работа будет проводиться на компьютере, где установлена ОС Ubuntu из семейства Linux. Тем не менее, можно всё то же самое сделать и в других операционных системах.
Пошаговая инструкция и схема подключения DHT11 к Arduino
Для начала необходимо подсоединить датчик DHT11 к плате Arduino по следующей схеме.
- Как видно, дня наших целей даже не понадобится монтажная плата.
- Теперь необходимо скачать библиотеку для датчиков температуры из Интернета (https://github.com/adafruit/DHT-sensor-library/archive/master.zip). В данной библиотеке есть уже пример скетча для закачки в Arduino.
- Полученный файл необходимо распаковать. Программа Arduino IDE может загружать библиотеки из ZIP файлов. Но в нашем случае она не сможет этого сделать, так как в архиве папка содержит недопустимые символы. Поэтому распаковываем архив и полученную папку переименовываем на короткую DHT.
- После этого можно добавить библиотеку через программу Arduino IDE (Скетч -> Импортировать библиотеку… -> Add Library…). Либо можно вручную добавить папку с файлами в директорию /домашняя_папка/sketchbook/libraries/. Но в этом случае необходимо будет перезапустить Arduino IDE, чтобы та считала доступные библиотеки для использования.
В загруженной на компьютер библиотеке уже имеется готовый пример скетча для загрузки в Arduino. Загрузим данную программу (Файл -> Папка со скетчами -> libraries -> DHT -> DHTtester) в терминал Arduino IDE.
- После этого, нажав на стрелочку вправо (загрузить), скомпилируем программу и загрузим её на плату Arduino через USB соединение. Первый раз программа может выдать предупреждение, что последовательный порт COM1 не обнаружен. Жмём «ОК» для использования другого порта (/dev/ttyACM0). Теперь наша программа загружена в Arduino и может считывать температуру и влажность.
Соединяемся с Ubuntu
Но мы не может посмотреть температуру, которую выдаёт наш собранный прибор. Для этого в Ubuntu можно установить специальную программу, которая считывает данные, поступающие на последовательный порт. Эта программа называется CuteCom.
Через «Центр приложений Ubuntu» ищем данную программу и устанавливаем на компьютер. После этого запускаем её и вводим в поле Device: «/dev/ttyACM0». После нажимаем кнопку «Open Device» и наблюдаем данные, которые получает компьютер через USB.
Если всё было подключено правильно и в программе не было ошибок, то можно увидеть показания температуры, которые обновляются каждые 2 секунды. Это значение можно изменить при желании. Но можно увидеть показания неправильной температуры и влажности, когда вместо 24 градусов устройство выдаёт 616 градусов. А вместо 50% влажности — видим 1777%.
Может возникнуть ощущение, что датчик был подключен неправильно. Но если всё ещё раз проверить, то ошибки соединения не допущено.
Тут всё обстоит совершенно по другому. Библиотека DHT рассчитана на то, что она обрабатывает показания как термодатчиков DHT11, так и DHT22. По умолчанию в примере программы незакомментированной является строка для датчика DHT22, и если Вы использовали DHT11, то будут неправильные показания. Всё, что осталось сделать — это закомментировать строку для DHT22 и раскомментировать для DHT11. После этого загрузить новый скетч на плату Arduino и наблюдать в программе CuteCom правильные показания.
Не забудьте во время перезагрузки скетча на плату отключить устройство в CuteCom.