После скачивания, чтобы компьютер увидел плату в COM-портах, установим драйверы CH341SER с данной ссылки, который отобразится в диспетчере устройств как на рисунке 11..
Рисунок 11 – Установка драйвера CH341SER для отображения среди скрытых устройств (для Windows 11) COM-портов, дающие возможность видеть платы ESP32
2ВЫПОЛНЕНИЕ
2.1Подключение стенда c Arduino Nano
На рисунке 12 представлен стенд, с которого будем опрашивать датчики движения и влажности.
12
Рисунок 12 – Стенд с Arduino Nano с датчиом движения (круглый шар)
идатчиком влажности (голубая подушечка)
Влистинге 3 представлен код для опроса датчика движения на Arduino Uno. Предварительно установим библиотеку DHT sensor library, иначе будет ошибка, как на рисунке 13. На рисунках 14 и 15 представлены результаты выполнения программы из кода листинга 3.
Листинг 3 – Опрос датчика движения Arduino Nano
#define PIR_PIN 2 // Пин D2 для сигнала с датчика
void setup() {
pinMode(PIR_PIN, INPUT); // Устанавливаем пин как вход
Serial.begin(9600); // Инициализация монитора порта
Serial.println("Датчик готов к работе...");
}
void loop() {
// Читаем цифровое значение: HIGH (движение есть) или LOW (нет) int motion = digitalRead(PIR_PIN);
if (motion == HIGH) { Serial.println("Движение обнаружено!");
13
//Добавьте задержку, чтобы избежать многократных сообщений delay(1000);
}else {
//В покое датчик выдает LOW
}
}
Рисунок 13 – Ошибка отсутствия библиотеки DHT sensor library
Рисунок 14 – Обнаружение движения с датчика движения Arduino Nano
в serial monitor Arduino IDE
14
Рисунок 15 – Обнаружение движения с датчика движения Arduino Nano при подёргивании рукой
В листинге 4 представлен кол для снятия показаний с датчика влажности. На рисунке 16 показан съём значений с датчика влажности.
Листинг 4 – Программирование датчика влажности и температуры
DHT11 Arduino Nano
#include "DHT.h" |
// Исправлено: include через 'l' |
#define DHTPIN 4 |
// Пин D4, как вы указали |
#define DHTTYPE DHT11 |
// Тип датчика |
DHT dht(DHTPIN, DHTTYPE); |
// Инициализация |
void setup() { |
// Исправлено: Serial через 'l' |
Serial.begin(9600); |
|
Serial.println("DHT11 Test Start"); |
|
dht.begin(); |
// Запуск датчика |
} |
|
void loop() {
// Задержка 2 секунды (DHT11 медленный, 250мс для него мало) delay(2000);
float h = dht.readHumidity();
float t = dht.readTemperature(); // Исправлено: добавлен
dht.
// Проверка, удалось ли считать данные if (isnan(h) || isnan(t)) {
Serial.println("Failed to read from DHT sensor!"); return;
}
Serial.print("Humidity: "); Serial.print(h);
Serial.print(" %\t"); // Исправлено: \t для табуляции Serial.print("Temperature: ");
Serial.print(t);
Serial.println(" *C");
}
15
