Первые шаги с кодом
Теперь, когда у вас есть всё необходимое программное обеспечение, пора погрузиться в программирование. Начнём с простого примера – мигания светодиода. Подключите светодиод к любому из цифровых выходов ESP32 (например, GPIO 2) через резистор, чтобы ограничить ток.
Вот пример кода для мигания светодиода:
```cpp
void setup() {
..pinMode(2, OUTPUT);
}
void loop() {
..digitalWrite(2, HIGH);
..delay(1000);
..digitalWrite(2, LOW);
..delay(1000);
}
```
Этот код настраивает GPIO 2 как выход и заставляет светодиод мигать с интервалом в одну секунду. С помощью этого простого примера вы не только освоите основы программирования, но и убедитесь, что оборудование работает исправно.
Устройство соединения
Сложность проектов "умного дома" часто требует использования сети Wi-Fi. Чтобы ESP32 мог подключаться к интернету, нужно использовать библиотеку WiFi. Рассмотрим, как это сделать на примере подключения к вашей домашней сети Wi-Fi:
```cpp
#include <WiFi.h>
const char* ssid = "ваш_SSID";
const char* password = "ваш_ПАРОЛЬ";
void setup() {
..Serial.begin(115200);
..WiFi.begin(ssid, password);
..while (WiFi.status() != WL_CONNECTED) {
....delay(1000);
....Serial.println("Подключение к Wi-Fi…");
..}
..Serial.println("Подключено к Wi-Fi!");
}
void loop() {
..// Ваш основной код выполняется здесь
}
```
Этот код подключает ваш ESP32 к заданной сети Wi-Fi. Обратите внимание, что для передачи данных через интернет вам понадобятся SSID и пароль вашей сети. С помощью сети вы сможете управлять своим устройством, получать данные и взаимодействовать с другими компонентами вашего "умного дома".
Использование датчиков
После настройки соединения с интернетом можно приступить к интеграции датчиков. Например, если вы хотите создать систему контроля температуры, вам понадобится датчик DHT11. Подключите его к ESP32 и используйте библиотеку DHT для считывания показаний.
Код для считывания данных DHT11 будет выглядеть следующим образом:
```cpp
#include <DHT.h>
#define DHTPIN 4.... // Пин, к которому подключён датчик
#define DHTTYPE DHT11.. // Выбор типа датчика
DHT dht(DHTPIN, DHTTYPE);
void setup() {
..Serial.begin(115200);
..dht.begin();
}
void loop() {
..delay(2000);
..float h = dht.readHumidity();
..float t = dht.readTemperature();
..
..if (isnan(h) || isnan(t)) {
....Serial.println("Не удалось считывать данные с датчика!");
....return;
..}
..
..Serial.print("Температура: ");
..Serial.print(t);
..Serial.print("°C, Влажность: ");
..Serial.print(h);
..Serial.println("%");
}
```
Этот код позволяет считывать и отображать данные о температуре и влажности в последовательном мониторе. Это один из первых