SantyagoSantyago
Avatar

Witaj!
Blog archiwalny. Już niebawem nowy serwis!

YouTube RSS Facebook GitHub

Arduino poradnik

Wstęp

Teoria

Biblioteki

Komponenty

Czujniki i sensory

Rozwiązania i algorytmy

Narzędzia

Mikrokontrolery i Arduino IDE

Arduino i klony

Poradniki wideo

Reklama na Blogu

Najnowsze poradniki

Ostatnie komentarze

Ostatnie fotografie

polskie-gorypolskie-gorypolskie-gorypolskie-gorypolskie-gorypolskie-gorypolskie-gorypolskie-gorypolskie-gorywieliczka-szyb-danilowicza

Czujniki wilgotności i temperatury DHT11 i DHT22

DHT11 i DHT22 są 8-bitowymi, cyfrowymi czujnikami wigotności i temperatury, komunikującym się za pośrednictwem interfejsu podobnego do 1 wire.

DHT11 doskonale nadaje się do pomiaru tempeatur z zakresu 0ºC do 50ºC oraz wilgotności powietrza od 20% do 95%RH. Czujnik nie nadaje się zatem do pomiaru tempeatur ujmenych, a tym samym nie przyda nam się do mierzenia temperatury np. za oknem. Doskonale natomiast sprawdzi się w pomiarach w pomieszczeniach zamkniętych. Jeśli chodzi o błąd pomiarowy mieści się w zakresie ±2ºC dla temperatury oraz ±5%RH dla wilgotności.

Jeśli chodzi o DHT22 to ma on już szersze zastosowanie, bowiem potrafi mierzyć temperatury z zakresu -40ºC do 125ºC oraz wilgotności powietrza od 0% do 100%RH. Błąd pomiarowy wilgotności jest taki sam jak w przypadku DHT11, natomiast o wiele dokładniejszy jest pomiar temperatury, wynoszący ±0.5ºC .

Błędy pomiarowe mogą być niższe i w dużej mierze zależą od warunków otoczenia - dokładną tabelę znajdziedzie w karcie katalogowej tego czujnika.

DHT11

DHT22

DHT11 i DHT22 posiadają wyprowadzone cztery piny, z czego dwa wykorzystane są do zasilania napięciem z zakresu 3.3V do 5.5V (typowe zasilanie to 5V) oraz jeden pin sygnałowy, Pobór prądu w trakcie pomiaru może wynieść maksymalnie 2.5mA dla DHT11 i 1.5mA dla DHT22.

       DHT11 DHT22  
  Typ Minimalnie Typowe Maksymalnie Minimalnie Typowe Maksymalnie
Napięcie zasilania DC 3V 5V 5.5V  3.3V 5V 6V
Pobór prądu Pomiar 0.5mA   2.5mA  1mA   1.5mA
Czuwanie 100uA   150uA 40uA   50uA
Czas pomiaru  Minimalnie 1s   2s  

Schemat połączeń

Cała filozofia czujnika ogranicza się do podłączenia do niego zasilania 5V oraz doprowadzenie pinu sygnałowego do mikrokontrolera. Należy również wpiąć rezystor o wartości 10kΩ pomiędzy pin zasilania VCC, a pin sygnałowy DAT. Aby jednak ze sprawiedliwości stała się zadość, poniżej schemat :)

Program

Jedą z wielu dostępnych, jest biblioteka DHT-sensor-library od Adafruit, która należy rozpakować do katalogu sketchbook/libraries/

  1. bash-4.2$ tree -d ~/sketchbook/libraries/DHT/
  2. /home/santyago/sketchbook/libraries/DHT/
  3. `-- examples
  4.     `-- DHTtester

Program przedstawia się następująco:

  1. #include "DHT.h"          // biblioteka DHT
  2.  
  3. #define DHTPIN 2          // numer pinu sygnałowego
  4. #define DHTTYPE DHT11     // typ czujnika (DHT11). Jesli posiadamy DHT22 wybieramy DHT22
  5.  
  6. DHT dht(DHTPIN, DHTTYPE); // definicja czujnika
  7.  
  8. void setup()
  9. {
  10.   Serial.begin(9600);     // otworzenie portu szeregowego
  11.   dht.begin();            // inicjalizacja czujnika
  12. }
  13.  
  14. void loop()
  15. {
  16.   // Odczyt temperatury i wilgotności powietrza
  17.   float t = dht.readTemperature();
  18.   float h = dht.readHumidity();
  19.  
  20.   // Sprawdzamy czy są odczytane wartości
  21.   if (isnan(t) || isnan(h))
  22.   {
  23.     // Jeśli nie, wyświetlamy informację o błędzie
  24.     Serial.println("Blad odczytu danych z czujnika");
  25.   } else
  26.   {
  27.     // Jeśli tak, wyświetlamy wyniki pomiaru
  28.     Serial.print("Wilgotnosc: ");
  29.     Serial.print(h);
  30.     Serial.print(" % ");
  31.     Serial.print("Temperatura: ");
  32.     Serial.print(t);
  33.     Serial.println(" *C");
  34.   }
  35. }

Alternatywna biblioteka

Jeszcze jedną ciekawą biblioteką do obsługi czujników DHTxx znajdziesz tutaj. Została ona napisana przez Marka Ruysa. Od pierwowzoru różni się automatycznym wykrywaniem podpiętego czujnika, którym może być DHT11, DHT22, AM2302 oraz RHT03. Dodatkowo biblioteka posiada funkcję wyświetlania temperatury w skali Fahrenheita.

  1. #include "DHT.h"          // biblioteka DHT
  2.  
  3. #define DHTPIN 2          // numer pinu sygnałowego
  4.  
  5. DHT dht;                  // definicja czujnika
  6.  
  7. void setup()
  8. {
  9.   Serial.begin(9600);     // otworzenie portu szeregowego
  10.   dht.setup(DHTPIN);      // inicjalizacja czujnika
  11.   // dht.setup(DHTPIN, DHT11);      // inicjalizacja czujnika DHT11
  12.   // dht.setup(DHTPIN, DHT22);      // inicjalizacja czujnika DHT12
  13. }
  14.  
  15. void loop()
  16. {
  17.   // Miniamalne opóźnienie odczytu
  18.   delay(dht.getMinimumSamplingPeriod());
  19.  
  20.   // Odczyt temperatury i wilgotności powietrza
  21.   float t = dht.getTemperature();
  22.   float h = dht.getHumidity();
  23.  
  24.   // Sprawdzamy poprawność danych
  25.   if (dht.getStatus())
  26.   {
  27.     // Jeśli nie, wyświetlamy informację o błędzie
  28.     Serial.println("Blad odczytu danych z czujnika");
  29.   } else
  30.   {
  31.     // Jeśli tak, wyświetlamy wyniki pomiaru
  32.     Serial.print("Wilgotnosc: ");
  33.     Serial.print(h);
  34.     Serial.print(" % ");
  35.     Serial.print("Temperatura: ");
  36.     Serial.print(t);
  37.     Serial.print(" *C / ");
  38.     Serial.print(dht.toFahrenheit(t));
  39.     Serial.println(" *F ");
  40.   }
  41. }

Uruchomienie

Po przesłaniu programu do Arduino, możemy śledzić wyniki pomiarów w monitorze portu szeregowego.

Materiały dodatkowe

Biblioteka DHT-sensor-library od Adafruit.
Biblioteka arduino-DHT od Marka Ruysa
Mirror bibliotek DHT: https://www.jarzebski.pl/arduino/DHT/
Karta katalogowa czujnika DHT11.pdf
Karta katalogowa czujnika DHT22.pdf

Reklama

Komentarze Komentarze
Avatar 1
fookoo Linux x86_64 / Mozilla Firefox 22.0
01 December 2013 - 11:52 Warszawa

masz 25 stopni w pokoju ? cieplo

Avatar 2
Korneliusz Linux x86_64 / Mozilla Firefox 25.0
01 December 2013 - 12:54 Bytom

:) A no ciepło

Avatar 1
sony9505 Windows 7 / Safari 537.36
13 July 2014 - 09:59 Warszawa

//pomyłka w nicku

Możesz zamiast wypisywania ciągłego użyć zmiennych pomocniczych, które będą zapisywały informacje o poprzednim pomiarze i gdy któraś wartość się zmieni dopiero wypisywać wynik

#include "DHT.h" // biblioteka DHT

#define DHTPIN 2 // numer pinu sygnałowego
#define DHTTYPE DHT11 // typ czujnika (DHT11). Jesli posiadamy DHT22 wybieramy DHT22

DHT dht(DHTPIN, DHTTYPE); // definicja czujnika

float a = 0.0,b = 0.0;

void setup()
{
Serial.begin(9600); // otworzenie portu szeregowego
dht.begin(); // inicjalizacja czujnika
}

void loop()
{
// Odczyt temperatury i wilgotności powietrza
float t = dht.readTemperature();
float h = dht.readHumidity();

// Sprawdzamy czy są odczytane wartości
if (isnan(t) || isnan(h))
{
// Jeśli nie, wyświetlamy informację o błędzie
Serial.println("Blad odczytu danych z czujnika");
} else
{
// Jeśli tak, wyświetlamy wyniki pomiaru

if(a != h || b != t){
Serial.print("Wilgotnosc: ");
Serial.print(h);
Serial.print(" % ");
Serial.print("Temperatura: ");
Serial.print(t);
Serial.println(" *C");
a = h;
b = t;
}

}
}

Avatar 1
Maciek Windows 7 / Safari 537.36
17 July 2014 - 22:07 Brak informacji

A czy można podpiąć dwa lub więcej takich czujników pod jedno arduino. Jak tak to jak to rozwiązać ?

Avatar 2
Korneliusz Linux x86_64 / Mozilla Firefox 30.0
17 July 2014 - 22:59 Bytom

jakkolwiek :) każdy dht wymaga jednego pinu cyfrowego, np jeden pod 2 ,a drugi pod 3:

dht1.setup(2);
dht2.setup(3);

Avatar 1
vo99 Windows XP / Safari 537.36
26 May 2015 - 12:09 Kraków

jak się nie mylę to 1 wire umożliwia podpięcie kilku czujników pod ten sam pin

Avatar 1
Pablo Windows / Safari 537.36
12 November 2015 - 23:19 Warszawa

Też się na to naciąłem - problem w tym, że dht11 i dht22 nie są 1 wire

Avatar 1
super Windows 7 / Safari 537.36
27 September 2014 - 11:12 Warszawa

witam,czy można zrobić żeby dane z projektu Marka Ruysa były na LCD_Counter_I2C_short wyświetlane.Łączyłem dwa skecze ale nie zabardzo mi działa.

Avatar 1
oto skecz Windows 7 / Safari 537.36
27 September 2014 - 11:19 Warszawa

#include "DHT.h" // biblioteka DHT
#include
#include

#define BACKLIGHT_PIN 3

LiquidCrystal_I2C lcd(0x27,2,1,0,4,5,6,7);

#define DHTPIN 2 // numer pinu sygnałowego

DHT dht; // definicja czujnika

void setup()
{
Serial.begin(9600); // otworzenie portu szeregowego
dht.setup(DHTPIN); // inicjalizacja czujnika
// dht.setup(DHTPIN, DHT11); // inicjalizacja czujnika DHT11
// dht.setup(DHTPIN, DHT22); // inicjalizacja czujnika DHT12
lcd.begin (16,2);
lcd.setBacklightPin(BACKLIGHT_PIN,POSITIVE);
lcd.setBacklight(HIGH);

lcd.home ();
lcd.print("C/F");
}

void loop()
{
lcd.setCursor(0, 1);
lcd.print(millis()/10);
// Miniamalne opóźnienie odczytu
delay(dht.getMinimumSamplingPeriod());

// Odczyt temperatury i wilgotności powietrza
float t = dht.getTemperature();
float h = dht.getHumidity();

// Sprawdzamy poprawność danych
if (dht.getStatus())
{
// Jeśli nie, wyświetlamy informację o błędzie
Serial.println("Blad odczytu danych z czujnika");
} else
{
// Jeśli tak, wyświetlamy wyniki pomiaru
Serial.print("Wilgotnosc: ");
Serial.print(h);
Serial.print(" % ");
Serial.print("Temperatura: ");
Serial.print(t);
Serial.print(" *C / ");
Serial.print(dht.toFahrenheit(t));
Serial.println(" *F ");
}
}

Avatar 1
oszukuje! Mac OS X / Mozilla Firefox 39.0
09 August 2015 - 16:20 Warszawa

O ile dht11 na tej bibliotece dziala i pokazuje prawidlowe dane o tyle dht22 niestety nie dziala temperatura a wilgotnosc normalnie ;/ co jest nie tak ? :) Uszkodzony czujnik czy co ? caly czas pokazuje 25.10

Avatar 1
klima Mac OS X / Mozilla Firefox 39.0
12 August 2015 - 20:33 Warszawa

Uszkodzony był czujnik, biblioteka wzorowa działa bardzo dobrze ;)

Avatar 1
R0bby Windows / Mozilla Firefox 42.0
25 November 2015 - 08:52 Warszawa

Cześć,
A nie próbowałeś może uruchomić obsługi DHT11/DHT22 bezpośrednio z portu LPT?
Kiedyś walczyłem z tym zagadnieniem, niestety poległem, jak sądze z powodu trudności w utrzymaniem reżimów czasowych.
http://www.elektroda.pl/rtvforum/topic2886665.html#13911710

Pozdrawiam,
Robert

Avatar 1
Piotr Windows / Safari 537.36
26 November 2015 - 13:27 Brak informacji

Witam.
Potrzebuję połączyć 24 czujniki DS18B20 za pomocą i2c ,
jak rozróżnić który jest który???
A może da się ustawić ich adresy???

Pozdrawiam
Piotr

Avatar 1
R0bby Windows / Mozilla Firefox 42.0
27 November 2015 - 15:50 Warszawa

Adresy są wpisane w ROM. Maxim ma w ofercie konwerter 1Wire-I2C. A jak odróżnić? Po kolei brać do łapki i obserwować wskazania :)

Avatar 1
Krzysiek Windows / Safari 537.36
01 January 2016 - 19:41 Jaworzno

Witam. Jak napisać funkcję która będzie mi zapamiętywać z DTH11 temperaturę minimalną jak i maksymalną?

Avatar 1
andrzej Windows 7 / Safari 537.36
16 May 2016 - 15:32 Ruda Śląska

int minTemp = 666;
int maxTemp = 666;
void saveTemp(int currentTemp) {
if (minTemp == 666) {
minTemp = currentTemp;
maxTemp = currentTemp; }
if (currentTemp > maxTemp) maxTemp = currentTemp;
if (currentTemp < minTemp) minTemp = currentTemp;
}

Avatar 1
Konrad Windows 7 / Mozilla Firefox 43.0
05 January 2016 - 14:24 Warszawa

Witam.
Genialna strona z przykładami:)
Właśnie Z Twojej strony zaczęło się moje zainteresowanie Arduino.
Chciałbym zbudować prostą stację pogodową w której będzie również wyświetlany czas.
Tu pojawia się problem: Zegar na DS1307 jak i BMP180 korzystają z t wejść A4 i A5.
Co zrobić aby moja stacja pogodowa zadziałała??

Avatar 2
Korneliusz Linux Ubuntu / Mozilla Firefox 43.0
09 February 2016 - 07:14 Bytom

Z tego co pamiętam DS1307 i BMP180 mają inne adresy na I2c, więc mogą pracować razem.

Avatar 1
manio Linux x86_64 / Safari 537.36
07 February 2016 - 11:21 Brak informacji

Witam
Myślę że bardzo istotne jest aby sprostować informacje na tej stronie a są one bardzo mylące. Chodzi mi o pierwsze zdanie w którym pisze że czytnik komunikuje sie za pomocą interfejsu 1 wire. Może to wprowadzać w błąd. Nie jest to popularny protokół transmisji Dallas-a 1-wire, gdzie każde urządzenie ma swój unikalny adres. DHT korzysta z własnego protokołu który być może przypomina 1-wire ale nie można go tak nazwać. Proszę o sprostowanie artykułu.
Więcej info:
http://hirt.se/blog/?p=493
http://forum.r-pi.pl/nasze-projekty/ds18b20-dht22-lcd-rtc-t149903-10.html

Avatar 2
Korneliusz Linux Ubuntu / Mozilla Firefox 43.0
09 February 2016 - 07:15 Bytom

Wielkie dzięki za informację. Oczywiście masz rację - migiem to poprawię

Avatar 1
Apokalypsa Android 4.1 / Safari 537.36
28 November 2016 - 17:50 Warszawa

Koniec roku a mig nie przyleciał. Popraw !!!

Avatar 1
Tomek Linux x86_64 / Safari 537.36
16 February 2017 - 21:04 Bielsko-Biała

Luty nowego roku, a w tekście dalej błąd (i to boldem). Popraw, bo wprowadzasz w błąd.

Avatar 2
Korneliusz Linux Ubuntu / Mozilla Firefox 51.0
23 February 2017 - 22:10 Bytom

Eh :) nie odpuszczacie - poprawione - dzięki

Avatar 1
revoltec112 Windows 7 / Safari 537.36
14 August 2016 - 16:45 Brak informacji

Cześć , masz pomysł dla czego to nie działa nie mogę tego nawed skompilować

#include
#include
#include
#include
#include
#include
#include

#define CHILD_ID_HUM 0
#define CHILD_ID_TEMP 1
#define CHILD_ID_LIGHT 2
#define CHILD_ID_BARO 3
#define CHILD_ID_BTEMP 4
#define CHILD_ID_WINDSPEED 5
#define CHILD_ID_RAIN 6

#define MESSAGEWAIT 500
#define DIGITAL_INPUT_RAIN_SENSOR 3
#define HUMIDITY_SENSOR_DIGITAL_PIN 5
#define ENCODER_PIN 2
#define INTERRUPT DIGITAL_INPUT_RAIN_SENSOR-2

const int windSpeedPin = 2; // contact on pin 2 digital
int windSpeedPinCounter = 0; // impuls counter
int windSpeedPinStatus = 0; // actual impuls
int windSpeedPinStatusAlt = 0; // oude Impuls-Status
unsigned long windmeterStart;
unsigned long windmeterStartAlt = 0;
int windSpeed; // Variable voor Wind Speed
int beaufort = 0; // Variable Wind in Beaufort
const int windmeterTime = 10000;
//float knoten = 0.0;
//float wind = 0.0;
unsigned int knoten;
unsigned int wind;

boolean metric = false;
int altitude = 16; // meters above sealevel
float lastBmpTemp = -1;
float lastPressure = -1;
float lastHum = -1;
float lastTemp = -1;
double temp;
double hum;
int BATTERY_SENSE_PIN = A0;
int lastRainValue = -1;
int nRainVal;
boolean bIsRaining = false;
String strRaining = "NO";
int lastBatteryPcnt = 0;
int updateAll = 60;
int updateCount = 0;
uint16_t lastLux;
// unsigned long SLEEP_TIME = 60000;
unsigned long SLEEP_TIME = 600;
int batteryBasement = 800;
float batteryConstant = 100.0 / (1023 - batteryBasement);

MyTransportNRF24 radio; // NRFRF24L01 radio driver
MyHwATMega328 hw; // Select AtMega328 hardware profile
MySigningAtsha204 signer(true); // Select HW ATSHA signing backend

Adafruit_BMP085 bmp = Adafruit_BMP085();
BH1750 lightSensor;
dht DHT;
MySensor gw(radio, hw, signer);

MyMessage msgHum(CHILD_ID_HUM, V_HUM);
MyMessage msgTemp(CHILD_ID_TEMP, V_TEMP);
MyMessage msgLux(CHILD_ID_LIGHT, V_LIGHT_LEVEL);
MyMessage msgBtemp(CHILD_ID_BTEMP, V_TEMP);
MyMessage msgPressure(CHILD_ID_BARO, V_PRESSURE);
MyMessage msgWindSpeed(CHILD_ID_WINDSPEED, V_WIND);
MyMessage msgRain(CHILD_ID_RAIN, V_TRIPPED);

void setup()
{
analogReference(INTERNAL);
gw.begin(incomingMessage, 3, true);
//dht.setup(HUMIDITY_SENSOR_DIGITAL_PIN);
bmp.begin();
gw.sendSketchInfo("Weather Sensor", "1.0");
gw.present(CHILD_ID_HUM, S_HUM, "WS Humidity");
gw.present(CHILD_ID_TEMP, S_TEMP, "WS Temperature");
gw.present(CHILD_ID_LIGHT, S_LIGHT_LEVEL, "WS Lux");
gw.present(CHILD_ID_BARO, S_BARO, "WS Pressure");
gw.present(CHILD_ID_BTEMP, S_TEMP, "WS P Temperature");
gw.present(CHILD_ID_WINDSPEED, S_WIND, "WS Windspeed");
gw.present(CHILD_ID_RAIN, S_MOTION, "WS Rain");

pinMode(DIGITAL_INPUT_RAIN_SENSOR, INPUT);
lightSensor.begin();
metric = gw.getConfig().isMetric;
}

// Wind Meter https://github.com/chiemseesurfer/arduinoWeatherstation/blob/master/weatherstation/weatherstation.ino

float windmeter()
{
windmeterStart = millis(); // Actual start time measuringMessung
windmeterStartAlt = windmeterStart; // Save start time

windSpeedPinCounter = 0; // Set pulse counter to 0
windSpeedPinStatusAlt = HIGH; // Set puls status High

while ((windmeterStart - windmeterStartAlt) <= windmeterTime) // until 10000 ms (10 Seconds) ..
{
windSpeedPinStatus = digitalRead(windSpeedPin); // Read input pin 2
if (windSpeedPinStatus != windSpeedPinStatusAlt) // When the pin status changed
{
if (windSpeedPinStatus == HIGH) // When status - HIGH
{
windSpeedPinCounter++; // Counter + 1
}
}
windSpeedPinStatusAlt = windSpeedPinStatus; // Save status for next loop
windmeterStart = millis(); // Actual time
}

windSpeed = ((windSpeedPinCounter * 24) / 10) + 0.5; // WindSpeed - one Pulse ~ 2,4 km/h,
windSpeed = (windSpeed / (windmeterTime / 1000)); // Devided in measure time in seconds
Serial.print("wind Speed : ");
Serial.println(windSpeed);
knoten = windSpeed / 1.852; //knot\'s

return windSpeed;
}

void loop()
{
updateCount += 1;
if (updateCount == updateAll) {
lastTemp = -1;
lastHum = -1;
lastLux = -1;
lastBmpTemp = -1;
lastPressure = -1;
lastRainValue = -1;
lastBatteryPcnt = -1;
updateCount = 0;
}
delay(2000);
int chk = DHT.read22(HUMIDITY_SENSOR_DIGITAL_PIN);
temp = DHT.temperature;
//Serial.print("Temperature DHT :");
//Serial.println(temp);
if (isnan(temp)) {
lastTemp = -1;
} else if (temp != lastTemp) {
lastTemp = temp;
if (!metric) {
temp = temp * 1.8 + 32.0;
}
gw.send(msgTemp.set(temp, 1));
}
hum = DHT.humidity;
if (isnan(hum)) {
lastHum = -1;
} else if (hum != lastHum) {
lastHum = hum;
gw.send(msgHum.set(hum, 1));
}
uint16_t lux = lightSensor.readLightLevel();
if (lux != lastLux) {
gw.send(msgLux.set(lux));
lastLux = lux;
}
float pressure = bmp.readSealevelPressure(altitude) * 0.01;
float bmptemp = bmp.readTemperature();
if (!metric) {
bmptemp = bmptemp * 1.8 + 32.0;
}
if (bmptemp != lastBmpTemp) {
gw.send(msgBtemp.set(bmptemp,1));
lastBmpTemp = bmptemp;
}
if (pressure != lastPressure) {
gw.send(msgPressure.set(pressure, 0));
lastPressure = pressure;
}

bIsRaining = !(digitalRead(DIGITAL_INPUT_RAIN_SENSOR));
Serial.print("Is Raining :");
Serial.println(bIsRaining);
if(bIsRaining){
strRaining = "YES";
}
else{
strRaining = "NO";
}

//Serial.print("Raining?: ");
//Serial.print(strRaining);
//Serial.print("t Moisture Level: ");
//Serial.println(nRainVal);
//http://henrysbench.capnfatz.com/henrys-bench/arduino-sensors-and-input/arduino-rain-sensor-module-guide-and-tutorial/

gw.send(msgRain.set(bIsRaining, 1));

wind = windmeter();
Serial.print("Wind : ");
Serial.println(wind);
gw.send(msgWindSpeed.set(wind, 1));

int sensorValue = analogRead(BATTERY_SENSE_PIN);
int batteryPcnt = (sensorValue - batteryBasement) * batteryConstant;
if (lastBatteryPcnt != batteryPcnt) {
gw.sendBatteryLevel(batteryPcnt);
lastBatteryPcnt = batteryPcnt;
}
gw.sleep(SLEEP_TIME);
}

void incomingMessage(const MyMessage & message) {
// We only expect one type of message from controller. But we better check anyway.
if (message.isAck()) {
Serial.println("This is an ack from gateway");
}
}

Avatar 1
revoltec112 Windows 7 / Safari 537.36
14 August 2016 - 16:46 Brak informacji
Avatar 1
ice074 Windows 7 / Safari 537.36
27 November 2016 - 12:25 Warszawa

hej sory za odgrzewanie tematu ale mam problem i nie wiem jak go rozwiązać , potrzebował bym podpiąć czujnik temp pod WS2812B tak aby zmieniały barwę z czerwonej / ciepła woda / na niebieską / zimna woda / mógł by mi ktoś pomóc ze skeczem ? był bym wdzięczny :)

Avatar 1
matti Windows 7 / Mozilla Firefox 50.0
14 December 2016 - 09:29 Brak informacji

źle mi mierzy temp na zewnątrz gdzie jest błąd?

Avatar 1
sl4w3x Windows / Safari 537.36
18 February 2017 - 19:02 Brak informacji

Co znaczy źle? Wewnątrz było dobrze a na zewnątrz źle?

Avatar 1
SiMet Windows / Safari 537.36
14 February 2017 - 23:10 Brak informacji

Hej,

Mam problem. Czujnik pokazuje nieprawidlowe pomiary. Jak zaczynam go dotykac to temperatura i Wilgotnosc sie zmieniaja, ale porownuje to ze stacja pogodowa ktora mam w domu i wyniki sa mocno rozbierzne (2st C i 30% wilgotnosci). Spotkales sie moze z takim problemem?

Pozdrawiam

Avatar 2
Korneliusz Linux Ubuntu / Mozilla Firefox 51.0
23 February 2017 - 22:07 Bytom

O ile 2st C mogę zrozumieć, to różnica 30% wilgotności jest spora - sprawdzałeś inny czujnik?

Avatar 1
Wojtek Windows / Safari 537.36
27 February 2017 - 23:34 Rzeszów

A bawił się ktoś może czujnikiem AM2322 pracującym na magistrali I2C? Odczytałem jego adres I2C ale nie wiem jak odczytać tą magistralą dane temperatury i wilgotności. Po podłączeniu go tak jak starsze czujniki (1 przewód) mam wartości rozbieżne podobnie jak SiMet. Szukałem w Internecie ale wszystkie opisy są pod starsze czujniki podłączone jednoprzewodowo.

Avatar 1
Wojtek Windows / Mozilla Firefox 51.0
15 March 2017 - 15:54 Toruń

Hej, macie pomysł jak wyświetlić dane zebrane przez dht11 w czasie rzeczywistym w oknie przeglądarki ? Połączenie przez ethernetshield. W książce Arduino w akcji jest zapis client.println(analogRead(0)); i niby po dodaniu tego wpisu do opisanego w książce szkicu serwera wwww analogowy czujnik powinien wyświetlić temp. jednakże nie mam analogowego czujnika więc starałem się zainicjować cyfrowy czujnik dht11 czy mógłby ktoś podpowiedzieć jak poprawnie to zainicjować ? Dopiero się uczę w związku z tym proszę o wyrozumiałość. Później będę kombinował z mysql jednak na razie chciałbym odczytać chodź by jeden wynik i wyświetlić go w oknie przeglądarki. Pozdro!

Avatar 1
rycho84 Windows / Mozilla Firefox 52.0
20 March 2017 - 20:31 Brak informacji

Witam,
mam mały problem, gdy dodaję bibliotekę DHT.h to nie mogę skompilować
programu i wyskakuje mi błąd:
exit status 1
Błąd kompilacji dla płytki Arduino / Genuino Uno.
Wie może ktoś o co może chodzić?
Pozdrawiam

Avatar 1
Piotr Windows 7 / Safari 537.36
19 May 2017 - 17:42 Poznań

Narzędzia -> Płytka i wybierz tą którą masz.
Mi pomogło po aktualizacji.

Avatar 1
Grzegorz Windows / Mozilla Firefox 54.0
24 July 2017 - 22:25 Białystok

Witam.
Dlaczego wyświetlane wartości temp. jak i wilgotności mają wyzerowany człon po przecinku? tylko 34.00 i 25.00. Powiem szczerze mam ten sam problem, zmiana wartości o cały stopień - 25.00 26.00 itd.
Pozdrawiam

Avatar 1
Slaweks Windows 7 / Safari 537.36
25 February 2019 - 14:33 Warszawa

Bo DHT11 tak juz ma.