microdev.gr




Περιγραφή-Σκοπός

Το υλικό που ακολουθεί και βρίσκεται κυρίως σε μορφή βίντεο παρουσίασης, περιλαμβάνει τους δημοφιλείς αισθητήρες LM35 και DHT11, με τον δεύτερο αισθητήρα να μετρά και την υγρασία. Η συγκεκριμένη μελέτη θα μας δώσει τη δυνατότητα να γνωρίσουμε τη φιλοσοφία λειτουργίας των αναλογικών και ψηφιακών αισθητήρων. Ο αναλογικός αισθητήρας LM35 συνδέεται σε μια αναλογική θύρα του Arduino, ενώ ο DHT11 σε μια ψηφιακή. Το βίντεο της ενότητας με διάρκεια 54 λεπτά, παρουσιάζει όσα πρέπει να γνωρίζετε για τους αναλογικούς και ψηφιακούς αισθητήρες, τον υπολογισμό της μετρούμενης τάσης και τελικά του μέτρου του φυσικού μεγέθους, ενώ περιλαμβάνει και τις αντίστοιχες δοκιμές σε επίπεδο κώδικα. Αξίζει να σημειωθεί ότι, για πρώτη φορά παρουσιάζεται το εσωτερικό κύκλωμα του αισθητήρα DHT11. Τέλος, σας προτρέπουμε να διερευνήσετε το open-hardware.gr (π.χ. βίντεο με την αναλυτική παρουσίαση της διαδικασίας μετατροπής αναλογικού σήματος σε ψηφιακό) για συμπληρωματικό υλικό της ενότητας.

Περιεχόμενα Βίντεο

1. Εισαγωγικές πληροφορίες
2. Μετατροπή A/D με λίγα λόγια
3. Δοκιμή LM35
4. Στο εσωτερικό του DHT11
5. Δοκιμή DHT11

Κώδικας LM35


void setup()
{
  analogReference(INTERNAL);
  Serial.begin(9600);
}

void loop()
{
  int a=analogRead(0);
  float temp=(a*1.074)/10;
  Serial.println(temp);
  delay(1000);
}

Κώδικας DHT11

Προσοχή στον τρόπο γραφής για την ενσωμάτωση της βιβλιοθήκης DHT.h. Τα διπλά εισαγωγικά σημαίνουν ότι η βιβλιοθήκη βρίσκεται στον τοπικό κατάλογο της εφαρμογής. Από την άλλη μεριά, η χρήση των χαρακτήρων < και >, σημαίνει ότι η βιβλιοθήκη αντλείται από τις εγκατεστημένες βιβλιοθήκες στους καταλόγους της εφαρμογής Arduino IDE. Η αυτόματη εγκατάσταση της βιβλιοθήκης (όχι στον τοπικό κατάλογο της εφαρμογής) μπορεί να γίνει με την επιλογή Manage Libraries…, από το μενού Tools. Αναζητούμε τη βιβλιοθήκη και πατάμε το κουμπί Install. Σημειώστε ότι, η βιβλιοθήκη DHT.h βασίζεται στην Adafruit_sensor.h. Για αυτό το λόγο, θα πρέπει αρχικά να ψάξετε για την βιβλιοθήκη Adafruit Unified Sensor.


#include "DHT.h"

#define DHTPIN 2
#define DHTTYPE DHT11

DHT dht(DHTPIN, DHTTYPE);

void setup()
{
  Serial.begin(9600);
  dht.begin();
}

void loop()
{
  float h=dht.readHumidity();
  float t=dht.readTemperature();

  Serial.print("H="); Serial.println(h);
  Serial.print("T="); Serial.println(t);
  delay(2000);
}