Размер шрифта
-
+

ESP32 для начинающих: Умный дом своими руками - стр. 17

```cpp


if (isnan(h) || isnan(t)) {


....Serial.println("Ошибка считывания с датчика DHT!");


} else {


....// вывод данных


}


```

Интеграция нескольких датчиков

В системах "умного дома" часто требуется интеграция нескольких датчиков. Например, вы можете подключить DHT11 для измерения температуры и влажности, а также фотосенсор BH1750 для контроля освещённости. Сделать это довольно просто: добавьте новый объект для нового датчика, подобно тому, как это было сделано для DHT11.

Пример кода с несколькими датчиками будет выглядеть так:

```cpp


#include "DHT.h"


#include


#include

#define DHTPIN 4


#define DHTTYPE DHT11

DHT dht(DHTPIN, DHTTYPE);


BH1750 lightSensor;

void setup() {


....Serial.begin(115200);


....dht.begin();


....Wire.begin();


....lightSensor.begin();


}

void loop() {


....// Считываем данные DHT


....delay(2000);


....float h = dht.readHumidity();


....float t = dht.readTemperature();

....// Считываем данные BH1750


....float lux = lightSensor.readLightLevel();

....if (isnan(h) || isnan(t)) {


........Serial.println("Ошибка считывания с датчика DHT!");


....} else {


........Serial.print("Влажность: ");


........Serial.print(h);


........Serial.print("%..Температура: ");


........Serial.print(t);


........Serial.println("°C");


....}

....Serial.print("Уровень освещения: ");


....Serial.print(lux);


....Serial.println(" люкс");


}


```

Практическое применение полученных данных

Помните, что данные, полученные от датчиков, можно использовать не только для вывода в консоль, но и для управления другими устройствами. Например, если температура в помещении превышает заданный предел, можно автоматически включить вентилятор или кондиционер. Это можно реализовать с помощью обычного реле или транзистора, управляемого ESP32.

Для этого вы можете использовать условные конструкции в коде, чтобы принимать решения на основе получаемых данных:

```cpp


if (t > 25) {


....digitalWrite(relayPin, HIGH); // Включаем вентилятор


} else {


....digitalWrite(relayPin, LOW); // Выключаем вентилятор


}


```

Цифровые и аналоговые датчики

Не забывайте, что датчики делятся на цифровые и аналоговые. В то время как DHT11 и BH1750 работают с цифровыми данными, в вашем проекте могут быть и аналоговые компоненты, такие как фотодиоды или аналоговые температурные сенсоры. Для подключения аналоговых датчиков к ESP32 используйте аналоговые входы (ADC), которые позволяют считывать значения в диапазоне от 0 до 4095.

Пример кода для считывания аналогового значения с датчика выглядит так:

```cpp


int analogValue = analogRead(A0);


Serial.println(analogValue);


```

Итоги

Подключение датчиков и выполнение операций считывания – это ключевой шаг, который открывает перед вами широкие возможности на пути создания "умного дома". Правильный выбор датчиков, их корректное подключение и интеграция в успешный проект помогут вам контролировать и автоматизировать вашу жизнь. Обратите внимание на обработку данных и взаимодействие с другими элементами системы, чтобы сделать ваш проект более интересным и функциональным. Практический опыт и эксперименты с оборудованием позволят лучше понять его возможности и ограничения.

Использование встроенного беспроводного модуля контроллера ЕСП32

ESP32 – это не просто мощный микроконтроллер, но и надежный многофункциональный контроллер для подключения к Wi-Fi. Одной из его основных особенностей является встроенный модуль Wi-Fi, который позволяет подключать устройства к интернету и обмениваться данными. В этой главе мы подробно обсудим, как использовать этот модуль для создания систем умного дома, а также приведем конкретные примеры и рекомендации по его настройке и интеграции.

Страница 17