понедельник, 23 сентября 2013 г.

Подключение первого датчика (DHT11)


Вот и настало время подключить первый датчик и создать заготовку для дальнейшего приложения, которое по мере сил будет расширятся и дополнятся.
На рисунке приведена схема подключения датчика, я использую плату Arduino Mega и датчик температуры и влажности DHT11.
 
Питание мы возмём непосредственно с платы, для питания датчика необходимо +5В. Сигнальную линию подключил к 52 выводу платы. Собрав эту схему подключим схему к компьютеру, у меня при подключение создался виртуальный порт СОМ3 (возможно у вас будет другой).
 
Теперь приступим к созданию программы или точнее сказать прошивки микроконтроллера. Для этого создадим новый проект Arduino в Microsoft Visual Studio c установленным плагином Visual Micro.
 
 


В качестве имени проекта я указал ArdSmartHouse, вы можете конечно же выбрать своё имя проекта.

После этого мы увидим пустой проект.

Я не буду останавливаться на деталях разработки под ардуино если вы хотите найти информацию по этой теме то можете обратится к соответствующим форумам.
Для работы с датчиком нам потребуется дополнительная библиотека
Я воспользовался вот этой библиотекой:
https://github.com/adalton/arduino/tree/master/projects/Dht_Library
Загрузите её и поместите в соответствующий каталог вашей среды.
Для теста правильного подключения датчика и правильной настройки среды разработки вы можете скопировать данный скетч скомпилировать его и загрузить полученную сборку в ваш микроконтроллер.
 
//---Подключение дополнительных библиотек---
#include <dht11.h>
#include <dht.h>
//---Подключение собственных библиотек---
//---Глобальные объекты---
Dht11 dht11(52);
//---Глобальные переменные---
//---Вспомогательные функции---
void readSensor(Dht& sensor) {
    switch (sensor.read()) {
    case Dht::OK:
        Serial.print("Влажность (%): ");
        Serial.println(sensor.getHumidity());

        Serial.print("Температура (C): ");
        Serial.println(sensor.getTemperature());
        break;

    case Dht::ERROR_CHECKSUM:
        Serial.println("Ошибка CRC");
        break;

    case Dht::ERROR_TIMEOUT:
        Serial.println("Таймаут");
        break;

    default:
        Serial.println("Неизвестная ошибка");
        break;
    }
}
//---Базовая настройка---
void setup()
{
  Serial.begin(9600);
}
//---Основной цикл программы---
void loop()
{
 delay(2000);
 readSensor(dht11);
}
 
Если всё прошло успешно то открыв окно мониторинга порта вы увидите показатели полученные с датчика.
Теперь вы как минимум можете получить данные о температуре и влажности в комнате. Забегая вперёд скажу что бы можете подключить не один а несколько таких датчиков к одной плате, допустим вы захотите один на улицу разместить.
На сегодня всё, я обычно пишу и одновременно слушаю музыку, чему соседи уже явно не рады. ;)
PS: Возможно у вас не получится увидеть надписи на русском, не расстраивайтесь попробуйте поменять кодировку файла на Win-1251.
 

Комментариев нет:

Отправить комментарий