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

Шрифт
Фон

```cpp

const int ledPin = 13;..// Номер контакта, к которому подключен светодиод

void setup() {

..pinMode(ledPin, OUTPUT);..// Установка в режим выхода

}

void loop() {

..digitalWrite(ledPin, HIGH);..// Включить светодиод

..delay(1000);..................// Задержка 1 секунда

..digitalWrite(ledPin, LOW);.. // Выключить светодиод

..delay(1000);..................// Задержка 1 секунда

}

```

Этот простой

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

# Использование цифровых входов

Цифровые входные контакты позволяют получать информацию о состоянии внешних устройств. Например, подключите кнопку к контакту GPIO 12, причем один контакт кнопки подключен к пину, а другой к земле. Код для считывания состояния кнопки может выглядеть так:

```cpp

const int buttonPin = 12;..// Номер контакта для кнопки

int buttonState = 0;........// Переменная для хранения состояния кнопки

void setup() {

..pinMode(buttonPin, INPUT);..// Установка в режим ввода

..Serial.begin(115200);

}

void loop() {

..buttonState = digitalRead(buttonPin);..// Чтение состояния кнопки

..Serial.println(buttonState);............ // Вывод состояния в последовательный монитор

..delay(100);..............................// Задержка между считываниями

}

```

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

Аналоговые входы и выходы

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

# Работа с аналоговыми входами

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

```cpp

const int potPin = 34;..// Номер аналогового контакта для потенциометра

int potValue = 0;........// Переменная для хранения значения потенциометра

void setup() {

..Serial.begin(115200);

}

void loop() {

..potValue = analogRead(potPin);..// Чтение значения с потенциометра

..Serial.println(potValue);........ // Вывод значения в последовательный монитор

..delay(100);...................... // Задержка между считываниями

}

```

Этот код позволяет считывать и выводить значения с потенциометра. Значение будет варьироваться от 0 до 4095 в зависимости от положения ручки.

# Использование аналоговых выходов

Хотя ESP32 не имеет аналоговых выходов в традиционном понимании, мы можем использовать широтно-импульсную модуляцию (ШИМ) для создания аналоговых сигналов. Чтобы сделать это, подключите светодиод (или любой другой световой элемент) к цифровому контакту, поддерживающему ШИМ (например, GPIO 25):

```cpp

const int pwmPin = 25;..// Номер контакта для ШИМ

const int pwmFreq = 5000;..// Частота ШИМ

const int pwmChannel = 0;..// Канал ШИМ

const int pwmResolution = 8;..// Разрешение ШИМ

void setup() {

..ledcSetup(pwmChannel, pwmFreq, pwmResolution);..// Настройка канала ШИМ

..ledcAttachPin(pwmPin, pwmChannel);..............// Привязка контакта

}

void loop() {

..for (int dutyCycle = 0; dutyCycle = 0; dutyCycle) {

....ledcWrite(pwmChannel, dutyCycle);..// Установка значения ШИМ

....delay(15);........................ // Задержка для плавного изменения яркости

..}

}

```

Этот код изменяет яркость светодиода, используя функцию ШИМ от 0 до 100% с определенной задержкой, создавая эффект плавного затухания и появления света.

Заключение

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

Подключение датчиков и выполнение операций считывания

ESP32 и проведём операции считывания. Узнаем, как правильно интегрировать датчики, обрабатывать их данные и использовать полученные результаты в проектах.

Выбор датчиков

Первый этап в процессе подключения датчиков выбор подходящих устройств для вашей системы. На рынке представлено множество вариантов, и выбор зависит от ваших конкретных задач. Например, для контроля температуры в помещении отлично подойдут термометры, такие как DHT11 или DHT22, которые также измеряют влажность. Чтобы отслеживать уровень освещённости, можно использовать фотодиоды или сенсоры, такие как BH1750. Для обеспечения безопасности стоит интегрировать датчики движения, например, HC-SR501. Важно помнить, что разные датчики могут требовать разные уровни питания, поэтому стоит ознакомиться с их техническими характеристиками.

Подключение датчиков к ESP32

После выбора датчиков необходимо правильно подключить их к плате ESP32. Начнём с подключения DHT11 для измерения температуры и влажности. Этот датчик имеет три вывода: VCC (питание), GND (земля) и DATA (данные). Подключайте VCC к 3.3V на ESP32, GND к GND, а DATA к любому цифровому выходу, например, к D4.

Ваша оценка очень важна

0
Шрифт
Фон

Помогите Вашим друзьям узнать о библиотеке