Объединяем несколько датчиков DHT11 и DHT22

Для измерения температуры, расстояния, вибрации, звука, влажности, движения, магнитного поля и т.д.
Правила форума
Андрюино
Сообщения: 231
Зарегистрирован: 20 июл 2016, 07:53
Благодарил (а): 1 раз
Поблагодарили: 2 раза

Объединяем несколько датчиков DHT11 и DHT22

Сообщение Андрюино » 09 авг 2016, 05:25

Подключение на основе предыдущей темы

Реализация из трех датчиков, один из которых DHT11 и два DHT22

P_20160809_1016141.jpg

Скетч данной реализации

  1. #include "DHT.h"
  2.  
  3. #define DHT1PIN 2    
  4. #define DHT2PIN 3
  5. #define DHT3PIN 4    
  6.  
  7. #define DHT1TYPE DHT22   // DHT 22  (AM2302)
  8. #define DHT2TYPE DHT22   // DHT 22  (AM2302)
  9. #define DHT3TYPE DHT11   // DHT 11
  10.  
  11. DHT dht1(DHT1PIN, DHT1TYPE);
  12. DHT dht2(DHT2PIN, DHT2TYPE);
  13. DHT dht3(DHT3PIN, DHT3TYPE);
  14.  
  15. void setup() {
  16.   Serial.begin(9600);
  17.   Serial.println("DHTxx test!");
  18.  
  19.   dht1.begin();
  20.   dht2.begin();
  21.   dht3.begin();
  22. }
  23.  
  24. void loop() {
  25.  
  26.   delay(2000);
  27.  
  28.   float h1 = dht1.readHumidity();
  29.   float t1 = dht1.readTemperature();
  30.  
  31.   float h2 = dht2.readHumidity();
  32.   float t2 = dht2.readTemperature();
  33.  
  34.   float h3 = dht3.readHumidity();
  35.   float t3 = dht3.readTemperature();
  36.  
  37.   if (isnan(t1) || isnan(h1)) {
  38.     Serial.println("Failed to read from DHT #1");
  39.   } else {
  40.     Serial.print("Humidity 1: ");
  41.     Serial.print(h1);
  42.     Serial.print(" %\t");
  43.     Serial.print("Temperature 1: ");
  44.     Serial.print(t1);
  45.     Serial.println(" *C");
  46.   }
  47.   if (isnan(t2) || isnan(h2)) {
  48.     Serial.println("Failed to read from DHT #2");
  49.   } else {
  50.     Serial.print("Humidity 2: ");
  51.     Serial.print(h2);
  52.     Serial.print(" %\t");
  53.     Serial.print("Temperature 2: ");
  54.     Serial.print(t2);
  55.     Serial.println(" *C");
  56.   }
  57.  
  58.     if (isnan(t3) || isnan(h3)) {
  59.     Serial.println("Failed to read from DHT #3");
  60.   } else {
  61.     Serial.print("Humidity 3: ");
  62.     Serial.print(h3);
  63.     Serial.print(" %\t");
  64.     Serial.print("Temperature 3: ");
  65.     Serial.print(t3);
  66.     Serial.println(" *C");
  67.   }
  68.   Serial.println();
  69. }

manfi
Сообщения: 1
Зарегистрирован: 08 июн 2018, 09:15

Re: Объединяем несколько датчиков DHT11 и DHT22

Сообщение manfi » 08 июн 2018, 09:21

Здравствуйте.
А можно ли с данной библиотекой снять значения с нескольких датчиков через цикл?
Как можно в функции снятия показаний dht1.readTemperature() заменить dht1 на, допустим, элемент массива? И можно ли изначально датчики как объекты DHT dht1(DHT1PIN, DHT1TYPE); запихнуть в массив?
Может быть, для таких задач есть другая библиотека? Что-то с этой у меня так не получилось =/.


Вернуться в «Сенсоры»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость