Φτιάχνοντας ένα Έξυπνο Σπίτι, και έλεγχος από το Android (μέρος 2ο)

android smart home

Για την κατασκευή του "Έξυπνου Σπιτιού", ένα πολύ σημαντικό τμήμα του project είναι οι αισθητήρες οι οποίοι θα "μετράνε" διάφορες παραμέτρους.

Τέτοιες παράμετροι μπορεί να είναι θερμοκρασία, ένταση ήχου, φωτεινότητα, απόσταση κ.α.

Κάποια βασικά μικροηλεκτρονικά, και ο LM35

Ο LM35 είναι ένας αισθητήρας θερμοκρασίας, ο οποίος έχει 3 "πόδια", ένα Vin, ένα Vout, και ένα Ground.

  • lm-35-sensor

Για Vin (τάση εισόδου) μπορεί να δεχτεί από 4V μέχρι 20V. Η τάση εξόδου (Vout) που μας δίνει εξαρτάται από την θερμοκρασία. Για παράδειγμα τάση εξόδου 0.20V αντιστοιχεί σε 20 βαθμούς Κελσίου.

Σε πρώτη φάση τροφοδοτήσαμε τον LM35 από μία μπαταρία, και πήραμε με βολτόμετρο την τάση εξόδου να είναι 0.27V, το οποίο συνεπάγεται θερμοκρασία 27 βαθμούς Κελσίου.

  • sensor-data-lm35-1
  • sensor-data-lm35-2

Συνδέοντας τον αισθητήρα με το Arduino

Το Arduino είναι η "development board" η οποία θα χρησιμοποιήσουμε, δηλαδή μία "πλακέτα" την οποία μπορούμε να προγραμματίσουμε να κάνει ότι θέλουμε.

Οι δυνατότητες αυτής της πλακέτας γίνεται να επεκταθούν μέσω κάποιων "Shields" τα οποία κουμπώνουν πάνω σ αυτήν. Εμείς στο project θα χρησιμοποιήσουμε και την Ethernet Shield.

  • arduino-ethernet-shield-1
  • arduino-ethernet-shield-2

Για να συνδέσουμε τον αισθητήρα που είδαμε παραπάνω (LM35) στο Arduino θα ακολουθήσουμε την ίδια διαδικασία με πριν, μόνο που τώρα την τάση εισόδου θα την πάρουμε από την πλακέτα, και την τάση εξόδου θα την "στείλουμε" πίσω σ αυτήν.

Δίνουμε λοιπόν 5V στα ακριανά pins του LM35 (μπλε και πράσινο καλώδιο στην φωτογραφία), και παίρνουμε την έξοδο από το μεσαίο pin, την οποία την οδηγούμε στο Analog Input 0 του Arduino.

  • arduino-connect-1
  • arduino-connect-2

Προγραμματίζοντας το Arduino

Πώς όμως θα "διαβάσουμε" την ένδειξη που πήγαμε στο Analog Input 1; Ένα από τα θετικά του Arduino είναι ότι προγραμματίζεται πανεύκολα.

Σε πρώτη φάση ας πάρουμε την ένδειξη του αισθητήρα στο Serial output του υπολογιστή μας. Ο κώδικας που χρησιμοποιήσαμε:

int analogPin = 0;
int readvalue = 0;
float temp = 0;

void setup() {
  Serial.begin(9600); //gia na parw endeixi se serial output
}

void loop() {
  readvalue = analogRead(analogPin); //na diavasoume tin endeixi apo to Pin 0
  temp = (readvalue * 0.49); //metatropi A/D (5*temp*100)/1024
  Serial.print("Temprature: ");
  Serial.print(temp); //emfanisi sto serial output
  Serial.println("C "); 
  delay(1000); 
}
  • temp-sensor-1

Hardware που χρησιμοποιήσαμε

  • Arduino Duemilanove
  • Ethernet Shield
  • LM35
  • Breadboard, Cables

Η Development Board στην οποία βασίζεται to project μας είναι το Arduino. Εμείς χρησιμοποιήσαμε το Duemilanove αλλά μπορείτε να χρησιμοποιήσετε και την πιο πρόσφατη έκδοση της πλακέτας, Arduino UNO.

Σκοπός μας να "στήσουμε έναν Web-Server" στο Arduino, για το οποίο θα χρειαστούμε και την Ethernet Shield.

Ο αισθητήρας που θα χρησιμοποιήσουμε σε πρώτη φάση είναι θερμοκρασίας, και συγκεκριμένα ο LM35 DZ.

Ακόμα θα χρειαστούμε ένα μία Breadboard (μαζί φυσικά με Jumper Wires").

 

Κάντε Like το GreeceAndroid.gr στο Facebook!

Γίνετε μέλος της Ελληνική Κοινότητας του Android στο G+

aByte