2 Выполнение
2.1 Подключение стенда c Arduino Nano
На рисунке 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("Движение обнаружено!"); // Добавьте задержку, чтобы избежать многократных сообщений delay(1000); } else { // В покое датчик выдает LOW } } |
Рисунок 13 – Ошибка отсутствия библиотеки DHT sensor library
Рисунок 14 – Обнаружение движения с датчика движения Arduino Nano
в serial monitor Arduino IDE
Рисунок 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.begin(9600); // Исправлено: Serial через 'l' 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"); } |
Рисунок 16 – Считывание влажности и температуры с датчика DHT11
Arduino Nano в serial monitor Arduino IDE
