Κατέβασμα παρουσίασης
Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε
ΔημοσίευσεΛύσανδρος Θεοδωρίδης Τροποποιήθηκε πριν 9 χρόνια
1
ΑΤΕΙ ΣΕΡΡΩΝ, ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ & ΕΠΙΚΟΙΝΩΝΙΩΝ
Ασύρματος μετρητής θερμοκρασίας για αγροτικές εφαρμογές Πτυχιακή Εργασία της Σπυριδούλα Σκορδίλη(2522) Επιβλέπων Καθηγητής: Δρ. Θεόδωρος Λάντζος Σέρρες Νοέμβριος 2013
2
ΣΚΟΠΟΣ ΤΗΣ ΠΤΥΧΙΑΚΗΣ ΕΡΓΑΣΙΑΣ
Δημιουργία πλακέτας με μικροεπεξεργαστή, για τη λήψη θερμοκρασίας του περιβάλλοντος. Δημιουργία εφαρμογής σε κινητό Android για την λήψη της θερμοκρασίας από την πλακέτα. Έρευνες για την εμβέλεια του Bluetooth και την χρησιμοποίηση πάνω από έναν αισθητήρων θερμοκρασίας σε μεγάλες αποστάσεις από την πλακέτα.
3
Arduino vs. Raspberry pi
25 ευρώ 35 ευρώ Windows Linux Ram 2KB Ram 256MB Flash 32KB SD Card Για εφαρμογές με εξωτερικά εξαρτήματα Χρησιμοποιείται για εφαρμογές με Ιντερνετ, γραφικά Για αρχάριους Χρησιμοποιεί λιγότερη μπαταρία Πολλά είδη Eφαρμογές μικρού μεγέθους
4
Arduino Uno Χαρακτηριστικά Arduino Uno Μικροελεγκτής ATmega328
5V Τάση λειτουργίας 7-12V Τάση εισαγωγής 14 Ψηφιακοί Ι/Ο είσοδοι (ψευδοαναλογικές είσοδοι 3, 5, 6, 9, 10 και 11 ) 6 Αναλογικές είσοδοι 32 KB Μνήμη Flash ( εκ των οποίων τα 2 KB χρησιμοποιούνται από τον bootloader) 2 KB SRAM 1 KB EEPROM
5
Τροφοδοσία Arduino Uno
Η τροφοδότηση μπορεί να γίνει με 3 τρόπους: -USB , Πρίζα, Μπαταρία Οι ακροδέκτες τροφοδοσίας είναι: -Vin: Τάση εισόδου -GND: Γείωση -5V: Η τάση που λειτουργεί το Arduino (Ρυθμιστής Τάσης) -3.3V: Η τάση αυτή δίνεται από το ολοκληρωμένο FTDI.
6
LM35 Temperature Sensor Ο LM35 είναι ένας αισθητήρας θερμοκρασίας συγκεκριμένα είναι ένα ολοκληρωμένο κύκλωμα που η έξοδος τάσης του αντιστοιχεί στην κλίμακα Κελσίου. Έχει τα εξής χαρακτηριστικά: -Εύρος θερμοκρασίας από -55 ° C έως 150 ° C -Η τάση εξόδου του είναι ανάλογη της θερμοκρασίας -Λειτουργεί με 4-30 προσφοράς Volt -Ακρίβεια 0,5 στα 25° C -Χαμηλή αντίσταση εξόδου.
7
Σύνδεση του LM35 στο Arduino
Ο αισθητήρας διαθέτει 3 pins: -Vin, GND, Vout Συνδεσμολογία: -GND LM35 -> GND Arduino -Vin LM35-> 5V Arduino -Vout LM35-> Analog Input/Output Arduino
8
Τρόποι ασύρματης αποστολής δεδομένων
Η ασύρματη αποστολή της θερμοκρασίας από Μ/Ε Arduino στη συσκευή με λειτουργικό σύστημα android μπορεί να γίνει με ποικίλους τρόπους, όπως: Wifi Bluetooth Gps Sms-GPRS
9
Bluetooth Module Χρησιμοποιήθηκε το Wireless Serial 4Pin Bluetooth RF Transceiver Module RS232W Backplane. Χαρακτηριστικά BT: Bluetooth με σειριακή επικοινωνία. Σειριακής επικοινωνία: 9600 baud rate Όνομα: LINVOR Κωδικός (Pairing code): 1234 Προγραμματισμένο σαν συσκευή “slave” Τροφοδοσία 3.3 έως 5 V.
10
Σύνδεση του Bluetooth Module στο Arduino
Pin Name Meaning 1 KEY HIGH=προγραμματισμός, LOW=λειτουργία 2 VCC 3.3 – 5V 3 GND Ground 4 TXD TX transmit pin 5 RXD RX receive pin 6 STATE Κατάσταση σύνδεσης
11
Πλατφόρμες Λογισμικού
Eclipse -Είναι ένα πολύ-γλωσσικό ολοκληρωμένο περιβάλλον ανάπτυξης (IDE) που περιλαμβάνει ένα βασικό χώρο εργασίας και ένα επεκτάσιμο plug-in σύστημα για την προσαρμογή του περιβάλλοντος. Είναι γραμμένο κυρίως σε Java. Μπορεί να χρησιμοποιηθεί για την ανάπτυξη εφαρμογών σε Java. Arduino IDE -Το ολοκληρωμένο περιβάλλον ανάπτυξης(IDE) του Arduino είναι μία εφαρμογή γραμμένη σε Java, που λειτουργεί σε πολλές πλατφόρμες, και προέρχεται από το IDE για τη γλώσσα προγραμματισμού Processing και το σχέδιο Wiring (Low Level C++).
12
Arduino IDE – Διάβασμα θερμοκρασίας
#include <SoftwareSerial.h> int analogPin = 0; int readvalue = 0; float temp = 0; int LED = 13; void setup() { Serial.begin(9600); //Σετάρει μεταφορά δεδομένων pinMode(LED,OUTPUT); } void loop() { readvalue = analogRead(analogPin); //Διάβασμα από Analog pin temp = (readvalue * 0.49); // Μετατροπή A/D (5*100)/1024 Serial.println(temp); delay(1000); …..
13
Eclipse – Λήψη θερμοκρασίας
socket = device.createRfcommSocketToServiceRecord(UUID .fromString(" F9B34FB")); socket.connect(); inputStream = socket.getInputStream(); outputStream = socket.getOutputStream(); int read = -1; final byte[] bytes = new byte[2048]; for (; (read = inputStream.read(bytes)) > -1;) { final int count = read; _handler.post(new Runnable() { public void run() { String str = ""; str = SamplesUtils.byteToHex(bytes, count); //Παίρνει bytes σαν Integer και τα μετατρέπει σε Hex hexString.append(str); tempView.setText(SamplesUtils.hexToString( //Μετατροπή σε αναγνώσιμη μορφή hexString.toString()).trim()); } });
14
Διάγραμμα θερμοκρασίας-χρόνου 1
Αποθήκευση δεδομένων σε αρχείο SimpleDateFormat thedate = new SimpleDateFormat("dd-MM-yyyy HH:mm"); Date d=new Date(); String formattedDate=thedate.format(d); dates_Strings.add(formattedDate); try{ //στη λίστα mydata πρόσθεσε την θερμοκρασία των shared prefs mydata.add(tempdata1); } try { fos = new FileOutputStream(file,true); BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(fos)); for (int i=0;i<mydata.size();i++){ bw.append(mydata.get(i)+","+dates_Strings.get(i)+"\n"); Διάβασμα δεδομένων από αρχείο try { fis = new FileInputStream(file); BufferedReader br = new BufferedReader(new InputStreamReader(fis)); do { s = br.readLine(); //Διαβάζει από το αρχείο μέσω του bufferReader if (s != null ){ String[] splitLine = s.split(",");// εκεί που υπάρχει (κομμα), χώρισε τη γραμμή data.add(Double.parseDouble(splitLine[0])); dates_Strings1.add(splitLine[1]); } } while (s != null ); br.close();
15
Διάγραμμα θερμοκρασίας-χρόνου 2
Εισαγωγή δεδομένων για τη δημιουργία διαγράμματος SimpleDateFormat formatter = new SimpleDateFormat("dd-MM-yyyy HH:mm"); Date convertedDate; try{ for (int k=0;k<dates_Strings1.size();k++){ //Μετατρέπει την ημερομηνία που βρίσκεται στη λίστα dates_Strings ώστε να είναι αναγνώσιμη convertedDate = formatter.parse(dates_Strings1.get(k)); date.add(convertedDate); } } TimeSeries series = new TimeSeries("Arduino data"); for (int i=0;i<dates_Strings1.size();i++){ series.add(date.get(i),data.get(i)); //Προσθέτει στα series τα δεδομένα των λιστών } ….. mChart = ChartFactory.getTimeChartView(getBaseContext(), dataset, multiRenderer, "dd/MM/yyyy"); chartContainer.addView(mChart); Για τη δημιουργία διαγράμματος χρησιμοποιήθηκε η βιβλιοθήκη AChartEngine
16
Εμβέλεια Bluetooth 1 3m 6m 7m 5m 8m 7m 8m Περιγραφή
Σκοπός της έρευνας αυτής είναι να βρεθούν οι αποστάσεις που μπορεί το Bluetooth στο arduino, να ανιχνευθεί και να στείλει δεδομένα σε κινητά με λειτουργικό σύστημα android. 3m 6m 7m 5m 8m 7m 8m
17
Εμβέλεια Bluetooth 2 Οι 1,2,3,4,5,6 και 7 είναι τυχαίες αποστάσεις που ανίχνευσαν το Bluetooth του arduino. Θέσεις που ανιχνεύουν το Bluetooth-arduino: Η θέση 1 απέχει 3 μέτρα απο το arduino με εμπόδιο, ένα τοίχο Η θέση 2 απέχει 6 μέτρα από το arduino με εμπόδια τρεις τείχους Η θέση 3 απέχει 7 μέτρα από το arduino με εμπόδια δυο τείχους και ένα παράθυρο Η θέση 4 απέχει 5 μέτρα από το arduino με εμπόδια ένα τοίχο και ένα παράθυρο Η θέση 5 απέχει 7 μέτρα από το arduino με εμπόδια ένα τοίχο και ένα παράθυρο Θέσεις που δεν ανιχνεύουν το Bluetooth-arduino Η θέση 6 απέχει 8 μέτρα από το arduino με εμπόδια τρεις τείχους. Ένα μικρό βήμα μπροστά πιάνει σήμα! Η θέση 7 απέχει 8 μέτρα από το arduino με εμπόδια δυο τείχους. Ακριβώς πάνω στα κάγκελα πιάνει σήμα! Συμπεράσματα: Μέχρι και τα 7 μέτρα ανιχνεύει το Bluetooth-arduino με εμπόδια Από τα 8 μέτρα και πάνω δεν πιάνει σήμα άνω των δύο εμποδίων Στα 10 μέτρα περίπου το ανιχνεύει με ένα ή καθόλου εμπόδια
18
Λειτουργία αισθητήρων θερμοκρασίας σε μεγάλες αποστάσεις 1
Σκοπός της έρευνας είναι η χρήση των κατάλληλων αισθητήρων θερμοκρασίας σε μεγάλη απόσταση μεταξύ τους και επίσης σε μεγάλη απόσταση από το Μικροεπεξεργαστή LM35 Sensor Χρησιμοποιείται για μικρές αποστάσεις Ιδανικό μέγεθος καλωδίου τα 3 μέτρα με τα κατάλληλα εξαρτήματα και χωρίς εξαρτήματα τα 2 μέτρα. Άνω τον 5 μέτρων υπάρχει θόρυβος(noise). Πολλοί LM35 sensors δεν γίνεται να συνδεθούν σε πολλές αναλογικές είσοδοι(non multiplexed). Δυνατότητα χρησιμοποίησης multiplexer Ταχύτητα 9600 baud rate -Για 2 μέτρα καλωδίου x=u*t-> t=x/u ->t= 2m/9600bps-> seconds = 0.2ms = 200μs
19
Λειτουργία αισθητήρων θερμοκρασίας σε μεγάλες αποστάσεις 2
Dallas DS1820 – Χρησιμοποιείται για μεγάλες αποστάσεις(40 μέτρα ιδανικά) Χαρακτηριστικά Dallas DS18(B)20 Παίρνει θερμοκρασίες από -55°C έως 125°C με ακρίβεια 9-12 bit Ακρίβεια +-0,5 από -10°C έως +85°C Κάθε αισθητήρας χαρακτηρίζεται από μια διεύθυνση των 16 bit Λόγω των διευθύνσεων που έχουν, μπορούν να συνδεθούν πολλοί αισθητήρες μαζί σε 1 μόνο καλώδιο(1-wire protocol) Τέλος μετατρέπει τη θερμοκρασία σε 12 bits digital word στα 750ms(max)
20
1-Wire Τι είναι το 1-Wire Περιγραφή 1-Wire
Χρησιμοποιούνται κυρίως οι αισθητήρες Dallas 5V supply από το Arduino CAT3 τηλεφώνου ή CAT5 Ethernet καλώδια Χρησιμοποιεί τη βιβλιοθήκη oneWire του Arduino
21
Τροφοδοσία 1-wire Κανονική λειτουργία(εξωτερική τροφοδοσία)
Απαιτούνται 3 καλώδια: wire bus(data), Ground, και Power. Παρασιτική λειτουργία- (εξοικονόμηση ενέργειας) Απαιτούνται 2 καλώδια: wire bus, Ground Καθυστέρηση 750ms απαιτείται για μια μετατροπή θερμοκρασίας. Ο master δεν μπορεί να κάνει τίποτα κατά τη διάρκεια αυτής της περιόδου, όπως και την έκδοση εντολών σε άλλες συσκευές, ή εντολές για τη λειτουργία των slave συσκευών.
22
Εύρεση διεύθυνσης του Dallas για την επικοινωνία με τον Μικροεπεξεργαστή
Κάθε 1-wire συσκευή που διατίθεται στο εμπόριο έχει ένα μοναδικό 64-bit serial κωδικό γραμμένο στην εσωτερική μνήμη του, τη ROM. Για την εύρεση διεύθυνσης του αισθητήρα Dallas χρησιμοποιούνται οι εντολές ROM του πίνακα: Command Usage Read Rom Identification – (Ισχύει για μία συσκευή) Skip Rom Skip addressing –(δεν έχει γίνει ταυτοποίηση συσκευών και στέλνει μια εντολή σε όλες τις συσκευές) Match Rom Specific device –(Επικοινωνία με συγκεκριμένη συσκευή) Search Rom Obtain IDs of all devices on the bus
23
Σειρά επικοινωνίας Master-Slave
Όλες οι 1-Wire συσκευές ακολουθούν μια βασική σειρά επικοινωνίας: 1. Ο master στέλνει τον “Reset” pulse. 2. Ο slave(s) ανταποκρίνεται με ένα ”Presence” pulse. 3. Ο master στέλνει μία ROM command. Αυτό ταυτοποιεί αποτελεσματικά μία ή διάφορες συσκευές slave. 4. Ο master στέλνει μία Memory command.
24
Ακολουθεί η παρουσίαση της εφαρμογής Android!
25
Τέλος Παρουσίασης
Παρόμοιες παρουσιάσεις
© 2024 SlidePlayer.gr Inc.
All rights reserved.