Μετάβαση στο κύριο περιεχόμενο

Αισθητήρας σχετικής υγρασίας και θερμοκρασίας DHT11

 Αισθητήρας σχετικής υγρασίας και θερμοκρασίας DHT11

 

Κώδικας για τον DHT11 από τα παραδείγματα της βιβλιοθήκης του

 


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

// REQUIRES the following Arduino libraries:
// - DHT Sensor Library: https://github.com/adafruit/DHT-sensor-library
// - Adafruit Unified Sensor Lib: https://github.com/adafruit/Adafruit_Sensor

#include "DHT.h"

#define DHTPIN 2     // Digital pin connected to the DHT sensor
// Feather HUZZAH ESP8266 note: use pins 3, 4, 5, 12, 13 or 14 --
// Pin 15 can work but DHT must be disconnected during program upload.

// Uncomment whatever type you're using!

#define DHTTYPE DHT11   // DHT 11
// #define DHTTYPE DHT22   // DHT 22  (AM2302), AM2321
//#define DHTTYPE DHT21   // DHT 21 (AM2301)

// Connect pin 1 (on the left) of the sensor to +5V
// NOTE: If using a board with 3.3V logic like an Arduino Due connect pin 1
// to 3.3V instead of 5V!
// Connect pin 2 of the sensor to whatever your DHTPIN is
// Connect pin 3 (on the right) of the sensor to GROUND (if your sensor has 3 pins)
// Connect pin 4 (on the right) of the sensor to GROUND and leave the pin 3 EMPTY (if your sensor has 4 pins)
// Connect a 10K resistor from pin 2 (data) to pin 1 (power) of the sensor

// Initialize DHT sensor.
// Note that older versions of this library took an optional third parameter to
// tweak the timings for faster processors.  This parameter is no longer needed
// as the current DHT reading algorithm adjusts itself to work on faster procs.
DHT dht(DHTPIN, DHTTYPE);

void setup() {
  Serial.begin(9600);
  Serial.println(F("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 (the default)
  float t = dht.readTemperature();
  // Read temperature as Fahrenheit (isFahrenheit = true)
  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(F("Failed to read from DHT sensor!"));
    return;
  }

  // Compute heat index in Fahrenheit (the default)
  float hif = dht.computeHeatIndex(f, h);
  // Compute heat index in Celsius (isFahreheit = false)
  float hic = dht.computeHeatIndex(t, h, false);

  Serial.print(F("Humidity: "));
  Serial.print(h);
  Serial.print(F("%  Temperature: "));
  Serial.print(t);
  Serial.print(F("°C "));
  Serial.print(f);
  Serial.print(F("°F  Heat index: "));
  Serial.print(hic);
  Serial.print(F("°C "));
  Serial.print(hif);
  Serial.println(F("°F"));
}

Σχόλια

Δημοφιλείς αναρτήσεις από αυτό το ιστολόγιο

Σερβοκινητήρας

  Βασικός έλεγχος σερβομηχανισμού Θα μάθουμε πώς να ελέγχετε έναν τυπικό σερβοκινητήρα, να πηγαίνει εμπρός και πίσω κατά 180 μοίρες, χρησιμοποιώντας ένα «βρόχο for()». Αυτό γίνεται με τη βοήθεια της βιβλιοθήκης Servo, η οποία είναι προεγκατεστημένη βιβλιοθήκη στο Arduino IDE (τόσο εκτός σύνδεσης όσο και σε ηλεκτρονική έκδοση). . Αυτό γίνεται με τη βοήθεια της βιβλιοθήκης  Servo     , η οποία είναι προεγκατεστημένη βιβλιοθήκη στο Arduino IDE (τόσο εκτός σύνδεσης όσο και σε ηλεκτρονική έκδοση).      Χρειαζόμαστε τα παρακάτω:     Arduino IDE Arduino UNO  Σερβοκινητήρας 4,8V - 6V  Καλώδια βραχυκυκλωτήρα. Τυπικοί σερβοκινητήρες Οι τυπικοί σερβοκινητήρες είναι ενεργοποιητές που επιτρέπουν τον ακριβή έλεγχο της θέσης (γωνία). Χαρακτηριστικό  είναι ότι η γωνία του κινητήρα είναι 0 - 180 μοίρες. Με άλλα λόγια, μπορεί να κάνει το μισό μιας περιστροφής. Ένας τυπικός σερβοκινητήρας, όπως και άλλοι κινητήρες, είναι ουσιαστικά απλώς ένας...

Αντιστάσεις pull up, pull down

  Αντιστάσεις pull up (Pull up resistors) Οι αντιστάσεις pull up  είναι πολύ συνηθισμένες όταν χρησιμοποιούνται μικροελεγκτές (MCU) ή οποιαδήποτε συσκευή ψηφιακής λογικής. Θα εξηγήσουμε πότε και πού να χρησιμοποιήσετε αντιστάσεις pull up και, στη συνέχεια, θα κάνουμε έναν απλό υπολογισμό για να δείξουμε γιατί είναι σημαντικά τα pull-ups. Τι είναι μια αντίσταση  Pull up Ας υποθέσουμε ότι έχετε ένα MCU με ένα pin διαμορφωμένο ως είσοδο. Εάν δεν υπάρχει τίποτα συνδεδεμένο με τον ακροδέκτη και το πρόγραμμά σας διαβάζει την κατάσταση του ακροδέκτη, θα είναι ψηλά (τραβηγμένο στο VCC) ή χαμηλό (τραβηγμένο στη γείωση);  Αυτό το φαινόμενο αναφέρεται ως  αιωρούμενο  (floating). Για να αποφευχθεί αυτή η άγνωστη κατάσταση, μια αντίσταση pull-up ή pull-down θα διασφαλίσει ότι η ακίδα βρίσκεται είτε σε υψηλή είτε σε χαμηλή κατάσταση, ενώ χρησιμοποιεί επίσης χαμηλή ποσότητα ρεύματος. Για απλότητα, θα εστιάσουμε στα pull-ups καθώς είναι πιο συνηθισμένα από τα pull-down. Λε...

Πώς να χρησιμοποιήσετε ένα Breadboard

  Πώς να χρησιμοποιήσετε ένα Breadboard Το breadboard έχει εσωτερικές συνδέσεις μεταξύ των οπών του. Μερικές κάθετες συνδέσεις και μερικές οριζόντιες συνδέσεις. Κανονικά, χρησιμοποιείτε τις κολώνες στα πλάγια για να συνδέσετε το τροφοδοτικό σας. Και χρησιμοποιείτε τις σειρές στη μέση για να συνδέσετε τα στοιχεία σας. Στήλες Τροφοδοτικού Είναι σύνηθες να χρησιμοποιείτε τις στήλες στα αριστερά και δεξιά για τη σύνδεση του τροφοδοτικού. Αυτές οι στήλες συνδέονται κάθετα. Έτσι, εάν συνδέσετε 5 βολτ στην επάνω οπή μιας από τις πλευρικές κολώνες, θα έχετε 5 βολτ σε όλες τις οπές αυτής της στήλης. Χρησιμοποιήστε τις στήλες που επισημαίνονται με κόκκινη γραμμή για το συν και τη στήλη με μπλε γραμμή για το μείον. Τέλος φόρμας Σημείωση: Μερικές μεγαλύτερες πλάκες   breadboard χωρίζονται στα δύο έτσι ώστε το πάνω μισό να αποσυνδεθεί από το κάτω μισό. Αυτό υποδεικνύεται από τις κατακόρυφες μπλε και κόκκινες γραμμές που χωρίζονται στα δύο.   Περιοχή Συστατικού Σ...