Материалы к набору датчиков для организации умного дома (средний)

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

А если вы только планируете приобрести данный набор, то его можно приобрести в красном, жёлтом, синем и зелёном цветах.

Содержание

Датчик движения HC-SR501

Датчик используется в охранных системах, сигнализациях и прочих проектах, предполагающих обнаружение инфракрасного сигнала.

Работает на расстоянии до 7 метров, угол обнаружения – до 120°. Для эффективной работы датчик должен располагаться вдали от прямых источников света и ветра.

Схема подключения датчика движения HC-SR501

Ниже на изображении представлена схема подключения датчика движения.

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

Код для подключения датчика движения HC-SR501

В примере ниже показано, как подключить вывод датчика движения HC-SR501 к монитору последовательного порта платы (вывод можно посмотреть в мониторе порта Arduino IDE).


#define PIR 3 // датчик на пин 3

void setup() {
pinMode(PIR, INPUT); // определяем пин как вход
Serial.begin(9600); // подключение монитора порта
}

void loop() {
int pirValue = digitalRead(PIR); // считываение цифровых данных
Serial.println(pirValue); // данные в мониторе порта
delay(100); // задержка 0.1 секунда
}

Скачать файл с кодом, формат .INO: Датчик движения HC-SR501

Датчик освещённости пороговый (без аналогового выхода)

Модуль датчика света на основе фоторезистора. Датчик имеет два управляющих выхода — аналоговый, значение пропорционально температуре, и цифровой, выдающий 0 или 1. Величина освещения, при которой происходит срабатывание датчика, регулируется подстроечным резистором.
Легко подключается к Arduino и позволяет создавать устройства, управляемые светом.

Схема подключения датчика освещённости порогового (без аналогового выхода)

Ниже представлено изображение со схемой подключения датчика освещенности.

Код для подключения датчика освещенности порогового (без аналогового выхода)

В примере ниже показано, как подключить вывод датчика освещенности порогового (без аналогового выхода) к монитору последовательного порта платы (вывод можно посмотреть в мониторе порта Arduino IDE).

void setup() {
  pinMode(13, OUTPUT);
  pinMode(A1, INPUT);
}

void loop() {
   // считываем данные с датчика и выводим на монитор порта
   if (digitalRead(A1) == HIGH) {
      digitalWrite (13, LOW);
  }
   if (digitalRead(A1) == LOW) {
      digitalWrite (13, HIGH);
  }
}

Скачать файл с кодом, формат .INO: Датчик освещенности пороговый

Датчик пламени пороговый

Инфракрасный датчик огня (пламени) используется в проектах пожарной сигнализации. Датчик представляет собой плату с компаратором и инфракрасным диодом, который реагирует на длину волны в диапазоне 760-1100 нм.

Основные характеристики:

  1. расстояние срабатывания: до 1 м;
  2. угол обнаружения: до 60°;
  3. напряжение питания: 3.3 – 5 В.

Схема подключения датчика пламени порогового

Ниже на изображении представлена схема подключения датчика пламени.

Код для подключения датчика пламени порогового

В примере ниже показано, как подключить вывод датчика пламени порогового к монитору последовательного порта платы (вывод можно посмотреть в мониторе порта Arduino IDE).

#define DIGITAL_FIRE_SENSOR 2 // цифровой пин 2  
#define ANALOG_FIRE_SENSOR A0 // аналоговый пин на А0  
  
void setup() {  
 pinMode(DIGITAL_FIRE_SENSOR, INPUT); // определяем пины как входы 
 pinMode(ANALOG_FIRE_SENSOR, INPUT);  
 Serial.begin(9600); // подключение монитора порта 
}  
  
void loop() {  
  int digitalValue = digitalRead(DIGITAL_FIRE_SENSOR); // получение данных 
  Serial.println(digitalValue); // данные в монитор порта 
  delay(100); // задержка 0.1 секунда   
  
  int analogValue = analogRead(ANALOG_FIRE_SENSOR);  
  Serial.println(analogValue);  
  delay(100);  
}  

Скачать файл с кодом, формат .INO: Датчик огня

Датчик температуры/влажности DHT11

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

Модуль цифрового датчика DHT-11 — хороший и недорогой вариант для различных робототехнических проектов, где необходимо измерять температуру и/или влажность.

Датчик имеет высокую надежность и превосходную долговременную стабильность работы.

Сенсор включает в себя резистивный компонент измерения влажности и компонент измерения температуры с отрицательным температурным коэффициентом (NTC), которые подключены к высокопроизводительному 8-битному микроконтроллеру.

Подключается посредством трех стандартных проводов. Данные о температуре и влажности передаются по одному сигнальному проводу.

Схема подключения датчика температуры/влажности DHT11

На изображении ниже представлена схема подключения датчика температуры и влажности.

Код для подключения датчика температуры/влажности DHT11

В примере ниже показано, как подключить вывод датчика температуры/влажности DHT11 к монитору последовательного порта платы (вывод можно посмотреть в мониторе порта Arduino IDE).

#include <DHT.h>;      // подключаем библиотеку для датчика
DHT dht(2, DHT11);  // сообщаем на каком порту будет датчик

void setup() {
   dht.begin();                // запускаем датчик DHT11
   Serial.begin(9600);   // подключаем монитор порта
}

void loop() {
   // считываем температуру (t) и влажность (h)
   float h = dht.readHumidity();
   float t = dht.readTemperature();

   // выводим температуру (t) и влажность (h) на монитор порта
   Serial.print("Humidity: ");
   Serial.println(h);
   Serial.print("Temperature: ");
   Serial.println(t);
}

Скачать файл с кодом, формат .INO: Датчик температуры/влажности DHT11

Датчик угарного газа MQ-7

Датчик MQ7  — это датчик угарного газа CO. Основным источником выделения СО является сгорание углеродного топлива при недостаточном количестве кислорода. Углерод «не догорает» и вместо углекислого газа CO2, в атмосферу выбрасывается угарный газ CO.  Он чрезвычайно ядовит, но при этом не обладает ни цветом, ни запахом. Попав в помещение с угарным газом, вы только по косвенным симптомам поймете, что подвергаетесь воздействию яда.

Основным рабочим элементом датчика является нагревательный элемент, за счет которого происходит химическая реакция, в результате которой получается информация о концентрации газа. Поэтому во время работы сенсор будет горячим. Для получения стабильных показаний новый сенсор необходимо один раз прогреть (оставить включённым) в течение 48 часов. После этого стабилизация после включения будет занимать около минуты. Выдаваемый датчиком аналоговый сигнал пропорционален концентрации угарного газа. Показания датчика подвержены влиянию температуры и влажности окружающего воздуха. Поэтому в случае использования датчика MQ7 в изменяющейся среде, при необходимости получения точных показаний, понадобится реализовать компенсацию этих параметров.

Схема подключения датчика угарного газа MQ-7

На изображении ниже представлена схема подключения датчик угарного газа.

Код для подключения датчика угарного газа MQ-7

В примере ниже показано, как подключить вывод датчика угарного газа MQ-7 к монитору последовательного порта платы (вывод можно посмотреть в мониторе порта Arduino IDE).



int analogMQ7 = A5; // Пин к которому подключен A0
int val = 0; // Создаем переменную

void setup()
{
  Serial.begin(9600); // Задаем скорость передачи данных
  Serial.println("Warming-UP"); // Печать текста "Разогрев"
  delay(6000); // Пауза 6 с
  Serial.println("Measurement"); // Печать текста "Измерение"
}

void loop()
{
  val = analogRead(analogMQ7); // Считываем значение с порта A5
  Serial.print("CO = " ); // Печать текста
  Serial.println(val); // Вывод значение переменной val
  delay(5000); // Пауза
} 

Скачать файл с кодом, формат .INO: Датчик угарного газа MQ-7

Датчик уровня воды

Датчик уровня воды может быть использован в проектах, где важно следить за колебанием уровня воды около конкретной отметки. Сигнал датчика обрабатывается через аналоговый вывод S. Датчик работает по принципу изменения сопротивления в зависимости от того, насколько глубоко он опущен в воду. Напряжение питания датчика 3.3 – 5 В.

С помощью представленного ниже кода можно вывести в монитор порта показания датчика. Данные снимаются в реальном времени, диапазон от 0 до 1023, где 0 – сухой датчик. Чем выше значение показания датчика, тем выше уровень воды.

Датчик устанавливается вертикально к поверхности воды, контакты должны быть хорошо защищены от воздействия влаги для корректной и долгой работы устройства.

Схема подключения датчика уровня воды

На изображении ниже представлена схема подключения датчика уровня воды.

Код для подключения датчика уровня воды

В примере ниже показано, как подключить вывод датчика уровня воды к монитору последовательного порта платы (вывод можно посмотреть в мониторе порта Arduino IDE)

 #define ANALOG_WATERSENSOR A0 // датчик на аналоговом пине А0

void setup() {
Serial.begin(9600); // подключение монитора порта
}

void loop() {
int sensorValue = analogRead(ANALOG_WATERSENSOR); // данные считываются с аналогового порта А0
Serial.print("Analog value: "); // фраза, выводимая перед показаниями датчика
Serial.println(sensorValue); // данные в мониторе порта
delay(1000); // задержка 1 секунда
} 

Скачать файл с кодом, формат .INO: Датчик уровня воды

Плата реле одноканальная

Модуль на основе электромеханического реле SRD-05VDC-SL-C. Управляющее напряжение 5В. Подключаемая нагрузка до 10А, 30В DC, 250В AC. Может использоваться в различных проектах, в том числе, и на Arduino, где требуется коммутировать напряжение, например включать освещение или переменное напряжение в сети 220 вольт. По своей сути это рубильник с электронным управлением.

Схема подключения платы реле одноканальной

На изображении ниже представлена схема подключения платы реле одноканальной.

Код для подключения платы реле одноканальной

В примере ниже показано, как подключить реле к контроллеру. При срабатывании электромеханическое реле будет издавать щелчки в соответствии с установленным интервалом включения и выключения.


#define PIN_RELAY 4 // Определяем пин, используемый для подключения реле

// В этой функции определяем первоначальные установки
void setup()
{
  pinMode(PIN_RELAY, OUTPUT); // Объявляем пин реле как выход
  digitalWrite(PIN_RELAY, HIGH); // Выключаем реле - посылаем высокий сигнал
}
void loop()
{
  digitalWrite(PIN_RELAY, LOW); // Включаем реле - посылаем низкий уровень сигнала
  delay(5000);
  digitalWrite(PIN_RELAY, HIGH); // Отключаем реле - посылаем высокий уровень сигнала
  delay(5000);
}

Скачать файл с кодом, формат .INO: Реле

Датчик барометр/термометр GY-68 BMP180

Данный датчик очень высокоточен и экономичен в расходе энергии.  Степень точности измерения можно выставлять программно, однако следует понимать, что чем выше точность измерений датчика GY-68, тем выше будет и его энергопотребление.

Помимо всего прочего, модуль обладает встроенным альтиметром и может определить высоту над уровнем моря с погрешностью до 17 см.

Барометр/термометр GY-68 BMP180 имеет собственную температурную компенсацию проводимых измерений.

Схема подключения датчика барометра/термометра GY-68 BMP180

На изображении ниже представлена схема подключения датчика.

Код для подключения датчика барометра/термометра GY-68 BMP180

В примере ниже показано, как подключить вывод датчика барометра/термометра GY-68 BMP180 к монитору последовательного порта платы (вывод можно посмотреть в мониторе порта Arduino IDE). Для корректной работы кода нужно подключить библиотеки SFE_BMP180.h и Wire.h.


#include <SFE_BMP180.h>
#include <Wire.h>

SFE_BMP180 pressure; // Объявляем переменную для доступа к SFE_BMP180

void setup()
{
  Serial.begin(9600); // Задаем скорость передачи данных
  Serial.println("REBOOT"); // Печать текста "Перезагрузка"

  if (pressure.begin()) // Инициализация датчика
    Serial.println("BMP180 init success"); // Печать текста "BMP180 подключен"
  else { // В противном случаи, датчик не подключен
    Serial.println("BMP180 init fail\n\n"); // Печать текста "BMP180 не подключен"
    while (1); // Пауза.
  }
}

void loop()
{
  char status;
  double T, P, p0, a;

  /* Так как давление зависит от температуры, надо сначала узнать температуру
    Считывание температуры занимает какое-то время.
    Если все хорошо, функция pressure.startTemperature вернет status с количеством миллисекунд
    которые нужно подождать. Если какая-то то проблема, то функция вернет 0.
  */

  status = pressure.startTemperature(); // Считывание показания
  if (status != 0) { // Если значение status не 0, выполняем следующую команду.
    delay(status); // Ждем
    status = pressure.getTemperature(T); // Полученные показания, сохраняем в переменную T
    if (status != 0) { // Если все хорошо, функция вернет 1, иначе вернет 0
      Serial.print("Temperature: "); // Печать текста "Температура"
      Serial.print(T, 2); // Печать показания переменной "Т"
      Serial.println(" C, "); // Печать текста "С"

      /* Определяем показания атмосферного давления
        Параметр указывает расширение, от 0 до 3 (чем больше расширение, тем больше точность, тем дольше ждать)
        Если все хорошо, функция pressure.startTemperature вернет status с количеством миллисекунд
        которые нужно подождать. Если какая-то то проблема, то функция вернет 0.
      */

      status = pressure.startPressure(3); // Считывание показания
      if (status != 0) { // Если значение status не 0, выполняем следующую команду.
        delay(status); // Ждем
        status = pressure.getPressure(P, T); // Полученные показания, сохраняем в переменную P
        if (status != 0) { // Если все хорошо, функция вернет 1, иначе вернет 0
          Serial.print("Absolute pressure: "); // Печать текста "Атмосферное давление"
          Serial.print(P, 2); // Печать показания переменной mBar
          Serial.print(" mbar, "); // Печать текста "mBar"
          Serial.print(P * 0.7500637554192, 2); // Печать показания в mmHg
          Serial.println(" mmHg");
        } // Печать текста "mmHg"

        else Serial.println("error retrieving pressure measurement\n");
      } // Ошибка получения давления
      else Serial.println("error starting pressure measurement\n");
    } // Ошибка запуска получения давления
    else Serial.println("error retrieving temperature measurement\n");
  } // Ошибка получения температуры
  else Serial.println("error starting temperature measurement\n"); // Ошибка запуска получения температуры
  delay(5000); // Пауза в 5с
}

Скачать файл с кодом, формат .INO: Датчик BMP180

Датчик углеводородных газов и дыма MQ-2

Датчик газа MQ2 предназначен для обнаружения присутствия углеводородов и дыма в воздухе, а так же водорода.  Может работать как в бинарном режиме (пороговое значение задаётся потенциометром), так и в аналоговом для прямого подключения к микроконтроллеру.

Может работать как в бинарном режиме (пороговое значение задаётся потенциометром), так и в аналоговом для прямого подключения к микроконтроллеру.

Диапазон измерений датчик газа MQ-2:

  • Пропан: 0,2 – 5 промилле
  • Бутан: 0,3 – 5 промилле
  • Метан: 5 – 20 промилле
  • Водород: 0,3 – 5 промилле
  • Пары спиртов: 0,1 – 2 промилле

Схема подключения датчика углеводородных газов и дыма MQ-2

Ниже на изображении представлена схема подключения датчика газов MQ-2.

Код для подключения датчика углеводородных газов и дыма MQ-2

В примере ниже показано, как подключить вывод датчика углеводородных газов и дыма MQ-2 к монитору последовательного порта платы (вывод можно посмотреть в мониторе порта Arduino IDE).

 
#define smokePin A0    // определяем аналоговый выход к которому подключен датчик
int sensorThres = 400; // пороговое значение АЦП, при котором считаем что газ есть

void setup() {
  Serial.begin(9600);   // Устанавливаем скорость порта 9600 бод
}

void loop() {
  int analogSensor = analogRead(smokePin);    // считываем значения АЦП с аналогового входа
  // к которому подключен датчик
  Serial.print (analogSensor);                // выводим в порт значение АЦП сигнала с датчика

  // Проверяем, достигнуто ли пороговое значение
  if (analogSensor > sensorThres) {  // если значение больше допустимого...
    Serial.println(" Gaz!");         // выводим в порт надпись, что газ есть
  }
  else {                             // иначе...
    Serial.println(" normal");        // выводим в порт надпись, что газа нет
  }
  delay(500);  // задержка в 500 миллисекунд.
}

 

Скачать файл с кодом, формат .INO: Датчик углеводородных газов и дыма MQ-2

Коробка пластиковая цветная, 7 ячеек

Бокс для хранения модулей и компонентов — это полезная и удобная составляющая нашего набора.

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

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

Яркий цвет коробочки привлекает внимание, а в комплекте с компонентами весь набор станет отличным подарком.

Габариты бокса (ДШВ): 125х175х50 мм