Σ’ αυτόν τον οδηγό θα δούμε πώς να χρησιμοποιήσουμε τον αισθητήρα θερμοκρασίας DS18B20 με την πλακέτα Arduino UNO. Θα μάθουμε πώς να συνδέουμε τον αισθητήρα, να εγκαθιστούμε τις απαραίτητες βιβλιοθήκες και να διαβάζουμε την θερμοκρασία από έναν αισθητήρα DS18B20.
Υλικά που θα χρειαστούμε
Το Arduino UNO, τον αισθητήρα DS18B20, το breadboard, καλώδια, μία αντίσταση 4,7ΚΩ και το λογισμικό για τον υπολογιστή Arduino IDE.
Η συναρμολόγηση του κυκλώματος

Εγκατάσταση Βιβλιοθηκών
Για να χρησιμοποιήσουμε τον αισθητήρα θερμοκρασία θα χρειαστεί να εγκαταστήσουμε τις παρακάτω βιβλιοθήκη. Ακολουθήστε τα παρακάτω βήματα:
- Ανοίξτε το Arduino IDE σας και μεταβείτε στο Sketch > Include Library > Manage Libraries. Θα πρέπει να ανοίξει ο Library Manager.
- Πληκτρολογήστε “OneWire” στο πλαίσιο αναζήτησης και εγκαταστήστε τη βιβλιοθήκη OneWire του Paul Stoffregen.

- Στη συνέχεια, αναζητήστε “Dallas” και εγκαταστήστε τη βιβλιοθήκη Dallas Temperature του Miles Burton.

Γράφουμε τον κώδικα
Αφού εγκαταστήσουμε τις βιβλιοθήκες μας γράφουμε τον παρακάτω κώδικα
#include // Βιβλιοθήκη για το πρωτόκολλο επικοινωνίας OneWire
#include // Βιβλιοθήκη για τον έλεγχο των αισθητήρων θερμοκρασίας
#define ONE_WIRE_BUS 4 // Ορισμός του Pin 4 ως την είσοδο δεδομένων του αισθητήρα
OneWire oneWire(ONE_WIRE_BUS); // Δημιουργία αντικειμένου OneWire για την επικοινωνία
DallasTemperature sensors(&oneWire); // Σύνδεση της βιβλιοθήκης Dallas με το OneWire
void setup(void) {
Serial.begin(9600); // Έναρξη σειριακής επικοινωνίας για προβολή στην οθόνη sensors.begin(); // Αρχικοποίηση του αισθητήρα
}
void loop(void) {
sensors.requestTemperatures(); //Εντολή στον αισθητήρα να μετρήσει τη θερμοκρασία
// Εμφάνιση της θερμοκρασίας σε Celsius
Serial.print("Celsius temperature: ");
Serial.print(sensors.getTempCByIndex(0));
// Εμφάνιση της θερμοκρασίας σε Fahrenheit
Serial.print(" - Fahrenheit temperature: ");
Serial.println(sensors.getTempFByIndex(0));
delay(1000); // Αναμονή 1 δευτερολέπτου πριν την επόμενη μέτρηση
}
Μερικές χρήσιμες παρατηρήσεις:
- getTempCByIndex(0): Το 0 σημαίνει ότι διαβάζεις τον πρώτο αισθητήρα που είναι συνδεδεμένος στο καλώδιο (μπορείς να έχεις πολλούς στο ίδιο pin!).
- Αντίσταση: Μην ξεχάσεις να τοποθετήσεις μια αντίσταση 4.7kΩ ανάμεσα στο καλώδιο δεδομένων (Data) και την τροφοδοσία (VCC), αλλιώς ο αισθητήρας μπορεί να δείχνει τιμές όπως -127.
Φορτώνουμε τον κώδικα στο Arduino και ανοίγουμε το Serial Monitor από το μενού πάνω. Tools –> Serial Monitor και παρατηρούμε την τρέχουσα θερμοκρασία του αισθητήρα ανά 1sec.
