Intel Galileo Gen2 kartını kullanarak DHT22 sensörünü okuyamadı

Neden ekran ile bitiyor?

DHT sensöründen okunamadı!

Seri monitörde, aşağıda verilen kodu çalıştırdığımda çoğu durumda? Gecikmeyi 1000 ms'ye düşürdüğümde, okuma hem sıcaklık hem de nem için 0,00 gösterir, ki bu da oldukça yanlıştır. Herhangi bir yardım çok takdir edilecektir.

// Example testing sketch for various DHT humidity/temperature sensors
// Written by ladyada, public domain

#include "DHT.h"

#define DHTPIN 2    //what pin we're connected to

// Uncomment whatever type you're using!
//#define DHTTYPE DHT11  //DHT 11 
#define DHTTYPE DHT22  //DHT 22  (AM2302)
//#define DHTTYPE DHT21  //DHT 21 (AM2301)



// Initialize DHT sensor for normal 16mhz Arduino
DHT dht(DHTPIN, DHTTYPE);
// NOTE: For working with a faster chip, like an Arduino Due or Teensy, you
// might need to increase the threshold for cycle counts considered a 1 or 0.
// You can do this by passing a 3rd parameter for this threshold.  It's a bit
// of fiddling to find the right value, but in general the faster the CPU the
// higher the value.  The default for a 16mhz AVR is a value of 6.  For an
// Arduino Due that runs at 84mhz a value of 30 works.
// Example to initialize DHT sensor for Arduino Due:
//DHT dht(DHTPIN, DHTTYPE, 30);

void setup() {
  Serial.begin(9600); 
  Serial.println("DHTxx test!");

  dht.begin();
}

void loop() {
 //Wait a few seconds between measurements.
  delay(2000);

 //Reading temperature or humidity takes about 250 milliseconds!
 //Sensor readings may also be up to 2 seconds 'old' (its a very slow sensor)
  float h = dht.readHumidity();
 //Read temperature as Celsius
  float t = dht.readTemperature();
 //Read temperature as Fahrenheit
  float f = dht.readTemperature(true);

 //Check if any reads failed and exit early (to try again).
  if (isnan(h) || isnan(t) || isnan(f)) {
    Serial.println("Failed to read from DHT sensor!");
    return;
  }

 //Compute heat index
 //Must send in temp in Fahrenheit!
  float hi = dht.computeHeatIndex(f, h);

  Serial.print("Humidity: "); 
  Serial.print(h);
  Serial.print(" %\t");
  Serial.print("Temperature: "); 
  Serial.print(t);
  Serial.print(" *C ");
  Serial.print(f);
  Serial.print(" *F\t");
  Serial.print("Heat index: ");
  Serial.print(hi);
  Serial.println(" *F");
}
4
Galileo için tasarlanmış kütüphane mi? Kütüphanenin (en son kullandığım zaman) 16 MHz Arduino için olduğu halde 400 MHz'de çalıştığını görüyorum. DHT11, oldukça zamanlamaya özgü bir protokol kullanır. intel galileo dht11 için yapılan bir arama, Galileo ve Galileo için DHT çözümünü açıkladı Gen2, bir yerine 2 iğneyle
katma yazar Nick Gammon, kaynak
Bu sadece ctrl + c ve ctrl + v'nin yapıldığı yer ile aynı malzemeyi kullanıyorum çünkü! :) Buna ek olarak, lütfen pin bağlantılarını ayrıntılı olarak belirtebilir misiniz? diyot bağlamak için hangi pin gibi basit kelimeler anlamına gelir, hangi pin, yukarıda paylaştığınız bağlantıdan direnç bağlamak için pin! (Ayrıca diyot ve direnç belirtimi). Yardım için teşekkürler dostum! Şerefe ..
katma yazar Lidia Janoszka, kaynak
Ayrıca 3 pin DHT22 (Vcc, Out, Gnd) kullanıyorum.
katma yazar Lidia Janoszka, kaynak

1 cevap

Nick'in makale bağlantısı, bulduğum ile aynı, bu yüzden bir iyi arama problemi.

Intel forumunda anlatılan şey, Galileo'nun bir bilgisayar ve mikrodenetleyici olmayan bir bilgisayar gibi algılayıcı ile doğrudan iletişim kuramamasıdır, bu nedenle sensör tarafından istenen doğru zamanlama yeteneğinden yoksundur ve aynı zamanda DHT * de bir Çevresel ve dolayısıyla "PC" ile arayüz oluşturmanın bir yolunu gerektirir.

Gönderide tarif edilen, DHT için uygun dijital sinyal oluşturmak için iki pin kullanmaktır.

Devre, çıkış pimini korumak için bir diyot kullanır.

Forumda OP bu gibi bağlantıları açıklar:

Galileo'nun Pin 2'si DHT11'in veri pinine bağlanır.

     

Diyotun katodu Galileo'nun 3 pimine bağlanır.

     

Diyotun anodu DHT11 veri pinine bağlanır.

Diyot, standart bir diyot, muhtemelen 1N4143 olarak hızlı bir anahtarlama diyodu olacaktır. Direnç, 10K Ohm'luk standart çekme direncidir.

OP'lerin şeması şöyle:

enter image description here

Ayrıca, geçici postayla birlikte çalışacak şekilde değiştirildiği için bağlantılı postadaki OP tarafından bağlanan kodu kullanmanız gerekecektir.

1
katma
@JayM merhaba, PIN2 Galileo ve PIN3 de Galileo'dur. Pin 2 dht'in veri pimine bağlanırken, pim 3 diyotun katotuna ve diyotun anotu dht'in veri pimine bağlanır ve bu şemayı op communities.intel.com/servlet/JiveServlet/downloadImage/…
katma yazar RSM, kaynak
Burada "pin 2 DHT11 'e bağlanmıştır" yazılmıştır. Ancak Pin 2, DHT'ye bağlanır ve hangi DHT pininin bağlanması gerekir.
katma yazar Lidia Janoszka, kaynak