Не атрымалася прачытаць датчык DHT22 з дапамогай Intel Galileo Gen2 дошка

Чаму я ў канчатковым выніку з дысплеем

<�Р> Не атрымалася прачытаць з датчыка DHT!

ў серыйнай маніторы ў большасці выпадкаў, калі я запускаю код, пазначаны ніжэй? Калі я паменшыць затрымку ў 1000 мс чытання паказвае 0.00 для тэмпературы і вільготнасці, якія, як добра, з'яўляюцца ў значнай ступені ілжывая. Любая дапамога будзе высока ацэнены.

// 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? Я бачу, што ён працуе на частаце 400 МГц, у той час як бібліятэка (калі я апошні раз выкарыстаў яго) была для Arduino МГц 16. DHT11 выкарыстоўвае пратакол сінхранізацыі высока спецыфічныя. Пошук па Intel Галілей DHT11 паказаў DHT абыходны шлях для Galileo і Galileo Gen2 з выкарыстаннем 2 шпількі замест аднаго
дададзена аўтар Nick Gammon, крыніца
Гэта толькі таму, што я выкарыстоўваю той жа матэрыял, з якога было зроблена CTRL + C і Ctrl + V! :) Акрамя таго, дадаўшы да яго, калі ласка, вы можаце паказаць падрабязна штифтовые злучэння? азначае, што ў простых словах, як, які кантактны для падлучэння дыёда, які кантактны для падлучэння рэзістара па спасылцы вы падзяліліся вышэй! (Таксама спецыфікацыя дыёда і рэзістара). Дзякуй мат за дапамогу !!! Ура ..
дададзена аўтар Lidia Janoszka, крыніца
І акрамя таго, я выкарыстоўваю 3-кантактны DHT22 (Vcc, Out, Gnd).
дададзена аўтар Lidia Janoszka, крыніца

1 адказы

артыкул спасылка Нік тое ж, што я знайшоў, таму ён павінен быць добра шукаць праблему.

Тое, што апісана на форуме Intel з'яўляецца тое, што Галілей не здольны прамой сувязі з датчыкам, як гэта кампутар, а не мікракантролер, таму, такім чынам, не валодае здольнасцю да дакладнага часу, патрабаванага датчыкам, а таксама DHT * лічыцца перыферыйнае і, такім чынам, патрабуецца спосаб для ўзаемадзеяння з «PC».

Тое, што апісана ў пасце выкарыстаць дзве шпількі, каб стварыць правільны лічбавы сігнал для DHT.

Схема выкарыстоўвае дыёд для абароны выхаднога кантакту.

OP на форуме апісвае сувязі, як гэта:

<�Р> Кантакт 2 Galileo злучаны з інфармацыйным кантактам DHT11. </Р>      <�Р> катодам дыёда злучаны з кантактам 3 Galileo. </Р>      <�Р> Анод дыёда злучаны з кантактам дадзеных DHT11. </Р>

Дыёд будзе ўяўляць сабой стандартны дыёд, магчыма, хуткі дыёд сігналу пераключэння як 1N4143. Рэзістар будзе стандартны падцягніце рэзістар 10K Ом.

Вось OPs схема:

enter image description here

Вы таксама павінны выкарыстоўваць код, звязаны з дапамогай OP ў звязаным пасце, як ён быў мадыфікаваны для працы з абыходным.

1
дададзена
@JayM прывітанне, PIN2 з'яўляецца Galileo і PIN3 таксама Galileo. Кантакт 2 злучаны з інфармацыйным кантактам дет, а кантакт 3 злучаны з катодам дыёда і анодам дыёда да інфармацыйнага кантакту DHT праверыць гэтую схему з оп communities.intel.com/servlet/JiveServlet/downloadImage/…
дададзена аўтар RSM, крыніца
Тут напісана, «шпілька 2 падлучаны да DHT11», але чый Pin 2 для падлучэння да DHT і на якім штыфт DHT я павінен злучыцца.
дададзена аўтар Lidia Janoszka, крыніца