Δθαξκνγέο αζύξκαηεο ηειεκεηξίαο ζηελ αλαπηπμηαθή πιαηθόξκα Arduino Διεπζεξηάδεο Μηραήι (ΑΜ:982)

Δθαξκνγέο αζύξκαηεο ηειεκεηξίαο ζηελ αλαπηπμηαθή πιαηθόξκα Arduino Διεπζεξηάδεο Μηραήι (ΑΜ:982)
Σερλνινγηθό Δθπαηδεπηηθό Ίδξπκα Κξήηεο
΢ρνιή Σερλνινγηθώλ Δθαξκνγώλ
Σκήκα Δθαξκνζκέλεο Πιεξνθνξηθήο & Πνιπκέζσλ
Πηπρηαθή εξγαζία
Δθαξκνγέο αζύξκαηεο ηειεκεηξίαο ζηελ
αλαπηπμηαθή πιαηθόξκα Arduino
Διεπζεξηάδεο Μηραήι (ΑΜ:982)
Δπηβιέπσλ θαζεγεηήο : Κνξλάξνο Γεώξγηνο
Δπηηξνπή Αμηνιόγεζεο:
Ηκεξνκελία παξνπζίαζεο:
ii
Δπραξηζηίεο
Ιδηαίηεξν επραξηζηψ νθείισ ζηνλ Γεψξγην Κνξλάξν θαη εηζεγεηή ηεο πηπρηαθήο γηα ηελ
άξηζηε πιεξνθφξεζε πάλσ ζε ζέκαηα κηθξνυπνινγηζηψλ, κηθξνειεγθηψλ θαη αξρηηεθηνληθήο
ππνινγηζηψλ. Όπσο επίζεο θαη φινπο ηνπο δηδάζθνληεο ηνπ ηκήκαηνο Δθαξκνζκέλεο Πιεξνθνξηθήο
& Πνιπκέζσλ πνπ κε ηα εθάζηνηε καζήκαηα ηνπο δηακφξθσζαλ ην απαξαίηεην επίπεδν γλψζεσλ πνπ
ήηαλ ε βάζε ηεο παξνχζαο εξγαζίαο. Σέινο ζηελ νηθνγέλεηα κνπ γηα ηελ ακέξηζηε βνήζεηα ζε ζέκαηα
δαθηπινγξάθεζεο θαη πνηνηηθνχ έιεγρνπ ησλ θεηκέλσλ.
iii
iv
Abstract
By using open source hardware and sensors that are widely available commercially, we can
obtain distant measurements and recording of environmental conditions and checking for possible
invasion at any given area. The Arduino and the Wishield are development boards suitable for these
specific applications.
The Arduino board allows us to quickly record external events through the available Atmel
ATMega 328P 20 Mhz processor. It has enough memory for calculations and for code storage.
2 KB SRAM type memory for calculations.
1 KB EEPROM type memory for permanent storage after deactivation of the system.
32 KB Flash type memory to store the executable code.
The Wishield provides the 802.11b wireless protocol and the ability to serve simple websites that
we can configure their content. It will also incorporate the relevant sensors on the platform:
The temperature sensor DS18B20 with a measuring range from -55 to 125 oC.
The relative humidity sensor Honeywell HIH-4030 with range from 0 to 100% RH.
And the Parallax 555-280227 PIR technology motion sensor with a coverage area of up to 6
meters.
The subject of this thesis is the design and study of special telemetry subsystem on the Arduino
development environment which is based on C ++.
v
vi
΢ύλνςε
Με ηελ ρξήζε πιηθνύ αλνηρηνύ θώδηθα θαη αηζζεηήξεο πνπ θπθινθνξνχλ επξέσο ζην
εκπφξην, κπνξνχκε λα επηηχρνπκε ηελ εμ απνζηάζεσο κέηξεζε θαη θαηαγξαθή ησλ
πεξηβαιινληηθψλ ζπλζεθψλ, φπσο θαη ηνλ έιεγρν γηα πηζαλή εηζβνιή ζε θάζε ρψξν. Η Arduino θαη ε
Wishield είλαη αλαπηπμηαθέο πιαθέηεο θαηάιιειεο γηα ηηο ζπγθεθξηκέλεο εθαξκνγέο.
Η πιαθέηα Arduino καο επηηξέπεη λα έρνπκε γξήγνξε θαηαγξαθή εμσηεξηθψλ γεγνλφησλ κέζσ
ηνπ επεμεξγαζηή Atmel ATMega 328P ησλ 20 Mhz πνπ δηαζέηεη. Γηαζέηεη αξθεηή κλήκε γηα
ππνινγηζκνχο θαη γηα απνζήθεπζε θψδηθα.
Μλήκε ηχπνπ SRAM κεγέζνπο 2 KB γηα ηνπο ππνινγηζκνχο.
Μλήκε ηχπνπ EEPROM κεγέζνπο 1 ΚΒ γηα ηελ κφληκε απνζήθεπζε δεδνκέλσλ κεηά ηελ
απελεξγνπνίεζε ηνπ ζπζηήκαηνο.
Μλήκε ηχπνπ Flash κεγέζνπο 32 ΚΒ γηα ηελ απνζήθεπζε ηνπ θψδηθα πξνο εθηέιεζε.
Η Wishield καο παξέρεη αζχξκαην πξσηφθνιιν 802.11b θαη ηελ δπλαηφηεηα λα καο δηαθνκίδεη
(serve) άπιεο ηζηνζειίδεο πνπ κπνξνχκε λα δηακνξθψζνπκε ην πεξηερφκελν ηνπο. Δπίζεο ζα
ελζσκαησζνχλ ζηελ πιαηθφξκα ζρεηηθνί αηζζεηήξεο:
Ο αηζζεηήξαο ζεξκνθξαζίαο DS18B20 κε εχξνο κέηξεζεο απφ -55 έσο +125 νC.
Ο αηζζεηήξαο ζρεηηθήο πγξαζίαο Honeywell HIH-4030 κε εχξνο 0 έσο 100% RH.
Όπσο θαη ν Parallax 555-280227 αηζζεηήξαο θίλεζεο, ηερλνινγίαο PIR κε πεξηνρή θάιπςεο
έσο 6 κέηξα.
Θέκα απηήο ηεο πηπρηαθήο εξγαζίαο είλαη ε κειέηε θαη ζρεδίαζε εηδηθνχ ππνζπζηήκαηνο
ηειεκεηξίαο θαη εθαξκνγήο ζην πεξηβάιινλ αλάπηπμεο ηνπ Arduino πνπ βαζίδεηαη ζηελ C++.
vii
viii
Πίλαθαο Πεξηερνκέλσλ
Abstract ................................................................................................................................................... v
΢χλνςε .................................................................................................................................................. vii
Πίλαθαο Πεξηερνκέλσλ .......................................................................................................................... ix
Πίλαθαο Δηθφλσλ.................................................................................................................................. xiv
Λίζηα Πηλάθσλ ...................................................................................................................................... xv
1.
2.
3.
Δηζαγσγή ......................................................................................................................................... 1
1.1.
Κίλεηξν γηα ηελ δηεμαγσγή ηεο εξγαζίαο ................................................................................ 1
1.2.
΢θνπφο θαη ΢ηφρνη Δξγαζίαο ................................................................................................... 2
1.3.
Γνκή Δξγαζίαο ........................................................................................................................ 2
Γεληθή εηζαγσγή ζηελ ηειεκεηξία .................................................................................................. 4
2.1.
Απαξρέο θαη ε αλάπηπμε εθαξκνγψλ ηειεκεηξίαο .................................................................. 4
2.2.
Αξρή ιεηηνπξγίαο ..................................................................................................................... 4
2.3.
Οθέιε & Δθαξκνγέο ............................................................................................................... 5
2.4.
Άιιεο εθαξκνγέο επηγξακκαηηθά ............................................................................................ 5
Δηζαγσγή ζηνπο κηθξνειεγθηέο ...................................................................................................... 7
3.1.
Φεθηαθά νινθιεξσκέλα θπθιψκαηα ...................................................................................... 7
3.2.
Μνλνιηζηθά Ο.Κ ...................................................................................................................... 7
3.3.
Τβξηδηθά Ο.Κ........................................................................................................................... 7
3.4.
Υξήζηκα ραξαθηεξηζηηθά ησλ Ο.Κ.......................................................................................... 8
3.5.
Σαμηλφκεζε ησλ Ο.Κ βάζεη βαζκνχ νινθιήξσζεο................................................................. 8
3.6.
Μηθξνεπεμεξγαζηήο ................................................................................................................. 9
3.7.
Μηθξνειεγθηήο ........................................................................................................................ 9
3.8.
Μηθξνειεγθηέο ζε ζχγθξηζε κε ηνπο κηθξνεπεμεξγαζηέο ....................................................... 9
3.9.
Δίδε κηθξνειεγθηψλ ............................................................................................................... 10
3.9.1. Μηθξνειεγθηέο 8, 16 θαη 32 bit ........................................................................................ 10
3.9.2. Δλζσκαησκέλνο κηθξνειεγθηήο ....................................................................................... 10
3.9.3. Μηθξνειεγθηήο εμσηεξηθήο κλήκεο ................................................................................. 10
3.9.4. Αξρηηεθηνληθή Von-Neuman (ή Princeton) ...................................................................... 10
3.9.5. Αξρηηεθηνληθή Harvard ..................................................................................................... 11
3.9.6. Αξρηηεθηνληθή CISC ......................................................................................................... 11
3.9.7. Αξρηηεθηνληθή RISC ......................................................................................................... 12
ix
3.10. Βαζηθή δνκή ηνπ κηθξνειεγθηή ............................................................................................. 12
3.11. Μνλάδα κλήκεο ..................................................................................................................... 13
3.11.1. Σα βαζηθφηεξα είδε κλήκεο: ............................................................................................ 14
3.12. Γίαπινο .................................................................................................................................. 14
3.13. Μνλάδα εηζφδνπ/εμφδνπ (Ι/Ο) ............................................................................................... 14
3.14. ΢εηξηαθή επηθνηλσλία ............................................................................................................. 15
3.15. Μνλάδα ρξνληζκνχ (Timer) ................................................................................................... 15
3.16. Μνλάδα κεηαηξνπήο απφ αλαινγηθφ ζε ςεθηαθφ (ADC) ..................................................... 15
3.17. Μνλάδα επνπηείαο ρξνληζκνχ (Watchdog Timer)................................................................. 15
3.18. Πξνγξακκαηηζκφο κηθξνειεγθηψλ......................................................................................... 16
4.
Παξνπζίαζε ηεο αλαπηπμηαθήο πιαθέηαο Arduino ....................................................................... 18
4.1.
Σί είλαη ην Arduino; ............................................................................................................... 18
4.2.
Γηαηί Arduino; (έλαληη άιισλ) ............................................................................................... 19
4.3.
Σν hardware ηνπ Arduino ...................................................................................................... 19
4.4.
Οη αθξνδέθηεο ηνπ Arduino ................................................................................................... 20
4.4.1. Κάπνηνη αθξνδέθηεο έρνπλ ζπγθεθξηκέλεο ιεηηνπξγίεο .................................................... 20
4.4.2. Αθξνδέθηεο γηα εηδηθέο ιεηηνπξγίεο φπσο:........................................................................ 21
4.5.
Μλήκε .................................................................................................................................... 21
4.6.
Σξνθνδνζία............................................................................................................................ 21
4.7.
Δπηθνηλσλία ........................................................................................................................... 22
4.8.
Απηφκαηε software επαλαθνξά ............................................................................................. 22
4.9.
USB πξνζηαζία απφ ππεξηάζε .............................................................................................. 22
4.10. Πεξηβάιινλ αλάπηπμεο εθαξκνγψλ ....................................................................................... 22
5.
Δηζαγσγή ζηνπο αηζζεηήξεο ......................................................................................................... 25
5.1.
Αίζζεζε θαη εξέζηζκα ........................................................................................................... 25
5.2.
Αηζζεηήξαο θαη ην αηζζεηήξην .............................................................................................. 25
5.3.
Βαζηθά είδε αηζζεηήξσλ ....................................................................................................... 26
5.4.
Σαμηλφκεζε αηζζεηήξσλ ....................................................................................................... 26
5.4.1. Ο αηζζεηήξαο κπνξεί λα είλαη: παζεηηθφο ή ελεξγεηηθφο................................................. 26
5.4.2. Αλάινγα κε ην ζχζηεκα αλαθνξάο, νη αηζζεηήξεο κπνξνχλ λα ηαμηλνκεζνχλ ζε
απφιπηνπο θαη ζε ζρεηηθνχο. ......................................................................................................... 26
5.4.3. Έλαο άιινο ηξφπνο λα ηαμηλνκήζνπκε έλαλ αηζζεηήξα είλαη βάζεη ηεο ηδηαηηεξφηεηαο
ησλ ραξαθηεξηζηηθψλ ή ησλ ηδηνηήησλ ηνπ................................................................................... 27
5.5.
΢ηαηηθά ραξαθηεξηζηηθά ησλ αηζζεηήξσλ............................................................................. 27
5.6.
Γπλακηθά ραξαθηεξηζηηθά ..................................................................................................... 27
x
5.7.
6.
΢πλνπηηθή παξνπζίαζε δηαζέζηκσλ αηζζεηήξσλ: ................................................................. 28
Θεξκνθξαζία, πγξαζία θαη νη δηαζέζηκνη αηζζεηήξεο .................................................................. 30
6.1.
Θεξκνθξαζία ......................................................................................................................... 30
6.2.
Κιίκαθα Κέιβηλ ..................................................................................................................... 30
6.3.
Απφιπηε ζεξκνθξαζία ........................................................................................................... 31
6.4.
΢ρεηηθή ζεξκνθξαζία ............................................................................................................. 31
6.5.
Θεξκνθξαζία θαη αξρή ιεηηνπξγίαο θάζε αηζζεηήξα ζεξκνθξαζίαο .................................... 31
6.6.
Η πγξαζία .............................................................................................................................. 33
6.7.
Οη πγξνκεηξηθέο παξάκεηξνη ................................................................................................. 33
6.7.1. Απφιπηε Τγξαζία ............................................................................................................. 33
6.7.2. ΢ρεηηθή πγξαζία................................................................................................................ 33
6.8.
΢εκείν Γξφζνπ ...................................................................................................................... 34
6.9.
Τγξαζία θαη δηαζέζηκνη αηζζεηήξεο ...................................................................................... 35
6.10. ΢θάικα κέηξεζεο θαη αηζζεηήξεο ......................................................................................... 36
6.11. Η αβεβαηφηεηα κέηξεζεο ....................................................................................................... 36
6.12. Σπραία ζθάικαηα θαη ζπζηεκαηηθά ζθάικαηα ..................................................................... 36
6.13. Πξνζδηνξηζκφο ηηκήο ............................................................................................................. 37
7.
Παξνπζίαζε ησλ αηζζεηήξσλ ηνπ ππνζπζηήκαηνο ηειεκεηξίαο .................................................. 39
7.1.
Αηζζεηήξαο ζεξκνθξαζίαο Dallas DS18B20 ........................................................................ 39
7.2.
Υαξαθηεξηζηηθά:.................................................................................................................... 39
7.3.
Πεξηγξαθή αθξνδεθηψλ ......................................................................................................... 40
7.4.
Αηζζεηήξεο ζεξκνθξαζίαο νινθιεξσκέλνπ θπθιψκαηνο ..................................................... 40
7.5.
Πεξηιεπηηθή παξνπζίαζε ηνπ αηζζεηήξα DS18B20 ............................................................. 40
7.6.
Μνληέιν επηθνηλσλίαο master/slave ...................................................................................... 41
7.7.
Σερλνινγία 1-Wire................................................................................................................. 41
7.8.
Ιδηαίηεξα ραξαθηεξηζηηθά ηεο ηερλνινγίαο 1-Wire ............................................................... 42
7.9.
Μέηξεζε ζεξκνθξαζίαο......................................................................................................... 42
7.10. Μλήκε .................................................................................................................................... 42
7.11. Καηαρσξεηήο ζεξκνθξαζίαο ................................................................................................. 43
7.12. Καηαρσξεηήο ξπζκίζεσλ ....................................................................................................... 43
7.13. Γεκηνπξγία θψδηθα CRC (θπθιηθφο έιεγρνο πιενλαζκνχ) ................................................... 44
7.14. ΢ήκα ζπλαγεξκνχ .................................................................................................................. 44
7.15. Κψδηθαο ράξαμεο Laser Rom κλήκεο 64bit .......................................................................... 45
7.16. Αξρηθνπνίεζε ........................................................................................................................ 45
xi
7.17. Σξνθνδνζία θαη παξαζηηηθή ηάζε ιεηηνπξγίαο...................................................................... 46
7.18. Ρπζκίζεηο................................................................................................................................ 46
7.19. Αιιεινπρία αληαιιαγήο δεδνκέλσλ ..................................................................................... 46
7.20. Γηαδηθαζία αξρηθνπνίεζεο - παικνί reset θαη παξνπζίαο ..................................................... 46
7.21. ΢ήκαηα πξσηνθφιινπ 1-Wire ................................................................................................ 47
7.22. Δληνιέο δηαρείξηζεο κλήκεο ROM ........................................................................................ 47
7.23. Δληνιέο ιεηηνπξγηψλ ηνπ DS18B20....................................................................................... 48
7.24. Αηζζεηήξαο πγξαζίαο Honeywell HIH-4030 ........................................................................ 49
7.25. Υαξαθηεξηζηηθά:.................................................................................................................... 49
7.26. Αξρή ιεηηνπξγίαο ................................................................................................................... 49
7.27. Υσξεηηθνί αηζζεηήξεο πγξαζίαο ........................................................................................... 50
7.28. Αληνρή θνληά ζην ζεκείν δξφζνπ ......................................................................................... 50
7.29. Ιδηαίηεξα ραξαθηεξηζηηθά ηνπ ΗΙΗ-4030 .............................................................................. 50
7.30. Θεξκνζθιεξπληηθφ πεξίβιεκα .............................................................................................. 51
7.31. Τςειή γξακκηθφηεηα θαη επηδφζεηο ...................................................................................... 51
7.32. Αηζζεηήξαο PIR Parallax 555 - 280227 ................................................................................ 53
7.33. Υαξαθηεξηζηηθά:.................................................................................................................... 53
7.35. Ρχζκηζε jumper..................................................................................................................... 54
7.36. Θεσξία ιεηηνπξγίαο ............................................................................................................... 54
7.37. Αλάιπζε ηεο ζεσξίαο ιεηηνπξγίαο......................................................................................... 55
7.38. Φαθφο Fresnel ........................................................................................................................ 56
7.39. Φαθφο Fresnel ηχπνπ NL-11NH ............................................................................................ 56
7.40. Οπηηθφ πεδίν θαθνχ ............................................................................................................... 57
7.41. Δπηπιένλ πιεξνθνξίεο ........................................................................................................... 58
7.42. Βαζκνλφκεζε ........................................................................................................................ 58
8.
Δηζαγσγή ζηα αζχξκαηα ηνπηθά δίθηπα........................................................................................ 60
8.1.
Σν πξφηππν ΙΔΔΔ 802.11 ....................................................................................................... 60
8.2.
Οη βαζηθέο ηνπ κνλάδεο ηνπ 802.11 ....................................................................................... 60
8.3.
Η ηνπνινγία ηνπ 802.11......................................................................................................... 61
8.4.
Σχπνη θίλεζεο ζηαζκψλ ......................................................................................................... 61
8.5.
Μεραληζκνί ιεηηνπξγίαο ........................................................................................................ 62
8.6.
Η αξρηηεθηνληθή ηνπ 802.11 .................................................................................................. 62
8.7.
Σν ππφζηξσκα MAC (Medium Access Control Sublayer) ηνπ 802.11 ................................. 62
8.8.
Πξφζβαζε ζην αζχξκαην κέζν κέζσ ηεο ιεηηνπξγίαο CSMA/CA ....................................... 62
8.9.
Υξνληθά δηαζηήκαηα πξφζβαζεο ........................................................................................... 63
xii
8.10. Σν θπζηθφ επίπεδν ηνπ 802.11............................................................................................... 63
8.11. Λεηηνπξγίεο ηνπ θπζηθνχ ζηξψκαηνο .................................................................................... 63
8.12. Τπεξεζίεο πνπ παξέρεη ην πξσηφθνιιν 802.11 .................................................................... 64
8.12.1. Station Services................................................................................................................. 64
8.12.2. Distribution System Services ............................................................................................ 64
8.13. Σν πξσηφθνιιν IEEE 802.11b .............................................................................................. 65
8.14. Πεξηγξαθή.............................................................................................................................. 65
8.15. Direct Sequence Spread Spectrum (DSSS) ............................................................................ 65
8.16. Καλάιηα θαη ζπρλφηεηεο εθπνκπήο........................................................................................ 66
8.17. Αλνρή ζηνλ ζφξπβν ............................................................................................................... 67
8.18. Παξνπζίαζε ηεο WiShield..................................................................................................... 68
8.19. Υαξαθηεξηζηηθά:.................................................................................................................... 68
8.20. Υαξαθηεξηζηηθά κνλάδαο Wi-Fi............................................................................................ 69
8.21. Πσο ρξεζηκνπνηνχκε ην θάζε pin .......................................................................................... 69
Τινπνίεζε ηνπ ηειεκεηξηθνχ ππνζπζηήκαηνο ............................................................................. 72
9.
9.1.
Απαηηήζεηο ηνπ ηειεκεηξηθνχ ππνζπζηήκαηνο...................................................................... 72
9.2.
Απαηηήζεηο ησλ αηζζεηήξσλ .................................................................................................. 72
9.3.
Απαηηήζεηο ηνπ κηθξνειεγθηή ................................................................................................ 73
9.4.
Απαηηήζεηο ηνπ αζχξκαηνπ πξσηφθνιινπ............................................................................. 73
9.5.
Δγθαηάζηαζε θαη ξχζκηζε ηνπ Arduino IDE ........................................................................ 73
9.6.
Παξαγσγή εθαξκνγψλ κέζσ ηνπ Arduino IDE ..................................................................... 75
9.7.
Οη ζηφρνη πινπνίεζεο ηνπ ηειεκεηξηθνχ ππνζπζηήκαηνο ................................................... 76
9.8.
Παξνπζίαζε θαη αλάιπζε πινπνίεζεο ................................................................................. 77
9.9.
Αλάιπζε ηεο ζπλάξηεζεο setup ............................................................................................ 77
9.10. Αλάιπζε ηεο ζπλάξηεζεο loop.............................................................................................. 77
9.11. Αλάιπζε ηεο ζπλάξηεζεο servePage..................................................................................... 77
9.12. Παξνπζίαζε ησλ ηζηνζειίδσλ ηεο πινπνίεζεο ..................................................................... 78
9.13. Παξνπζίαζε ηνπ θπθιψκαηνο ηεο πινπνίεζεο ..................................................................... 79
9.14. Ρχζκηζε θαη εγθαηάζηαζε ηνπ ηειεκεηξηθνχ ππνζπζηήκαηνο .............................................. 80
10.
΢πκπεξάζκαηα........................................................................................................................... 82
10.1. Μειινληηθέο επεθηάζεηο ........................................................................................................ 82
xiii
Βηβιηνγξαθία ......................................................................................................................................... 84
Παξαξηήκαηα ........................................................................................................................................ 86
Παξάξηεκα Α θψδηθαο πινπνίεζεο ζε C++ ..................................................................................... 86
Παξάξηεκα Β θψδηθαο html ηζηνζειίδσλ ......................................................................................... 97
Πξψηε ηζηνζειίδα: ........................................................................................................................ 97
Γεχηεξε ηζηνζειίδα:...................................................................................................................... 98
Παξάξηεκα Γ ην css style sheet ησλ δχν ηζηνζειίδσλ...................................................................... 99
Παξάξηεκα Γ παξνπζίαζε πηπρηαθήο............................................................................................. 100
Πίλαθαο Δηθόλσλ
Δηθφλα 2. 1: Παξαδείγκαηα ηειεκεηξίαο................................................................................................. 4
Δηθφλα 3. 1: Μνλνιηζηθά νινθιεξσκέλα θπθιψκαηα ζε δηάθνξα πιαζηηθά πεξηβιήκαηα ................... 7
Δηθφλα 3. 2: Έλα πβξηδηθφ νινθιεξσκέλν θχθισκα .............................................................................. 7
Δηθφλα 3. 3: Σαμηλφκεζε κηθξνειεγθηψλ ............................................................................................. 10
Δηθφλα 3. 4: Μπινθ δηάγξακκα αξρηηεθηνληθήο Von-Neuman............................................................. 11
Δηθφλα 3. 5: Μπινθ δηάγξακκα αξρηηεθηνληθήο Harvard ..................................................................... 11
Δηθφλα 3. 6: Θεκειηψδεηο κνλάδεο ηνπ κηθξνειεγθηή .......................................................................... 12
Δηθφλα 3. 7: Γηάγξακκα κπινθ κηθξνειεγθηή ...................................................................................... 13
Δηθφλα 4. 1: Κάηνςε ηνπ Arduino ........................................................................................................ 18
Δηθφλα 5. 1: ΢ρεκαηηθή παξνπζίαζε ηνπ ζχλζεηνπ αηζζεηήξα ............................................................ 26
Δηθφλα 6. 1: Γηάγξακκα κεηαβνιήο ζρεηηθήο πγξαζίαο ζπλαξηήζεη ηεο ζεξκνθξαζίαο ...................... 34
Δηθφλα 6. 2: Γηάγξακκα κεηαβνιήο ζεκείν δξφζνπ ζπλαξηήζεη ηεο ζεξκνθξαζίαο ............................ 35
Δηθφλα 6. 3: Γξαθηθή αλαπαξάζηαζε ηνπ ζπζηεκαηηθνχ ζθάικαηνο .................................................. 36
Δηθφλα 6. 4: Γξαθηθή αλαπαξάζηαζε ηνπ ηπραίνπ ζθάικαηνο ............................................................ 37
Δηθφλα 7. 1: O DS18B20 ζε κνξθή ΣΟ92 ............................................................................................ 39
Δηθφλα 7. 2: Γηάγξακκα block ηνπ DS18B20 ....................................................................................... 41
Δηθφλα 7. 3: Βαζηθφ δηάγξακκα δηαχινπ 1-Wire .................................................................................. 42
Δηθφλα 7. 4: ΢ρεκαηηθή αλαπαξάζηαζε ηεο κλήκεο(scratchpad) ......................................................... 43
Δηθφλα 7. 5: Γηακφξθσζε bit ηνπ θαηαρσξεηή ζεξκνθξαζίαο ............................................................. 43
Δηθφλα 7. 6: Γηάγξακκα ζέζεσλ κλήκεο θαηαρσξεηή ξπζκίζεσλ........................................................ 44
Δηθφλα 7. 7: Τπάξρεη άκεζε αχμεζε ζηνλ ρξφλν κεηαηξνπήο αλ ε αλάιπζε απμεζεί. ........................ 44
Δηθφλα 7. 8.: ΢ρεκαηηθή παξνπζίαζε ππνινγηζκνχ ηνπ CRC . ............................................................ 44
Δηθφλα 7. 9: Γηακφξθσζε bit ησλ TH θαη TL θαηαρσξεηψλ................................................................ 44
Δηθφλα 7. 10: ΢ρεκαηηθή παξνπζίαζε ηνπ θψδηθα ράξαμεο Laser. ...................................................... 45
Δηθφλα 7. 11: Σξνθνδνζία κε ρξήζε εμσηεξηθήο ηάζεο. ...................................................................... 45
xiv
Δηθφλα 7. 12: Σξνθνδνζία κε ρξήζε παξαζηηηθήο ηάζεο. .................................................................... 45
Δηθφλα 7. 13: Γηάγξακκα αιιεινπρίαο αξρηθνπνίεζεο. ....................................................................... 47
Δηθφλα 7. 14: Ο HIH-4030 ζε breakout πιαθέηα. ................................................................................. 49
Δηθφλα 7. 15: Βαζηθή δνκή αηζζεηήξα. ................................................................................................ 50
Δηθφλα 7. 16: Σάζε εμφδνπ ζε ζπλάξηεζε κε ηελ ζρεηηθή πγξαζία ζηνπο 0 ° C. 70 ° C θαη 5 V. ....... 51
Δηθφλα 7. 17: Σάζε εμφδνπ ζε ζπλάξηεζε κε ηελ ζρεηηθή πγξαζία ζηνπο 25 ° C θαη 5 V. ................. 51
Δηθφλα 7. 18: Οη επηδφζεηο ζε δηαθνξεηηθέο πεξηνρέο ζεξκνθξαζίαο. .................................................. 52
Δηθφλα 7. 19: Ο αηζζεηήξαο PIR ζηεγάδεηαη ζε έλα εξκεηηθά ζθξαγηζκέλν κεηαιιηθφ θέιπθνο ψζηε ν
ζφξπβνο, ζεξκνθξαζία θαη ε πγξαζία λα κελ ην επεξεάδεη.................................................................. 53
Δηθφλα 7. 20: Βαζηθφ ζρήκα ηεο αξρήο ιεηηνπξγίαο. ............................................................................ 54
Δηθφλα 7. 21: Σν θσο πνπ εηζέξρεηαη ζηελ θνηιφηεηα απφ κηα κηθξή νπή, έπεηηα απφ πνιιαπιέο
αληαλαθιάζεηο απνξξνθάηαη ζρεδφλ νινθιεξσηηθά απφ ηα ηνηρψκαηα. ............................................. 55
Δηθφλα 7. 22: Δδψ θαίλεηαη πσο ην θάζε πξίζκα επηθέξεη ζχγθιηζε ζην ίδην ζεκείν. ........................ 56
Δηθφλα 7. 23: Όςεηο ηνπ θαθνχ Fresnel NL-11NH. .............................................................................. 56
Δηθφλα 7. 24: Γηαγξάκκαηα ηεο πιάγηαο νπηηθήο θαη θάηνςεο ηνπ θαθνχ Fresnel NL-11NH............. 57
Δηθφλα 7. 25: Πεξηνρέο θαη εχξνο θάιπςεο ζε δηάθνξα ζεκεία πξνζάξηεζεο. ................................... 57
Δηθφλα 8. 1: Έλα ηππηθφ WLAN. .......................................................................................................... 60
Δηθφλα 8. 2: ΢ηνίβα πξσηνθφιινπ ΙΔΔΔ 802.11. .................................................................................. 61
Δηθφλα 8. 3: Σα δεδνκέλα (data signal) θσδηθνπνηνχληαη κε ην ζήκα «ηερλεηνχ ζνξχβνπ» (PN-code)
θαη παξάγεηαη ην ηειηθφ ζήκα πνπ εθπέκπεηαη (coded signal). ............................................................ 65
Δηθφλα 8. 4: Η σθέιηκε πιεξνθνξία (Narrowband Waveform) πιαηζηψλεηαη κε ην ζήκα «ηερλεηνχ
ζνξχβνπ» (Spread Waveform) θαη εμαπιψλεηαη ζην θάζκα ζπρλνηήησλ. ........................................... 66
Δηθφλα 8. 5: Γηάγξακκα επηθάιπςεο θαλαιηψλ .................................................................................... 66
Δηθφλα 8. 6: Κάηνςε ηεο WiShield. ...................................................................................................... 68
Δηθφλα 8. 7: Η θεξαία ηεο WiShield θαη ε πξνζάξηεζε πάλσ ζην Arduino. ....................................... 68
Δηθφλα 9. 1: Γνκή αξρείσλ εληφο ηνπ Arduino IDE. ............................................................................ 74
Δηθφλα 9. 2: Δπηινγε ηππνπ Arduino. ................................................................................................... 75
Δηθφλα 9. 3: Λεηηνπξγίεο Compile/Verify θαη Upload ζην Arduino IDE. ............................................ 75
Δηθφλα 9. 4: Η αξρηθή (πξψηε) ηζηνζειίδα. .......................................................................................... 78
Δηθφλα 9. 5: Η δεχηεξε ηζηνζειίδα. ...................................................................................................... 79
Δηθφλα 9. 6: Φσηνγξαθία ηνπ θπθιψκαηνο πινπνίεζεο....................................................................... 80
Λίζηα Πηλάθσλ
Πίλαθαο 1: Υαξαθηεξηζηηθά Arduino. .................................................................................................. 20
Πίλαθαο 2: Δίδε δηαζέζηκσλ αηζζεηήξσλ. ............................................................................................ 28
Πίλαθαο 3: Αθξίβεηα κέηξεζεο ζεξκνθξαζίαο ζε ζπλάξηεζε κε ηελ αθξίβεηα ζε βαζκνχο oC. .......... 32
Πίλαθαο 4: Αθξνδέθηεο ηνπ DS18B20.................................................................................................. 40
Πίλαθαο 5: Αληηζηνίρεζε ζεξκνθξαζίαο θαη ηηκήο θαηαρσξεηή. ......................................................... 42
Πίλαθαο 6: Δληνιέο δηαρείξηζεο κλήκεο ROM. .................................................................................... 47
Πίλαθαο 7: Δληνιέο ιεηηνπξγηάο ηνπ DS18B20. ................................................................................... 48
Πίλαθαο 8: Σα pin ηνπ HIH-4030. ......................................................................................................... 53
Πίλαθαο 9: Οη ζέζεηο ηνπ jumper ξπζκίζεσλ ηνπ HIH-4030. ............................................................... 54
Πίλαθαο 10: Οη ζπρλφηεηεο ησλ θαλαιηψλ ηνπ 802.11b. ...................................................................... 66
xv
xvi
1.
Δηζαγσγή
΢ηελ εξγαζία απηή, αλαπηχμακε έλα ηειεκεηξηθφ ππνζχζηεκα πνπ βαζίδεηαη ζηελ
αλαπηπμηαθή πιαηθφξκα Arduino. Δπηπιένλ, πξνζηεζήθαλ αηζζεηήξεο θαη κηα αθφκε αλαπηπμηαθή
πιαθέηα πνπ καο παξέρεη ην αζχξκαην πξσηφθνιιν 802.11b. Οη αηζζεηήξεο απηνί καο δίλνπλ ηελ
δπλαηφηεηα λα εθηειέζνπκε κεηξήζεηο ζε πεξηβαιινληηθέο παξακέηξνπο φπσο, ηελ ηηκή ηεο
ζεξκνθξαζίαο, ηελ ηηκή ηεο ζρεηηθήο πγξαζίαο αιιά θαη ηελ δπλαηφηεηα αλίρλεπζεο θίλεζεο.
Γηα ηελ επίηεπμε ηνπ ηειεκεηξηθνχ ππνζπζηήκαηνο κειεηήζεθαλ ζέκαηα φπσο ηειεκεηξία,
κηθξνειεγθηέο, αηζζεηήξεο θαη αζχξκαηα πξσηφθνιια. Η παξαπάλσ κειέηε καο επέηξεςε λα
θαηαλνήζνπκε φια ηα γλσζηηθά πεδία πνπ απαηηνχληαη γηα ηελ αλάπηπμε ελφο απνδνηηθνχ
ηειεκεηξηθνχ ππνζπζηήκαηνο πνπ ζα ζπλδπάδεη φια ηα εμαξηήκαηα πνπ αλαθέξακε πξηλ. ΢ηελ
ζπλερεία πξαγκαηνπνηήζεθε ε πινπνίεζε ηνπ ηειεκεηξηθνχ ππνζπζηήκαηνο.
Η πινπνίεζε είλαη βαζηζκέλε ζηελ γισζζά πξνγξακκαηηζκνχ C++. Η δηαδηθαζία
δηεπθνιχλζεθε απφ ηελ χπαξμε ελφο εξγαιείνπ αλάπηπμεο εθαξκνγψλ, ην Arduino IDE. Σν Arduino
IDE καο επηηξέπεη λα επηηαρχλνπκε ηελ δηαδηθαζία πινπνίεζεο, ιφγσ ησλ ηδηαίηεξσλ
ραξαθηεξηζηηθψλ ηνπ. Απηά πεξηιακβάλνπλ ηελ ελζσκάησζε ζ’ απηφ, compiler, hardware
programmer θαη code editor.
Η πινπνίεζε ηνπ ηειεκεηξηθνχ ππνζπζηήκαηνο, ην νπνίν κπνξεί λα ηνπνζεηεζεί ζε φπνην
ρψξν επηζπκνχκε θαη λα κειεηήζνπκε ηηο πεξηβαιινληηθέο ζπλζήθεο ηνπ αιιά θαη λα είκαζηε ζε ζέζε
λα αληρλεχζνπκε ηελ πηζαλή εηζβνιή. Σέινο, ηα παξαπάλσ κπνξνχκε λα ηα παξαθνινπζήζνπκε απφ
απφζηαζε κέζσ ησλ ηζηνζειίδσλ ην φπνην είλαη ζε ζέζε ην ππνζχζηεκα λα καο δηαθνκίδεη.
1.1.
Κίλεηξν γηα ηελ δηεμαγσγή ηεο εξγαζίαο
Η εμέιημε ηεο ηερλνινγίαο ηα ηειεπηαία ρξφληα έρεη επηθέξεη ζεκαληηθέο θαηλνηνκίεο ζην
ρψξν ηεο πιεξνθνξηθήο. Καηλνηνκίεο πνπ επέηξεςαλ ηελ ζεκαληηθή αχμεζε ηεο επεμεξγαζηηθήο
ηζρχoο ησλ ππνινγηζηηθψλ ζπζηεκάησλ θαη ηαπηφρξνλα ηελ ζκίθξπλζε ηνπο αιιά θαη ηελ κείσζε ηνπ
θφζηνπο ζε ηέηνηα επίπεδα ψζηε ε απφθηεζε ηνπο λα κελ απνηειεί πξφβιεκα. Πιένλ κε ηδηαίηεξα
ρακειφ θφζηνο κπνξνχκε λα έρνπκε ζηελ δηάζεζε καο έλα ππνινγηζηηθφ ζχζηεκα κε αμηνζέβαζηεο
δπλαηφηεηεο πνπ καο επηηξέπνπλ έλα επξχ θάζκα εθαξκνγψλ.
Σα εξγαιεία αλάπηπμεο ινγηζκηθνχ επλνήζεθαλ ηδηαίηεξα απφ ην ινγηζκηθφ αλνηρηνχ θψδηθα.
Σν ινγηζκηθφ αλνηρηνχ θψδηθα (open source software) ζαλ θηινζνθία θαη κέζνδνο δηαλνκήο θαη
επαλαρξεζηκνπνίεζεο πεγαίνπ θψδηθα (source code) καο δίλεη ηελ δπλαηφηεηα λα έρνπκε δσξεάλ
πξφζβαζε ζε εθαξκνγέο αιιά θαη ζηνλ πεγαίν θψδηθα ηνπο. Οπφηε ε αλάπηπμε εθαξκνγψλ γίλεηαη
γξεγνξφηεξα φπσο θαη ε βειηηζηνπνίεζε ηνπο είλαη επθνιφηεξε ιφγν ηεο δηαθάλεηαο πνπ δηαζέηεη ην
ινγηζκηθφ αλνηρηνχ θψδηθα.
Άκεζν απνηέιεζκα ησλ παξαπάλσ είλαη ε δεκηνπξγία εθαξκνγψλ πνπ κπνξνχλ λα
εθηειεζηνχλ ζε νπνηνδήπνηε ιεηηνπξγηθφ ζχζηεκα. Με αχηε ηελ εμέιημε θαηαιήγνπκε ζηελ
δεκηνπξγία εξγαιείσλ αλεμάξηεηνπ πιαηθφξκαο (platform independent). Γειαδή ηα εξγαιεία
αλάπηπμεο γηα ην ιεηηνπξγηθφ καο ζχζηεκα έρνπλ ηηο ίδηεο ιεηηνπξγίεο, αιιά θαη πιήξε ζπκβαηφηεηα
κ’ απηήλ ζ’ έλα άιιν ιεηηνπξγηθφ ζχζηεκα.
Σν θφζηνο απφθηεζεο ελφο κηθξνειεγθηή ζεσξείηαη πιένλ ηδηαίηεξα πξνζηηφ ζ’ φζνπο ζέινπλ
λα ηνπο ρξεζηκνπνηήζνπλ ψζηε λα αλαπηχμνπλ εθαξκνγέο. Οη δπλαηφηεηεο ελφο κέζνπ κηθξνειεγθηή
είλαη αμηνζέβαζηεο θαη ηθαλέο λα παξάγνπλ πιήζνο εθαξκνγψλ. Αιιά θη ηειεπηαίεο εμειίμεηο ζην
ρψξν αλάπηπμεο λέσλ κηθξνειεγθηψλ καο πξφζθεξαλ κηθξνειεγθηέο γηα θάζε πηζαλή εθαξκνγή.
Η αλάπηπμε εθαξκνγψλ γηα κηθξνειεγθηέο δελ απνηειεί έξγν πνπ κπνξεί λα νινθιεξσζεί
κνλφ απφ έκπεηξνπο θαη εμεηδηθεπκέλνπο πξνγξακκαηηζηέο. Σα εξγαιεία αλάπηπμεο είλαη ηδηαίηεξα
εχρξεζηα θαη καο επηηξέπνπλ λα αλαπηχμνπκε πνιχ γξήγνξα θάζε είδνπο εθαξκνγή. Μπνξνχκε
επίζεο λα αλαπηχμνπκε εθαξκνγέο ρσξίο λα πξέπεη λα είκαζηε άξηζηνη γλψζηεο ηνπ ζπζηήκαηνο
αλάπηπμεο εθαξκνγψλ θη απηφ γηαηί νη πεξηζζφηεξεο ιεηηνπξγηέο ηνπ έρνπλ «θξπθηεί θάησ» απφ
γξαθηθά πεξηβάιινληα (graphical user interfaces) πνπ απηνκαηνπνηνχλ ηελ αλάπηπμε κέζσ
εχρξεζησλ κελνχ επίινγσλ.
Οη αηζζεηήξεο πνπ θπθινθνξνχλ ζην εκπφξην θαιχπηνπλ έλα επξχ θάζκα κεηξήζηκσλ
πνζνηήησλ. Η ηάζε πνπ επηθξαηεί ζηηο «λέεο ηερλνινγίεο» ππνηάζζεη ζκίθξπλζε θαη πξαθηηθφηεηα
1
γεγνλφο πνπ επλφεζε ηελ αλάπηπμε θαιχηεξσλ αηζζεηήξσλ. Σν θφζηνο ηνπο θαη ηα κεγέζε ηνπο έρνπλ
κεησζεί ζεκαληηθά αιιά ρσξίο λα ζπζηαζηεί ε ιεηηνπξγηθφηεηα. Με άκεζν απνηέιεζκα αθξηβείο
αηζζεηήξεο κε αμηνζέβαζηεο δπλαηφηεηεο δηαζχλδεζεο (interfacing).
Οη ηερλνινγίεο πνπ καο επηηξέπνπλ αζχξκαηε δηαδηθηχσζε έρνπλ γίλεη ηδηαίηεξα πξνζηηέο θαη
νηθνλνκηθέο. Ο αζχξκαηνο εμνπιηζκφο πνπ ππάξρεη ζην εκπφξην είλαη απνδνηηθφο θαη εχθνινο ζηελ
ρξήζε. Έλα ζεκαληηθφ άιιν γεγνλφο φκσο παξακέλεη, ην επξχ θάζκα εθαξκνγψλ πνπ ην παξέρνπλ νη
αζχξκαηεο ηερλνινγίεο αθφκε δελ έρεη θνξέζηεη.
1.2.
΢θνπόο θαη ΢ηόρνη Δξγαζίαο
Οη ζηφρνη ηεο εξγαζίαο είλαη νη εμήο:
Μειέηε θαη ζχλζεζε ελφο ηειεκεηξηθνχ ππνζπζηήκαηνο πνπ λα ελζσκαηψλεη απνδνηηθά ηνπο
αηζζεηήξεο θαη ηηο αλαπηπμηαθέο πιαθέηεο.
Βαζκνλφκεζε (calibration) θαη ξχζκηζε ησλ αηζζεηήξσλ ψζηε λα παξάγνπλ αμηφπηζηεο
κεηξήζεηο αιιά θαη λα δηαζπλδένληαη άκεζα κε ην ππφινηπν ζχζηεκα.
΢πγγξαθή θψδηθα ζην Arduino IDE, πνπ ζα καο παξέρεη ηελ δπλαηφηεηα λα θαηαγξάθνπκε
θαη λα κειεηήζνπκε ηηο ζπλζήθεο πεξηβάιινληνο θαη λα ηηο παξνπζηάζνπκε κέζσ κηαο
ηζηνζειίδαο.
Δμαγσγή ζπκπεξαζκάησλ πνπ αθνξνχλ ηελ πηζηφηεηα ησλ κεηξήζεσλ θαη ηελ
βειηηζηνπνίεζε ηνπ ζπζηήκαηνο.
1.3.
Γνκή Δξγαζίαο
Η ππφινηπε εξγαζία νξγαλψλεηαη σο εμήο:
΢ην θεθάιαην 2 δίλεηαη κηα γεληθή εηζαγσγή ζηελ ηειεκεηξία.
΢ην θεθάιαην 3 παξνπζηάδνληαη ζχληνκα νη κηθξνειεγθηέο θαη νη βαζηθέο ηνπο ηδηφηεηεο αιιά
θαη ηα είδε πνπ ππάξρνπλ.
΢ην θεθάιαην 4 παξνπζηάδνπκε ηελ αλαπηπμηαθή πιαθέηα Arduino.
΢ην θεθάιαην 5 δίλεηαη κηα ζχληνκε εηζαγσγή ζηνπο αηζζεηήξεο.
΢ην θεθάιαην 6 κειεηάκε ηηο δπλαηφηεηεο ησλ δηαζέζηκσλ αηζζεηήξσλ γηα ηνπο
πεξηβαιινληηθνχο παξάγνληεο ζεξκνθξαζία θαη ζρεηηθή πγξαζία.
΢ην θεθάιαην 7 ζπζρεηίδνπκε έλλνηεο φπσο αβεβαηφηεηα θαη ζθάικα κέηξεζεο κε ηελ
αθξίβεηα ησλ ηηκψλ κέηξεζεο πνπ παξάγνπλ νη αηζζεηήξεο.
΢ην θεθάιαην 8 δίλεηαη κηα ζχληνκε εηζαγσγή ζηα αζχξκαηα πξσηφθνιια 802.11 θαη
802.11b, φπσο επίζεο παξνπζηάδνπκε ηελ αλαπηπμηαθή πιαθέηα WiShield.
΢ην θεθάιαην 9 παξνπζηάδνπκε θαη αλαιχνπκε ηελ πινπνίεζε ηνπ ηειεκεηξηθνχ
ππνζπζηήκαηνο.
΢ην θεθάιαην 10 εμάγνπκε ζπκπεξάζκαηα γηα ηελ πινπνίεζε θαη παξαζέηνπκε ηηο
δπλαηφηεηεο κειινληηθήο εμέιημεο ηεο.
2
3
2. Γεληθή εηζαγσγή ζηελ ηειεκεηξία
Οξηζκόο: Η ιέμε πξνέξρεηαη απφ ηηο ειιεληθέο ιέμεηο Τειέ = απνκαθξπζκέλνο θαη Μέηξνλ = κέηξν
«Αξρηθά ηα ζπζηήκαηα ηειεκεηξίαο ρξεζηκνπνηνύζαλ ελζύξκαηε κεηάδνζε»
2.1. Απαξρέο θαη ε αλάπηπμε εθαξκνγώλ ηειεκεηξίαο
Σα αξρηθά ζπζηήκαηα ηειεκεηξίαο εηζήρζεζαλ ζηηο αξρέο ηνπ 20νπ αηψλα, ρξεζηκνπνηνχληαλ
γηα ηελ επνπηεία θπζηθψλ θαηλνκέλσλ, αξγφηεξα ζα κπνξέζνπλ λα ρξεζηκνπνηεζνχλ γηα ηελ
παξαθνινχζεζε ηεο δηαλνκήο ηνπ ειεθηξηθνχ ξεχκαηνο. ΢ηα πξψηα ζπζηήκαηα έλα θέληξν ειέγρνπ
ρξεζηκνπνηνχζε ηειεθσληθέο γξακκέο γηα λα ιάβεη δεδνκέλα απφ απνκαθξπζκέλεο κνλάδεο
παξαγσγήο ελέξγεηαο. Έπεηηα ζε άιινπο ηνκείο άξρηζαλ λα εθαξκφδνπλ ηα ελ ιφγσ ζπζηήκαηα, κε
βειηηψζεηο πνπ πξαγκαηνπνηνχληαη θαηά ηε δηάξθεηα ησλ δεθαεηηψλ πνπ αθνινχζεζαλ.
Σελ δεθαεηία ηνπ 1930, κπαιφληα ζα ρξεζηκνπνηεζνχλ γηα ηε ζπιινγή ζηνηρείσλ ζρεηηθά κε
ηηο επηθξαηνχζεο αηκνζθαηξηθέο ζπλζήθεο. Σν 1950 δνξπθφξνη ηίζεληαη ζε ηξνρηά θαη ρξεζηκνπνηνχλ
ηελ αξρή ηειεκεηξίαο γηα δηάθνξεο εθαξκνγέο πνπ πεξηιακβάλνπλ ηελ θαηαγξαθή θαηξηθψλ
ζπλζεθψλ θαη παξαηήξεζε θαηλνκέλσλ. Οη ελ ιφγσ δνξπθφξνη ππάξρνπλ θαη ζήκεξα θαη αξθεηέο
εθαηνληάδεο απφ απηνχο βξίζθνληαη ζε ηξνρηά γχξσ απφ ηε Γε.
2.2. Αξρή ιεηηνπξγίαο
Σειεκεηξία είλαη ε εμ απνζηάζεσο κέηξεζε θαη ε απνκαθξπζκέλε ζπιινγή δεδνκέλσλ πνπ
κπνξνχλ λα είλαη θπζηθήο, πεξηβαιινληηθήο ή βηνινγηθήο ζεκαζίαο. Υξεζηκνπνηείηαη ζπλήζσο γηα λα
ζπιιέγνπκε δεδνκέλα απφ καθξηλέο, απξφζηηεο πεξηνρέο, ή φηαλ ε ζπιινγή δεδνκέλσλ ζα ήηαλ
επηθίλδπλν ή δχζθνιν. Σα ζπζηήκαηα επίζεο πνπ ρξεηάδνληαη εμσηεξηθή θαζνδήγεζε γηα λα
ιεηηνπξγνχλ, απαηηνχλ ηελ ηειεκεηξία. Δμεηδηθεπκέλα φξγαλα εθηεινχλ ηηο κεηξήζεηο ησλ θπζηθψλ
πνζνηήησλ, θαη ηηο απνζεθεχνπλ ή ηηο κεηαδίδνπλ κέζσ ζήκαηνο πνπ πξνθχπηεη κεηά απφ θάπνηα
αξρηθή επεμεξγαζία ζήκαηνο ή κεηαηξνπήο.
Αλ θαη ν φξνο ζπλήζσο αλαθέξεηαη ζε αζχξκαηνπο κεραληζκνχο κεηαθνξάο δεδνκέλσλ (π.ρ.
ρξεζηκνπνηψληαο ξαδηφθσλν, ππέξερνπο ή ππέξπζξεο αθηίλεο), πεξηιακβάλεη επίζεο ηα δεδνκέλα πνπ
κεηαθέξνληαη απφ άιια κέζα, φπσο ηειέθσλν, δίθηπν ππνινγηζηψλ ή άιιεο ελζχξκαηεο επηθνηλσλίεο.
Έλα ζχζηεκα ηειεκεηξίαο απνηειείηαη ζπλήζσο απφ έλαλ αηζζεηήξα, φπσο κηα ζπζθεπή
εηζφδνπ, έλα κέζν κεηάδνζεο κε ηε κνξθή ησλ ελζχξκαησλ γξακκψλ ή ξαδηνθχκαηα, ζπζθεπέο
επεμεξγαζίαο ζήκαηνο, θαζψο θαη ζπζθεπέο γηα ηελ εγγξαθή ή εκθάληζε δεδνκέλσλ. Σν αηζζεηήξην
κεηαηξέπεη κηα θπζηθή πνζφηεηα, φπσο ε ζεξκνθξαζία, ζε έλα αληίζηνηρν ειεθηξηθφ ζήκα, ην νπνίν
ζηε ζπλέρεηα κεηαδίδεηαη κε ζθνπφ ηελ κέηξεζε θαη θαηαγξαθή.
Δηθόλα 2. 1: Παξαδείγκαηα ηειεκεηξίαο
4
2.3. Οθέιε & Δθαξκνγέο
Σειεκεηξία είλαη κηα ηδηαίηεξα απηνκαηνπνηεκέλε ηερληθή επηθνηλσλίαο, εμνηθνλνκεί ρξφλν,
κεηψλεη γεληθά ηα έμνδα, παξέρεη επηπιένλ δπλαηφηεηεο κεηαπψιεζεο θαη έρεη ηαρεία απφζβεζε. Σν
ρακειφ θφζηνο ηδηνθηεζίαο ζε ζπλδπαζκφ κε ηελ ειάρηζηε ηερλνγλσζία πνπ απαηηεί εμαζθαιίδεη κηα
νηθνλνκηθψο απνδνηηθή θαη αμηφπηζηε ιχζε.
Απφ ηηο πην ζεκαληηθέο ρξήζεηο ηεο ηειεκεηξίαο ζπκπεξηιακβάλνπλ ηελ ζπιινγή δεδνκέλσλ
θαηξνχ, κνλάδεο παξαγσγήο ελέξγεηαο , επαλδξσκέλσλ ή κε δηαζηεκηθψλ πηήζεσλ.
2.4. Άιιεο εθαξκνγέο επηγξακκαηηθά
Δμεξεχλεζε ηνπ δηαζηήκαηνο
Μεραλνθίλεηνη αγψλεο
Γεσξγία
Γηαρείξηζε πδάησλ
Γηεξεχλεζε εδαθηθψλ πφξσλ θαη άκπλαο
Σερλνινγία ππξαχισλ
Πηεηηθέο δνθηκέο
΢ηξαηησηηθέο πιεξνθνξίεο
Παξαθνινχζεζε πεγψλ ελέξγεηαο
Καηαλνκή & εθκεηάιιεπζε πφξσλ
Ιαηξηθή
Έξεπλα θαη δηαρείξηζε ησλ πξντφλησλ αιηείαο
Δκπφξην
Δπηβνιή ηνπ λφκνπ
Πάξνρνη ελέξγεηαο
Γνθηκέο παληφο ηχπνπ
5
6
3. Δηζαγσγή ζηνπο κηθξνειεγθηέο
3.1. Φεθηαθά νινθιεξσκέλα θπθιώκαηα
Σα ςεθηαθά θπθιψκαηα θαηαζθεπάδνληαη κε νινθιεξσκέλα θπθιψκαηα. ΢ηελ ειεθηξνληθή,
έλα νινθιεξσκέλν θχθισκα (Intergrated circuit ή IC, γλσζηφ θαη σο ςεθίδα ππξηηίνπ, κηθξνηζίπ,
ηζηπ ππξηηίνπ, ηζηπ Η/Τ θαη κηθξνηζίπ ή Ο.Κ) είλαη έλα ειεθηξνληθό θύθισκα1 ζε ζκίθξπλζε
(απνηεινχκελν θπξίσο απφ εκηαγψγηκα2, θαζψο θαη παζεηηθά ζηνηρεία φπσο ηξαλδίζηνξ, δίνδνη ,
αληηζηάζεηο) θαηαζθεπαζκέλν ζηελ επηθάλεηα ηνπ ιεπηνχ ππνζηξψκαηνο ελφο εκηαγώγηκνπ πιηθνύ.
Σν chip ηνπνζεηείηαη ζε έλα θεξακηθφ ή πιαζηηθφ πεξίβιεκα, ελψλνληαη θαη ζπγθνιινχληαη νη επαθέο
ηνπ chip κε εμσηεξηθνχο αθξνδέθηεο «pins» γηα λα ζρεκαηηζηεί ην νινθιεξσκέλν θχθισκα.
΢χκθσλα κε ηε δηαδηθαζία θαηαζθεπήο θαη ηε δνκή ηνπο, δηαθξίλνπκε δχν βαζηθνχο ηχπνπο
νινθιεξσκέλσλ θπθισκάησλ πνπ είλαη ξηδηθά δηαθνξεηηθά κεηαμχ ηνπο: ηα κνλνιηζηθά θαη ηα
πβξηδηθά νινθιεξσκέλα θπθιψκαηα.
3.2. Μνλνιηζηθά Ο.Κ
Δίλαη κηθξνθπθιψκαηα ησλ νπνίσλ ηα ζηνηρεία έρνπλ πξαγκαηνπνηεζεί κέζα ζε κηα ζηηβάδα
γεηηνληθή ζηελ επηθάλεηα ελόο εκηαγώγηκνπ ππνζηξώκαηνο. Σα κνλνιηζηθά νινθιεξσκέλα
θπθιψκαηα είλαη ε βάζε ηεο κνληέξλαο κηθξνειεθηξνληθήο.
Δηθόλα 3. 1: Μνλνιηζηθά νινθιεξσκέλα θπθιώκαηα ζε δηάθνξα πιαζηηθά πεξηβιήκαηα
3.3. Τβξηδηθά Ο.Κ
Έλα πβξηδηθφ νινθιεξσκέλν θχθισκα είλαη έλα ειεθηξηθφ θχθισκα ζε ζκίθξπλζε πνπ
απνηειείηαη απφ κεκνλσκέλα εκηαγώγηκα θαη παζεηηθά ζηνηρεία, κε ηε κνξθή δηαθφξσλ πκελίσλ
πνπ απνηίζεληαη πάλσ ζηελ επηθάλεηα ελφο κνλσηηθνχ ππνζηξψκαηνο ή ζε έλαλ πίλαθα θπθισκάησλ.
Δηθόλα 3. 2: Έλα πβξηδηθό νινθιεξσκέλν θύθισκα
1
απνηειείηαη απφ επηκέξνπο ειεθηξνληθά εμαξηήκαηα φπσο, αληηζηάζεηο, ηξαλδίζηνξ, ππθλσηέο, πελία θαη
δηφδνπο, πνπ ζπλδένληαη κε αγψγηκα ζχξκαηα κέζσ ησλ νπνίσλ ην ειεθηξηθφ ξεχκα κπνξεί λα ξέεη. Ο
ζπλδπαζκφο ηνπο επηηξέπεη δηάθνξεο ιεηηνπξγίεο λα εθηεινχληαη.
2
7
έλα πιηθφ κε ειεθηξηθή αγσγηκφηεηα κεηαμχ ελφο αγσγνχ θαη κνλσηηθνχ πιηθνχ.
3.4. Υξήζηκα ραξαθηεξηζηηθά ησλ Ο.Κ
Δπεηδή ην νινθιεξσκέλν θχθισκα, αληηπξνζσπεχεη απφ θαηαζθεπαζηηθή άπνςε έλα ζχλνιν,
ην νπνίν εθπιεξψλεη κηα θαζνξηζκέλε ιεηηνπξγία θαη ηθαλνπνηεί θαζνξηζκέλεο απαηηήζεηο, πξέπεη λα
ηνπνζεηεζεί ζηελ θαηεγνξία ησλ ειεθηξνληθψλ δηαηάμεσλ. Δλ ηνχηνηο, αλ ζπγθξηζεί κε έλα
ηξαλδίζηνξ ή κε κία δίνδν θ.η.ι., απνηειεί έλαλ ηχπν δηάηαμεο ξηδηθά θαηλνχξην.
Σν πξψην θαη θχξην ραξαθηεξηζηηθφ ηνπ νινθιεξσκέλνπ θπθιψκαηνο είλαη φηη
πξαγκαηνπνηεί, κε αλεμάξηεην ηξόπν, κηα θαζνξηζκέλε ιεηηνπξγία, ζπρλά πνιχ πνιχπινθε,
ελψ νη ζηνηρεηψδεηο ειεθηξνληθέο δηαηάμεηο (π.ρ. αληηζηάηεο) δελ είλαη ηθαλέο λα εθπιεξψζνπλ
κηα αλάινγε ιεηηνπξγία παξά κφλν ζε ζπλεξγαζία κε άιια ειεθηξνληθά εμαξηήκαηα.
Έλα δεχηεξν ραξαθηεξηζηηθφ ησλ νινθιεξσκέλσλ θπθισκάησλ είλαη φηη ε αύμεζε ηεο
ιεηηνπξγηθήο πνιππινθόηεηάο ηνπο ζε ζρέζε κε ηηο ζεκειηώδεηο δηαηάμεηο δελ αθνινπζείηαη
απφ ππνβάζκηζε κηαο νπνηαζδήπνηε απφ ηηο θχξηεο παξακέηξνπο (πηζηφηεηα, θφζηνο θηι.).
Αληίζεηα φιεο απηέο νη παξάκεηξνη βξίζθνληαη βειηησκέλεο ζηα νινθιεξσκέλα θπθιψκαηα.
Έλα ηξίην ραξαθηεξηζηηθφ ησλ νινθιεξσκέλσλ θπθισκάησλ είλαη φηη έρνπλ πξνηίκεζε ζηα
ελεξγά ζηνηρεία παξά ζηα παζεηηθά, ζηνηρεηά δειαδή πνπ παξάγνπλ ελέξγεηα (ελεξγεηηθά π.ρ.
ηξαλδίζηνξ), έλαληη απηψλ πνπ ηελ απνζεθεχνπλ (παζεηηθά π.ρ. αληηζηάηεο). Έηζη,
ελδηαθεξφκαζηε λα ηνπνζεηήζνπκε ζην ίδην ηζηπ έλαλ, φζν ην δπλαηφλ κεγαιχηεξν, αξηζκφ
ζηνηρείσλ ειάρηζηεο επηθάλεηαο. Η ειάρηζηε επηθάλεηα είλαη ραξαθηεξηζηηθφ ησλ ελεξγψλ
ζηνηρείσλ
Έλα ηέηαξην ραξαθηεξηζηηθφ ησλ νινθιεξσκέλσλ θπθισκάησλ ζπλδέεηαη κε ην γεγνλφο φηη ηα
γεηηνληθά ζηνηρεία δελ απέρνπλ κεηαμχ ηνπο πάλσ από 50 κε 100κm θαη επσθεινχκαζηε
κεηψλνληαο ηελ επίδξαζε ησλ ζεξκηθψλ κεηαβνιψλ θαη ηεο δηαζπνξάο ησλ παξακέηξσλ.
3.5. Σαμηλόκεζε ησλ Ο.Κ βάζεη βαζκνύ νινθιήξσζεο
«Η ιεηηνπξγηθή πνιππινθόηεηα ηωλ νινθιεξωκέλωλ θπθιωκάηωλ ραξαθηεξίδεηαη, θαηά ζπλζήθε,
από ηνλ βαζκό νινθιήξωζεο δει. από ηνλ αξηζκό ζηνηρείωλ (ζπλήζωο ηξαλδίζηνξ) πνπ
πεξηέρνληαη κέζα ζε έλα ηζηπ.»
Μηθξή θιίκαθα νινθιήξσζεο ή SSI (Small Scale Integration): πεξηέρνπλ έσο 10 ηξαλδίζηνξ
ή ιίγεο πχιεο ζε έλα εληαίν πιαζηηθφ πεξίβιεκα, πρ AND, OR, NOT πχιεο.
Μεζαίαο θιίκαθα νινθιήξσζεο ή MSI (Medium Scale Integration): κεηαμχ 10 θαη 100
ηξαλδίζηνξ ή δεθάδεο πχιεο ζε έλα εληαίν παθέην πιαζηηθφ πεξίβιεκα. Δθηεινχλ ςεθηαθέο
ιεηηνπξγίεο, φπσο πρ αζξνηζηέο, απνθσδηθνπνηεηέο, κεηξεηέο, flip-flops θαη πνιππιέθηεο.
Μεγάιεο θιίκαθα νινθιήξσζεο ή LSI (Large Scale Integration): κεηαμχ 100 θαη 1.000
ηξαλδίζηνξ ή εθαηνληάδεο απφ ηηο πχιεο. Πξαγκαηνπνηνχλ εηδηθέο ςεθηαθέο ιεηηνπξγίεο φπσο
πρ ηελ αξηζκεηηθή θαη ινγηθή κνλάδα, I / O ζπζηήκαηα, κλήκε,.
Πνιχ κεγάιε θιίκαθα νινθιήξσζεο ή VLSI (Very-Large Scale Integration): κεηαμχ 1.000
θαη 10.000 ηξαλδίζηνξ ή ρηιηάδεο πχιεο. Ιθαλέο γηα ππνινγηζηηθέο εξγαζίεο, φπσο
επεμεξγαζηέο, κεγάιεο ζπζηνηρίεο κλήκεο θαη πξνγξακκαηηδφκελεο δηαηάμεηο ινγηθήο.
Πάξα πνιχ κεγάιε θιίκαθα νινθιήξσζεο ή SLSI (Super-Large Scale Integration): κεηαμχ
10.000 θαη 100.000 ηξαλδίζηνξ ζε έλα εληαίν πιαζηηθφ πεξίβιεκα. Μεγαιχηεξσλ απαηηήζεσλ
ππνινγηζηηθέο εξγαζίεο φπσο πρ, ηα ηζηπ κηθξνεπεμεξγαζηή PC, κηθξνειεγθηέο θαη
αξηζκνκεραλέο.
8
Δμαηξεηηθά κεγάιε θιίκαθα νινθιήξσζεο ή ULSI (Ultra-Large Scale Integration): πάλσ απφ
1 εθαηνκκχξην ηξαλδίζηνξ. Υξεζηκνπνηνχληαη ζε CPU ππνινγηζηψλ, GPU, επεμεξγαζηέο
βίληεν, κηθξνειεγθηέο, FPGA θαη πνιχπινθεο PIC.
Δθηφο απφ ην βαζκφ νινθιήξσζεο ρξεζηκνπνηνχκε θαη έλαλ άιιν φξν, ηελ ππθλόηεηα ζηνηρείωλ,
δει. ηνλ αξηζκφ ησλ ζηνηρείσλ (ζπλήζσο ηξαλδίζηνξ) αλά κνλάδα επηθάλεηαο ηνπ ηζηπ. Απηφ ην
κέγεζνο ραξαθηεξίδεη θπξίσο ηε ζηάζκε ηεο ηερλνινγίαο.
3.6. Μηθξνεπεμεξγαζηήο
«Ίζωο ε ζπνπδαηόηεξε εθαξκνγή νινθιεξωκέλωλ θπθιωκάηωλ είλαη ν κηθξνεπεμεξγαζηήο»
Έλαο κηθξνεπεμεξγαζηήο («κηθξν-» ιφγν ηεο απφζηαζεο ησλ ηξαλδίζηνξ εληφο ηνπ IC
κεηξνχκελε ζε κm ή 1×10−6 m) πεξηιακβάλεη ηηο πεξηζζφηεξεο ή φιεο ηηο ιεηηνπξγίεο κηαο θεληξηθήο
κνλάδαο επεμεξγαζίαο (CPU) ελφο Η/Τ ζε έλα εληαίν νινθιεξσκέλν θχθισκα. Έλαο ζχγρξνλνο
κηθξνεπεμεξγαζηήο απνηειείηαη απφ ηηο αθφινπζεο κνλάδεο.
Μνλάδα απνθσδηθνπνίεζεο εληνιώλ (Instruction Decoding Unit): Μνλάδα πνπ κεηαηξέπεη
ηα πξνγξάκκαηα ζε εληνιέο Assembly.
Αξηζκεηηθή θαη Λνγηθή Μνλάδα (Arithmetic and Logical Unit, ALU): Η κνλάδα ζηελ
νπνία εθηεινχληαη κία πξνο κία νη αξηζκεηηθέο ή ινγηθέο πξάμεηο, φπσο ππαγνξεχνληαη απφ
ηηο εληνιέο πνπ έρνπλ δνζεί ζηνλ Η/Τ.
Καηαρσξεηέο (Registers): Μηθξά θειηά κλήκεο ζην εζσηεξηθφ ηνπ επεμεξγαζηή, πνπ
ρξεζηκνπνηνχληαη γηα ηελ πξνζσξηλή απνζήθεπζε ησλ δεδνκέλσλ, θαζψο απηά πθίζηαληαη
επεμεξγαζία. Οη θαηαρσξεηέο δηαθέξνπλ αλάινγα κε ηνλ ηχπν ηνπ επεμεξγαζηή θαη ηνλ
θαηαζθεπαζηή, ηφζν σο πξνο ηελ νξγάλσζε φζν θαη σο πξνο ηε ρσξεηηθφηεηά ηνπο.
Μνλάδα ειέγρνπ (Control Unit): Διέγρεη ηε ξνή δεδνκέλσλ απφ θαη πξνο ηελ ALU, ηνπο
θαηαρσξεηέο, ηε κλήκε θαη ηηο πεξηθεξεηαθέο κνλάδεο εηζφδνπ/εμφδνπ.
Μνλάδα πξνζθόκηζεο (Fetch Unit): Μεηαθέξεη ηηο εληνιέο απφ ηε κλήκε ζηνλ επεμεξγαζηή.
Μνλάδα πξνζηαζίαο (Protection Unit): Δμαζθαιίδεη ην απνδεθηφ ηεο θάζε δηεξγαζίαο πνπ
εθηειεί ν επεμεξγαζηήο, ψζηε λα κε ηξνπνπνηνχληαη δεδνκέλα πνπ δελ πξέπεη ή λα κελ
εθηεινχληαη κε απνδεθηέο εληνιέο, φπσο π.ρ. δηαίξεζε αξηζκνχ κε ην κεδέλ.
3.7. Μηθξνειεγθηήο
Ο κηθξνειεγθηήο είλαη έλα πιήξεο ππνινγηζηηθφ ζχζηεκα βειηηζηνπνηεκέλν γηα ηνλ έιεγρν
hardware (πιηθνχ) θαη ελζσκαηψλεη κηθξνεπεμεξγαζηή, κλήκε θαη I/O πεξηθεξεηαθέο κνλάδεο ζε κηα
κνλφ ςεθίδα ππξηηίνπ. Η χπαξμε ησλ παξαπάλσ ζε κηα θαη κφλν ςεθίδα ππξηηίνπ ζεκαίλεη φηη ε
ηαρχηεηα εληζρχεηαη, δηφηη νη I/O πεξηθεξεηαθέο κνλάδεο απαηηνχλ ιηγφηεξν ρξφλν λα δηαβάζνπλ ή λα
γξάςνπλ απφ ηηο εμσηεξηθέο ζπζθεπέο. Δπίζεο ν επεμεξγαζηήο θαη ε κλήκε αληαιιάζζνπλ δεδνκέλα
γξεγνξφηεξα.
Όκσο έλαο κηθξνεπεμεξγαζηήο είλαη ζπλήζσο βειηηζηνπνηεκέλνο γηα λα ζπληνλίδεη ηελ ξνή
ησλ δεδνκέλσλ κεηαμχ ησλ κνλάδσλ κλήκεο θαη ησλ πεξηθεξηθψλ ζπζθεπψλ εθηφο ηνπ
πεξηβάιινληνο ηνπ (ςεθίδα ππξηηίνπ). Οη ζπλδέζεηο ελφο κηθξνεπεμεξγαζηή πεξηιακβάλνπλ ηε
δηεπζπλζηνδφηεζε θαη ηνπο δηαχινπο δεδνκέλσλ, πνπ ηνπ επηηξέπνπλ λα επηιέμεη έλα απφ ηα
πεξηθεξεηαθά ηνπ θαη λα ζηείιεη ή λα αλαθηήζεηε δεδνκέλα απφ απηά. Δπεηδή ν επεμεξγαζηήο ηνπ
κηθξνειεγθηή θαη ηα πεξηθεξεηαθά ηνπ είλαη ελζσκαησκέλα ζηελ ίδηα ςεθίδα ππξηηίνπ, νη κνλάδεο
πνπ πεξηέρεη είλαη απηφλνκεο θαη ζπάληα έρνπλ δνκέο δηαχισλ πνπ εθηείλνληαη έμσ απφ ηα απηνχο.
3.8. Μηθξνειεγθηέο ζε ζύγθξηζε κε ηνπο κηθξνεπεμεξγαζηέο
Ο κηθξνειεγθηήο δηαθέξεη απφ έλαλ κηθξνεπεμεξγαζηή ζε πνιιά ζεκεία. Πξψην θαη ην πην
ζεκαληηθφ είλαη ε ιεηηνπξγηθφηεηά ηνπ. Γηα έλαλ κηθξνεπεμεξγαζηή, ζα πξέπεη λα ηνπ πξνζηεζνχλ
επηπιένλ κνλάδεο φπσο π.ρ. κλήκε, γηα λα είλαη ζε ζέζε γηα ιήςε ή απνζηνιή δεδνκέλσλ. Με ιίγα
ιφγηα ν κηθξνεπεμεξγαζηήο είλαη ε θαξδηά ηνπ Η/Τ. Απφ ηελ άιιε, ν κηθξνειεγθηήο έρεη ζρεδηαζηεί
9
γηα λα είλαη φια απηά ζε έλα. Γελ απαηηνχληαη άιια εμσηεξηθά εμαξηήκαηα γηα ηελ πιήξε ρξήζε ηνπ,
επεηδή φια ηα απαξαίηεηα πεξηθεξεηαθά ήδε ελζσκαησκέλα ζε απηφλ.
3.9. Δίδε κηθξνειεγθηώλ
Μηθξνειεγθηέο κπνξνχλ λα ηαμηλνκεζνχλ κε βάζε ην εχξνο ησλ δηαχισλ (ζε bit), ηελ
αξρηηεθηνληθή, ηε κλήκε θαη ην ζεη εληνιψλ.
Δηθόλα 3. 3: Σαμηλόκεζε κηθξνειεγθηώλ
3.9.1. Μηθξνειεγθηέο 8, 16 θαη 32 bit
Όηαλ ε κνλάδα ALU εθηειεί αξηζκεηηθέο θαη ινγηθέο ιεηηνπξγίεο κηαο εληνιήο, ζε έλαλ 8-bit
δίαπιν, ν κηθξνειεγθηήο είλαη έλα 8-bit. Οκνίσο ηζρχεη γηα ηνπο κηθξνειεγθηέο 16 θαη 32 bit.
3.9.2. Δλζσκαησκέλνο κηθξνειεγθηήο
Όηαλ έλα ζχζηεκα δηαζέηεη κνλάδα κηθξνεπεμεξγαζηή ε νπνία έρεη φια ηα ιεηηνπξγηθά
ηκήκαηα (ζπκπεξηιακβαλνκέλσλ κλήκε πξνγξάκκαηνο θαζψο θαη δεδνκέλσλ) πνπ είλαη
ηνπνζεηεκέλα ζε έλα ηζηπ, ην ζχζηεκα απηφ νλνκάδεηαη ελζσκαησκέλνο κηθξνειεγθηήο.
3.9.3. Μηθξνειεγθηήο εμσηεξηθήο κλήκεο
Όηαλ έλα ελζσκαησκέλν ζχζηεκα δηαζέηεη κνλάδα κηθξνειεγθηή πνπ δελ έρεη φια ηα
ιεηηνπξγηθά ηκήκαηα ηνπνζεηεκέλα ζε έλα ηζηπ νλνκάδεηαη κηθξνειεγθηήο εμσηεξηθήο κλήκεο. Σν
ζχλνιν ή κέξνο ησλ κνλάδσλ κλήκεο είλαη δηαζπλδεδεκέλα εμσηεξηθά ρξεζηκνπνηψληαο έλα
θχθισκα δηαζχλδεζεο πνπ νλνκάδεηαη glue circuit (θχθισκα ζπγθφιιεζεο).
3.9.4. Αξρηηεθηνληθή Von-Neuman (ή Princeton)
Μηθξνειεγθηέο κε βάζε ηελ Von-Neuman αξρηηεθηνληθή έρνπλ κφλν έλαλ δίαπιν γηα
«δεδνκέλα», πνπ ρξεζηκνπνηείηαη γηα λα κεηαθέξεη θαη εληνιέο θαη δεδνκέλα. Οη εληνιέο ηνπ
πξνγξάκκαηνο θαη ηα δεδνκέλα είλαη απνζεθεπκέλα ζε θνηλή κλήκε. Όηαλ ν κηθξνειεγθηήο
ρξεζηκνπνίεη ηελ θχξηα κλήκε, πξψηα εθηειεί απηή ηελ εληνιή, θαη ζηε ζπλέρεηα αλαθαιεί ηα
δεδνκέλα γηα ηελ εθηέιεζε ηεο εληνιήο. Οη ιεηηνπξγηέο επεηδή είλαη μερσξηζηέο επηβξαδχλνπλ ηε
ιεηηνπξγία ηνπ κηθξνειεγθηή.
10
Δηθόλα 3. 4: Μπινθ δηάγξακκα αξρηηεθηνληθήο Von-Neuman
3.9.5. Αξρηηεθηνληθή Harvard
Μηθξνειεγθηέο κε βάζε ηελ αξρηηεθηνληθή Harvard έρνπλ μερσξηζηφ δίαπιν δεδνκέλσλ θαη
δίαπιν εληνιψλ. Απηφ επηηξέπεη ζηηο εληνιέο λα εθηεινχληαη παξάιιεια. Καζψο κηα εληνιή «πξνθέξλεηαη» (pre-fetch), εθηειείηαη ζηνλ δίαπιν δεδνκέλσλ. Μφιηο ε ηξέρνπζα εληνιή εθηειεζηεί, ε
επφκελε εληνιή είλαη έηνηκε πξνο εθηέιεζε. Σν pro-fetch ζεσξεηηθά επηηξέπεη ηελ ηαρχηεξε εθηέιεζε
ησλ εληνιψλ ζε ζρέζε κε ηελ Von-Neuman αξρηηεθηνληθή αιιά ζε βάξνο ηεο πνιππινθφηεηαο
(πςειφηεξε). Η αξρηηεθηνληθή Harvard κπνξεί λα εθηειεί ηηο εληνιέο ζε ιηγφηεξνπο θχθινπο εληνιψλ
(instruction cycles) απφ ηελ Von-Neuman αξρηηεθηνληθή.
Δηθόλα 3. 5: Μπινθ δηάγξακκα αξρηηεθηνληθήο Harvard
3.9.6.
Αξρηηεθηνληθή CISC
΢ρεδφλ ην ζχλνιν ησλ κηθξνειεγθηψλ ζήκεξα βαζίδνληαη ζηελ ηερλνινγία CISC (Complex
Instruction Set Computer - Τπνινγηζηήο ΢χλζεηνπ ΢εη Δληνιψλ ). Όηαλ έλα κηθξνειεγθηήο δηαζέηεη
έλα ζεη εληνιψλ πνπ ππνζηεξίδεη ζχλζεηεο ιεηηνπξγηέο γηα ηελ εθηέιεζε αξηζκεηηθψλ θαη ινγηθψλ
εληνιψλ, κεηαθνξάο δεδνκέλσλ θαη πξφζβαζεο κλήκεο, ηφηε ιέγεηαη φηη είλαη CISC αξρηηεθηνληθήο.
11
Σα πιενλεθηήκαηα ηεο αξρηηεθηνληθήο CISC είλαη φηη πνιιέο απφ ηηο εληνιέο ηεο ιεηηνπξγνχλ
σο καθξνεληνιέο (macros), επηηξέπνληαο ζηνλ πξνγξακκαηηζηή λα ρξεζηκνπνηήζεη κηα εληνιή ζηε
ζέζε πνιιψλ απινχζηεξσλ.
3.9.7. Αξρηηεθηνληθή RISC
Η ηάζε ηεο βηνκεραλίαο γηα ην ζρεδηαζκφ κηθξνεπεμεξγαζηψλ ή RISC (RISC Reduced
Instruction Set Computers - Τπνινγηζηέο Απινχζηεξνπ ΢εη Δληνιψλ). Όηαλ έλαο κηθξνειεγθηήο έρεη
έλα ζεη εληνιψλ πνπ ππνζηεξίδεη απινχζηεξνπο ηξφπνπο εθηέιεζεο αξηζκεηηθψλ θαη ινγηθψλ
εληνιψλ θαη κεηαθνξάο δεδνκέλσλ, ηφηε είλαη αξρηηεθηνληθήο RISC.
Σα νθέιε απφ ηελ απιφηεηα ηνπ ζρεδηαζκνχ RISC είλαη κηθξφηεξα ηζηπ, αηζζεηή κείσζε ν
αξηζκνχ pin θαη πνιχ ρακειή θαηαλάισζε ελέξγεηαο.
3.10. Βαζηθή δνκή ηνπ κηθξνειεγθηή
Γηα λα είλαη εκθαλήο ε ιεηηνπξγία θαη ε δηαζχλδεζε ησλ δνκηθψλ ζηνηρείσλ ηνπ
κηθξνειεγθηή, ζα αλαιπζνχλ νη βαζηθέο κνλάδεο ηνπ μερσξηζηά. Λεπηέο γξακκέο πνπ νδεγνχλ απφ ην
θέληξν πξνο ηηο πιεπξέο ηνπ κηθξνειεγθηή αληηπξνζσπεχνπλ θαιψδηα πνπ ζπλδένπλ εζσηεξηθέο
κνλάδεο κε ηηο αθίδεο ζην πεξίβιεκα ηνπ κηθξνειεγθηή ηηο ιεγφκελεο γξακκέο ζπγθφιιεζεο.
Γηα ηελ πινπνίεζε κηαο εθαξκνγήο, έλαο κηθξνειεγθηήο δελ αξθεί. Δθηφο απφ έλα
κηθξνειεγθηή, ρξεηαδφκαζηε έλα πξφγξακκα πνπ ζα εθηειεζηεί, θαζψο θαη κεξηθά αθφκε ζηνηρεία
πνπ ζπλζέηνπλ κηα ινγηθή δηαζχλδεζεο. Η εηθόλα 3.6 πνπ αθνινπζεί δείρλεη έλα κηθξνειεγθηή ζην
εζσηεξηθφ ηνπ.
΢πλήζσο έλαο κηθξνειεγθηήο ελζσκαηψλεη πάλσ ζηελ ςεθίδα ππξηηίνπ ηα αθφινπζα:
Σελ CPU (ΚΜΔ)
Μνλάδεο Μλήκεο
Ι/Ο ζε παξάιιειε ζπλδεζκνινγία
Δηθόλα 3. 6: Θεκειηώδεηο κνλάδεο ηνπ κηθξνειεγθηή
Ο κηθξνειεγθηήο ζπλδπάδεη θαη άιιεο κνλάδεο , φπσο:
Μνλάδα ρξνληζκνχ (Timer) πνπ θαζηζηά δπλαηφ ζηνλ κηθξνειεγθηή ηελ εθηέιεζε εξγαζηψλ
γηα ζπγθεθξηκέλεο ρξνληθέο πεξηφδνπο θαη ζηηγκέο.
΢εηξηαθή ζχξα I / O γηα λα επηηξέςεη ηε ξνή δεδνκέλσλ κεηαμχ ηνπ κηθξνειεγθηή θαη άιιεο
ζπζθεπέο, φπσο έλα PC ή έλα άιιν κηθξνειεγθηή.
Μνλάδα ADC (Analog-to-Digital Converter - Aλαινγηθφ ζε Φεθηαθφ Μεηαηξνπέα) ψζηε λα
είλαη δπλαηφ ν κηθξνειεγθηήο λα δέρεηαη είζνδν αλαινγηθψλ δεδνκέλσλ γηα επεμεξγαζία.
12
Μνλάδεο κλήκεο δηαθφξσλ εηδψλ πνπ ηνπ επηηξέπνπλ ηελ απνζήθεπζε θαη αλάθιεζε
δεδνκέλσλ.
Γηαχινπο πνπ επηηξέπνπλ ηελ απνδνηηθή κεηαθνξά δεδνκέλσλ κεηαμχ ηεο CPU θαη ησλ
ππνινίπσλ κνλάδσλ.
Μνλάδα επνπηείαο ρξνληζκνχ (Watchdog Timer) πνπ καο επηηξέπεη λα ειέγρνπκε ηελ ζσζηή
εθηέιεζε ηνπ πξνγξάκκαηνο.
Δηθόλα 3. 7: Γηάγξακκα κπινθ κηθξνειεγθηή
3.11. Μνλάδα κλήκεο
Η κλήκε είλαη κέξνο ηνπ κηθξνειεγθηή ηεο νπνίαο ε ιεηηνπξγία είλαη ε απνζήθεπζε
δεδνκέλσλ. Ο επθνιφηεξνο ηξφπνο γηα λα ηελ παξνπζηάζνπκε είλαη λα ηελ πεξηγξάςνπκε σο έλα
κεγάιν ληνπιάπη κε πνιιά ζπξηάξηα. Αλ ππνζέζνπκε φηη έρνπκε θαηαζθεπάζεη ηα ζπξηάξηα κε ηέηνην
ηξφπν ψζηε λα κελ κπνξνχλ λα ζπγρένληαη, θαλέλα απφ ηα πεξηερφκελά ηνπο ζηε ζπλέρεηα δελ ζα
είλαη δχζθνια πξνζβάζηκν. «Αξθεί λα είλαη γλσζηή ε νλνκαζία ηνπ θάζε ζπξηαξηνχ θαη έηζη ην
πεξηερφκελφ ηνπ ζα είλαη γλσζηφ ζε καο ζηα ζίγνπξα».
Σα ζηνηρεία ηεο κνλάδαο κλήκεο ιεηηνπξγνχλ σο εμήο. Γηα κηα ζπγθεθξηκέλε είζνδν
παίξλνπκε ηα πεξηερφκελα κηαο ζέζεο κλήκεο πνπ έρεη ηελ δηθή ηεο δηεχζπλζε. Γχν λέεο έλλνηεο καο
ρξεηάδνληαη: δηεπζπλζηνδφηεζε θαη ζέζε κλήκεο. Η κλήκε απνηειείηαη απφ φιεο ηηο πηζαλέο ζέζεηο
ηεο θαη ε δηεπζπλζηνδφηεζε κλήκεο δελ είλαη ηίπνηα άιιν, απφ ηελ επηινγή κηαο ζέζεο απφ απηήλ.
13
Απηφ ζεκαίλεη φηη γηα λα επηιέμνπκε ηελ επηζπκεηή ζέζε κλήκεο, πξέπεη λα πεξηκέλνπκε γηα ην
πεξηερφκελν απηήο ηεο ηνπνζεζίαο. Δθηφο απφ ηελ αλάγλσζε κηαο ζέζεο κλήκεο, ζα πξέπεη επίζεο λα
ππάξρεη θαη ε εγγξαθή πάλσ ζε απηήλ ηε ζέζε.
3.11.1. Σα βαζηθόηεξα είδε κλήκεο:
ROM (κλήκε κόλν γηα αλάγλσζε)
Η κλήκε κφλν γηα αλάγλσζε (ROM Read Only Memory) είλαη έλαο ηχπνο κλήκεο πνπ
ρξεζηκνπνηείηαη γηα λα απνζεθεχζεη κφληκα ην πξφγξακκα πνπ εθηειείηαη. Σν κέγεζνο ηνπ
πξνγξάκκαηνο πνπ κπνξεί λα απνζεθεπζεί, εμαξηάηαη απφ ην κέγεζνο απηήο ηεο κλήκεο.
Αλάινγα κε ηνλ ηχπν ηνπ κηθξνειεγθηή ε ROM κπνξεί λα ελζσκαησζεί ζην κηθξνειεγθηή ή
λα πξνζηεζεί σο εμσηεξηθφ ηζηπ.
RAM (κλήκε ηπραίαο πξνζπέιαζεο)
Η κλήκε ηπραίαο πξνζπέιαζεο (RAM Random Access Memory) είλαη έλαο ηχπνο κλήκεο πνπ
ρξεζηκνπνηείηαη γηα ηελ πξνζσξηλή απνζήθεπζε δεδνκέλσλ πνπ δεκηνπξγνχληαη θαη
ρξεζηκνπνηνχληαη θαηά ηε δηάξθεηα ηεο ιεηηνπξγίαο ησλ κηθξνειεγθηψλ. Σν πεξηερφκελν
απηήο ηεο κλήκεο δηαγξάθεηαη φηαλ ε παξνρή ξεχκαηνο δηαθφπηεηαη.
EEPROM (ειεθηξηθά δηαγξάςηκε θαη πξνγξακκαηίζηκε κλήκε κόλν γηα αλάγλσζε)
Η ειεθηξηθά δηαγξάςηκε θαη πξνγξακκαηίζηκε κλήκε κφλν γηα αλάγλσζε (EEPROM
Electrically Erasable Programmable ROM) είλαη έλαο εηδηθφο ηχπνο κλήκεο πνπ δελ
πεξηιακβάλνληαη ζε φινπο ηνπο κηθξνειεγθηέο. Σν πεξηερφκελφ ηεο κπνξεί λα αιιάμεη θαηά
ηε δηάξθεηα ηεο εθηέιεζεο ηνπ πξνγξάκκαηνο (παξφκνηα κε ηελ κλήκε RAM), αιιά
παξακέλεη κφληκα απνζεθεπκέλν, αθφκε θαη κεηά ηελ δηαθνπή ηεο παξνρήο ξεχκαηνο
(παξφκνηα κε ROM). ΢πρλά ρξεζηκνπνηείηαη γηα ηελ απνζήθεπζε δεδνκέλσλ ηα νπνία πξέπεη
λα απνζεθεχνληαη πξηλ ηελ δηαθνπή ηεο παξνρήο ξεχκαηνο
3.12.
Γίαπινο
΢ε ηερληθφ επίπεδν, απηφ αληηπξνζσπεχεηαη απφ κηα νκάδα 8, 16 ή πεξηζζφηεξσλ θαισδίσλ.
Τπάξρνπλ δχν ηχπνη δηαχισλ: δηεπζχλζεσο θαη δεδνκέλσλ. ΢ηνλ πξψην απνηειείηαη απφ φζεο
γξακκέο ζέινπκε λα γηα λα ρσξίζνπκε ζε δηεπζχλζεηο ηελ κλήκε, θαη ζηνλ άιιν φζν είλαη ην εχξνο
ησλ δεδνκέλσλ, ζηελ πεξίπησζή καο 8 bits ή ηεο κηαο άιιεο γξακκήο ζχλδεζεο. Ο πξψηνο ρξεζηκεχεη
γηα ηε κεηαθνξά δεδνκέλσλ απφ κηα δηεχζπλζε κλήκεο ηεο CPU, θαη ν δεχηεξνο γηα λα ζπλδεζνχλ
φιεο νη ππφινηπεο κνλάδεο ζην εζσηεξηθφ ηνπ κηθξνειεγθηή.
Ο δίαπινο φζνλ αθνξά ηε ιεηηνπξγηθφηεηα ηελ βειηηψλεη, αιιά έλα λέν πξφβιεκα επίζεο έρεη
εκθαληζηεί: έρνπκε κηα κνλάδα πνπ είλαη ζε ζέζε λα εξγαζηεί απφ κφλε ηεο, αιιά δελ έρεη θακία
επαθή κε ηνλ έμσ θφζκν, ή καδί καο! Γηα ηελ άξζε απηήο ηεο αλεπάξθεηαο, αο πξνζζέζνπκε κηα
κνλάδα ε νπνία πεξηέρεη αξθεηέο ζέζεηο κλήκεο εθ ησλ νπνίσλ ην έλα άθξν είλαη ζπλδεδεκέλν κε ηνλ
δίαπιν δεδνκέλσλ θαη ζην άιιν λα είλαη ζπλδεδεκέλν κε ηηο γξακκέο εμφδνπ ηνπ κηθξνειεγθηή.
3.13.
Μνλάδα εηζόδνπ/εμόδνπ (Ι/Ο)
Απηέο νη ζέζεηο πνπ έρνπκε κφιηο πξνζηεζήθαλ νλνκάδνληαη «ζχξεο». Τπάξρνπλ δηάθνξσλ
ηχπσλ ζχξεο: εηζφδνπ, εμφδνπ ή ακθίδξνκεο. Καηά ηελ εξγαζία κε ζχξεο, πξσηίζησο είλαη
απαξαίηεην λα επηιερηεί πνηα ζχξα ζα ρξεζηκνπνηεζεί, θαη ζηε ζπλέρεηα λα ζηαινχλ δεδνκέλα ζε
απηήλ ή λα πάξνπκε δεδνκέλα απ’ απηή.
Όηαλ ρξεζηκνπνηείηαη κε απηφ ηνλ ηξφπν κε κηα ζχξα απηή ιεηηνπξγεί ζαλ κηα ζέζε κλήκεο.
Γεδνκέλα εγγξάθνληαη ζε απηήλ ή δηαβάδνληαη απφ απηήλ, ην γεγνλφο απηφ παξαηεξείηαη επάλσ ζηηο
αθίδεο ηνπ κηθξνειεγθηή.
14
3.14.
΢εηξηαθή επηθνηλσλία
Δθηφο απηψλ πνπ έγηλαλ αλαθνξά παξαπάλσ πξέπεη λα πξνζηεζεί κηα κνλάδα πνπ λα
πξνζθέξεη ηε δπλαηφηεηα επηθνηλσλίαο κε ηνλ έμσ θφζκν. Γηα λα ιεηηνπξγήζεη απηφ, πξέπεη λα
ζέζνπκε ηνπο θαλφλεο αληαιιαγήο δεδνκέλσλ. Οη θαλφλεο απηνί νλνκάδνληαη πξσηφθνιιν.
Πξσηφθνιιν είλαη απηφ πνπ νξίδεηαη εθ ησλ πξνηέξσλ έηζη ψζηε δελ ζα ππάξμεη θακία παξεμήγεζε
κεηαμχ ησλ πιεπξψλ πνπ επηθνηλσλνχλ κεηαμχ ηνπο.
Με βάζε ην πξσηφθνιιν κπνξεί θάζε bit λα παξακείλεη ζηελ γξακκή γηα ρξνληθφ δηάζηεκα
ην νπνίν είλαη ίζν κε Σ θαη ζην ηέινο, ή κεηά ην 8ν bit , λα δνζεί ε ινγηθή πνζφηεηα «1» ζηε γξακκή ε
νπνία ζα ζεκαηνδνηήζεη ην ηέινο ηεο κεηάδνζεο ησλ δεδνκέλσλ. Σν πξσηφθνιιν απηφ νλνκάδεηαη
NRZ (Non-Return to Zero). Σα δεδνκέλα κεηαθηλνχληαη απφ ηε κλήκε κέζα απφ δίαπιν πξνο ηελ
ηνπνζεζία πνπ ζα απνζηαινχλ θαη ζηε ζπλέρεηα ζηε κνλάδα πνπ ζα ηα ιάβεη ζχκθσλα κε ην
πξσηφθνιιν.
Πξέπεη φκσο λα έρνπκε μερσξηζηέο γξακκέο γηα ηε ιήςε θαη ηελ απνζηνιή, γηα λα είλαη
δπλαηή ε ιήςε θαη απνζηνιή δεδνκέλσλ ηελ ίδηα ζηηγκή. Η ιεηηνπξγία full-duplex επηηξέπεη απηφλ
ηνλ ηξφπν επηθνηλσλίαο θαη ε κνλάδα επηθνηλσλίαο πνπ καο ην επηηξέπεη νλνκάδεηαη ζεηξηαθή κνλάδα.
3.15. Μνλάδα ρξνληζκνύ (Timer)
Γεδνκέλνπ φηη έρνπκε εμεγήζεη ηε ζεηξηαθή επηθνηλσλία, κπνξνχκε λα ιάβνπκε, λα
απνζηείινπκε θαη λα επεμεξγαζηνχκε δεδνκέλα. Χζηφζν, πξνθεηκέλνπ λα ρξεζηκνπνηεζεί,
ρξεηαδφκαζηε κηα επηπιένλ κνλάδα. Απηή είλαη ε κνλάδα ρξνληζκνχ ε νπνία είλαη ηδηαίηεξα
ζεκαληηθή, δηφηη κπνξεί λα καο παξέρεη πιεξνθνξίεο γηα ην ρξφλν θαη ηε ρξνληθή δηάξθεηα.
Σν ζηνηρείν ζηε κνλάδα ρξνληζκνχ είλαη έλαο κεηξεηήο πνπ «ηξέρεη ζπλερψο» θαη ζηελ
πξαγκαηηθφηεηα είλαη έλαο θαηαρσξεηήο ηνπ νπνίνπ ε αξηζκεηηθή ηηκή απμάλεηαη θαηά έλα ζε
ηζφπνζα δηαζηήκαηα, έηζη ψζηε κε ηε αλάγλσζε ηεο ηηκήο ηνπ θαηά ηηο πεξηφδνπο Σ1 θαη Σ2 θαη κε
βάζε ηε δηαθνξά ηνπο λα κπνξνχκε λα θαζνξίζνπκε πφζν ρξνληθφ δηάζηεκα έρεη παξέιζεη. Έλα πνιχ
ζεκαληηθφ κέξνο ηεο ιεηηνπξγίαο ηνπ κηθξνειεγθηή.
3.16. Μνλάδα κεηαηξνπήο από αλαινγηθό ζε ςεθηαθό (ADC)
Γεδνκέλνπ φηη ηα ζήκαηα ησλ πεξηθεξηθψλ ζπλήζσο δηαθέξνπλ νπζηαζηηθά απφ απηά πνπ ν
κηθξνειεγθηήο κπνξεί λα θαηαιάβεη (κεδέλ θαη έλα), ζα πξέπεη λα κεηαηξαπνχλ ζε έλα πξφηππν πνπ
κπνξεί λα «θαηαλνεζεί» απφ ηνλ κηθξνειεγθηή. Σν έξγν απηφ εθηειείηαη απφ κηα κνλάδα πνπ
κεηαηξέπεη ηελ αλαινγηθή ηηκή ζε ςεθηαθή ή Analog-to-Digital Converter (κεηαηξνπέα αλαινγηθφ ζε
ςεθηαθφ) γλσζηφ θαη σο ADC. Απηφ ε κνλάδα είλαη ππεχζπλε γηα ηε κεηαηξνπή δεδνκέλσλ πνπ
έρνπλ αλαινγηθή ηηκή ζε δπαδηθφ αξηζκφ θαη ζηε ζπλέρεηα λα ηα κεηαθέξεη απφ ζηελ CPU ψζηε ε
CPU λα κπνξεί λα ηα επεμεξγαζηεί πεξαηηέξσ.
3.17. Μνλάδα επνπηείαο ρξνληζκνύ (Watchdog Timer)
Έλα αθφκα πξάγκα πνπ απαηηεί ηελ πξνζνρή καο είλαη ε άςνγε ιεηηνπξγία ηνπ κηθξνειεγθηή
θαζ’ φιε ηε δηάξθεηα ηνπ ρξφλνπ ιεηηνπξγίαο ηνπ. Αο ππνζέζνπκε φηη, σο απνηέιεζκα θάπνηαο
παξέκβαζεο (ην νπνίν ζπρλά ζπκβαίλεη) ν κηθξνειεγθηήο καο ζηακαηά ηελ εθηέιεζε ηνπ
πξνγξάκκαηνο, ή ρεηξφηεξα, αξρίδεη λα κελ ιεηηνπξγεί ζσζηά.
Φπζηθά, φηαλ απηφ ζπκβαίλεη κε έλαλ Η/Τ, απιά «παηάκε ην θνπκπί reset» θαη ζα
ζπλερίζνπκε λα δνπιεχνπκε. Χζηφζν, δελ ππάξρεη θνπκπί reset πνπ κπνξνχκε λα «παηήζνπκε» ζηνλ
κηθξνειεγθηή θαη έηζη λα ιπζεί ην πξφβιεκά καο. Γηα λα μεπεξαζηεί απηφ ην εκπφδην, ζα πξέπεη λα
εηζαρζεί κηα αθφκε κνλάδα πνπ νλνκάδεηαη κνλάδα επνπηείαο ρξνληζκνχ. Απηφ ε κνλάδα είλαη ζηελ
πξαγκαηηθφηεηα έλα άιινο κεηξεηήο πνπ «ηξέρεη ζπλερψο» , φπνπ ην πξφγξακκά πξέπεη λα γξάθεη
έλα κεδέλ θάζε θνξά πνπ εθηειείηαη κηα εληνιή ζσζηά. ΢ε πεξίπησζε πνπ ην πξφγξακκα «θνιιήζεη»,
ην κεδέλ δελ ζα γξαθηεί θαη απφ κφλε ηεο (ε κνλάδα επνπηείαο ρξνληζκνχ) ζα πξνθαιέζεη «reset»
ζηνλ κηθξνειεγθηή θαηά ηελ επίηεπμε ηεο κέγηζηεο ηηκήο ηεο (κεηά απφ πνιιέο απμήζεηο ηεο ηηκήο
ηνπ). Απηφ ζα έρεη σο απνηέιεζκα ηελ εθηέιεζε ηνπ πξνγξάκκαηνο θαη πάιη, θαη απηή ηε θνξά
15
ζσζηά. Απηφ είλαη έλα ζεκαληηθφ ζηνηρείν θάζε πξνγξάκκαηνο ψζηε λα είλαη αμηφπηζην, ρσξίο ηελ
επνπηεία ηνπ αλζξψπνπ.
3.18. Πξνγξακκαηηζκόο κηθξνειεγθηώλ
Ο πξνγξακκαηηζκφο κπνξεί λα γίλεη ζε αξθεηέο γιψζζεο, φπσο ε Assembly3, Basic, C θαη
C++ πνπ είλαη απφ ηηο πιένλ δηαδεδνκέλεο γιψζζεο. Η Assembly αλήθεη ζε γιψζζεο ρακειφηεξνπ
επίπεδνπ φπνπ ν πξνγξακκαηηζκφο γίλεηαη κε αξγνχο ξπζκνχο, αιιά θαηαιακβάλνπλ ηνλ ειάρηζην
ρψξν ζηε κλήκε θαη δίλεη ηα θαιχηεξα απνηειέζκαηα, φπνπ ε ηαρχηεηα ηεο εθηέιεζεο ηνπ
πξνγξάκκαηνο είλαη ην δεηνχκελν. Πξνγξάκκαηα ζε γιψζζα C++ είλαη πην εχθνιν λα αλαπηπρζνχλ,
πην εχθνιν λα γίλνπλ θαηαλνεηά δηφηη νη εληνιέο ζε C++ είλαη πιεζηέζηεξεο ζηελ αλζξψπηλε ινγηθή,
αιιά είλαη πην αξγή ε εθηέιεζε ηνπο απφ ηα πξνγξάκκαηα ζε Assembly.
Μεηά πνπ ζα αλαπηχμνπκε ην πξφγξακκα, ζα κεηαθεξζεί ζηνλ κηθξνειεγθηή θαη ζα
εθηειεζηεί. Γηα λα γίλεη απηφ πξέπεη λα πξνζζέζνπκε κεξηθά αθφκε εμσηεξηθά εμαξηήκαηα πνπ
απαηηνχληαη γηα απηέο ηηο εξγαζίεο. Πξψηα πξέπεη λα δψζνπκε ελέξγεηα ζηνλ κηθξνεπεμεξγαζηή κε ηε
ζχλδεζή ηνπ ζε παξνρή ξεχκαηνο (ηζρχο πνπ απαηηείηαη γηα ηε ιεηηνπξγία φισλ ησλ ειεθηξνληθψλ
εμαξηεκάησλ) θαη χζηεξα ν ηαιαλησηήο ν ξφινο ηνπ νπνίνπ είλαη παξφκνηνο κε ην ξφιν πνπ ε θαξδηά
παίδεη ζε έλα αλζξψπηλν ζψκα. Σα ξνιφγηα ρξνληζκνχ ηνπ ηαιαλησηή (ζπρλφηεηα ηαιάλησζεο) κε
βάζε ηα νπνία ν κηθξνειεγθηήο εθηειεί ηηο εληνιέο ηνπ πξνγξάκκαηνο. Όζν δέρεηαη ν κηθξνειεγθηήο
εληνιέο, ζα αλαδεηήζεη ηελ έλαξμε ηνπ πξνγξάκκαηνο θαη ζα αξρίζεηε λα ην εθηειεί. Πψο ην
πξφγξακκα ζα ιεηηνπξγήζεη/απνδψζεη εμαξηάηαη απφ πνιιέο παξακέηξνπο, ε ζεκαληηθφηεξε ησλ
νπνίσλ είλαη ε δεμηνηερλία θαη ε εκπεηξία ηνπ πξνγξακκαηηζηή.
3
κηα γιψζζα πξνγξακκαηηζκνχ πνιχ θνληά ζηε γιψζζα κεραλήο θαη ζην πιηθφ ηνπ ππνινγηζηή.
16
17
4. Παξνπζίαζε ηεο αλαπηπμηαθήο πιαθέηαο Arduino
4.1. Σί είλαη ην Arduino;
Σν Arduino είλαη αλαπηπμηαθή πιαθέηα κηθξνειεγθηή, αλνηρηνχ ηχπνπ πιηθνχ κνλήο
πιαθέηαο (open-source hardware single-board microcontroller) φπσο θαη ην ινγηζκηθφ αλάπηπμεο
εθαξκνγψλ (IDE).
Δίλαη παξάγσγν ηεο αλαπηπμηαθήο πιαηθφξκαο Wiring, πνπ καο επηηξέπεη λα αλαπηχμνπκε
έλα ππνινγηζηηθφ ζχζηεκα ην νπνίν ζα ειέγρεη ζπζθεπέο ηνπ θπζηθνχ θφζκνπ. Δίλαη αλνηρηνχ
θψδηθα ην ινγηζκηθφ ηνπ πεξηβάιινληνο αλάπηπμεο (open source IDE). Η αλαπηπμηαθή πιαθέηα πνπ
ηνλ απνηειεί, ελζσκαηψλεη έλαλ κηθξνειεγθηή κε βαζηθφ ζηνηρείν ηνλ επεμεξγαζηή Atmel AVR
ATMega328P θαη I/O system (ζχζηεκα εηζφδνπ-εμφδνπ). Δπίζεο ζπλδέεηαη κε Η/Τ κέζσ ζχξαο USB
γηα λα ην πξνγξακκαηίζνπκε κέζα απφ έλα απιφ πεξηβάιινλ αλάπηπμεο.
Σν ινγηζκηθφ ηνπ πεξηβάιινληνο αλάπηπμεο βαζίδεηαη ζηελ γιψζζα πξνγξακκαηηζκνχ
Wiring θαη απηήο πνπ ρξεζηκνπνηεί ην αλαπηπμηαθφ πεξηβάιινλ ηνπ Processing, νη νπνίεο είλαη
αλνηρηνχ θψδηθα (νpen source) θαη κπνξεί θάπνηνο λα ηηο «θαηεβάζεη δσξεάλ».
Η γιψζζα πξνγξακκαηηζκνχ ηνπ Arduino είλαη παξφκνηα κε ηελ C++ κε θάπνηεο
απινπνηήζεηο θαη κεηαηξνπέο θαη απνηειεί κηα εθαξκνγή ζε επίπεδν software ηεο θαισδίσζεο πνπ
ζπλαληάηαη ζην Arduino. Δμνκνηψλεη ζα ιέγακε απφιπηα ην hardware (πιηθφ) ηνπ κηθξνειεγθηή.
Σν Arduino κπνξεί λα ρξεζηκνπνηεζεί γηα λα αλαπηχμνπκε δηαδξαζηηθά απηνκαηνπνηεκέλα
αληηθείκελα, ηθαλά λα δερηνχλ εηζφδνπο απφ πιεζψξα αηζζεηεξίσλ νξγάλσλ θαη δηαθφπηεο, αιιά θαη
λα ειέγρνπλ δηάθνξα θψηα, θηλεηήξεο θαη άιιεο ζπζθεπέο εμφδνπ ηνπ θπζηθνχ θφζκνπ. Σα Projects
ζηνλ ελ ιφγσ κηθξνειεγθηή κπνξνχλ λα είλαη απηφλνκα (ζε επίπεδν hardware) ή λα επηθνηλσλνχλ κε
θάπνην software ζε θάπνην Η/Τ.
Δηθόλα 4. 1: Κάηνςε ηνπ Arduino
18
4.2. Γηαηί Arduino; (έλαληη άιισλ)
Τπάξρεη πιεζψξα κηθξνειεγθηψλ θαη αλαπηπμηαθψλ ζην εκπφξην γηα λα αζρνιεζεί θάπνηνο
θαη λα παξάγεη εθαξκνγέο. Όια ηα εξγαιεία πνπ καο παξέρνπλ απηέο είλαη απινπνηεκέλα θαζψο
«θξχβνπλ» ηηο δχζθνιεο ιεπηνκέξεηεο ηεο αξρηηεθηνληθήο θαη επηηξέπνπλ ηνλ άκεζν πξνγξακκαηηζκφ
ηνπ κηθξνειεγθηή, αθφκε θαη ζηνλ αξράξην ρξήζηε πξνζθέξνληαο ηα πάληα ζε έλα θαη κφλν «παθέην
«έηνηκν γηα ρξήζε». Σν Arduino δηαθέξεη γηαηί απινπνηεί ηδηαίηεξα ηελ δηαδηθαζία αλάπηπμεο
εθαξκνγψλ κε κηθξνειεγθηέο, θαη παξέρεη επηπιένλ πιενλεθηήκαηα πνπ ελδείθλπληαη γηα ρξήζε απφ
δαζθάινπο, καζεηέο, hobbiζηεο θαη ηα νπνία είλαη:
Υακειό θόζηνο: νη πιαθέηεο ηνπ Arduino είλαη εμαηξεηηθά θζελέο ζε ζρέζε κε άιιεο
πιαηθφξκεο κηθξνειεγθηψλ. Δηδηθά δε κε ηα schematics (ζρεκαηηθά) πνπ βξίζθνληαη δσξεάλ
ζην Internet κπνξεί λα θαηαζθεπάζεη νπνηνζδήπνηε ηελ θζελφηεξε εθδνρή ελφο Arduino.
Σξέρεη ζε δηάθνξα ιεηηνπξγηθά ζπζηήκαηα: ην πεξηβάιινλ πξνγξακκαηηζκνχ ηνπ Arduino
είλαη δηαζέζηκν γηα Windows, Macintosh OSX θαη γηα ιεηηνπξγηθά ζπζηήκαηα Linux. Σα
πεξηζζφηεξα ζπζηήκαηα αλάπηπμεο κηθξνειεγθηψλ πεξηνξίδνληαη ζηα Windows.
Απιό, μεθάζαξν πξνγξακκαηηζηηθό πεξηβάιινλ: ην πεξηβάιινλ πξνγξακκαηηζκνχ ελφο
Arduino ελδείθλπηαη γηα αξράξηνπο, αιιά είλαη ηαπηφρξνλα θαη επέιηθην θαη γηα πην
πξνρσξεκέλνπο ρξήζηεο.
Αλνηρηνύ ινγηζκηθνύ θαη ινγηζκηθνύ πνπ επεθηείλεηαη θαη παξακεηξνπνηείηαη: ην
software ηνπ Arduino δηαλέκεηαη κε ηελ κνξθή εξγαιείσλ αλνηρηνχ ινγηζκηθνχ θαη είλαη
δηαζέζηκν πξνο επέθηαζε. Η γιψζζα πξνγξακκαηηζκνχ ηνπ κπνξεί λα επεθηαζεί δηακέζνπ
βηβιηνζεθψλ ηεο C++ θαη ηεο AVR C πνπ είλαη γηα ηνλ πξνγξακκαηηζκφ ησλ Atmel
κηθξνειεγθηψλ, γιψζζα ζηελ νπνία επίζεο βαζίζηεθε ην ινγηζκηθφ ηνπ Arduino. Οκνίσο
κπνξεί λα πξνζηεζεί θψδηθαο AVR-C πνπ έρεη ήδε γξαθηεί, ζε πξφγξακκα γηα Arduino.
Αλνηρηνύ πιηθνύ ην νπνίν κπνξεί λα επεθηαζεί: ην Arduino βαζίδεηαη ζηνλ κηθξνειεγθηή
ATMega328P ηεο Atmel. Σα ζρεκαηηθά γηα ηα αλαπηπμηαθή πιαθέηα βξίζθνληαη ππφ ηελ
άδεηα ρξήζεο Creative Commons, επηηξέπνληαο ζε ζρεδηαζηέο λα θαηαζθεπάζνπλ ην δηθφ
ηνπο , εμειίζζνληαο ην ήδε ππάξρνλ ρσξίο λα έρνπλ λνκηθά πξνβιήκαηα.
4.3. Σν hardware ηνπ Arduino
Ο κηθξνειεγθηήο Arduino ελζσκαηψλεη ηνλ επεμεξγαζηή ATMEL ATMega328Ρ, φπσο
επίζεο θη φια ηα απαξαίηεηα εμαξηήκαηα γηα ηελ ηξνθνδνζία θαη ηελ δηαζχλδεζε ηνπ κηθξνειεγθηή
κε Η/Τ. Σα νπνία πεξηιακβάλνπλ ππνζπζηήκαηα κλήκεο, εηζόδνπ/εμόδνπ, γξακκηθό ξπζκηζηή
ηάζεο, ηαιαλησηήο θξπζηάιινπ, bootloader (κηθξνθψδηθα εθθίλεζεο πιηθνχ), πξνζαξκνγέα USB
ζε FTDI Serial. Η πιαθέηα κπνξεί λα ηξνθνδνηεζεί είηε κε ηξνθνδνηηθφ ησλ 9Volt, είηε απεπζείαο
απφ ηελ USB ζχξα ηνπ Η/Τ.
19
Σα ραξαθηεξηζηηθά ελ ζπληνκία:
Μηθξνειεγθηήο
ATmega328P
Σάζε Λεηηνπξγίαο
5V
Σάζε Δηζφδνπ
7-12V
Όξηα Σάζεο
6-20V
Φεθηαθνί Αθξνδέθηεο I/O
14 (εθ ησλ νπνίσλ 6 παξέρνπλ PWM4 έμνδν)
Φεθηαθνί Αθξνδέθηεο Δηζφδνπ 6
DC ξεχκα αλά I/O Αθξνδέθηε 40 mA
DC ξεχκα γηα 3.3V Αθξνδέθηε 50 mA
Μλήκε Flash5
32 KB ( 2 KB ρξεζηκνπνηνχληαη απφ ηνλ bootloader)
SRAM6
2 KB
EEPROM
1ΚΒ
Σαρχηεηα Ρνινγηνχ
16 MHz
Πίλαθαο 1: Υαξαθηεξηζηηθά Arduino.
4.4. Οη αθξνδέθηεο ηνπ Arduino
O Arduino έρεη 14 ςεθηαθνύο αθξνδέθηεο (pin). Απηνί κπνξνχλ λα ηεζνχλ σο είζνδνη ή σο
έμνδνη. Λεηηνπξγνχλ ζηα 5 Volt θαη έρνπλ ηελ δπλαηφηεηα λα παξέρνπλ ή λα δέρνληαη έληαζε ηεο
ηάμεσο ησλ 40mA. ΢ε θάζε pin ππάξρεη εζσηεξηθά έλαο pullup7 αληηζηάηεο ζηα 20-50KΧ. Δπηπιένλ
έρεη 5 αλαινγηθνύο αθξνδέθηεο εηζφδνπ. Απηνί κπνξνχλ λα «δηαβάζνπλ» αλαινγηθέο ηηκέο φπσο ε
ηάζε κηαο κπαηαξίαο θαη λα ηηο κεηαηξέςνπλ ζε κηα ηηκή απφ ην 0 έσο ην 1023 (10 bit). Η κέηξεζε
ηεο ηάζεο γίλεηαη απφ πξνθαζνξηζκέλα επίπεδα απφ 0 έσο 5 Volt. Δθηφο απηψλ, 6 εθ ησλ 14
ςεθηαθψλ αθξνδεθηψλ νη 3, 5, 6, 9, 10 θαη 11 έρνπλ ηελ δπλαηφηεηα λα πξνγξακκαηηζηνχλ ψζηε λα
ιεηηνπξγνχλ σο αλαινγηθέο έμνδνη.
4.4.1. Κάπνηνη αθξνδέθηεο έρνπλ ζπγθεθξηκέλεο ιεηηνπξγίεο
΢εηξηαθή Λεηηνπξγία: 0 (RX) and 1 (TX). Υξεζηκνπνηνχληαη γηα ιήςε (RX) θαη εθπνκπή
(TX) TTL ζεηξηαθψλ δεδνκέλσλ. Απηνί νη αθξνδέθηεο είλαη ζπλδεδεκέλνη κε ηνπο
αληίζηνηρνπο ηνπ κεηαηξνπέα FTDI USB ζε TTL.
Δμσηεξηθέο Γηαθνπέο (interrupts): 2 θαη 3. Απηνί νη αθξνδέθηεο κπνξνχλ λα ελεξγνπνηνχλ
δηαθνπέο αλ αληρλεπζεί παικφο ρακειήο ηάζεο.
4
ηερληθή κεηαηξνπήο αλαινγηθψλ ζεκάησλ ζε ςεθηαθά κέζσ ρξήζεο ηεηξαγσληθψλ παικψλ πνπ είλαη
θαηάιιεια δηακνξθσκέλνη.
5
κε πηεηηθφ κέζν απνζήθεπζεο πνπ αλαπηχρζεθε απφ ηελ EEPROM θαη κπνξεί λα δηαγξαθηεί θαη λα
αλαπξνγξακκαηηζηεί ειεθηξηθά φπσο θαη ε EEPROM.
6
είδνο κλήκεο εκηαγσγψλ, φπνπ ε ιέμε static (ζηαηηθή) δείρλεη φηη δελ ρξεηάδεηαη λα αλαλεσζεί ηαθηηθά γηα ηελ
απνζήθεπζε θάζε bit.
7
αληηζηάζεηο πνπ ρξεζηκνπνηνχληαη ζηα ειεθηξνληθά θπθιψκαηα γηα λα δηαζθαιηζηεί φηη ε ηάζε ζα παξακείλεη
ζηα αλακελφκελα επίπεδα.
20
PWM: 3, 5, 6, 9, 10 θαη 11. Παξέρνπλ Έμνδν 8-bit PWM.
SPI8: 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK). Απηνί νη αθξνδέθηεο επηηξέπνπλ
επηθνηλσλία SPI, ε νπνία θαη παξέρεηαη απφ ην hardware.
LED: 13. ΢ηνλ αθξνδέθηε 13 ππάξρεη έλα ελζσκαησκέλν LED. Όηαλ ν αθξνδέθηεο έρεη ηηκή
HIGH, ην LED θσηνβνιεί..
4.4.2. Αθξνδέθηεο γηα εηδηθέο ιεηηνπξγίεο όπσο:
I2C9: 4 (SDA) θαη 5 (SCL). Τπνζηεξίδεη ην πξσηφθνιιν I2C (TWI) ρξεζηκνπνηψληαο
βηβιηνζήθεο ηηο γιψζζαο πξνγξακκαηηζκνχ Wiring.
AREF: Σάζεο αλαθνξάο γηα ηελ αλαινγηθέο εηζφδνπο.
Reset: Αλ ηεζεί ζε θαηάζηαζε LOW ηφηε επαλλεθηλεί ηνλ κηθξνειεγθηή. ΢ε απηή ηε γξακκή
ηνπνζεηείηαη έλαο δηαθφπηεο.
4.5. Μλήκε
Ο ATmega328P έρεη 32ΚB κλήκεο flash γηα ηελ απνζήθεπζε θψδηθα (2 KB εθ ηνλ νπνίσλ
ρξεζηκνπνηνχληαη απφ ηνλ bootloader). Έρεη επίζεο 2 KB SRAM γηα ηελ εθηέιεζε ππνινγηζκψλ θαη 1
ΚΒ κλήκεο EEPROM γηα ηελ κφληκε απνζήθεπζε δεδνκέλσλ κεηά ηελ δηαθνπή ηξνθνδνζίαο.
4.6. Σξνθνδνζία
Σν αλαπηπμηαθή πιαθέηα Arduino ηξνθνδνηείηαη είηε απφ εμσηεξηθή ηξνθνδνζία είηε
απεπζείαο απφ ζχξα USB. H επηινγή ηεο πεγήο γίλεηαη απηφκαηα. Χο εμσηεξηθή ηξνθνδνζία νξίδεηαη
είηε κηα κπαηαξία, είηε κεηαζρεκαηηζηήο ησλ 9 Volt. Η κπαηαξία κπνξεί λα ζπλδεζεί ζηηο ππνδνρέο
ηνπ Arduino Vin θαη GND φπνπ ηνπνζεηνχληαη ν ζεηηθφο πφινο θαη ν αξλεηηθφο αληίζηνηρα. Αλ
ηξνθνδνηήζνπκε κε κεηαζρεκαηηζηή ηνπνζεηνχκε ην βχζκα ζηελ ππνδνρή πνπ ππάξρεη, κε ηνλ ζεηηθφ
πφιν ζην θέληξν ζην αληίζηνηρν βχζκα.
Η πιαθέηα κπνξεί λα ιεηηνπξγήζεη κε εμσηεξηθή πεγή απφ 6 έσο 20 Volt. Αλ σζηφζν
ηξνθνδνηεζεί κε ιηγφηεξα απφ 7 Volt ηα pin εμφδνπ 5 Volt δελ ζα θαηαθέξνπλ λα εμάγνπλ ηάζε 5
Volt. Αλ απφ ηελ άιιε δψζνπκε πάλσ απφ 12 Volt ζα ππεξζεξκαλζεί ν ζηαζεξνπνηεηήο ηάζεο ζηελ
πιαθέηα θαη ελδερφκελνο λα θαηαζηξαθεί. ΢πλεπψο κηα ηδαληθή ηάζε είλαη ηα 9 Volt.
Οη αθξνδέθηεο ηξνθνδνζίαο είλαη νη εμήο:
VIN: αθξνδέθηεο γηα κε ζηαζεξνπνηεκέλε ηάζε. ΢πλήζσο εδψ ζπλδέεηαη κηα εμσηεξηθή πεγή
ηξνθνδνζίαο.
5V: αθξνδέθηεο ζηαζεξνπνηεκέλεο ηάζεο 5 Volt. Υξεζηκνπνηείηαη γηα ηελ ηξνθνδνζία ηνπ
κηθξνειεγθηή ή άιισλ ειεθηξνληθψλ ζηνηρείσλ.
3V3: ην νινθιεξσκέλν θχθισκα FTDI πνπ βξίζθεηαη ζηελ πιαθέηα ηνπ Arduino παξάγεη
ηάζε ησλ 3.3V κε κέγηζην ξεχκα 50mA.
GND: αθξνδέθηεο γείσζεο
8
πξφηππν ζχγρξνλεο ζεηξηαθήο ζχλδεζεο δεδνκέλσλ πνπ ππνζηεξίδεη ακθίδξνκε ξνε κέζσ ζπζηήκαηνο master
/ slave.
9
multi-master ζεηξηαθφο δίαπινο ππνινγηζηή ελφο άθξνπ πνπ ρξεζηκνπνηείηαη γηα λα ζπλδέζεη
ρακειήο ηαρχηεηαο πεξηθεξεηαθά κε κηα άιιε ειεθηξνληθή ζπζθεπή.
21
4.7. Δπηθνηλσλία
Σν Arduino έρεη ηελ δπλαηφηεηα λα επηθνηλσλεί κε Η/Τ, έλα άιιν Arduino ή άιινπο
κηθξνειεγθηέο. Ο ATMega 328P παξέρεη ζεηξηαθή επηθνηλσλία ΣΣL10 ζηα 5 Volt ηχπνπ UART11, ε
νπνία είλαη δηαζέζηκε απφ ηνπο αθξνδέθηεο RX 0 (ιήςε) θαη TX 1 (εθπνκπή) ηνπ. Δπηπιένλ είλαη
ελζσκαησκέλν έλα FTDI12 FT232RL IC ην νπνίν παξέρεη ζεηξηαθή επηθνηλσλία κε Η/Τ γηα
πξνγξακκαηηζκφ κέζσ ηεο ζχξαο USB κε ηελ βνήζεηα ησλ αλάινγσλ FTDI drivers. Οη drivers απηνί
πεξηιακβάλνληαη ζην software γηα ηνλ Arduino θαη παξέρνπλ κηα virtual port (ηδεαηή ζχξα)
επηθνηλσλίαο ζηνλ Η/Τ γηα ηνπο ζθνπνχο ηεο επηθνηλσλίαο.
4.8. Απηόκαηε software επαλαθνξά
Αληί λα απαηηεί ην πάηεκα ηνπ θνπκπηνχ επαλαθνξάο (reset) πξηλ απφ ηελ απνζηνιή θψδηθα,
ην Arduino έρεη ζρεδηαζηεί κε ηξφπν πνπ λα επηηξέπεη ηελ επαλαθνξά κέζσ ινγηζκηθνχ (software
reset) ελψ είλαη ζπλδεδεκέλν ζε έλαλ Η/Τ. Μία απφ ηηο γξακκέο ειέγρνπ ξνήο πιηθνχ ηνπ FT232RL
ζπλδέεηαη κε ηελ reset γξακκή ηνπ ATmega328P κέζσ ελφο ππθλσηή 100 nF. Όηαλ απηή ε γξακκή
είλαη ζε ρξήζε (ρακειή), ε γξακκή επαλαθνξάο «πέθηεη» γηα αξθεηά κεγάιν ρξνληθφ δηάζηεκα ψζηε
λα πξνθαιέζεη επαλαθνξά ζην ηζηπ. Σν ινγηζκηθφ Arduino ρξεζηκνπνηεί απηή ηελ δπλαηφηεηα γηα λα
καο επηηξαπεί λα πξνζζέζνπκε θψδηθα παηψληαο απιά ην θνπκπί upload ζην πεξηβάιινλ αλάπηπμεο.
Απηφ ζεκαίλεη φηη ν bootloader κπνξεί λα έρεη κηθξφηεξν ρξφλν εθθίλεζεο, φπσο κπνξεί θαη ε γξακκή
ειέγρνπ ξνήο πιηθνχ λα είλαη ζπληνληζκέλε κε ηελ έλαξμε ηεο κεηαθφξησζεο (upload).
Δίλαη πξνγξακκαηηζκέλν λα αγλνεί αθαηάιιεια δεδνκέλα (δειαδή νηηδήπνηε εθηφο απφ ηελ
απνζηνιή λένπ θψδηθα) θαη ζα παξαθνινπζήζεη ηα πξψηα byte δεδνκέλσλ πνπ ηνπ απνζηέιινληαη
θαη κεηά αλνίγεη ηελ ζχλδεζε. Σν Arduino πεξηέρεη έλα trace (ίρλνο ραιθνχ) πνπ κπνξεί λα θνπεί γηα
λα απελεξγνπνηεζεί ε ιεηηνπξγία απηφκαηεο επαλαθνξάο. Οη αθξνδέθηεο ηνπ ίρλνπο (ραιθνχ) πξέπεη
λα είλαη ζπγθνιιεκέλνη γηα λα ηελ απελεξγνπνηήζνπκε. Δίλαη ε έλδεημε «RESET-EL». Δπίζεο
είκαζηε ζε ζέζε λα αθπξψζνπκε ηελ επηινγή απηφκαηεο επαλαθνξάο κε ηε ζχλδεζε ελφο 110 ohm
αληηζηάηε κεηαμχ ηεο ηξνθνδνζίαο ησλ 5V θαη ηεο γξακκήο επαλαθνξάο (reset pin).
4.9. USB πξνζηαζία από ππεξηάζε
Σν Arduino δηαζέηεη κηα αζθάιεηα πνπ πξνθαιεί reset θαη πξνζηαηεχεη ηηο ζχξεο USB ηνπ
Η/Τ απφ ηα βξαρπθπθιψκαηα θαη ηηο πςειέο ηηκέο ηάζεο. Αλ θαη νη πεξηζζφηεξνη ππνινγηζηέο
παξέρνπλ ηέηνηα πξνζηαζία εζσηεξηθά, ε αζθάιεηα απηή παξέρεη έλα επηπιένλ επίπεδν πξνζηαζίαο.
΢ε πεξίπησζε πνπ πεξηζζφηεξν απφ 500 mA εθαξκνζηνχλ ζηε ζχξα USB, ε αζθάιεηα ζα δηαθφςεη
απηφκαηα ηε ζχλδεζε κέρξη ην βξαρπθχθισκα ή ππεξηάζε λα ζηακαηήζεη.
4.10. Πεξηβάιινλ αλάπηπμεο εθαξκνγώλ
Σν Arduino ρξεζηκνπνηεί έλα ηδηαίηεξα απιφ ζχζηεκα αλάπηπμεο εθαξκνγψλ ην Arduino
IDE. Μηα εθαξκνγή κε γξαθηθφ πεξηβάιινλ πνπ πξνζθέξεη δπλαηφηεηεο επεμεξγαζίαο θψδηθα (code
editor), compiler (κεηαθξαζηή θψδηθα), code uploader (κεηαθνξά θψδηθα ζην Arduino) φπσο θαη
δπλαηφηεηεο δηαρείξηζεο βηβιηνζεθψλ θαη αξρείσλ θψδηθα.
΢ην Arduino IDE ε δηαδηθαζία αλάπηπμεο γίλεηαη αξρηθά κε ηελ ζπγγξαθή ηνπ θψδηθα ζην
εηδηθφ πεδίν επεμεξγαζίαο θαη ζηελ ζπλερεία απνζηέιιεηαη ζην Arduino κέζσ ηεο επηινγήο upload. Ο
ATmega328P παξέρεηαη preburned κε έλαλ bootloader πνπ καο επηηξέπεη λα θνξηψζνπκε ηνλ λέν
θψδηθα ρσξίο ηε ρξήζε εμσηεξηθνχ programmer (πξνγξακκαηηζηή πιηθνχ). Δπηθνηλσλεί
10
θαηεγνξία ςεθηαθψλ θπθισκάησλ θαηαζθεπαζκέλα απφ δηπνιηθά ηξαλδίζηνξ θαη αληηζηάζεηο.
πνπ κεηαθξάδεη δεδνκέλα κεηαμχ παξάιιειεο θαη ζεηξηαθήο κνξθήο.
12
θχθισκα ππεχζπλν κεηαηξνπή RS-232 ή TTL ζεηξηαθή κεηάδνζε ζεκάησλ ζε USB.
11
22
ρξεζηκνπνηψληαο ην πξσηφθνιιν STK 50013. Μπνξεί επίζεο λα παξαθάκςεη ηνλ bootloader θαη ην
πξφγξακκα ηνπ κηθξνειεγθηή κέζσ ηεο ICSP14 (In-Circuit Serial Programming).
Σεκείωζε: ην Arduino IDE ζα παξνπζηαζηεί εθηελεζηέξα παξαθάηω.
13
ε επηθνηλσλία κεηαμχ ηεο αλαπηπμηαθήο πιαθέηαο θαη ηνπ ππνινγηζηή γίλεηαη κέζσ κηαο εηθνληθήο RS232
(ζχξα COM PC) θαη παξέρεη ξπζκνχο δηακεηαγσγήο δεδνκέλσλ έσο 115.2kbps, 8 bit δεδνκέλσλ, 1 stop bit θαη
ρσξίο ηζνηηκία.
14
ηερληθή φπνπ κηα πξνγξακκαηηδφκελε ζπζθεπή πξνγξακκαηίδεηαη εθφζνλ ηνπνζεηεζεί ζε πιαθέηα
θπθιψκαηνο.
23
24
5. Δηζαγσγή ζηνπο αηζζεηήξεο
«Ο αηζζεηήξαο είλαη κηα ζπζθεπή,
δέρεηαη έλα εξέζηζκα θαη αληαπνθξίλεηαη κ’ έλα ειεθηξηθό ζήκα»
5.1. Αίζζεζε θαη εξέζηζκα
Ο αηζζεηήξαο έξρεηαη λα γεθπξψζεη έλα ζεκαληηθφ ράζκα. Σν ράζκα κεηαμχ ηνπ θπζηθνχ
θφζκνπ θαη ηνλ νξγάλσλ πνπ πξέπεη λα θαηαζθεπάζεη ν άλζξσπνο ψζηε λα έρεη πιήξε εηθφλα ηνχ θαη
ησλ κεηαβνιψλ ηνπ. Σν πξφβιεκα ζπληζηάηαη ζην γεγνλφο φηη ηα φξγαλα πνπ θαηαζθεπάδεη ν
άλζξσπνο παξάγνπλ έμνδν ζε κνξθή ειεθηξηθψλ ζεκάησλ. Άξα πξέπεη λα θαηαζθεπάζνπκε κηα λέα
ζπζθεπή πνπ λα κπνξεί λα παξαθνινπζεί ηηο κεηαβνιέο ηνπ θπζηθνχ θφζκνπ θαη λα παξάγεη κηα
έμνδν ειεθηξηθνχ ζήκαηνο, αλάινγε ησλ κεηαβνιψλ.
Σν εξέζηζκα είλαη είηε ε πνζφηεηα, είηε ε ηδηφηεηα, είηε ή θαηάζηαζε πνπ ιακβάλεηαη απφ ηνλ
αηζζεηήξα θαη ην κεηαηξέπεη ζε ειεθηξηθφ ζήκα. Μεξηθέο πεγέο βηβιηνγξαθίαο15 ρξεζηκνπνηνχλ έλα
δηαθνξεηηθφ φξν, «ην κεηξήζηκν» πνπ έρεη ηελ ίδηα έλλνηα, σζηφζν, κε έκθαζε ζε πνζνηηθά
ραξαθηεξηζηηθά ηεο αίζζεζεο. Ο αηζζεηήξαο ζπρλά νξίδεηαη σο «ε ζπζθεπή πνπ ιακβάλεη θαη
αληαπνθξίλεηαη ζε έλα ζήκα ή εξέζηζκα».
Ο ζθνπφο ηνπ αηζζεηήξα είλαη λα αληαπνθξηζεί ζε θάπνην είδνο εηζφδνπ (εξέζηζκα) κε
θπζηθέο ηδηφηεηεο θαη λα ην κεηαηξέςεη ζε έλα ειεθηξηθφ ζήκα πνπ λα είλαη ζπκβαηφ κε ηα
ειεθηξνληθά θπθιψκαηα. Μπνξνχκε γεληθά λα πνχκε φηη ν αηζζεηήξαο είλαη έλαο κεηαθξαζηήο κηαο
πνζφηεηαο κε ειεθηξηθήο ζε κηα ειεθηξηθή. Με ηνλ φξν «ειεθηξηθή πνζφηεηα «, ελλννχκε έλα ζήκα,
ην νπνίν κπνξεί λα αλαγλσξίζηκν θαη επεμεξγάζηκν απφ ειεθηξνληθέο ζπζθεπέο.
Κάζε αηζζεηήξαο είλαη έλαο κεηαηξνπέαο ελέξγεηαο. Γελ έρεη ζεκαζία ηη κέηξεζε θάλνπκε,
δηφηη πάληα αζρνινχκαζηε κε ηε κεηαθνξά ελέξγεηαο, απφ ην «εξέζηζκα» πνπ ζέινπκε λα
κεηξήζνπκε, ζηνλ αηζζεηήξα. Η δηαδηθαζία ηεο «αίζζεζεο» είλαη κηα ηδηαίηεξε πεξίπησζε κεηαθνξάο
πιεξνθνξηψλ, επεηδή θάζε κεηαθνξά πιεξνθνξηψλ απαηηεί ηελ κεηαθνξά ελέξγεηαο. Χο εθ ηνχηνπ,
έλαο αηζζεηήξαο δηαζέηεη ζπγθεθξηκέλεο ηδηφηεηεο ειεθηξηθέο εηζφδνπ θαη εμφδνπ.
Ο αηζζεηήξαο δελ ιεηηνπξγεί απηφλνκα, είλαη πάληα κέξνο ελφο επξχηεξνπ ζπζηήκαηνο πνπ
κπνξνχλ λα ελζσκαηψζνπλ άιινπο αληρλεπηέο, βειηησηηθά ζήκαηνο, επεμεξγαζηέο ζήκαηνο,
ζπζθεπέο κλήκεο, θαηαγξαθείο δεδνκέλσλ, θαη ελεξγνπνηεηέο. Η ηνπνζέηεζή ηνπ ζε έλα ζχζηεκα
είλαη είηε εγγελήο είηε εμσγελήο.
Δγγελήο: κπνξεί λα είλαη ηνπνζεηεκέλνο ζην εζσηεξηθφ κέξνο κηαο ζπζθεπήο θαη λα ειέγρεη
ηελ θαηάζηαζε ηεο, ψζηε ε ζπζθεπή λα επηηπγράλεη επηζπκεηή απφδνζε.
Δμσγελήο: κπνξεί λα ηνπνζεηεζεί ζηελ είζνδν κηαο ζπζθεπήο γηα λα αληηιεθζεί ηηο
εμσηεξηθέο ζπλζήθεο θαη λα επηζεκάλεη ζην ζχζηεκα ζρεηηθά κε ηηο δηαθπκάλζεηο εμσηεξηθνχ
πεξηβάιινληνο.
«Ο αηζζεηήξαο είλαη πάληα κέξνο θάπνηνπ ζπζηήκαηνο ζπιινγήο δεδνκέλωλ θαη νη επηδόζεηο ηνπ
πξέπεη λα εθηηκεζνύλ κε βάζε ηηο απαηηήζεηο απηνύ ηνπ ζπζηήκαηνο.»
5.2. Αηζζεηήξαο θαη ην αηζζεηήξην
Ο αηζζεηήξαο δελ ζα πξέπεη λα ζπγρέεηαη κε ην αηζζεηήξην (ή κνξθνηξνπέαο - transducer).
Σν αηζζεηήξην είλαη έλαο κεηαηξνπέαο ελέξγεηαο, ε νπνία κπνξεί λα είλαη νπνηνλδήπνηε κνξθήο θαη
λα ηελ κεηαηξέπεη ζε κηα νπνηνλδήπνηε άιιε. Ο αηζζεηήξαο αληίζεηα, κεηαηξέπεη νπνηνδήπνηε κνξθή
ελέξγεηαο ζε ειεθηξηθή. Έλα παξάδεηγκα αηζζεηεξίνπ είλαη έλα ερείν, ην νπνίν κεηαηξέπεη έλα
ειεθηξηθφ ζήκα ζε έλα κεηαβαιιφκελν καγλεηηθφ πεδίν θαη ζηε ζπλέρεηα, ζε ερεηηθά θχκαηα. Σo
15
Norton HN(1989) Handbook of transducers. Prentice Hall, Englewood Cliffs, NJ
25
αηζζεηήξην ρξεζηκνπνηείηαη σο actuator (ελεξγνπνηεηήο) ζε δηάθνξα ζπζηήκαηα. Έλαο actuator
κπνξεί λα πεξηγξαθεί σο ην αληίζεην ηνπ αηζζεηήξα, κεηαηξέπεη έλα ειεθηξηθφ ζήκα ζε θάπνην είδνο
κε ειεθηξηθήο ελέξγεηαο (π.ρ. ειεθηξηθφο θηλεηήξαο). Δπίζεο ην αηζζεηήξην κπνξεί λα είλαη εμάξηεκα
ελφο πην πνιχπινθνπ αηζζεηήξα.
5.3. Βαζηθά είδε αηζζεηήξσλ
Τπάξρνπλ δχν είδε αηζζεηήξσλ: άκεζνο θαη ζύλζεηνο.
Ο άκεζνο κεηαηξέπεη έλα εξέζηζκα ζε ειεθηξηθφ ζήκα ή ηξνπνπνηεί έλα ειεθηξηθφ ζήκα
ρξεζηκνπνηψληαο ην θαηάιιειν κέζνλ.
Ο ζύλζεηνο αηζζεηήξαο έρεη έλα ή πεξηζζφηεξα αηζζεηήξηα, πνπ ηνπνζεηνχληαη πξηλ απφ
έλαλ άκεζν (αηζζεηήξα), ψζηε λα παξάγεη ειεθηξηθφ ζήκα.
Δηθόλα 5. 1: ΢ρεκαηηθή παξνπζίαζε ηνπ ζύλζεηνπ αηζζεηήξα
5.4. Σαμηλόκεζε αηζζεηήξσλ
«Τα ζπζηήκαηα ηαμηλόκεζεο ηωλ αηζζεηήξωλ θπκαίλνληαη από πνιύ απιά κέρξη ηδηαίηεξα
ζύλζεηα»
5.4.1. Ο αηζζεηήξαο κπνξεί λα είλαη: παζεηηθόο ή ελεξγεηηθόο.
Παζεηηθόο αηζζεηήξαο: δελ ρξεηάδεηαη θακία πξφζζεηε πεγή ελέξγεηαο θαη αληαπνθξίλεηαη
κε ην λα παξάγεη άκεζα έλα ειεθηξηθφ ζήκα. Γειαδή, ε ελέξγεηα εξεζίζκαηνο ζηελ είζνδν
κεηαηξέπεηαη απφ ηνλ αηζζεηήξα ζε ζήκα εμφδνπ.
Δλεξγεηηθόο αηζζεηήξαο: απαηηεί εμσηεξηθή ηξνθνδνζία ξεχκαηνο γηα ηε ιεηηνπξγία ηνπ, ε
νπνία νλνκάδεηαη ζήκα δηέγεξζεο. Απηφ ην ζήκα ηξνπνπνηείηαη απφ ηνλ αηζζεηήξα ψζηε λα
παξάγεη ην ζήκα εμφδνπ. Οη ελεξγνί αηζζεηήξεο νλνκάδνληαη κεξηθέο θνξέο θαη
παξακεηξηθνί, επεηδή νη ηδηφηεηεο ηνπο αιιάδνπλ, ιφγν ησλ κεηαβνιψλ ζηελ ηηκή ηνπ
ξεχκαηνο ηξνθνδνζίαο.
5.4.2. Αλάινγα κε ην ζύζηεκα αλαθνξάο, νη αηζζεηήξεο κπνξνύλ λα ηαμηλνκεζνύλ ζε
απόιπηνπο θαη ζε ζρεηηθνύο.
Απόιπηνο αηζζεηήξαο: αληρλεχεη έλα εξέζηζκα ζε ζρέζε κε ηελ απφιπηε θπζηθή θιίκαθα,
πνπ είλαη αλεμάξηεηε απφ ηηο ζπλζήθεο κέηξεζεο.
΢ρεηηθόο αηζζεηήξαο: παξάγεη έλα ζήκα πνπ ζρεηίδεηαη κε θάπνηα εηδηθή πεξίπησζε πνπ ζε
θάζε πεξίπησζε δελ αληαπνθξίλεηαη ζηελ απφιπηε θπζηθή θιίκαθα.
26
5.4.3. Έλαο άιινο ηξόπνο λα ηαμηλνκήζνπκε έλαλ αηζζεηήξα είλαη βάζεη ηεο
ηδηαηηεξόηεηαο ησλ ραξαθηεξηζηηθώλ ή ησλ ηδηνηήησλ ηνπ.
Πξνδηαγξαθέο: επαηζζεζίαο, εχξνο εξεζίζκαηνο
Τιηθό θαηαζθεπήο: νξγαληθφ, αλφξγαλν
Μέζα αλίρλεπζεο: ειεθηξηθά, καγλεηηθά
Φαηλόκελα κεηαηξνπήο: ρεκηθά, βηνινγηθά
Πεδία εθαξκνγώλ: γεσξγία, απηνθηλεηνβηνκεραλία
Σύπνο εξεζίζκαηνο: αθηηλνβνιία, ζεξκφηεηα
5.5.
΢ηαηηθά ραξαθηεξηζηηθά ησλ αηζζεηήξσλ
Σα ζηαηηθά ραξαθηεξηζηηθά ησλ αηζζεηήξσλ αλαθέξνληαη ζηελ θαηάζηαζε θαηά ηελ
νπνία έρεη επέιζεη ηζνξξνπία κεηαμχ αηζζεηήξα θαη ηνπ κεηξνχκελνπ εξεζίζκαηνο. Γηα λα επηηεπρζεί
θάηη ηέηνην πξέπεη ην κεηξνχκελν εξέζηζκα είηε λα είλαη ζηαζεξφ, είηε λα κεηαβάιιεηαη
πνιχ αξγά ζε ζρέζε κε ηε δπλαηφηεηα ηνπ αηζζεηήξα λα αληηιεθζεί ηε κεηαβνιή απηή. Σα παξαπάλσ
ζπλνςίδνληαη ζηα εμήο:
Δύξνο: ηα φξηα ζηα νπνία ε ζπζθεπή ιεηηνπξγεί αμηφπηζηα.
Αθξίβεηα: ε εγγχηεηα ηεο ηηκήο εμφδνπ πξνο ηε ηηκή εηζφδνπ.
΢θάικα: ε δηαθνξά αλάκεζα ζηε κεηξνχκελε ηηκή θαη ηε πξαγκαηηθή ηηκή.
Αλνρή: ην κέγηζην ζθάικα πνπ κπνξεί λα δεκηνπξγήζεη ν αηζζεηήξαο.
Γηαθξηηηθή ηθαλόηεηα: ε κηθξφηεξε αιιαγή ηηκήο εηζφδνπ πνπ κπνξεί λα αληρλεχζεη.
Δπαηζζεζία: ε ζρέζε ηεο αιιαγήο εμφδνπ πξνο ηε αιιαγή εηζφδνπ, είλαη ίζε κε ηε δηαθνξά
ησλ ηηκψλ ηεο εμφδνπ πξνο ηε δηαθνξά ησλ αληίζηνηρσλ ηηκψλ εηζφδνπ.
Βαζκνλόκεζε: ε βαζκνιφγεζε ηεο θιίκαθαο ζε κνλάδεο.
Νεθξή δώλε: ην κέγηζην πνζφ αιιαγήο ηεο εηζφδνπ πνπ δελ επηθέξεη αιιαγή ζηελ έμνδν.
Γξακκηθόηεηα: ν βαζκφο ζηνλ νπνίν ε γξαθηθή παξάζηαζε ηεο εμφδνπ πξνζεγγίδεη επζεία
σο πξνο ηελ είζνδν ηνπ αηζζεηήξα.
Απόθξηζε: ν ρξφλνο πνπ απαηηείηαη γηα λα ιάβεη ηε ηειηθή ηηκή ε έμνδνο.
Καζπζηέξεζε: ε θαζπζηέξεζε ηεο αιιαγήο ηεο εμφδνπ σο πξνο ηελ είζνδν.
Δπζηάζεηα: ε κεηαβνιή ηεο εμφδνπ ζε κεγάιε ρξνληθή πεξίνδν, ρσξίο κεηαβνιή ηεο εηζφδνπ
θαη ησλ ζπλζεθψλ.
Τζηέξεζε: ε δηαθνξά ζηελ έμνδν φηαλ ε θαηεχζπλζε ηεο κεηαβνιήο ηεο εηζφδνπ
αληηζηξαθεί.
Δπαλαιεςηκόηεηα: ε παξαγσγή ηνπ ηδίνπ απνηειέζκαηνο, ζε δηαθνξεηηθέο ρξνληθέο ζηηγκέο,
κε ηελ ίδηα είζνδν.
Οιίζζεζε: ε κεηαβνιή ησλ ραξαθηεξηζηηθψλ ηνπ αηζζεηήξα κε ην ρξφλν θαη ην πεξηβάιινλ.
΢ηαηηθό ζθάικα: ζηαζεξφ ζθάικα ζε φιν ην εχξνο ιεηηνπξγίαο, ην νπνίν κπνξεί λα
αληηζηαζκηζηεί.
Υξόλνο ιεηηνπξγίαο: ν εθηηκψκελνο ρξφλνο ιεηηνπξγίαο ζηα πιαίζηα ησλ πξνδηαγξαθψλ ηνπ.
5.6.
Γπλακηθά ραξαθηεξηζηηθά
Δθηφο απφ ηα ζηαηηθά ραξαθηεξηζηηθά ηα νπνία αλαθέξνληαη ζηελ πεξίπησζε φπνπ έρεη
επέιζεη ηζνξξνπία κεηαμχ ζήκαηνο εηζφδνπ θαη αηζζεηήξα (δειαδή φηαλ πιένλ ηα ζήκαηα εηζφδνπ
θαη εμφδνπ δελ κεηαβάιινληαη κε ην ρξφλν), θάζε αηζζεηήξαο δηαζέηεη θαη δπλακηθά ραξαθηεξηζηηθά.
Σα δπλακηθά ραξαθηεξηζηηθά πεξηγξάθνπλ ηε ζπκπεξηθνξά ηνπ αηζζεηήξα κεηαμχ ηεο ζηηγκήο θαηά
ηελ νπνία ην ζήκα εηζφδνπ κεηαβάιιεηαη έσο ηε ζηηγκή θαηά ηελ νπνία ην ζήκα εμφδνπ ζα
ζηαζεξνπνηεζεί εθ λένπ. Σα δπλακηθά ραξαθηεξηζηηθά ηζρχνπλ, φπσο θαη ηα ζηαηηθά, εληφο
ζπγθεθξηκέλνπ εχξνπο ζπλζεθψλ ιεηηνπξγίαο ηνπ αηζζεηήξα. Αλ ν αηζζεηήξαο βξεζεί λα ιεηηνπξγεί
εθηφο απηνχ ηνπ εχξνπο, ηφηε ηα δπλακηθά ραξαθηεξηζηηθά αλακέλεηαη λα κεηαβιεζνχλ.
27
5.7.
΢πλνπηηθή παξνπζίαζε δηαζέζηκσλ αηζζεηήξσλ:









Αθνπζηηθόο:
Πιάηνο θχκαηνο
Φάζε, πφισζε,
Φάζκα , κεηξφ ηαρχηεηαο
Άιιν
Βηνινγηθόο:
Βηνκάδα (ηχπνο, ζπγθέληξσζε, θαηάζηαζε)
Άιιν
Ηιεθηξηθόο:
Φνξηίν, ξεχκα
Σάζε, δηαθνξά δπλακηθνχ
Ηιεθηξηθφ πεδίν (πιάηνο, θάζε, πφισζε)
Φάζκα
Αγσγηκφηεηα
Γηαπεξαηφηεηα
Άιιν
Μαγλεηηθόο:
Μαγλεηηθφ πεδίν (πιάηνο, θάζε, πφισζε, θάζκα)
Μαγλεηηθή δηαθχκαλζε
Γηαπεξαηφηεηα
Άιιν
Αθηηλνβνιίαο:
Σχπνπ
Δλέξγεηα
Έληαζε
Άιιν
Θεξκηθόο:
Θεξκνθξαζία
Μεηαβνιέο
Δηδηθή ζεξκφηεηα
Θεξκηθή αγσγηκφηεηα
Άιιν
Οπηηθόο:
Πιάηνο θχκαηνο
Φάζε , πφισζε,
Γείθηεο δηάζιαζεο
Γείθηεο εθπνκπήο, αληαλαθιαζηηθφηεηα, απνξξφθεζε
Άιιν
Μεραληθόο:
Θέζε (γξακκηθή, γσληαθή)
Δπηηάρπλζε
Γχλακε
Πίεζε θαηαβνιήο
Καηαπφλεζε
Μάδα, ππθλφηεηα
Αδξάλεηα, ξνπή
Σαρχηεηα ξνήο, ξπζκφο κάδαο, κεηαθνξά
΢ρήκα, αληνρή, πξνζαλαηνιηζκφο
΢θιεξφηεηα, ζπκκφξθσζε
Ιμψδεο
Κξπζηαιιηθφηεηα, δνκηθή αθεξαηφηεηα
Άιιν
Υεκηθόο:
΢ηνηρεία (ηχπνο, ζπγθέληξσζε, θαηάζηαζε)
Πίλαθαο 2: Δίδε δηαζέζηκσλ αηζζεηήξσλ.
28
29
6. Θεξκνθξαζία,
αηζζεηήξεο
πγξαζία
θαη
νη
δηαζέζηκνη
6.1. Θεξκνθξαζία
«ζεξκόηεηα θαη ζεξκνθξαζία είλαη δηαθνξεηηθέο έλλνηεο. Η κελ ζεξκόηεηα είλαη κνξθή ελέξγεηαο,
ε δε ζεξκνθξαζία ηδηόηεηα θαη κέγεζνο.»
Η ζεξκνθξαζία είλαη ε θπζηθή ηδηφηεηα πνπ βαζηθά πξνζδηνξίδεη ηηο έλλνηεο ηνπ δεζηνχ θαη
ηνπ θξχνπ. Γηα παξάδεηγκα, ην ζψκα κε ηελ κεγαιχηεξε ζεξκνθξαζία έλαληη άιινπ ή άιισλ ιέγεηαη
ζεξκφηεξν (πην δεζηφ). Η ζεξκνθξαζία ζηε πξάμε είλαη αθξηβψο ην κέηξν εθείλν κε ην νπνίν
πξνζδηνξίδεηαη ε «ζεξκηθή θαηάζηαζε» ησλ δηαθφξσλ ζσκάησλ, είλαη δειαδή έλα θπζηθφ κέγεζνο
πνπ ζπλδέεηαη κε ηελ κέζε θηλεηηθή ελέξγεηα ησλ ζσκαηηδίσλ ελφο ζπζηαηηθνχ, ην νπνίν θαη
ραξαθηεξίδεη πφζν ζεξκφ ή πφζν ςπρξφ είλαη απηφ. Σν αίηην πνπ δεκηνπξγεί ην αίζζεκα ηνπ ζεξκνχ ή
ςπρξνχ είλαη ε ζεξκφηεηα πνπ φηαλ ρνξεγείηαη (απνξξνθάηαη) ή αθαηξείηαη (εθιχεηαη) απφ έλα ζψκα
πξνθαιεί «κεηαβνιή ζεξκνθξαζίαο» (χςσζε ή ππνβηβαζκφ).
Η ζεξκνθξαζία κεηξηέηαη κε εηδηθά φξγαλα πνπ ιέγνληαη ζεξκφκεηξα, ηελ κεηαβνιή ηεο
νπνίαο δηαβάδνπκε ζηε θαηάιιεια βαζκνινγεκέλε θιίκαθα ζε βαζκνχο ζεξκνθξαζίαο ηνπ
ζεξκνκέηξνπ. Σα ζεξκφκεηξα δηαθξίλνληαη ζε «θνηλά» ή «πδξαξγπξηθά», ζε «ζεξκφκεηξα
νηλνπλεχκαηνο» (γηα ρακειφηεξεο ζεξκνθξαζίεο), ρξεζηκνπνηνχληαη επίζεο θαη «ειεθηξηθά
ζεξκφκεηξα» πνπ βαζίδνληαη ζηελ αξρή ηνπ ζεξκνειεθηξηθνχ ζηνηρείνπ, φπσο επίζεο θαη ηα
«νπηηθά» ή ειεθηξηθά «ππξφκεηξα» θαζψο θαη άιια εηδηθψλ θαηεγνξηψλ. Η βαζκνλφκεζε ησλ
ζεξκνκέηξσλ γίλεηαη ζε βαζκνχο Celsius (Κειζίνπ) oC , ζην κεηξηθφ ζχζηεκα, θαη ζε βαζκνχο
Farenhait (Φαξελάηη) oF, ζην αγγιηθφ ζχζηεκα.
΢ην ζεξκφκεηξν Κειζίνπ ην κεδέλ ηεο θιίκαθαο (0° C) αληηζηνηρεί ζηε ζεξκνθξαζία ηήμεσο
ηνπ πάγνπ, ην δε 100 (100° C) ζηε ζεξκνθξαζία βξαζκνχ ηνπ χδαηνο. Η ελδηάκεζε απηψλ
απφζηαζε ππνδηαηξείηαη ζε 100 ίζα κέξε πνπ θαινχληαη «βαζκνί Κειζίνπ».
΢ην ζεξκφκεηξν Φαξελάηη ε ζεξκνθξαζία ηήμεσο ηνπ πάγνπ αληηζηνηρεί ζηνπο 32° F, ε δε
ζεξκνθξαζία βξαζκνχ ζηνπο 212° F. Σν ελδηάκεζν απηψλ δηάζηεκα ππνδηαηξείηαη ζε 180
ίζα κέξε πνπ θαινχληαη «βαζκνί Φαξελάηη».
6.2.
Κιίκαθα Κέιβηλ
Ο Βαζκόο Κέιβηλ (° Κ) είλαη κνλάδα κέηξεζεο ηεο ζεξκνθξαζίαο ζην Γηεζλέο ΢χζηεκα
Μνλάδσλ (SI). Η αλαθνξά ζε ζεξκνθξαζίεο ζηελ θιίκαθα Kelvin γίλεηαη φηαλ κηα έλδεημε
ζεξκνθξαζίαο ζπλνδεχεηαη κε ην ζχκβνιν «Κ», π.ρ. Θεξκνθξαζία 77 Κ. Ο Βαζκφο Κέιβηλ θέξεηαη
θαηά ηελ νκψλπκε θιίκαθα φπνπ ην απφιπην κεδέλ (-273,15° C βαζκνί Κειζίνπ) αληηζηνηρεί ζην 0°
Κ. Η ζεξκνθξαζία 0 Κ είλαη ε ρακειφηεξε δπλαηή ζεξκνθξαζία θαη νλνκάδεηαη απόιπην κεδέλ. Η
θιίκαθα επηλνήζεθε απφ ηνλ Οπίιηακ Σφκζνλ (William Thomson), 1ν Βαξφλν ηνπ Kelvin.
Η Κιίκαθα Κέιβηλ δελ έρεη αξλεηηθέο ηηκέο.
Ο Βαζκφο Κέιβηλ είλαη ε βαζηθή κνλάδα κέηξεζεο ζεξκνθξαζηψλ ζε πξνβιήκαηα πνπ έρνπλ
ζρέζε κε ηε Θεξκνδπλακηθή, ηε κεραληθή ξεπζηψλ θ.α.
Έλαο βαζκφο θιίκαθαο Κέιβηλ ηζνδπλακεί κε έλα βαζκφ Κειζίνπ.
Η θιίκαθα Kelvin κεηξάεη ηελ ιεγφκελε απόιπηε ζεξκνθξαζία. Η δηαθνξά ηεο κε ηελ
θιίκαθα Κειζίνπ έγθεηηαη ζηνπο 273,15 βαζκνχο. Γειαδή: Σk = Tc + 273,15.
30
6.3.
Απόιπηε ζεξκνθξαζία
Κάζε ζεξκνθξαζία πνπ έρεη σο αξρή κέηξεζεο ην απφιπην κεδέλ ηεο φπνηαο θιίκαθαο
(Κειζίνπ ή Φαξελάηη) ραξαθηεξίδεηαη απφιπηε ζεξκνθξαζία. Σν απφιπην κεδέλ είλαη ε ζεξκνθξαζία
απφ ηελ νπνία μεθηλά ε θιίκαθα Κέιβηλ θαη πνπ πξνζδηνξίδεηαη γηα κελ ηελ θιίκαθα Κειζίνπ ζηνπο 273,15° C θαη γηα δε ηελ θιίκαθα Φαξελάηη ζηνπο - 459,67° F. Θεσξεηηθά είλαη ε θαηάζηαζε εθείλε
ζηελ νπνία έλα πιηθφ δελ έρεη θακία άιιε ελέξγεηα παξά απηή απφ ηηο θβαληνκεραληθέο ηαιαληψζεηο
ησλ αηφκσλ πνπ ην απνηεινχλ (ελέξγεηα κεδεληθνχ ζεκείνπ). Η απφιπηε ζεξκνθξαζία ζπκβνιίδεηαη
κε ην γξάκκα Σ.
6.4.
΢ρεηηθή ζεξκνθξαζία
Κάζε ζεξκνθξαζία πνπ κεηξηέηαη αξρίδνληαο απφ ην 0° ηεο θιίκαθαο Κειζίνπ ή ηεο θιίκαθαο
Φαξελάηη νλνκάδεηαη ζχεηική θερμοκραζία θαη θαιείηαη θεηική φηαλ είλαη άλσ ηνπ κεδελφο θαη
αρνηηική φηαλ είλαη θάησ.
Η ζχεηική θερμοκραζία έρεη ηδηαίηεξα επξχηαηε ρξήζε ηφζν ζηε θαζεκεξηλή δσή φζν θαη ζηηο
δηάθνξεο ηερληθέο θαη κεραλνινγηθέο εθαξκνγέο. ΢πκβνιίδεηαη κε ην ιαηηληθφ γξάκκα t.
6.5.
Θεξκνθξαζία θαη αξρή ιεηηνπξγίαο θάζε αηζζεηήξα ζεξκνθξαζίαο
Θεξκνθξαζία είλαη ε θπζηθή ηδηφηεηα πνπ θαζνξίδεη θαηά πφζν έλα ζχζηεκα ηζνξξνπεί
ζεξκηθά ή φρη κε άιια. Γηα λα ιάβνπκε ηελ ηηκή ηεο ζεξκνθξαζίαο ελφο ζψκαηνο απαηηείηαη
νπζηαζηηθά ε κεηάδνζε ελφο κηθξνχ κέξνο ηεο ζεξκηθήο ελέξγεηαο ηνπ ζηνλ αηζζεηήξα ηνπ νπνίνπ ε
ιεηηνπξγία είλαη λα κεηαηξέςεη απηή ηελ ελέξγεηα ζε ειεθηξηθφ ζήκα. Όηαλ έλαο αηζζεηήξαο
ηνπνζεηείηαη ζην εζσηεξηθφ ή επάλσ ζην αληηθείκελν, ε ζεξκηθή αγσγηκφηεηα εκθαλίδεηαη ζην φξην
αλάκεζα ζην αληηθείκελν θαη αηζζεηήξα. Σν αηζζεηήξην ζηνηρείν ηνπ αηζζεηήξα νπφηε ζεξκαίλεηαη ή
ςχρεηαη αληαιιάζεη ζεξκφηεηα κε ην αληηθείκελν. Σα ζχγρξνλα ζεξκφκεηξα είλαη ζπλήζσο
ειεθηξνληθά θαη ρσξίδνληαη ζε δχν θαηεγνξίεο: ζηα ζεξκφκεηξα επαθήο θαη ζηα εμ απνζηάζεσο.
Σα ζεξκόκεηξα επαθήο: κεηξνχλ εξρφκελα ζε επαθή κε ην ζχζηεκα ηνπ νπνίνπ δεηείηαη ε
ζεξκνθξαζία, δειαδή κεηξνχλ νπζηαζηηθά ηελ ίδηα ηνπο ηε ζεξκνθξαζία. Άξα, ε αθξίβεηα
ηεο κέηξεζεο εμαξηάηαη, κεηαμχ άιισλ, απφ ην θαηά πφζν έρεη επέιζεη ζεξκηθή ηζνξξνπία
κεηαμχ ζεξκνκέηξνπ θαη ζπζηήκαηνο.
Σα ζεξκόκεηξα εμ απνζηάζεσο: κεηξνχλ ηε ζεξκηθή αθηηλνβνιία ηνπ ζπζηήκαηνο θαη
εκκέζσο ππνινγίδνπλ ηε ζεξκνθξαζία. Χο εθ ηνχηνπ δελ απαηηείηαη θπζηθή επαθή κεηαμχ
ζεξκνκέηξνπ θαη κέηξεζε ζπζηήκαηνο.
Σν είδνο ηνπ αηζζεηήξα πνπ ζα ρξεζηκνπνηεζεί εμαξηάηαη απφ δηάθνξνπο παξάγνληεο, φπσο
ην εχξνο δηαθχκαλζεο ηεο πξνο κέηξεζε ζεξκνθξαζίαο, ηελ απαηηνχκελε αθξίβεηα θαη πηζηφηεηα , ην
πεξηβάιινλ ζην νπνίν ζα ηνπνζεηεζεί ν αηζζεηήξαο – αλ δειαδή ζα ππνζηεί κεραληθέο ή άιιεο
θαηαπνλήζεηο θ.ιπ. Η δπζθνιία ή επθνιία ηεο κέηξεζεο εμαξηάηαη απφ ηελ ηηκή ηεο ζεξκνθξαζίαο,
ην κέζν ηνπ νπνίνπ ζέινπκε λα πξνζδηνξίζνπκε ηε ζεξκνθξαζία, θαζψο θαη απφ ηηο απαηηήζεηο γηα
αθξίβεηα θαη πηζηφηεηα. ΢ηνλ πίλαθα 3, ζπλνςίδεηαη ε δπζθνιία κέηξεζεο ηεο ζεξκνθξαζίαο, γηα
δηάθνξεο πεξηπηψζεηο.
31
Απαίηεζε ζε αθξίβεηα
Θεξκνθξαζία
±5°C
±1°C
±0.5°C
±0.1 °c
Γχζθνια
Πνιχ δχζθνια
Απαηηείηαη πξνζνρή Γχζθνια
Πνιχ δχζθνια
-200 °C
Απαηηείηαη πξνζνρή Γχζθνια
0°C - 50 °C
Δχθνια
1000 °C
Απαηηείηαη πξνζνρή Πνιχ δχζθνια
2000 °C
Πνιχ δχζθνια
Δμαηξεηηθά δχζθνια ΢ρεδφλ δχλαηνλ
Δμαηξεηηθά δχζθνια ΢ρεδφλ αδχλαηνλ
Απνθιείεηαη
Πίλαθαο 3: Αθξίβεηα κέηξεζεο ζεξκνθξαζίαο ζε ζπλάξηεζε κε ηελ αθξίβεηα ζε βαζκνύο oC.
32
6.6. Η πγξαζία
Ο φξνο πγξαζία αλαθέξεηαη ζηνλ πδξαηκφ, ν νπνίνο είλαη αέξην, είλαη ην λεξφ ζε αέξηα
κνξθή. Η πγξαζία είλαη παξνχζα παληνχ ζηελ αηκφζθαηξα. Αθφκε θαη ζηηο πην μεξέο πεξηνρέο. Η
κέηξεζε ηεο πγξαζίαο είλαη πην δχζθνιε απφ ηελ κέηξεζε ησλ πεξηζζφηεξσλ άιισλ κνλάδσλ, φπσο
ε ζεξκνθξαζία θαη ε πίεζε. Έλαο ιφγνο γη’ απηφ είλαη φηη δηαζέηεη εμαηξεηηθά δπλακηθή πεξηνρή
ηηκψλ.
Έλαο άιινο ιφγνο πνπ νη κεηξήζεηο είλαη δχζθνιεο είλαη φηη γίλνληαη ζε πνιχ δηαθνξεηηθέο
αηκνζθαηξηθέο ζπλζήθεο, γηα παξάδεηγκα απφ ζεξκνθξαζίεο απφ -60 ° C έσο 1000 ° C κε ηελ
παξνπζία δηαβξσηηθψλ ή κε δηαβξσηηθψλ ζηνηρείσλ, θαζψο θαη κε πνηθηιία πξνζκείμεσλ ζσκαηηδίσλ
ή ρεκηθψλ.
6.7.
Οη πγξνκεηξηθέο παξάκεηξνη
Τπάξρνπλ δπν νκάδεο πγξνκεηξηθψλ παξακέηξσλ :
α) εθείλεο πνπ εμαξηψληαη κφλν απφ ην πνζφ ησλ πδξαηκψλ ζηνλ αέξα θαη είλαη γλσζηέο ζαλ
απφιπηεο κεηξήζεηο
β) εθείλεο πνπ εμαξηψληαη φρη κφλν απφ ην πνζφ ησλ πδξαηκψλ, αιιά επίζεο θαη απφ ηε ζεξκνθξαζία
ηνπ αέξα. Απηέο νη ηειεπηαίεο είλαη γλσζηέο ζαλ ζρεηηθέο κεηξήζεηο.
Ά Οκάδα
6.7.1.
Απόιπηε Τγξαζία
Δίλαη ε αλαινγία κάδαο πδξαηκψλ πξνο ηνλ φγθν ηνπ αέξα ή αεξίνπ. ΢πλήζσο εθθξάδεηαη ζε
γξακκάξηα αλά θπβηθφ κέηξν θαη θαζνξίδεη ην πνζφ ησλ πδξαηκψλ (ζε γξακκάξηα) πνπ πεξηέρεηαη ζε
δνζκέλν φγθν πγξνχ αηκνζθαηξηθνχ αέξα. Οη κεηαβνιέο ηεο ζρεηίδνληαη κε ηηο αιιαγέο ηεο
αηκνζθαηξηθήο πίεζεο. Γηα θάζε κηα ηηκή ζεξκνθξαζίαο ηνπ αέξα ππάξρεη θαη κηα αληίζηνηρε κέγηζηε
ηηκή απφιπηεο πγξαζίαο.
΄Β Οκάδα
6.7.2.
΢ρεηηθή πγξαζία
Η ζρεηηθή πγξαζία ηνπ αέξα απνηειεί ηελ πην θνηλή έθθξαζε ηεο αηκνζθαηξηθήο πγξαζίαο.
Απηή ραξαθηεξίδεη ην ιφγν ησλ πδξαηκψλ πνπ ππάξρνπλ ζηελ αηκφζθαηξα ζε κηα δεδνκέλε ηηκή
ζεξκνθξαζίαο θαη πίεζεο ζε ζρέζε κε ηελ κέγηζηε πνζφηεηα ησλ πδξαηκψλ ηελ νπνία ν αέξαο είλαη
ηθαλφο λα θξαηήζεη ζηηο ίδηεο ζπλζήθεο πίεζεο16 θαη ζεξκνθξαζίαο κέρξηο φηνπ απηφο θνξεζζεί. Η
ζρεηηθή πγξαζία εθθξάδεηαη επί ηνηο %. Έηζη, ην 50 ηνηο εθαηφ RH ζεκαίλεη φηη ην 50 ηνηο εθαηφ ηνπ
αέξα ζην δείγκα ην θαηέρνπλ πδξαηκνί επί ηνπ ζπλφινπ ζε απηή ηε ζεξκνθξαζία. Αλ ην δείγκα ηνπ
αέξα ζεξκαλζεί, ε ζρεηηθή πγξαζία ζα κεησζεί, έζησ θαη αλ ε πνζφηεηα ησλ πδξαηκψλ δελ έρεη
αιιάμεη.
Καη νξίδεηαη απφ ηνλ ηχπν:
΢π = Β΄/Β Υ 100
Β΄: πνζόηεηα ππαξρόληωλ πδξαηκώλ
Β: πνζόηεηα πνπ θαζηζηά ηνλ αέξα θεθνξεζκέλν ή κέγηζηε ηάζε πδξαηκώλ
«Ο θεθνξεζκέλνο αέξαο έρεη ζρεηηθή πγξαζία 100%, ελώ ν ηειείωο μεξόο αέξαο έρεη 0%»
16
ην πειίθν ηεο αζθνχκελεο αηκνζθαηξηθήο πίεζεο ζε κία επηθάλεηα δηα ηνπ εκβαδνχ ηεο επηθάλεηαο απηήο
33
Μηα κεηαβνιή ζηε ζρεηηθή πγξαζία ηνπ αηκνζθαηξηθνχ αέξα κπνξεί λα πξνθιεζεί κε έλα
απφ ηνπο δπν παξαθάησ ηχπνπο:
α) Αλ ππάξρεη κηα ειεχζεξε επηθάλεηα λεξνχ, ε πγξαζία κπνξεί λα απμεζεί κε ηελ εμάηκηζε. Απηή ε
δηεξγαζία είλαη βαζκηαία θαη πξνυπνζέηεη ηε δηάρπζε ησλ πδξαηκψλ κέζα ζηελ αηκφζθαηξα.
β) Όηαλ απμάλεη ε ζεξκνθξαζία ηνπ αέξα, παξάιιεια απμάλεη θαη ε ηθαλφηεηα ηνπ λα ζπγθξαηεί
πεξηζζφηεξε πγξαζία. ΢ε κηα ηέηνηα πεξίπησζε εθφζνλ δελ πξνζηίζεληαη θαηλνχξηα πνζά πδξαηκψλ ε
ζρεηηθή πγξαζία ζα ειαηησζεί, αληίζεηα κε ηε κείσζε ηεο ζεξκνθξαζίαο ε ζρεηηθή πγξαζία
απμάλεηαη γηαηί κεηψλεηαη ε ηθαλφηεηα θαηαθξάηεζεο πδξαηκψλ απφ ηνλ αέξα
ΘΕΡΜΟΚΡΑΣΙΑ 0C
Δηθόλα 6. 1: Γηάγξακκα κεηαβνιήο ζρεηηθήο πγξαζίαο ζπλαξηήζεη ηεο ζεξκνθξαζίαο
Φξήζηκνη νξηζκνί
Ο αέξαο πνπ πεξηιακβάλεη ηελ κέγηζηε πνζφηεηα πδξαηκψλ νλνκάδεηαη θεθνξεζκέλνο.
Η κεηαβνιή ηεο αέξηαο θαηάζηαζεο ησλ πδξαηκψλ ζε πγξή ή ζηεξεά θαιείηαη
ζπκπύθλωζε17.
Η ηάζε ησλ πδξαηκψλ ζην «ζεκείν ηνπ θνξεζκνχ» νλνκάδεηαη «κέγηζηε ηάζε
πδξαηκψλ». Απηή είλαη ζπλάξηεζε κφλν ηεο ζεξκνθξαζίαο ηεο αηκφζθαηξαο θαη απμάλεη
κε απηήλ.
Δπίζεο:
Όηαλ επηθξαηεί νκίριε ν αέξαο είλαη ζπλήζσο θεθνξεζκέλνο. Όηαλ ε ζρεηηθή πγξαζία είλαη
100% ηφηε ε αηκφζθαηξα είλαη θεθνξεζκέλε δειαδή πιήξεο πδξαηκψλ κε δπλάκελε λα ζπγθξαηήζεη
άιινπο. Αληίζεηα φηαλ είλαη π.ρ. 50% θαη ε ζεξκνθξαζία αέξνο 20° C γηα ηνλ Υεηκψλα, θαη 26° C γηα
ην Καινθαίξη, ηφηε αηζζαλφκαζηε επράξηζηα.
6.8.
΢εκείν Γξόζνπ
Σν ζεκείν δξφζνπ, εθθξάδεηαη ζε °C ή °F, είλαη ε ζεξκνθξαζία θαη ε πίεζε ζηελ νπνία έλα
αέξην αξρίδεη λα ζπκππθλψλεηαη ζε πγξφ. Δίλαη ε ζεξκνθξαζία ζηελ νπνία παξνπζηάδεηαη
ζπκπχθλσζε ησλ πδξαηκψλ ηεο αηκφζθαηξαο φηαλ απηή αξρίδεη λα ςχρεηαη θάησ απφ ζηαζεξή πίεζε.
Αθνχ ν ζεξκφο αέξαο είλαη ηθαλφο λα ζπγθξαηεί πεξηζζφηεξνπο πδξαηκνχο απφ ηνλ ςπρξφ αέξα, ην
ζεκείν δξφζνπ, θαηά κέζν φξν, είλαη κεγαιχηεξν ην θαινθαίξη παξά ηνλ ρεηκψλα, θαη γεληθφηεξα
απμάλεη κε ηελ αχμεζε ηεο ζεξκνθξαζίαο.
17
ε κεηαηξνπή αεξίνπ ζε πγξφ ή ζηεξεφ
34
ΘΕΡΜΟΚΡΑΣΙΑ
0
C
Δηθόλα 6. 2: Γηάγξακκα κεηαβνιήο ζεκείν δξόζνπ ζπλαξηήζεη ηεο ζεξκνθξαζίαο
6.9.
Τγξαζία θαη δηαζέζηκνη αηζζεηήξεο
«Η κέηξεζε ηεο πγξαζίαο δελ είλαη έλα αζήκαλην έξγν, νύηε είλαη δηαηζζεηηθά θαηαλνεηό»
Θέκαηα φπσο δηάξθεηα δσήο πξντφλησλ, πνηφηεηα, θφζηνο, αζθάιεηα εγθαηαζηάζεσλ, θαη
πξνζηαζία πγείαο εξγαδνκέλσλ επεξεάδνληαη ζεκαληηθά απφ ηηο κεηαβνιέο ηεο πγξαζίαο. Πνιιέο
κειέηεο έρνπλ γίλεη γηα ηελ βειηίσζε ησλ αηζζεηήξσλ πγξαζίαο, αιιά παξφια απηά δελ κπνξνχλ λα
κεηξήζνπλ θαη λα θαηαγξάςνπλ κε αθξίβεηα 100% ηελ πγξαζία. Λφγσ ησλ παξαπάλσ έρνπκε
νδεγεζεί ζηελ θαηαζθεπή αηζζεηήξσλ πγξαζίαο πνιιψλ εηδψλ φπνπ ν θαζέλαο κπνξεί λα καο παξέρεη
κφλν έλα είδνο κέηξεζεο θάζε θνξά. Οπφηε κε βάζε ηηο εθάζηνηε αλάγθεο ζα πξέπεη λα γίλεη θαη ε
επηινγή ηνπ θαηάιιεινπ αηζζεηήξα.
Γελ είλαη εχθνιν λα κεηξεζεί ε πγξαζία κε αθξίβεηα. Πνιινί κέζνδνη έρνπλ ρξεζηκνπνηεζεί
γηα ηελ κέηξεζε ηεο ζρεηηθήο πγξαζίαο: ρξήζε αλζξψπηλεο ηξίραο ή λάηινλ θηικ, κέζνδνο πγξνχ θαη
μεξνχ βνιβνχ, αηζζεηήξεο εκηαγσγψλ, θαη νχησ θαζεμήο. Όιεο απηέο νη κέζνδνη έρνπλ ηα
πιενλεθηήκαηά ηνπο αιιά θαη ηνπο πεξηνξηζκνχο ηνπο θαη θαλείο απφ απηνχο δελ κπνξεί λα
ραξαθηεξηζηεί ηέιεηνο. Δπηπιένλ, ππάξρνπλ πνιχ ιίγεο ζπζθεπέο πςειήο αθξίβεηαο βαζκνλφκεζεο,
παξαγσγήο θαη κέηξεζεο πγξαζίαο, θαζηζηψληαο ζρεηηθά δχζθνιν λα επηβεβαηψζνπκε ηελ αθξίβεηα
ηεο κέηξεζεο.
35
6.10. ΢θάικα κέηξεζεο θαη αηζζεηήξεο
«Κάζε θνξά πνπ πξνζπαζνύκε λα πνζνηηθνπνηήζνπκε µηα θπζηθή δηαδηθαζία, εκθαλίδεηαη ε
αβεβαηόηεηα»
Έλα ραξαθηεξηζηηθφ πνπ ζπλήζσο παξαηεξνχκε ζ’ φινπο ζρεδφλ ηνπο ηχπνπο αηζζεηήξσλ
είλαη ν ηξφπνο κε ηνλ νπνίν εθθξάδνπκε ηελ αθξίβεηα ηνπο. Μπνξνχκε λα ηελ εθθξάζνπκε κε θάπνην
πνζνζηφ απφθιηζεο ηηο εθαηφ (%) ή έλα θαζνξηζκέλν εχξνο ηηκψλ (π.ρ. απφθιηζε ±5). Ο ιφγνο πνπ
εκθαλίδνληαη απηέο νη απνθιίζεηο είλαη ε χπαξμε ηνπ ζθάικαηνο κέηξεζεο φπσο θαη ε αβεβαηφηεηα
κέηξεζεο.
6.11.
Η αβεβαηόηεηα κέηξεζεο
΢ηελ κεηξνινγία (ε επηζηήκε ησλ κεηξήζεσλ), ε αβεβαηφηεηα κέηξεζεο είλαη κηα κεαξλεηηθή παξάκεηξνο πνπ ραξαθηεξίδεη ηε δηαζπνξά ησλ ηηκψλ πνπ απνδίδνληαη ζε κηα κεηξνχκελε
πνζφηεηα. Η αβεβαηφηεηα βαζίδεηαη ζηελ ζεσξία ησλ πηζαλνηήησλ θαη δείρλεη ηελ ειιηπή θαηαλφεζε
ηεο πνζφηεηαο. Όιεο νη κεηξήζεηο ππφθεηληαη ζε αβεβαηφηεηα θαη ε ηηκή πνπ κεηξήζεθε είλαη κφλν
πιήξεο εάλ ζπλνδεχεηαη απφ ηελ δήισζε αβεβαηφηεηαο.
6.12.
Σπραία ζθάικαηα θαη ζπζηεκαηηθά ζθάικαηα
«Υπάξρνπλ δύν ηύπνη ζθάικαηνο κέηξεζεο, ην ζπζηεκαηηθό ζθάικα θαη ην ηπραίν ζθάικα»
Έλα ζπζηεκαηηθό ζθάικα (εθηίκεζε ηνπ νπνίνπ είλαη γλσζηή σο κεξνιεςία ζηε κέηξεζε ή
bias) ζπλδέεηαη κε ην γεγνλφο φηη ε κεηξνχκελε ηηκή πεξηιακβάλεη έλα offset (απφθιηζε). ΢ε γεληθέο
γξακκέο, έλα ζπζηεκαηηθφ ζθάικα, ζεσξείηαη σο κηα πνζφηεηα. Απνηειεί ζηνηρείν ηνπ ζθάικαηνο
κέηξεζεο πνπ παξακέλεη ζηαζεξφ ή εμαξηάηαη κε έλαλ ζπγθεθξηκέλν ηξφπν κε θάπνηα άιιε
πνζφηεηα.
Δηθόλα 6. 3: Γξαθηθή αλαπαξάζηαζε ηνπ ζπζηεκαηηθνύ ζθάικαηνο
Έλα ην ηπραίν ζθάικα ζπλδέεηαη κε ην γεγνλφο φηη φηαλ ε κέηξεζε επαλαιακβάλεηαη ζα
ππάξμεη κηα κεηξεκέλε ηηκή πνπ είλαη δηαθνξεηηθή απφ ηελ πξνεγνχκελε. Δίλαη ηπραίν ην φηη ε
επφκελε κεηξνχκελε ηηκή δελ κπνξεί λα πξνβιεθζεί κε αθξίβεηα απφ ηηο πξνεγνχκελεο ηεο.
36
Δηθόλα 6. 4: Γξαθηθή αλαπαξάζηαζε ηνπ ηπραίνπ ζθάικαηνο
«Σε γεληθέο γξακκέο κπνξεί έλα ζθάικα κέηξεζεο λα νθείιεηαη ηαπηόρξνλα θαη ζηνπο δπν
παξαπάλω ηύπνπο ζθαικάηωλ»
6.13.
Πξνζδηνξηζκόο ηηκήο
Η δηαπίζησζε θαη εθηίκεζε ηεο αθξίβεηαο κέηξεζεο κπνξεί λα γίλεη κε ηελ επαλάιεςε ηεο
κέηξεζεο. Όζν ιηγφηεξν απνθιίλνπλ νη κεηξνχκελεο ηηκέο, ηφζν αθξηβέζηεξν είλαη ην απνηέιεζκα
πνπ ζα θαηαγξάςνπκε σο ηηκή ηεο κέηξεζεο. Σαπηφρξνλα, φζν πεξηζζφηεξν επαλαιακβάλεηαη κηα
ηηκή, ηφζν πην πηζαλφ είλαη ε ζπγθεθξηκέλε ηηκή λα είλαη ε πξαγκαηηθή ηηκή.
Σν θαηλφκελν ηεο επαλαιακβαλφκελεο κέηξεζεο ηεο ίδηαο ηηκήο νλνκάδεηαη
επαλαιεςηκόηεηα ηεο ηηκήο. Έηζη, ε ηηκή κε ηε κεγαιχηεξε επαλαιεςηκφηεηα κάιινλ είλαη ε
πξαγκαηηθή ηηκή. Πξηλ φκσο θαηαιήμνπκε ζε απηφ ην ζπκπέξαζκα πξέπεη λα ειέγμνπκε αλ θάπνην
ζθάικα επαλαιακβάλεηαη ζπζηεκαηηθά (ζπζηεκαηηθφ ζθάικα), γηα παξάδεηγκα ζε κηα κέηξεζε
κήθνπο δελ βιέπνπκε φηη ην κέηξν πνπ ρξεζηκνπνηνχκε δελ είλαη εθαηνζηά αιιά ίληζεο. Με βάζε ηα
παξαπάλσ, αλ γίλνπλ πνιιέο κεηξήζεηο θαη δείρλνπλ ηελ ίδηα ηηκή, ηφηε ζρεδφλ ζίγνπξα ε πξαγκαηηθή
ηηκή ηνπ κεγέζνπο είλαη απηή ε ηηκή.
Αληίζεηα, αλ ζε πνιιέο επαλαιήςεηο κεηξεζνχλ πνιιέο ηηκέο θαη κεξηθέο απφ απηέο
απνθιίλνπλ αξθεηά, ηφηε ρξεζηκνπνηνχκε νξηζκέλεο κεζφδνπο, γηα ηελ απαινηθή ησλ αθξαίσλ ηηκψλ
θαη ηνλ ππνινγηζκφ ηεο θεληξηθήο ηηκήο ησλ κεηξήζεσλ. Χο θεληξηθή ηηκή ησλ εγθεθξηκέλσλ
κεηξήζεσλ ζπλήζσο ιακβάλνπκε ηε κέζε ηηκή ηνπο (ηνλ αξηζκεηηθφ κέζνλ φξν). Θεσξνχκε φηη απηή
ε θεληξηθή ηηκή είλαη ε πξαγκαηηθή, γηαηί ζχκθσλα κε ηε ζεσξία ησλ πηζαλνηήησλ απηή ε ηηκή είλαη
πην πηζαλφ λα είλαη ε πξαγκαηηθή ηηκή.
37
38
7. Παξνπζίαζε ησλ αηζζεηήξσλ ηνπ ππνζπζηήκαηνο
ηειεκεηξίαο
7.1.
Αηζζεηήξαο ζεξκνθξαζίαο Dallas DS18B20
Σν ςεθηαθφ ζεξκφκεηξν DS18B20 παξέρεη κεηξήζεηο ζηελ θιίκαθα Κειζίνπ εχξνπο 9 έσο 12
bit θαη ιεηηνπξγία ζπλαγεξκνχ ζε ζεκεία ρακειήο θαη πςειήο ελεξγνπνίεζεο (trigger) πνπ δελ
κπνξνχλ λα κεηαβιεζνχλ θαηά ηελ ιεηηνπξγία άιια κπνξνχλ λα νξηζζνχλ απφ ηνλ ρξήζηε. Ο
DS18B20 επηθνηλσλεί κέζσ δίαπινπ ελφο θαισδίνπ (1-Wire bus) κε ηνλ κηθξνειεγθηή, θαη απαηηεί
κφλν γξακκή δεδνκέλσλ (π.ρ. θαιψδην) θαη κία γείσζε. Μπνξεί λα ιεηηνπξγήζεη ζε ζεξκνθξαζίεο
απφ -55°C έσο +125°C θαη παξέρεη αθξίβεηα ± 0,5°C ζην εχξνο -10°C έσο +85°C. Δπηπιένλ ν
DS18B20 κπνξεί λα απνθνκίζεη ξεχκα απφ ηελ γξακκή δεδνκέλσλ κέζσ παξαζηηηθνχ ξεχκαηνο, άξα
δελ απαηηείηαη εμσηεξηθή πεγή ξεχκαηνο. Σέινο θάζε DS18B20 έρεη έλαλ κνλαδηθφ θψδηθα 64 bit , ν
νπνίνο επηηξέπεη ζε πνιιαπιά DS18B20 λα ιεηηνπξγνχλ ζηνλ ίδην δίαπιν ελφο θαισδίνπ (1-Wire
bus). Καηά ζπλέπεηα, είλαη απιφ κ' έλαλ κηθξνειεγθηή λα ειέγμνπκε πνιιά DS18B20 πνπ
θαηαλέκνληαη ζε κηα κεγάιε πεξηνρή.
Δηθόλα 7. 1: O DS18B20 ζε κνξθή ΣΟ92
7.2.










39
Υαξαθηεξηζηηθά:
1-Wire ® Interface πνπ απαηηεί κφλν έλα Pin γηα επηθνηλσλία.
θάζε ζπζθεπή έρεη έλαλ κνλαδηθφ 64-Bit ζεηξηαθφ θσδηθφ απνζεθεπκέλν ζε on-board ROM.
δπλαηφηεηα multidrop πνπ απινπνηεί ηηο θαηαλεκεκέλεο εθαξκνγέο κέηξεζεο Θεξκνθξαζίαο
δελ απαηηεί επηπιένλ εμαξηήκαηα.
κπνξεί λα ηξνθνδνηεζεί απφ ηε γξακκή ηξνθνδνζίαο 3.0V έσο 5.5V.
κέηξα ζεξκνθξαζίεο απφ -55 ° C έσο +125 ° C (-67 ° F έσο 257 ° F).
± 0,5 ° C Αθξίβεηα απφ -10 ° C έσο +85 ° C.
ξπζκηδφκελε αθξίβεηα κέηξεζεο εχξνπο 9 έσο 12 bit.
ρξφλνο κέηξεζεο ζεξκνθξαζίαο 750ms (Max).
ιεηηνπξγία ζπλαγεξκνχ.
7.3.
Πεξηγξαθή αθξνδεθηώλ
Αξηζκόο
Αθξνδέθηε
( Pin No)
Ολνκαζία
Αθξνδέθηε
1
GND
2
3
Λεηηνπξγία Αθξνδέθηε
Γείσζε
DQ
Δίζνδνο / Έμνδνο δεδνκέλσλ. Αθξνδέθηεο δηαχινπ ελφο
θαισδίνπ
( 1-Wire® bus pin )
VDD
Πξναηξεηηθφο. Ο VDD πξέπεη λα γεησζεί γηα λα
ιεηηνπξγήζεη κέζσ παξαζηηηθνχ ξεχκαηνο
Πίλαθαο 4: Αθξνδέθηεο ηνπ DS18B20.
7.4.
Αηζζεηήξεο ζεξκνθξαζίαο νινθιεξσκέλνπ θπθιώκαηνο
Οη αηζζεηήξεο ζεξκνθξαζίαο εκηαγσγψλ παξάγνληαη κε ηε κνξθή IC. Οθείινπλ ηελ χπαξμε
ηνπο ζην γεγνλφο φηη νη δίνδνη εκηαγσγψλ έρνπλ επαηζζεζία ζηελ ζεξκνθξαζία θαη ην εθδειψλνπλ κε
δηαθνξά ηάζεο ζηα άθξα ηνπο. Όηαλ ηα δχν παλνκνηφηππα ηξαλδίζηνξ ιεηηνπξγνχλ ζε ζηαζεξή
αλαινγία ππθλφηεηαο ζπιιέθηε ξεχκαηνο18, ε δηαθνξά ηάζεο κεηαμχ βάζεο θαη εθπνκπνχ είλαη
επζέσο αλάινγε πξνο ηελ απφιπηε ζεξκνθξαζία.
Η ρξήζε αηζζεηήξσλ ζεξκνθξαζίαο νινθιεξσκέλνπ θπθιψκαηνο πεξηνξίδεηαη ζε εθαξκνγέο
φπνπ ε ζεξκνθξαζία είλαη εληφο ηνπ εχξνπο -55° έσο 150 ° C. Σν εχξνο κέηξεζεο ηνπο κπνξεί λα
είλαη κηθξφ ζε ζχγθξηζε κε εθείλε ησλ ζεξκνζηνηρείσλ19 θαη ησλ RTD20, αιιά έρνπλ πνιιά
πιενλεθηήκαηα: είλαη κηθξνί ζε δηαζηάζεηο , αθξηβείο θαη αλέμνδνη.
Οη δηαζέζηκνη αηζζεηήξεο ζεξκνθξαζίαο ζε κνξθή IC είλαη είηε ζε αλαινγηθή ή ςεθηαθή
κνξθήο εμφδνπ. Μπνξνχλ επηθνηλσλνχλ κέζν κηαο ςεθηαθήο γξακκήο, φπσο έλα θαιψδην PWM, ή
SPI ζχλδεζεο.
7.5.
Πεξηιεπηηθή παξνπζίαζε ηνπ αηζζεηήξα DS18B20
To 64-bit ROM έρεη απνζεθεπκέλν ην κνλαδηθφ ζεηξηαθφ θσδηθφ ηεο ζπζθεπήο. Η κλήκε
(scratchpad memory) πεξηέρεη ηνλ θαηαρσξεηή ζεξκνθξαζίαο κεγέζνπο 2-byte πνπ πξνέξρεηαη απφ
ηελ ςεθηαθή έμνδν ηνπ αηζζεηήξα ζεξκνθξαζίαο. Δπηπιένλ, ε κλήκε παξέρεη πξφζβαζε ζηνπο
θαηαρσξεηέο κεγέζνπο 1-byte ηεο άλσ θαη θάησ ζηάζκεο (TH θαη TL) ελεξγνπνίεζεο ηνπ
ζπλαγεξκνχ θαη θαηαρσξεηή κεγέζνπο 1-byte γηα ηηο ξπζκίζεηο. Ο θαηαρσξεηήο ξπζκίζεσλ επηηξέπεη
ζην ρξήζηε λα ξπζκίζεη ηελ αλάιπζε ζε 9, 10, 11, ή 12 bit θαηά ηελ ςεθηαθή κεηαηξνπή
ζεξκνθξαζίαο. Οη θαηαρσξεηέο TH, TL, θαη ησλ ξπζκίζεσλ είλαη EEPROM, έηζη ζα δηαηεξνχλ ηα
δεδνκέλα φηαλ ε ζπζθεπή είλαη εθηφο ιεηηνπξγίαο.
18
΢πιιέγεη ηα θνξηία πνπ θαηαθζάλνπλ απφ ηνλ εθπνµπφ ηνπ ηξαλδίζηνξ.
19
Η ιεηηνπξγία ησλ ζεξκνζηνηρείσλ βαζίδεηαη ζην ζεξκνειεθηξηθφ θαηλφκελν Seebeck, θαηά ην νπνίν φηαλ δχν
κεηαιιηθνί αγσγνί δηαθνξεηηθψλ πιηθψλ έξζνπλ ζε επαθή ζηα άθξα ηνπο, αλαπηχζζεηαη ειεθηξεγεξηηθή
δχλακε, πνπ νθείιεηαη ζε θαζαξά ζεξκηθά αίηηα, θαη ηεο νπνίαο ην κέγεζνο εμαξηάηαη απφ ηελ ζεξκνθξαζία
ηνπ ζεκείνπ επαθήο.
20
Θεξκναληηζηάηεο φπνπ ε κέηξεζε ηεο ζεξκνθξαζίαο πξνέξρεηαη απφ ηελ ζπζρέηηζε ηεο αληίζηαζεο ηνπ κε ηε
ζεξκνθξαζία.
40
Δηθόλα 7. 2: Γηάγξακκα block ηνπ DS18B20
Ο DS18B20 ρξεζηκνπνηεί πξσηφθνιιν δηαχινπ ελφο θαισδίνπ(1-Wire bus protocol) πνπ
πινπνηεί επηθνηλσλία κφλν κ’ έλα ζήκα ειέγρνπ. Η γξακκή ειέγρνπ απαηηεί κηα αδχλακε αληίζηαζε
pullup. ΢ε απηφ ην ζχζηεκα δίαπινπ , ν κηθξνειεγθηήο (ε ζπζθεπή master) πξνζδηνξίδεη θαη ειέγρεη
ηνπο αηζζεηήξεο κε βάζε ηνλ κνλαδηθφ θσδηθφ 64-bit θάζε αηζζεηήξα. Δπεηδή ν θάζε αηζζεηήξαο
έρεη κνλαδηθφ θσδηθφ, ν αξηζκφο ησλ αηζζεηήξσλ πνπ κπνξνχλ λα ππάξρνπλ ζε έλα δίαπιν είλαη
νπζηαζηηθά απεξηφξηζηνο.
7.6.
Μνληέιν επηθνηλσλίαο master/slave
Σν master / slave είλαη έλα κνληέιν επηθνηλσλίαο, φπνπ κία ζπζθεπή ή δηαδηθαζία (γλσζηή σο
master), έρεη κνλφδξνκν έιεγρν ελφο ή πεξηζζνηέξσλ άιισλ ζπζθεπψλ (γλσζηψλ σο slave). Μφιηο
απηή αξρηθνπνηεζεί, ε θαηεχζπλζε ειέγρνπ είλαη πάληα απφ ηνλ master ζηνλ slave. ΢ε κεξηθά
ζπζηήκαηα ν master επηιέγεηαη απφ κηα νκάδα ζπζθεπψλ, κε ηηο ππφινηπεο ζπζθεπέο ζην ξφιν ηνπ
slave. Ο master μεθηλά ηελ επηθνηλσλία θαη ζηέιλεη αηηήζεηο. Έλαο slave ιακβάλεη κφλν ηα αηηήκαηα,
εθηειεί αλαγλψξηζε ηνπ master θαη ζηέιλεη απαληήζεηο. Μφλνο ηνπ ν ζθιάβνο δελ κπνξεί λα εθηειεί
ην πξσηφθνιιν επηθνηλσλίαο.
7.7.
Σερλνινγία 1-Wire
Η ηερλνινγία 1-Wire είλαη έλα ζεηξηαθφ πξσηφθνιιν. Υξεζηκνπνηεί κηα εληαία γξακκή
δεδνκέλσλ ζπλ κία γείσζε γηα ηελ επηθνηλσλία. Ο 1-Wire master αξρηθνπνηεί θαη ειέγρεη ηελ
επηθνηλσλία κε κία ή πεξηζζφηεξεο slave ζην δίαπιν (1-Wire). Κάζε slave έρεη έλαλ κνλαδηθφ θαη
αλαιινίσην, εξγνζηαζηαθά πξνγξακκαηηδφκελν 64-bit αλαγλσξηζηηθφ (αξηζκφο αλαγλψξηζεο), ην
νπνίν ρξεζηκεχεη σο δηεχζπλζε ηεο ζπζθεπήο ζην δίαπιν 1-Wire. Οη ζπζθεπέο ιεηηνπξγνχλ ζε εχξνο
ηάζεο 2.8V (min) έσο 5.25V (max). Γελ απαηηνχλ πάληνηε pin γηα ηελ ηξνθνδνζία, ηελ αληινχλ αλ
ρξεηαζηεί απφ ηνλ δίαπιν 1-Wire κέζν παξαζηηηθήο ηξνθνδνζίαο. Ο DS18B20 είλαη πάληα ηχπνπ
slave. Όηαλ ππάξρεη κφλν έλαο slave ζην δίαπιν, ηφηε ην ζχζηεκα πνπ αλαθέξεηαη σο «single-drop».
Σν ζχζηεκα είλαη «multidrop» αλ ππάξρνπλ πνιινί slave ζην δίαπιν. Όια ηα δεδνκέλα θαη νη εληνιέο
πνπ δηαβηβάδνπλ πξψηα ην ιηγφηεξν ζεκαληηθφ bit ζηνλ δηαχιν 1-Wire.
41
Δηθόλα 7. 3: Βαζηθό δηάγξακκα δηαύινπ 1-Wire
7.8.
Ιδηαίηεξα ραξαθηεξηζηηθά ηεο ηερλνινγίαο 1-Wire
΢ε αληίζεζε κε άιια ζπζηήκαηα ζεηξηαθήο επηθνηλσλίαο, φπσο ην I²C ή SPI, ην 1-Wire είλαη
εηδηθά ζρεδηαζκέλε γηα ρξήζε ζε πεξηβάιινληα επηθνηλσλίαο. Δίηε ε απνζχλδεζε απφ ην δίαπιν ή
απψιεηα επηθνηλσλίαο ζέηεη ηνλ/ηνπο slave ζε κηα θαζνξηζκέλε θαηάζηαζε, reset. Όηαλ ε ηάζε
ηξνθνδνζίαο επαλέιζεη, νη slave απνζηέιινπλ ζήκα (παικφ) παξνπζίαο. Δμαηξεηηθά πςειή
πξνζηαζία ζε ζηαηηθφ ειεθηξηζκφ (ESD).
7.9.
Μέηξεζε ζεξκνθξαζίαο
Η βαζηθή ιεηηνπξγία ηνπ αηζζεηήξα DS18B20 είλαη ε άκεζε κεηαηξνπή ηεο ζεξκνθξαζίαο ζε
ςεθηαθή ηηκή. Η αλάιπζε(ζε bit θαη ΟC) ηνπ αηζζεηήξα κπνξεί λα ξπζκηζηεί απφ ηνλ ρξήζηε, ζε
δηαηηκήζεηο ηεο ηάμεο ησλ 0,5 °C. 0,25 °C, 0.125 νC θαη 0,0625 °C αληίζηνηρα. Η αξρηθή ηηκή
αλάιπζεο είλαη 12-bit. Μεηά ηε κεηαηξνπή, ηα πξνθχπηνληα ζεξκηθά δεδνκέλα απνζεθεχνληαη ζηνλ
θαηαρσξεηή 2-byte ζεξκνθξαζίαο θαη εγγξάθνληαη ζηελ κλήκε(scratchpad). Η έμνδνο ησλ δεδνκέλσλ
ζεξκνθξαζίαο είλαη βαζκνλνκεκέλε ζε βαζκνχο Κειζίνπ. Γηα Φαξελάηη ηηκέο, πξέπεη λα
ρξεζηκνπνηεζεί έλαο πίλαθαο κεηαηξνπήο.
Θεξκνθξαζία ζε °C
+ 125
+85*
+25.0625
+ 10.125
+0.5
0
-0.5
-10.125
-25.0625
-55
Φεθηαθή Έμνδνο
Γπαδηθή
0000 0111 1101 0000
0000 0101 0101 0000
0000 0001 1001 0001
0000 0000 1010 0010
0000 0000 0000 1000
0000 0000 0000 0000
1111 1111 1111 1000
1111 1111 0101 1110
1111 1110 0110 1111
1111 1100 1001 0000
Φεθηαθή Έμνδνο
Γεθαεμαδηθή
07D0h
0550h
0191h
00A2h
0008h
0000h
FFF8h
FF5Eh
FH6Fh
FC90h
Πίλαθαο 5: Αληηζηνίρεζε ζεξκνθξαζίαο θαη ηηκήο θαηαρσξεηή.
* Η ηηκή ηνπ θαηαρωξεηή ζενθξαζίαο είλαη +85'C.
7.10. Μλήκε
Η κλήκε ηνπ DS18B20 είλαη νξγαλσκέλε φπσο θαίλεηαη ζηελ εηθόλα 7.4. Απνηειείηαη απφ
κηα κλήκε ηχπνπ SRAM (scratchpad) κε κε κεηαβιεηφ απνζεθεπηηθφ ρψξν (nonvolatile) EEPROM
γηα ηελ απνζήθεπζε ησλ πςειψλ θαη ρακειψλ ηηκψλ θαηαρσξεηψλ πνπ ελεξγνπνηνχλ ηνλ ζπλαγεξκφ
(TH θαη TL) θαη ηνπ θαηαρσξεηέο ξπζκίζεσλ.
Σα byte 0 θαη 1 ηεο scratchpad πεξηέρεη ηα LSB θαη ην MSB ηνπ θαηαρσξεηή πνπ πεξηέρεη ηελ
ηηκή ηεο ζεξκνθξαζίαο. Απηά ηα byte είλαη κφλν γηα αλάγλσζε. Σα byte 2 θαη 3 παξέρνπλ πξφζβαζε
42
ζηνπο TH θαη TL θαηαρσξεηέο. Σν byte 4 πεξηιακβάλεη ηα δεδνκέλα δηακφξθσζεο ησλ
θαηαρσξεηψλ, Σα byte 5, 6, θαη 7 είλαη γηα απνθιεηζηηθή εζσηεξηθή ρξήζε απφ ηε ζπζθεπή θαη δελ
κπνξνχλ λα αιιαρηνχλ νη ηηκέο ηνπο. Σν byte 8 ηεο κλήκεο είλαη κφλν γηα αλάγλσζε θαη πεξηέρεη ηνλ
θψδηθα CRC γηα ηα bytes 0 έσο 7 ηεο κλήκεο.
Σα δεδνκέλα εγγξάθνληαη ζηα byte 2, 3, θαη 4 ηεο κλήκεο κε ηελ εληνιή Write Scratchpad
[4Eh]. Σα δεδνκέλα πξέπεη λα δηαβηβάδνληαη ζηνλ DS18B20 μεθηλψληαο απφ ην ιηγφηεξν ζεκαληηθφ
bit ηνπ byte 2. Γηα λα επαιεζεχεη ε αθεξαηφηεηα ησλ δεδνκέλσλ, ε κλήκε κπνξεί λα δηαβάζεη
(ρξεζηκνπνηψληαο ηελ εληνιή Read Scratchpad [BEh]) αθνχ ηα δεδνκέλα είλαη λα εγγξαθνχλ. Καηά
ηελ αλάγλσζε ηεο κλήκεο, ηα δεδνκέλα κεηαθέξνληαη κέζσ ηνπ δηαχινπ 1-Wire μεθηλψληαο απφ ην
ιηγφηεξν ζεκαληηθφ bit ηνπ byte 0. Γηα λα κεηαθεξζνχλ ηα TH, TL θαη ηα δεδνκέλα δηακφξθσζεο απφ
ηε κλήκε ζηελ EEPROM, ν master ηνπ θαλαιηνχ πξέπεη λα δψζεη ηελ εληνιή Copy Scratchpad [48h].
Σα δεδνκέλα ησλ θαηαρσξεηψλ ηεο EEPROM δηαηεξνχληαη φηαλ ε ζπζθεπή είλαη εθηφο
ιεηηνπξγίαο. Καηά αξρηθνπνίεζε ηεο EEPROM ηα δεδνκέλα μαλαθνξηψλνληαη ζηηο αληίζηνηρεο
ζέζεηο κλήκεο. Σα δεδνκέλα κπνξνχλ επίζεο λα μαλαθνξησζνχλ απφ ηελ EEPROM ζηελ κλήκε αλά
πάζα ζηηγκή, ρξεζηκνπνηψληαο ηελ εληνιή Recall E2[B8h] εληνιή.
΢εκείσζε: αλ ν δελ ρξεζηκνπνηείηαη ζηνλ DS18B20 ε ιεηηνπξγία ζπλαγεξκνχ, νη θαηαρσξεηέο TH
θαη TL κπνξνχλ λα ρξεζηκνπνηεζνχλ σο κλήκε γεληθήο ρξήζεο.
Δηθόλα 7. 4: ΢ρεκαηηθή αλαπαξάζηαζε ηεο κλήκεο (scratchpad).
7.11. Καηαρσξεηήο ζεξκνθξαζίαο
Σα δεδνκέλα ζεξκνθξαζίαο απνζεθεχνληαη ζ’ έλαλ 16-bit πξνζεκαζκέλσλ ηηκψλ
θαηαρσξεηή πνπ έρεη δερηεί ζπκπιήξσκα θαηά 2. Σα bits πξφζεκνπ (S) καο δείρλνπλ αλ ε
ζεξκνθξαζία είλαη ζεηηθή ή αξλεηηθή: S = 0 αλ ζεηηθή θαη S = 1 γηα αξλεηηθή.
Δηθόλα 7. 5: Γηακόξθσζε bit ηνπ θαηαρσξεηή ζεξκνθξαζίαο.
7.12. Καηαρσξεηήο ξπζκίζεσλ
Σν byte 4 ηεο κλήκεο πεξηέρεη ηηο ξπζκίζεηο ησλ θαηαρσξεηψλ, είλαη νξγαλσκέλν φπσο
θαίλεηαη ζηελ εηθόλα 7.6. Ο ρξήζηεο κπνξεί λα ξπζκίζεη ηελ αλάιπζε ηεο κεηαηξνπήο ηνπ DS18B20
ρξεζηκνπνηψληαο ην R0 θαη R1 bit ζε απηφ ηνλ θαηαρσξεηή, φπσο θαίλεηαη ζηελ εηθόλα 7.7. Η
πξνεπηιεγκέλε ηηκή ησλ R0 θαη R1 είλαη 1 (12-bit κέγεζνο). Σν bit 7 θαη bit 0 έσο 4 ζηνλ θαηαρσξεηή
43
δηακφξθσζεο πξννξίδνληαη γηα εζσηεξηθή ρξήζε απφ ηε ζπζθεπή θαη δελ κπνξνχλ λα αιιαρηνχλ νη
ηηκέο ηνπο.
Δηθόλα 7. 6: Γηάγξακκα ζέζεσλ κλήκεο θαηαρσξεηή ξπζκίζεσλ.
Δηθόλα 7. 7: Τπάξρεη άκεζε αύμεζε ζηνλ ρξόλν κεηαηξνπήο αλ ε αλάιπζε απμεζεί.
7.13. Γεκηνπξγία θώδηθα CRC (θπθιηθόο έιεγρνο πιενλαζκνύ)
Σα CRC21 byte παξέρνληαη ζην πιαίζην ηνπ 64-bit θψδηθα ROM ηνπ DS18B20 ζην 9ν byte
ηεο κλήκεο. Ο CRC θσδηθφο ηεο ROM ππνινγίδεηαη απφ ηα πξψηα 56 bit ηεο θαη πεξηέρεηαη ζην πην
ζεκαληηθφ byte ηεο ROM. Σν CRC ηεο κλήκεο ππνινγίδεηαη απφ ηα δεδνκέλα πνπ είλαη
απνζεθεπκέλα ζηε κλήκε θαη σο εθ ηνχηνπ αιιάδνπλ φηαλ ηα δεδνκέλα δηαβάδνληαη απφ ηελ κλήκε.
Σν CRC παξέρεη κηα κέζνδν επηθχξσζεο ησλ δεδνκέλσλ.
΢εκείσζε: γηα λα βεβαησζνχκε φηη ηα δεδνκέλα έρνπλ δηαβάζεη ζσζηά, πξέπεη λα ππνινγίζεη εθ λένπ
ην CRC απφ ηα δεδνκέλα. Αλ ε ππνινγηζκέλε ηηκή ηνπ CRC ηαηξηάδεη κε ηελ ηηκή ηνπ CRC πνπ
γλσξίδνπκε, ηα δεδνκέλα δελ έρνπλ ιάζε.
Δηθόλα 7. 8.: ΢ρεκαηηθή παξνπζίαζε ππνινγηζκνύ ηνπ CRC .
7.14. ΢ήκα ζπλαγεξκνύ
Μφλνλ ηα bits 11 έσο θαη 4 ηνπ θαηαρσξεηή ζεξκνθξαζίαο ρξεζηκνπνηνχληαη γηα ηε ζχγθξηζε
ηηκψλ ησλ TH θαη TL(νη TH θαη TL είλαη 8-bit θαηαρσξεηέο). Αλ ε ζεξκνθξαζία είλαη ρακειφηεξε ή
ίζε κε TL ή κεγαιχηεξε ή ίζε κε TH, κηα θαηάζηαζε ζπλαγεξκνχ, ελεξγνπνηείηαη θαη κηα ζεκαία
ζπλαγεξκνχ νξίδεηαη. Η ζεκαία απηή ελεκεξψλεηαη κεηά απφ θάζε κέηξεζε ζεξκνθξαζίαο. Χο εθ
ηνχηνπ, αλ ε θαηάζηαζε ζπλαγεξκνχ ππνρσξήζεη, ε ζεκαία ζα πξέπεη λα απελεξγνπνηεζεί κεηά ηελ
επφκελε κέηξεζε ζεξκνθξαζίαο
Δηθόλα 7. 9: Γηακόξθσζε bit ησλ TH θαη TL θαηαρσξεηώλ.
21
ηερληθή αλίρλεπζεο ζθαικάησλ θαηά ηε δηάξθεηα κεηάδνζεο ή απνζήθεπζεο δεδνκέλσλ.
44
7.15. Κώδηθαο ράξαμεο Laser Rom κλήκεο 64bit
Κάζε DS18B20 πεξηέρεη έλα κνλαδηθφ 64-bit θψδηθα απνζεθεπκέλν ζηε κλήκε ROM. Σα
ιηγφηεξν ζεκαληηθά 8 bits ηνπ ROM θψδηθα πεξηέρνπλ ηνλ 1-Wire θσδηθφ: 28h. Σα επφκελα 48 bits
πεξηέρνπλ έλα κνλαδηθφ ζεηξηαθφ αξηζκφ. Σα πην ζεκαληηθά 8 bit πεξηέρνπλ έλα ειέγρνπ θπθιηθνχ
πιενλαζκνχ (CRC) κεγέζνπο 1 byte πνπ ππνινγίδεηαη απφ ηα πξψηα 56 bit ηνπ θψδηθα ROM. Ο 64bit θψδηθαο ROM θαη νη ζπλαθείο ιεηηνπξγίεο ROM ινγηθήο ειέγρνπ επηηξέπνπλ ηνλ DS18B20 λα
ιεηηνπξγεί σο κηα ζπζθεπή 1-Wire.
Δηθόλα 7. 10: ΢ρεκαηηθή παξνπζίαζε ηνπ θώδηθα ράξαμεο Laser.
7.16. Αξρηθνπνίεζε
Ο DS18B20 κπνξεί λα ηξνθνδνηείηαη απφ εμσηεξηθή πεγή ζην VDD pin, ή λα κπνξεί λα
ιεηηνπξγήζεη κε «παξαζηηηθή ηάζε», ην νπνίν ηνπ επηηξέπεη λα ιεηηνπξγήζεη ρσξίο εμσηεξηθή
ηξνθνδνζία. Η παξαζηηηθή ηάζε είλαη πνιχ ρξήζηκε γηα εθαξκνγέο πνπ απαηηνχλ ηειεκεηξία
ζεξκνθξαζίαο ή φηαλ είλαη πνιχ πεξηνξηζκέλνο ν ρψξνο. ΢ηελ εηθόλα 7.11 δείρλεη ην θπθιψκαηα ην
νπνίν «θιέβεη» ελέξγεηα απφ ην δίαπιν 1-Wire κέζσ ηνπ pin DQ φηαλ ν δίαπινο είλαη πςειή ζε
πςειή δηαθξηηή ζηάζκε. Απνζεθεχεηαη ελέξγεηα ζηνλ παξαζηηηθφ ππθλσηή ηζρχνο (CPP) γηα ηελ
παξνρή ξεχκαηνο φηαλ ν δίαπινο είλαη ζε ρακειή δηαθξηηή ηηκή. Όηαλ ν DS18B20 ρξεζηκνπνηεί
παξαζηηηθή ηάζε, ην VDD pin πξέπεη λα ζπλδεζεί κε ηελ γείσζε.
Η παξαζηηηθή ιεηηνπξγία, κπνξεί λα παξέρεη ηθαλνπνηεηηθή ηάζε γηα λα ηνλ DS18B20 γηα ηηο
πεξηζζφηεξεο εξγαζίεο φζν νη απαηηήζεηο ηάζεο πιεξνχληαη. Χζηφζν, φηαλ εθηειεί κεηαηξνπέο
ζεξκνθξαζίαο ή αληηγξαθή δεδνκέλσλ απφ ηε κλήκε ζηελ EEPROM, ην ξεχκα ιεηηνπξγίαο πξέπεη λα
είλαη 1.5mA. Γηα λα είλαη βέβαην φηη ν DS18B20 έρεη επαξθή παξνρή ξεχκαηνο, είλαη απαξαίηεην λα
ππάξρεη κηα ηζρπξή pullup αληίζηαζε ζην δίαπιν 1-Wire φπνηε κεηαηξνπέο ζεξκνθξαζίαο ιακβάλνπλ
ρψξα ή δεδνκέλα αληηγξάθνληαη απφ ηελ κλήκε ζηελ EEPROM. Απηφ κπνξεί λα επηηεπρζεί κε ηε
ρξήζε ελφο MOSFET. Κακία άιιε δξαζηεξηφηεηα δελ κπνξεί λα ιάβεη ρψξα ελψ ην ε pullup
αληίζηαζε είλαη ελεξγνπνηεκέλε.
Δηθόλα 7. 11: Σξνθνδνζία κε ρξήζε εμσηεξηθήο ηάζεο.
Ο DS18B20 κπνξεί επίζεο λα ηξνθνδνηείηαη απφ ηε ζπκβαηηθή εμσηεξηθή παξνρή ξεχκαηνο
γηα ην VDD pin, φπσο θαίλεηαη ζηελ εηθόλα 7.12. Σν πιενλέθηεκα απηήο ηεο κεζφδνπ είλαη φηη ε
pullup MOSFET δελ είλαη απαξαίηεηε.
Δηθόλα 7. 12: Σξνθνδνζία κε ρξήζε παξαζηηηθήο ηάζεο.
45
Σεκείωζε: ε ρξήζε ηεο παξαζηηηθήο ηάζεο δελ ζπληζηάηαη γηα ζεξκνθξαζίεο άλσ ησλ 100 ° C. Ο
DS18B20 κπνξεί λα κελ είλαη ζε ζέζε λα δηαηεξήζεη επηθνηλσλία ιφγσ ηεο πςειήο δηαξξνήο
ξεχκαηνο πνπ κπνξεί λα ππάξρεη ζε απηέο ηηο ζεξκνθξαζίεο.
7.17. Σξνθνδνζία θαη παξαζηηηθή ηάζε ιεηηνπξγίαο
Έλα άιιν ραξαθηεξηζηηθφ ηνπ DS18B20 είλαη ε δπλαηφηεηα λα ιεηηνπξγεί ρσξίο εμσηεξηθή
ηξνθνδνζία. Η ηάζε παξέρεηαη δηάκεζν κηαο αληίζηαζεο pullup ζην DQ pin φηαλ ν δίαπινο είλαη ζε
πςειή δηαθξηηή ζηάζκε ηάζεο. Η ηάζε πςειήο δηαθξηηήο ζηάζκεο θνξηίδεη επίζεο έλαλ εζσηεξηθφ
ππθλσηή (CPP), ν νπνίνο παξέρεη ζηε ζπλέρεηα ηζρχ φηαλ ν δίαπινο βξίζθεηαη ζε ρακειή ζηάζκε
δηαθξηηήο ηάζεο. Απηή ε κέζνδνο άληιεζεο ηάζεο απφ ηνλ δίαπιν νλνκάδεηαη «παξαζηηηθή ηάζε». Χο
ελαιιαθηηθή ιχζε, κπνξεί λα ηξνθνδνηείηαη θη απφ εμσηεξηθή ηξνθνδνζία.
7.18. Ρπζκίζεηο
Ο 1-Wire δηαχινπ έρεη εμ νξηζκνχ κφλν κία γξακκή δεδνκέλσλ. Απηφ επηηξέπεη ηελ
«απειεπζέξσζε» ηεο γξακκήο δεδνκέλσλ φηαλ ε ζπζθεπή δελ κεηαδίδεη δεδνκέλα, ψζηε ν δίαπινο λα
είλαη δηαζέζηκνο γηα ρξήζε απφ άιιε ζπζθεπή. Η 1-Wire ζχξα ηνπ DS18B20 (DQ pin) είλαη έλαο
αλνηρηφο βξφρνο. Ο 1-Wire δίαπινο απαηηεί κηα εμσηεξηθή αληίζηαζε pullup πεξίπνπ 5kΧ Έηζη, ε
ηηκή αλακνλήο γηα ην δίαπιν 1-Wire είλαη πςειήο ζηάζκεο. Αλ ν δίαπινο είλαη ζηελ ρακειή ζηάζκε
γηα πεξηζζφηεξν απφ 480κs, ζην δίαπιν ζα γίλεη επαλαθνξά (reset).
7.19. Αιιεινπρία αληαιιαγήο δεδνκέλσλ
Η αιιεινπρία αληαιιαγήο δεδνκέλσλ γηα ηελ πξφζβαζε ζηνλ DS18B20 έρεη σο εμήο:
Βήκα 1. Αξρηθνπνίεζε
Βήκα 2. Δληνιή ROM (απαηηνχκελε ζε αληαιιαγή δεδνκέλσλ)
Βήκα 3. Δληνιή ιεηηνπξγίαο DS18B20 (απαηηνχκελε ζε αληαιιαγή δεδνκέλσλ)
Δίλαη πνιχ ζεκαληηθφ λα αθνινπζεζεί απηήλ ηελ αιιεινπρία θάζε θνξά πνπ ζηνλ DS18B20
γίλεηαη πξφζβαζε. Αιιηψο ν DS18B20 δελ ζα ιεηηνπξγήζεη ζσζηά αλ ηα βήκαηα δελ
πξαγκαηνπνηεζνχλ κε ηε ζεηξά απηή ή ιείπνπλ θάπνηα. Όιεο νη αληαιιαγέο δεδνκέλσλ αξρίδνπλ ζην
δίαπιν 1-Wire κε κηα αιιεινπρία αξρηθνπνίεζεο. Η αιιεινπρία αξρηθνπνίεζεο απνηειείηαη απφ έλαλ
παικφ reset πνπ κεηαδίδεηαη απφ ηνλ master κνλάδα ζηνλ δίαπιν θαη αθνινπζείηαη απφ παικφ
παξνπζίαο πνπ κεηαδίδεηαη απφ ηηο κνλάδεο slave.
΢εκείσζε: ν παικφο παξνπζίαο δίλεη ηε δπλαηφηεηα ζηνλ master ηνπ δηαχινπ λα γλσξίδεη φηη νη
ζπζθεπέο slave είλαη ζην δίαπιν θαη είλαη έηνηκεο λα ιεηηνπξγήζνπλ.
7.20. Γηαδηθαζία αξρηθνπνίεζεο - παικνί reset θαη παξνπζίαο
Καηά ηε δηάξθεηα αιιεινπρίαο αξρηθνπνίεζεο κεηαδίδεη (TX) ν master ηνπ δηαχινπ, παικφ
επαλαθνξάο ζέηνληαο ηνλ 1-Wire δίαπιν ζε ρακειή δηαθξηηή ζηάζκε γηα ηνπιάρηζηνλ 480κs. ΢ηε
ζπλέρεηα απειεπζεξψλεηαη ν δίαπινο θαη αιιάδεη ζε ιεηηνπξγία ιήςεο (RX). Όηαλ απειεπζεξψλεηαη,
ε 5kΧ αληίζηαζε pullup ζέηεη ηνλ 1-Wire δίαπιν ζε πςειή δηαθξηηή ζηάζκε. Όηαλ ν DS18B20
αληρλεχεη απηφ ηελ επεξρφκελε αιιαγή, πεξηκέλεη 15κs κε 60κs θαη ζηε ζπλέρεηα κεηαδίδεη έλαλ
παικφ παξνπζίαο ζέηνληαο ηνλ 1-Wire δίαπιν ζε ρακειή δηαθξηηή ζηάζκε γηα 60κs κε 240κs.
46
Δηθόλα 7. 13: Γηάγξακκα αιιεινπρίαο αξρηθνπνίεζεο.
7.21. ΢ήκαηα πξσηνθόιινπ 1-Wire
Ο DS18B20 ρξεζηκνπνηεί ην 1-Wire πξσηφθνιιν επηθνηλσλίαο γηα ηελ εμαζθάιηζε ηεο
αθεξαηφηεηαο ησλ δεδνκέλσλ. Σα είδε ζήκαηνο πνπ νξίδνληαη απφ ην παξφλ πξσηφθνιιν: παικφο
reset, παικφο παξνπζίαο, γξάςε 0, γξάςε 1, δηάβαζε 0, θαη λα δηάβαζε 1 (reset pulse, presence pulse,
write 0, write 1, read 0, read 1). Ο master μεθηλά φια απηά ηα ζήκαηα, κε εμαίξεζε ηνλ παικφ
παξνπζίαο.
7.22. Δληνιέο δηαρείξηζεο κλήκεο ROM
Δθφζνλ ε κνλάδα master έρεη εληνπίζεη έλαλ παικφ παξνπζίαο, κπνξεί λα δψζεη κηα εληνιή
ROM. Οη εληνιέο απηέο ιεηηνπξγνχλ ζε ζπλεξγαζία κε ηνπο κνλαδηθνχο 64-bit θψδηθεο ROM ηεο
θάζε κνλάδαο slave θαη επηηξέπεη ζηνλ master λα μερσξίζεη κηα ζπγθεθξηκέλε ζπζθεπή αλ πνιιέο
είλαη παξφληεο ζην δίαπιν 1-Wire. Οη εληνιέο απηέο επηηξέπνπλ επίζεο λα θαζνξηζηεί αλ θάπνηα
ζπζθεπή έρεη θαηάζηαζε ζπλαγεξκνχ. Τπάξρνπλ πέληε εληνιέο ROM, θαη θάζε εληνιή έρεη 8 bits
κήθνο.
Ολνκαζία
HEX
Σηκή
Πεξηγξαθή
SEARCH
ROM
F0h
Αλαδήηεζε
READ
ROM
33h
Αλάγλσζε
MATCH
ROM
55h
Σαπηνπνίεζε
SKIP ROM
CCh
Παξάιεςε
κλήκεο Rom
ALARM
SEARCH
ECh
Αλαδήηεζε
ζπλαγεξκνύ
Αλάιπζε
Με απηήλ ηελ εληνιή ε κνλάδα master ζαξψλεη ηνλ δίαπιν 1Wire θαηαγξάθεη ηνπο κνλαδηθνχο θσδηθνχο 64 bit θάζε slave
κνλάδαο. Όπνηε ε ρξήζε ησλ κνλάδσλ απνθηάεη πην
θαηαλεκεκέλε δνκή.
Απηή ε εληνιή κπνξεί λα ρξεζηκνπνηεζεί κφλνλ φηαλ ππάξρεη
έλαο slave ζην δίαπιν. Απηφ επηηξέπεη ζηνλ master ηνπ δηαχινπ
λα δηαβάζεη ηνλ 64-bit ROM θψδηθα ηνπ slave, ρσξίο λα
ρξεζηκνπνηεί ηε δηαδηθαζία ROM αλαδήηεζεο.
Η εληνιή απηή αθνινπζείηαη απφ έλαλ 64-bit θψδηθα ROM ε
αθνινπζία απηή επηηξέπεη ζηνλ master ηνπ δηαχινπ γηα ηελ
ηαπηνπνίεζε κηαο ζπγθεθξηκέλεο ζπζθεπήο slave ζε έλα
multidrop ή single-drop δίαπιν. Μφλν ν slave πνπ ηαηξηάδεη
αθξηβψο ζηνλ 64-bit θψδηθα ROM ηαπηνπνηείηαη θαη ελ ηέιεη
δέρεηαη εθ λένπ εληνιέο.
Ο master κπνξεί λα ρξεζηκνπνηήζεη απηή ηελ εληνιή γηα λα
ηαπηνπνίεζεη φιεο ηηο ζπζθεπέο ζην δίαπιν ηαπηφρξνλα, ρσξίο
λα ζηείιεη νπνηαδήπνηε δεδνκέλα θσδηθνχ ROM.
Η ιεηηνπξγία απηήο ηεο εληνιήο είλαη ηαπηφζεκε κε ηε
ιεηηνπξγία ηεο εληνιήο SEARCH ROM [F0h] εθηφο απφ ην φηη
κφλν νη slave κε εηδηθήο έλδεημε ζπλαγεξκνχ ζα αληαπνθξηζνχλ.
Απηή ε εληνιή επηηξέπεη ζηελ master ζπζθεπή λα πξνζδηνξίζεηε
εάλ θάπνηα slave ππέζηε θαηάζηαζε ζπλαγεξκνχ θαηά ηε
δηάξθεηα ηεο πην πξφζθαηεο κεηαηξνπήο ζεξκνθξαζίαο.
Πίλαθαο 6: Δληνιέο δηαρείξηζεο κλήκεο ROM.
47
7.23. Δληνιέο ιεηηνπξγηώλ ηνπ DS18B20
Αθ’ φηνπ ν master ηνπ δηαχινπ έρεη ρξεζηκνπνηήζεη κηα εληνιή ROM γηα ηελ ηαπηνπνίεζε
κηαο slave κε ηνλ νπνία επηζπκεί λα επηθνηλσλήζεη, κπνξεί λα δψζεη κηα απφ ηηο εληνιέο ιεηηνπξγίαο.
Οη εληνιέο απηέο επηηξέπνπλ ζηνλ master λα γξάςεη θαη λα δηαβάζεη απφ ηε κλήκε ηεο slave, λα
εθηειέζεη κεηαηξνπέο ζεξκνθξαζίαο φπσο θαη ηνλ θαζνξηζκφ ηνπ ηχπνπ παξνρήο ξεχκαηνο.
HEX
Σηκή
Πεξηγξαθή
44h
Μεηαηξνπή
(Θεξκνθξαζίαο
)Σ
READ
SCRATCHPAD
BEh
Αλάγλσζε
κλεκεο
WRITE
SCRATCHPAD
4Eh
Δγγξαθή
κλήκεο
COPY
SCRATCHPAD
48h
Αληηγξαθή
κλήκεο
RECALL E2
B8h
Αλάθιεζε E2
Ολνκαζία
CONVERT T
READ POWER
SUPPLY
B4h
Αλάγλσζε
ηάζεο
ηξνθνδνζίαο
Αλάιπζε
Ξεθηλά ηελ κεηαηξνπή ζεξκνθξαζίαο. Μεηά ηε
κεηαηξνπή, ηα πξνθχπηνληα ζεξκηθά δεδνκέλα
απνζεθεχνληαη ζηνλ θαηαρσξεηή 2 byte ζεξκνθξαζίαο
ζηε κλήκε θαη ε κνλάδα επηζηξέθεη ζε θαηάζηαζε
αδξάλεηαο ρακειήο ηζρχνο.
Απηή ε εληνιή επηηξέπεη ζηνλ master λα δηαβάζεη ην
πεξηερφκελν ηεο κλήκεο. Η κεηαθνξά ησλ δεδνκέλσλ
μεθηλά κε ην ιηγφηεξν ζεκαληηθφ bit ηνπ byte 0 θαη
ζπλερίδεη κέρξη ην 9ν byte (byte 8 - CRC).
Απηή ε εληνιή επηηξέπεη ζηνλ master λα γξάςεη 3 byte
δεδνκέλσλ ζηελ κλήκε ηνπ. Σν πξψην byte δεδνκέλσλ
πνπ εγγξάθεηαη ζηνλ θαηαρσξεηή ΣΗ (byte 2 ηεο
κλήκεο), ην δεχηεξν byte ζηνλ TL θαηαρσξεηή (byte 3
κλήκεο), θαη ην ηξίην byte γξάθεηαη ζηνλ θαηαρσξεηή
δηακφξθσζεο (byte 4 κλήκεο). ΢ηα δεδνκέλα ην
ιηγφηεξν ζεκαληηθφ bit πξέπεη λα δηαβηβάδεηαη πξψην.
Αληηγξάθεη ηα πεξηερφκελα ησλ θαηαρσξεηψλ ΣΗ, TL,
θαη ηεο δηακφξθσζεο δεδνκέλσλ απφ ηελ κλήκε ζηελ
EEPROM κλήκε.
Αλαθαιεί ηηο ηηκέο ησλ θαηαρσξεηψλ ΣΗ, TL, θαη ηεο
δηακφξθσζεο ησλ δεδνκέλσλ απφ ηελ EEPROM ζηελ
ζηελ κλήκε.
Η ζπζθεπή master απνζηέιιεη απηή ηελ εληνιή
αθνινπζνχκελε απφ κηα ρξνλνζρηζκή αλάγλσζεο γηα λα
θξηζεί εάλ ζην δίαπιν ρξεζηκνπνηνχλ θάπνηεο slave
κνλάδεο παξαζηηηθή ηξνθνδνζία
Πίλαθαο 7: Δληνιέο ιεηηνπξγηάο ηνπ DS18B20.
48
7.24. Αηζζεηήξαο πγξαζίαο Honeywell HIH-4030
Ο HIH-4030 κεηξά ηελ ζρεηηθή πγξαζία (% RH) θαη ζα παξέρεη, σο έμνδν αλαινγηθνχ εχξνπο
ηάζε. Υξεζηκνπνηεί ρσξεηηθά ζεξκνζθιεξπληηθά ζηνηρεία πςειήο αθξίβεηαο θαη ελζσκαηψλεη
θχθισκα επεμεξγαζίαο ζήκαηνο. Βαζίδεηαη ζηελ ειεθηξηθή ρσξεηηθφηεηα, ε ηθαλφηεηα δχν θνληηλψλ
ειεθηξηθψλ αγσγψλ λα δεκηνπξγνχλ έλα ειεθηξηθφ πεδίν κεηαμχ ηνπο. Ο αηζζεηήξαο απνηειείηαη
απφ δχν κεηαιιηθέο πιάθεο κε κε αγψγηκν θηικ πνιπκεξνχο22 κεηαμχ ηνπο. Σν θηικ ζπιιέγεη ηελ
πγξαζία απφ ηνλ αέξα θαη ε πγξαζία πνπ αληρλεχεη πξνθαιεί κηθξέο αιιαγέο ζηελ ηάζε κεηαμχ ησλ
δχν πιαθψλ. Οη αιιαγέο ζηελ ηάζε ζα κεηαηξαπνχλ ζε ςεθηαθέο ελδείμεηο δείρλεη ην πνζνζηφ ηεο
πγξαζίαο ζηνλ αέξα.
7.25. Υαξαθηεξηζηηθά:











Υπηφ ζεξκνζθιεξπληηθφ πιαζηηθφ πεξίβιεκα
΢ρεδφλ γξακκηθή απφθξηζε ηάζεο εμφδνπ αλά κνλάδα %RH (% ζρεηηθήο πγξαζίαο)
Υακειή θαηαλάισζε ησλ 200 κA,
Απμεκέλε αθξίβεηα ( ±3,5% θαη 0 έσο 100 %RH )
Υακειφο ρξφλνο απφθξηζεο ( 5s ) κε πζηέξεζε 3%
΢ηαζεξή επίδνζε , κεδακηλή αλάγθε γηα αλαξξχζκηζε
Αλζεθηηθφο ζε δηάθνξα ρεκηθά
΢πκβαηφο κε πνιινχο κηθξνειεγθηέο
Απαηηνπκέλε ηξνθνδνζία: 5 V
Θεξκνθξαζία ιεηηνπξγίαο: -40 έσο 90 ° C
Γηαζηάζεηο: 4,14 x 2,67 x 8,59 mm
Δηθόλα 7. 14: Ο HIH-4030 ζε breakout πιαθέηα.
7.26. Αξρή ιεηηνπξγίαο
Απηφ ην ζχζηεκα βαζίδεηαη ζηελ ειεθηξηθή ρσξεηηθφηεηα, ε ηθαλφηεηα δχν θνληηλψλ
ειεθηξηθψλ αγσγψλ (κεηαιιηθέο πιάθεο) λα δεκηνπξγνχλ ειεθηξηθφ πεδίνπ αλάκεζα ηνπο. Ο
αηζζεηήξαο απνηειείηαη απφ δχν κεηαιιηθέο πιάθεο κε κε αγψγηκν θηικ πνιπκεξνχο κεηαμχ ηνπο. Η
ηαηλία ζπιιέγεη ηελ πγξαζία απφ ηνλ αέξα. Η πγξαζία πξνθαιεί κηθξέο αιιαγέο ζηελ ηάζε κεηαμχ
ησλ δχν πιαθψλ. Οη αιιαγέο ζηελ ηάζε ζα κεηαηξαπνχλ ζε ςεθηαθέο ελδείμεηο πνπ δείρλνπλ ην πνζφ
ηεο πγξαζίαο ζηνλ αέξα.
22
είδνο πιαζηηθήο κεκβξάλεο κε πςειή αληνρή ζηηο δηαθπκάλζεηο ζεξκνθξαζίαο θαη ρακειή
απνξξνθεηηθφηεηα ζην λεξφ.
49
7.27. Υσξεηηθνί αηζζεηήξεο πγξαζίαο
Έλα ρσξεηηθφο αηζζεηήξαο πγξαζίαο ιεηηνπξγεί φπσο θαη νη πιάθεο ηνπ ππθλσηή. Πάλσ ζην
ρακειφηεξν ειεθηξφδην είλαη απισκέλν αγψγηκν ππφζηξσκα, ζπρλά έλα θεξακηθφ πιηθφ. Έλα ιεπηφ
πνιπκεξέο ζηξψκα πγξνζθνπηθφ ελεξγεί σο δηειεθηξηθφ, θαη πάλσ απφ απηφ είλαη ε πάλσ πιάθα, ε
νπνία ελεξγεί σο δεχηεξν ειεθηξφδην, αιιά ε νπνία επίζεο επηηξέπεη ζηνπο πδξαηκνχο λα πεξάζνπλ
κέζα απφ απηφ, ζην πνιπκεξέο. Σα κφξηα πδξαηκψλ ηνπ λεξνχ εηζέξρνληαη ή εμέξρνληαη απφ ην
πγξνζθνπηθφ πνιπκεξέο κέρξη ηελ πεξηεθηηθφηεηα ζε πδξαηκνχο λα είλαη ζε ηζνξξνπία κε ηνλ αέξα
ηνπ πεξηβάιινληνο ή ηνπ αεξίνπ. Η δηειεθηξηθή αληνρή ηνπ πνιπκεξνχο είλαη αλάινγε κε ηελ
πεξηεθηηθφηεηα ζε πδξαηκνχο. Με ηε ζεηξά ηεο ε δηειεθηξηθή αληνρή επεξεάδεη ηελ ρσξεηηθφηεηα, ε
νπνία κεηξάηαη δέρεηαη επεμεξγαζία γηα λα δψζεη ηελ ηηκή ηεο ζρεηηθήο πγξαζίαο.
Η αιιαγή ζηε ρσξεηηθφηεηα είλαη ζπλήζσο 0,2 κε 0,5 pF γηα 1% RH αιιαγή. Οη ρσξεηηθνί
αηζζεηήξεο ραξαθηεξίδνληαη απφ ρακειφ ζπληειεζηή ζεξκνθξαζίαο (temperature coefficient)23,
ηθαλφηεηα λα ιεηηνπξγνχλ ζε πςειέο ζεξκνθξαζίεο (έσο 200 ° C), ε πιήξεο αλάθακςε απφ ηε
ζπκπχθλσζε, θαζψο θαη εχινγε αλζεθηηθφηεηα ζε αηκνχο ρεκηθψλ. Οη ρσξεηηθνί αηζζεηήξεο
πεξηνξίδνληαη απφ ηελ απφζηαζε. Λφγσ ηεο ρσξεηηθήο επίδξαζεο ηνπ θαισδίνπ ζχλδεζεο ζε ζρέζε
κε ηηο ζρεηηθά κηθξέο κεηαβνιέο ρσξεηηθφηεηαο ηνπ αηζζεηήξα. Έλα πξαθηηθφ φξην είλαη <3 κέηξα.
7.28. Αληνρή θνληά ζην ζεκείν δξόζνπ
Οη ρσξεηηθνί αηζζεηήξεο παξέρνπλ δηαθξηηέο κεηαβνιέο ζήκαηνο ζε ρακειέο ηηκέο ζρεηηθήο
πγξαζίαο, παξακέλνπλ ζηαζεξνί ζε καθξνρξφληα ρξήζε, θαη έρνπλ ειάρηζηε νιίζζεζε. Οη ρσξεηηθνί
αηζζεηήξεο ζρεηηθήο πγξαζίαο αληρλεχνπλ άκεζα ηεο αιιαγέο ζηνλ ζρεηηθφ θνξεζκφ πνπ εκθαλίδεηαη
σο κεηαβνιή ηεο ρσξεηηθφηεηαο κε γξήγνξε απφθξηζε πςειή γξακκηθφηεηα ρακειή θαζπζηέξεζε
θαη άξηζηε ζηαζεξφηεηα ζην βάζνο ηνπ ρξφλνπ. Ο ζρεηηθφο θνξεζκφο είλαη ν ίδηνο φζν θαη ε ζρεηηθή
πγξαζία φηαλ ν αηζζεηήξαο βξίζθεηαη ζε ζεξκνθξαζία πεξηβάιινληνο. Καη επεηδή απηφ ζπκβαίλεη
ζπλήζσο ε θαηακέηξεζε ηεο ρσξεηηθφηεηαο ηνπ αηζζεηήξα καο παξέρεη ηε κεηαβνιή ζηελ ζρεηηθή
πγξαζία.
Οη ρσξεηηθνί αηζζεηήξεο ζρεηηθήο πγξαζίαο είλαη θπξίαξρνη ζε αηκνζθαηξηθέο θαη
βηνκεραληθέο κεηξήζεηο γηαηί είλαη νη κνλαδηθνί νη νπνίνη κπνξνχλ λα κεηξήζνπλ ην πιήξεο θάζκα
ησλ κεηαβνιψλ ηεο πγξαζίαο, κε ρακειέο απψιεηεο ιφγσ ζεξκηθψλ θαηλνκέλσλ.
7.29. Ιδηαίηεξα ραξαθηεξηζηηθά ηνπ ΗΙΗ-4030
Απνηειείηαη απφ έλα ππφζηξσκα πάλσ ζην νπνίν έλα ιεπηφ ζηξψκα ηνπ πνιπκεξνχο πνπ έρεη
ηνπνζεηεζεί αλάκεζα ζε δχν ειεθηξφδηα αγσγηκφηεηαο. Η πάλσ κεηαιιηθή επηθάλεηα είλαη
επηθαιπκκέλε κε έλα πνξψδεο κεηαιιηθφ ειεθηξφδην γηα λα ην πξνζηαηεχζεη απφ ηε κφιπλζε θαη ηελ
έθζεζε ζε ζπκπχθλσζε. Σν ππφζηξσκα είλαη ππξηηίνπ. Η ζηαδηαθή αιιαγή ηεο δηειεθηξηθήο
ζηαζεξάο ελφο ρσξεηηθφ αηζζεηήξα πγξαζίαο είλαη ζρεδφλ επζέσο αλάινγε πξνο ηελ ζρεηηθή πγξαζία
ηνπ πεξηβάιινληνο ρψξνπ.
Δηθόλα 7. 15: Βαζηθή δνκή αηζζεηήξα.
23
ζπληειεζηήο κεηαβνιήο αληίζηαζεο αλά βαζκφ κεηαβνιήο ζεξκνθξαζίαο.
50
7.30. Θεξκνζθιεξπληηθό πεξίβιεκα
Σν ζεξκνζθιεξπληηθφ πιαζηηθφ είλαη έλα είδνπο πνιπκεξνχο πιηθνχ η’ νπνίν ε ζθιήξπλζε
ηνπ είλαη κε αλαζηξέςηκε. Σα ζεξκνζθιεξπληηθά είλαη γεληθά αλζεθηηθφηεξα απφ ηα ζεξκνπιαζηηθά
πιηθά ιφγσ ηεο ηξηζδηάζηαηεο δνκήο ησλ κνξίσλ ηνπ , πνπ ζπλζέηνπλ έλα «δίθηπν δεζκψλ». Δπίζεο
είλαη θαηαιιειφηεξα γηα εθαξκνγέο κε πςειέο ζεξκνθξαζίεο πεξηβάιινληνο.
7.31. Τςειή γξακκηθόηεηα θαη επηδόζεηο
Ο αηζζεηήξαο ΗΙΗ-4030 παξνπζηάδεη ηδηαίηεξα γξακκηθή απφθξηζε ζηε ηάζε εμφδνπ,
ηδηφηεηα πνπ καο εγγπάηαη αθξίβεηα ζηηο κεηξήζεηο ιφγν ρακειψλ δηαθπκάλζεσλ. Δπίζεο ε απφδνζε
ηνπ παξακέλεη ζηαζεξή γηα ζεξκνθξαζίεο κεηαμχ 0 θαη 50 o C.
Δηθόλα 7. 16: Σάζε εμόδνπ ζε ζπλάξηεζε κε ηελ ζρεηηθή πγξαζία ζηνπο 0 ° C. 70 ° C θαη 5 V.
Δηθόλα 7. 17: Σάζε εμόδνπ ζε ζπλάξηεζε κε ηελ ζρεηηθή πγξαζία ζηνπο 25 ° C θαη 5 V.
51
Δηθόλα 7. 18: Οη επηδόζεηο ζε δηαθνξεηηθέο πεξηνρέο ζεξκνθξαζίαο.
52
7.32. Αηζζεηήξαο PIR Parallax 555 - 280227
Ο PIR αηζζεηήξαο (Passive Infra-Red κεη: Τπεξχζξνπ Παζεηηθφο) είλαη κηα ππξνειεθηξηθή
ζπζθεπή24 πνπ αληρλεχεη θίλεζε απφ ηελ κέηξεζε ησλ κεηαβνιψλ ζηα επίπεδα ηεο ππέξπζξεο
αθηηλνβνιίαο (ζεξκφηεηα) πνπ εθπέκπνληαη απφ ηα γχξσ αληηθείκελα. Η θίλεζε κπνξεί λα αληρλεπηεί
ειέγρνληαο γηα κηα μαθληθή αιιαγή ζηα κνηίβα ηεο ππέξπζξεο αθηηλνβνιίαο γχξσ απφ ηνλ
αηζζεηήξα. Όηαλ αληρλεπηεί θίλεζε απφ ηνλ αηζζεηήξα , παξάγεη έμνδν πςειήο δηαθξηηήο ζηάζκεο25
ζην pin εμφδνπ. Απηφ ην ζήκα δηαθξηηήο ζηάζκεο κπνξεί λα δηαβαζηεί απφ έλα κηθξνειεγθηή θαη
πεξεηαίξσ λα αλαιπζεί θαη λα ρξεζηκνπνηεζεί.
7.33.









Υαξαθηεξηζηηθά:
Δχξνο αλίρλεπζεο κέρξη 6 κέηξα
Έμνδνο ελφο bit πςειή / ρακειή δηαθξηηήο ηηκήο
Jumper επηινγήο κνλήο ή ζπλερφκελεο εμφδνπ (ζε bit)
3-pin SIP πξνζαξκνγέα πνπ είλαη έηνηκν γηα breadboard
Μηθξφ κέγεζνο
΢πκβαηφ κε πνιινχο κηθξνειεγθηέο
Απαηηνπκέλε ηξνθνδνζία: 3,3 - 5 VDC> 3 mA
Θεξκνθξαζία ιεηηνπξγίαο: 0 έσο 50 ° C
Γηαζηάζεηο: 32,2 x 24,3 x 25,4 mm
Δηθόλα 7. 19: Ο αηζζεηήξαο PIR ζηεγάδεηαη ζε έλα εξκεηηθά ζθξαγηζκέλν κεηαιιηθό θέιπθνο ώζηε ν
ζόξπβνο, ζεξκνθξαζία θαη ε πγξαζία λα κελ ην επεξεάδεη.
7.34.
Πεξηγξαθή ησλ pin
Pin
Όλνκα
Λεηηνπξγία
-
GND
Γείσζε 0 V
+
Vin
Δίζνδνο 3.3 to 5 VDC
OUT(Signal)
Έμνδνο Έμνδνο ζε κηθξνειεγθηή
Πίλαθαο 8: Σα pin ηνπ PIR Parallax 555 - 280227.
24
25
ε ηθαλφηεηα νξηζκέλσλ πιηθψλ λα δεκηνπξγνχλ πξνζσξηλή ηάζε φηαλ ζεξκαίλνληαη ή ςχρνληαη
αθνινπζία ζην πεδίν ηνπ ρξφλνπ δηαθξηηψλ αθεξαίσλ ηηκψλ πνπ θαζέλα απ’ απηά νλνκάδεηαη δείγκα
53
7.35.
Ρύζκηζε jumper
΢ύκβνιν
H
L
Πεξηγξαθή
Έμνδνο παξακέλεη ζε πςειή δηαθξηηή ζηάζκε φηαλ έρνπκε ζπλερφκελε αλίρλεπζε
θίλεζεο. Έμνδνο ζε ρακειή δηαθξηηή ζηάζκε ( απνπζία θίλεζεο ).
Έμνδνο ελαιιάζζεηαη κεηαμχ πςειήο θαη ρακειήο δηαθξηηήο ζηάζκεο φηαλ έρνπκε
αλίρλεπζε θίλεζεο. ΢πλερφκελε αλίρλεπζε θίλεζεο πξνθαιεί επαλαιακβαλνκέλνπο
παικνχο πςειήο \ ρακειήο ζηάζκεο. Έμνδνο ζε ρακειή δηαθξηηή ζηάζκε.
Πίλαθαο 9: Οη ζέζεηο ηνπ jumper ξπζκίζεσλ ηνπ HIH-4030.
7.36. Θεσξία ιεηηνπξγίαο
Ππξνειεθηξηθέο ζπζθεπέο, φπσο ν αηζζεηήξαο PIR, πεξηέρνπλ ζηνηρεία πνπ θαηαζθεπάδνληαη
απφ θξπζηαιιηθφ πιηθφ πνπ παξάγεη ειεθηξηθφ θνξηίν φηαλ εθηίζεηαη ζε ππέξπζξε αθηηλνβνιία. Οη
αιιαγέο ζην πνζφ ηεο ππέξπζξεο πνπ πξνζπίπηνπλ ζην ζηνηρείν αιιάδνπλ ηελ ηάζε πνπ
δεκηνπξγείηαη θαη πνπ κεηξψληαη απφ έλαλ εληζρπηή πνπ ππάξρεη ζηελ πιαθέηα. Η ζπζθεπή πεξηέρεη
έλα εηδηθφ θίιηξν πνπ νλνκάδεηαη θαθφο Fresnel, ν νπνίνο επηθεληξψλεη ηα ππέξπζξα ζήκαηα πάλσ
ζην ζηνηρείν. Καζψο ηα ππέξπζξα ζήκαηα ηνπ πεξηβάιινληνο αιιάδνπλ γξήγνξα, ν εληζρπηήο πνπ
ππάξρεη ζηελ πιαθέηα ηξνθνδνηεί ηελ έμνδν γηα λα δείμεη θίλεζε.
Ο αηζζεηήξαο PIR έρεη δχν ππνδνρέο , θάζε ππνδνρή είλαη θαηαζθεπαζκέλε απφ εηδηθφ πιηθφ
πνπ είλαη επαίζζεηα ζηελ ππέξπζξε αθηηλνβνιία. Όηαλ ν αηζζεηήξαο είλαη ζε θαηάζηαζε αδξάλεηαο,
νη δχν ππνδνρέο αληρλεχνπλ ην ίδην πνζφ ππέξπζξεο αθηηλνβνιίαο πνπ αθηηλνβνιείηαη απφ ην δσκάηην
ή ηνίρνπο ή ζε εμσηεξηθνχο ρψξνπο. Όηαλ έλα ζεξκφ ζψκα φπσο έλαο άλζξσπνο ή έλα δψν πεξάζεη ,
ην πξψην κηζφ ηνπ αηζζεηήξα PIR ( ε κηα ππνδνρή ), ζα αληρλεχζεη κηα ζεηηθή ( ηάζεο ) αιιαγή
δηαθνξά κεηαμχ ησλ ππνδνρψλ. Όηαλ ην ζεξκφ ζψκα απνκαθξπλζεί απφ ηελ πεξηνρή αλίρλεπζεο, ην
αληίζεην ζπκβαίλεη, ζχκθσλα κε ην νπνίν ν αηζζεηήξαο παξάγεη κηα αξλεηηθή κεηαβνιή ηάζεο. Απηέο
νη αιιαγέο ζηηο ππνδνρέο είλαη ην ζηνηρεηφ πνπ καο απνδεηθλχεη φηη έρεη εληνπίζεη θίλεζε ν
αηζζεηήξαο.
Δηθόλα 7. 20: Βαζηθό ζρήκα ηεο αξρήο ιεηηνπξγίαο.
54
7.37. Αλάιπζε ηεο ζεσξίαο ιεηηνπξγίαο
«Όια ηα αληηθείκελα εθπέκπνπλ αθηηλνβνιία , γλωζηή ωο αθηηλνβνιία κέιαλ ζώκαηνο.»
Μέιαλ ζώκα: έλα ηδαληθφ ζψκα πνπ δελ αληαλαθιά θαζφινπ θσο (ή άιιεο κνξθήο
ειεθηξνκαγλεηηθή αθηηλνβνιία) νχηε αθήλεη ην θσο λα ην δηαπεξάζεη. Χζηφζν ην ίδην ην ζψκα
εθπέκπεη θάπνηα αθηηλνβνιία, ε νπνία εμαξηάηαη απφ ηελ ζεξκνθξαζία ζηελ νπνία βξίζθεηαη.
Σν θπζηθφ «αληηθείκελν» πνπ πξνζεγγίδεη θαιχηεξα ην κέιαλ ζψκα, δελ είλαη θαλ ζψκα,
αιιά κηα κηθξή νπή ζε έλα θνίιν ζψκα (φπσο π.ρ. ε είζνδνο κηαο ζπειηάο). Σν θσο πνπ κπαίλεη κέζα
ζηελ θνηιφηεηα απφ ηελ νπή ζα αλαθιαζηεί πνιιέο θνξέο πάλσ ζηα ηνηρψκαηα ηεο θνηιφηεηαο θαη
θάζε θνξά έλα κέξνο ηνπ ζα απνξξνθάηαη απφ απηά. Η πηζαλφηεηα γηα έλα ηκήκα ηεο αθηηλνβνιίαο
πνπ κπήθε κέζα ζηελ θνηιφηεηα απφ ηελ νπή λα μαλαβγεί απφ απηήλ είλαη πνιχ κηθξή, αλ ε νπή είλαη
αξθεηά κηθξή ζε ζρέζε κε ηελ θνηιφηεηα, πξάγκα πνπ ζεκαίλεη φηη κφλν έλα πνιχ κηθξφ κέξνο απφ
ην πξνζπίπηνλ θσο «αλαθιάηαη» απφ ηελ νπή, ελψ ην ππφινηπν έρεη απνξξνθεζεί. Απηφ ζπκβαίλεη
αλεμάξηεηα απφ ην πιηθφ ησλ ηνηρσκάησλ θαη ην κήθνο θχκαηνο ηεο πξνζπίπηνπζαο αθηηλνβνιίαο,
δηφηη, θαζψο ηα ζηεξεά ζψκαηα έρνπλ ζπλερέο θάζκα εθπνκπήο θαη απνξξφθεζεο, φια ηα κήθε
θχκαηνο ζηαδηαθά ζα απνξξνθεζνχλ. Γεδνκέλνπ φηη ην θσο πνπ παίξλνπκε πίζσ είλαη ακειεηέν, ε
κφλε αθηηλνβνιία πνπ ζα παίξλνπκε απφ ηελ νπή είλαη ε ζεξκηθή αθηηλνβνιία πνπ παξάγεηαη ζην
εζσηεξηθφ ηεο θνηιφηεηαο θαη εμαξηάηαη κφλν απφ ηελ ζεξκνθξαζία ηεο, ππφ ηελ πξνυπφζεζε φηη
απηή βξίζθεηαη ζε ζεξκηθή ηζνξξνπία.
Δηθόλα 7. 21: Σν θσο πνπ εηζέξρεηαη ζηελ θνηιόηεηα από κηα κηθξή νπή, έπεηηα από πνιιαπιέο
αληαλαθιάζεηο απνξξνθάηαη ζρεδόλ νινθιεξσηηθά από ηα ηνηρώκαηα.
Ο παζεηηθφο αηζζεηήξαο ππεξχζξσλ (Passive InfaRed) είλαη κηα ειεθηξνληθή ζπζθεπή πνπ
κεηξά ην θσο ζην θάζκα ηνπ ππέξπζξνπ πνπ αθηηλνβνιείηαη απφ ηα αληηθείκελα ζην νπηηθφ πεδίν ηεο.
H ππέξπζξε αθηηλνβνιία είλαη αφξαηε ζην αλζξψπηλν κάηη αιιά κπνξεί λα αληρλεπζεί απφ
θαηάιιειεο ειεθηξνληθέο ζπζθεπέο. Η ζεκαζία ηνπ φξνπ παζεηηθφο ζε απηήλ ηελ πεξίπησζε
ζεκαίλεη φηη ν αηζζεηήξαο PIR δελ εθπέκπεη ππέξπζξε αθηίλα αιιά κφλν παζεηηθά δέρεηαη ηελ
εηζεξρφκελε ππέξπζξε αθηηλνβνιία. Γελ έρνπκε ηελ δπλαηφηεηά λα ην αληρλεχζνπκε νπηηθά πέξα απφ
ην θφθθηλν επεηδή απηφ ην ρξψκα αληηπξνζσπεχεη ην ρακειφηεξν ελεξγεηαθφ επίπεδν πνπ ηα κάηηα
καο κπνξνχλ λα αηζζαλζνχλ πξνηνχ λα γίλεη αφξαην. Καηά ζπλέπεηα, ηα ππέξπζξα ζήκαηα θάησ απφ
ην ελεξγεηαθφ επίπεδν ηνπ θφθθηλνπ ρξψκαηνο είλαη αφξαηα θαη ρξεηαδφκαζηε ηνλ PIR.
55
7.38.
Φαθόο Fresnel
Γηα λα γίλεη πην απνδνηηθή ε αλίρλεπζε ηεο θίλεζεο γίλεηαη ρξήζε ελφο εηδηθνχ θαθνχ ηνπ
Fresnel.Ο θαθφο Fresnel κεηψλεη ηελ πνζφηεηα ηνπ πιηθνχ πνπ απαηηείηαη ζε ζχγθξηζε κε έλα
ζπκβαηηθφ ζθαηξηθφ θαθφ δηαηξψληαο ην θαθφ ζε έλα ζχλνιν νκφθεληξσλ δαθηπιηνεηδψλ ηκεκάησλ
γλσζηά σο «δψλεο Fresnel», ηα νπνία είλαη ζεσξεηηθά απεξηφξηζηεο. ΢ε θάζε κία απφ απηέο ηηο δψλεο,
ην ζπλνιηθφ πάρνο ηνπ θαθνχ κεηψλεηαη, δηαηξψληαο ηε ζπλερή επηθάλεηα ελφο θαλνληθνχ θαθνχ ζε
κηα ζεηξά επηθαλεηψλ ηεο ίδηαο θακππιφηεηαο, δεκηνπξγψληαο έηζη ζηαδηαθή αζπλέρεηα κεηαμχ ηνπο.
΢ηελ πξαγκαηηθφηεηα έλαο θαθφο Fresnel κπνξεί λα ζεσξεζεί σο κηα ζεηξά απφ πξίζκαηα
ηνπνζεηεκέλα ζε θχθιν, κε ην πην απφηνκν απφ ηα πξίζκαηα ζηηο άθξεο θαη κηα
ζρεδφλ επίπεδε θπξηφηεηα ζην θέληξν.
Δηθόλα 7. 22: Δδώ θαίλεηαη πσο ην θάζε πξίζκα επηθέξεη ζύγθιηζε ζην ίδην ζεκείν.
Οη θαθνί Fresnel είλαη ζπλήζσο απφ γπαιί ή πιαζηηθφ: ην κέγεζφο ηνπο πνηθίιιεη απφ
κεγάινπο (παιηνχο ηζηνξηθνχο θάξνπο, ζην κέγεζνο ελφο κέηξνπ) , κέζν κέγεζνο ( πξνβνιείο OHP ),
κηθξφ κέγεζνο (νζφλεο TLR / SLR θσηνγξαθηθήο κεραλήο). ΢ε πνιιέο πεξηπηψζεηο είλαη πνιχ ιεπηνί
θαη επίπεδνη, ζρεδφλ επιχγηζηνη , κε πάρνο απφ 1 έσο 5 ρηιηνζηά θάζκα.
7.39. Φαθόο Fresnel ηύπνπ NL-11NH
Ο θαθφο Fresnel πνπ ππάξρεη ζηνλ PIR αηζζεηήξα είλαη ηχπνπ NL-11NH είλαη
θαηαζθεπαζκέλνο απφ πςειήο ππθλφηεηαο πνιπαηζπιέλην έρεη 17 νπηηθέο δψλεο, εζηηαθφ κήθνο26
12,9 ρηιηνζηά θαη ζεξκνθξαζία ιεηηνπξγίαο: απφ -20 έσο +70 ° C.
Δηθόλα 7. 23: Όςεηο ηνπ θαθνύ Fresnel NL-11NH.
26
κέηξν γηα ην πφζν έληνλα ζπγθιίλεη (εζηίαζε) ή απνθιίλεη (δηαζθνξπίδεη) ην θσο έλαο θαθφο. Έλαο θαθφο κε
κηθξφ εζηηαθφ κήθνο έρεη κεγαιχηεξε νπηηθή δχλακε απφ έλαλ κε έλα κεγάιν εζηηαθφ κήθνο
56
7.40.
Οπηηθό πεδίν θαθνύ
Δηθόλα 7. 24: Γηαγξάκκαηα ηεο πιάγηαο νπηηθήο θαη θάηνςεο ηνπ θαθνύ Fresnel NL-11NH.
Δηθόλα 7. 25: Πεξηνρέο θαη εύξνο θάιπςεο ζε δηάθνξα ζεκεία πξνζάξηεζεο.
57
7.41. Δπηπιένλ πιεξνθνξίεο
Ππξνειεθηξηθέο ζπζθεπέο, φπσο ν αηζζεηήξαο PIR, πεξηέρνπλ ζηνηρεία πνπ θαηαζθεπάδνληαη
απφ θξπζηαιιηθφ πιηθφ πνπ παξάγεη ειεθηξηθφ θνξηίν φηαλ εθηίζεηαη ζε ππέξπζξε αθηηλνβνιία. Οη
αιιαγέο ζην πνζφ ηεο ππέξπζξεο πνπ πξνζπίπηνπλ ζην ζηνηρείν αιιάδνπλ ηελ ηάζε πνπ
δεκηνπξγείηαη θαη πνπ κεηξψληαη απφ έλαλ εληζρπηή πνπ ππάξρεη ζηνλ αηζζεηήξα PIR. Η ζπζθεπή
πεξηέρεη έλα εηδηθφ θίιηξν πνπ νλνκάδεηαη θαθφο Fresnel, ν νπνίνο επηθεληξψλεη ηα ππέξπζξα ζήκαηα
πάλσ ζην ζηνηρείν. Καζψο ηα ππέξπζξα ζήκαηα ηνπ πεξηβάιινληνο αιιάδνπλ γξήγνξα, ν εληζρπηήο
πνπ ππάξρεη ζηελ πιαθέηα ηξνθνδνηεί ηελ έμνδν γηα λα καο δείμεη ηελ αλίρλεπζε θίλεζεο.
7.42.
Βαζκνλόκεζε
Ο αηζζεηήξαο PIR απαηηεί «ρξφλν πξνζέξκαλζεο» , πξνθεηκέλνπ λα ιεηηνπξγήζεη ζσζηά.
Απηφ νθείιεηαη ζην ρξφλν πνπ απαηηείηαη γηα ηελ «κάζεζε», ηνπ πεξηβάιινληνο ηνπ. Απηφ κπνξεί λα
δηαξθέζεη απφ 10 έσο 60 δεπηεξφιεπηα. ΢ε απηφ ην δηάζηεκα ζα πξέπεη λα ππάξρεη φζν ην δπλαηφλ
ιηγφηεξε θίλεζε ζηνλ νπηηθφ πεδίν αηζζεηήξα.
58
59
8. Δηζαγσγή ζηα αζύξκαηα ηνπηθά δίθηπα
Έλα αζχξκαην ηνπηθφ δίθηπν (WLAN: Wireless Local Area Network) είλαη έλα ζχζηεκα
επηθνηλσλίαο, ην νπνίν θαζηζηά δπλαηή ηελ δηαζχλδεζε θηλεηψλ ή αθίλεησλ ρξεζηψλ (θαη ηελ
κεηαθνξά δεδνκέλσλ) κέζσ ειεθηξνκαγλεηηθψλ θπκάησλ. Η ζπλεζηζκέλε αθηίλα δξάζεο ελφο
ηέηνηνπ δηθηχνπ κπνξεί λα εθηείλεηαη ζε αξθεηά κέηξα, είλαη επίζεο ηθαλή λα ζπλδέζεη ηνπο νξφθνπο
κηαο εηαηξίαο κέρξη θαη ηα θηίξηα κηαο παλεπηζηεκηνχπνιεο.
Δηθόλα 8. 1: Έλα ηππηθό WLAN.
Απνηειεί έλα αζχξκαην ηξφπν δηαζχλδεζεο, ελψ δίλεη ηελ δπλαηφηεηα ζχλδεζεο θαη κε ην
Internet. Οη αζχξκαηεο ηερλνινγίεο πξφζβαζεο ρξεζηκνπνηνχληαη γηα λα αληηθαηαζηήζνπλ ή λα
επεθηείλνπλ έλα θνηλφ ελζχξκαην δίθηπν (Ethernet) θαη επηηξέπνπλ ζηνλ θηλεηφ ρξήζηε ηελ αζχξκαηε
κεηάδνζε θαη ιήςε δεδνκέλσλ.
8.1.
Σν πξόηππν ΙΔΔΔ 802.11
IEEE 802.11 είλαη έλα ζχλνιν πξνηχπσλ πνπ πινπνίεη επηθνηλσλία ππνινγηζηψλ κέζσ
αζχξκαησλ ηνπηθψλ δηθηχσλ (WLAN) ζηηο πεξηνρέο ησλ 2,4, 3,6 θαη 5 Ghz. Έρνπλ δεκηνπξγεζεί θαη
ζπληεξνχληαη απφ ηελ επηηξνπή πξνηχπσλ IEEE LAN / MAN (IEEE 802). ΢ηε βαζηθή έθδνζε ηνπ
πξνηχπνπ IEEE 802.11-2007 ππάξρνπλ θαη κεηαγελέζηεξεο ηξνπνπνηήζεηο. Σα πξφηππα απηά
παξέρνπλ ηε βάζε γηα ηελ αλάπηπμε πξντφλησλ αζχξκαηεο δηθηχσζεο, ρξεζηκνπνηψληαο ηελ Wi-Fi
εκπνξηθή επσλπκία.
8.2.
Οη βαζηθέο ηνπ κνλάδεο ηνπ 802.11
Σα αζχξκαηα δίθηπα 802.11 απνηεινχληαη απφ ηηο παξαθάησ ηέζζεξηο βαζηθέο κνλάδεο:
 ΢εκείν πξόζβαζεο (Access Point - AP): Σν AP είλαη ε κνλάδα πνπ παίδεη ην ξφιν γέθπξαο
κεηαμχ ηνπ ελζχξκαηνπ θαη ηνπ αζχξκαηνπ δηθηχνπ, κεηαηξέπνληαο θαηάιιεια ηα πιαίζηα
πνπ αληαιιάζζνληαη κεηαμχ απηψλ.
 ΢ύζηεκα δηαλνκήο (Distribution System): Σν ζχζηεκα δηαλνκήο ελψλεη ηα δηάθνξα AP ηνπ
ίδηνπ δηθηχνπ, επηηξέπνληάο ηνπο λα αληαιιάζζνπλ πιαίζηα. Σν 802.11 δελ πξνζδηνξίδεη ηνλ
ηξφπν πνπ ζα γίλεηαη απηφ.
 Αζύξκαην κέζν κεηάδνζεο (Wireless Medium): Έρνπλ νξηζηεί δηάθνξα θπζηθά ζηξψκαηα
πνπ ρξεζηκνπνηνχλ, είηε ξαδηνζπρλφηεηεο, είηε ππέξπζξεο αθηίλεο γηα ηε κεηάδνζε ησλ
πιαηζίσλ κεηαμχ ησλ ζηαζκψλ ηνπ αζχξκαηνπ δηθηχνπ.
 ΢ηαζκνί (Stations): Οη ζηαζκνί πνπ αληαιιάζζνπλ πιεξνθνξία κέζσ ηνπ αζπξκάηνπ
δηθηχνπ ζπλήζσο είλαη θνξεηέο ζπζθεπέο (γηα παξάδεηγκα laptops ή PDAs) ρσξίο φκσο απηφ
λα είλαη απαξαίηεην.
60
«Τν πξόηππν 802.11 κέζω ζηνίβαο πξωηνθόιιωλ παξέρεη ηε ιεηηνπξγία MAC θαη PHY γηα ηελ
αζύξκαηε ζύλδεζε ζηαζεξώλ, θνξεηώλ, θαη θηλνύκελωλ ζηαζκώλ ζε µηα δεδνκέλε πεξηνρή.»
Δηθόλα 8. 2: ΢ηνίβα πξσηνθόιινπ ΙΔΔΔ 802.11.
8.3.
Η ηνπνινγία ηνπ 802.11
Η βαζηθή δνκηθή κνλάδα θάζε 802.11 δηθηχνπ απνθαιείηαη Basic Service Set (BSS) θαη
απνηειείηαη απφ κία νκάδα ζηαζκψλ πνπ επηθνηλσλνχλ κεηαμχ ηνπο. Σα φξηα ηνπ BSS θαζνξίδνληαη
απφ ηελ πεξηνρή ξαδηνθάιπςεο, πνπ νλνκάδεηαη Basic Service Area (BSA). Έλαο ζηαζκφο ζε έλα
BSS κπνξεί λα επηθνηλσλεί κε νπνηνλδήπνηε άιιν ζηαζκφ ζην ίδην BSS.
Η ηνπνινγία ηνπ 802.11 απνηειείηαη απφ ζηνηρεία πνπ αιιειεπηδξνχλ ψζηε λα παξέρνπλ έλα
αζχξκαην ηνπηθφ δίθηπν, πνπ λα παξέρεη ηε δπλαηφηεηα κεηαθίλεζεο ησλ ζηαζκψλ, ε νπνία λα κελ
γίλεηαη αληηιεπηή απφ ηα αλψηεξα ζηξψκαηα. Έλαο ζηαζκφο (station), είλαη θάζε ζπζθεπή ε νπνία
εκπεξηέρεη ηηο ιεηηνπξγίεο ηνπ 802.11, δειαδή ην επίπεδν MAC, ην θπζηθφ ζηξψκα θαη κηα
δηαζχλδεζε (interface) κε ην αζχξκαην κέζν.
BSS: Σν βαζηθφ δνκηθφ ζηνηρείν ελφο IEEE 802.11 LAN είλαη ην BBS (Basic Service Set
βαζηθφ ζχλνιν ππεξεζηψλ). Σν (BSS) είλαη ην ζχλνιν φισλ ησλ ζηαζκψλ πνπ κπνξνχλ λα
επηθνηλσλνχλ κεηαμχ ηνπο.
IBSS: Ο πην βαζηθφο ηχπνο ελφο 802.11 LAN είλαη ην IBSS (Independent BSS), φπνπ δχν ή
πεξηζζφηεξνη ζηαζκνί κπνξνχλ λα επηθνηλσλνχλ απεπζείαο κεηαμχ ηνπο.
ESS: Όηαλ νη αλάγθεο ηεο δηαδηθηχσζεο μεπεξλνχλ ηα φξηα ηνπ IBSS, ην 802.11 θαζνξίδεη ηε
δνκή ελφο πην ζχλζεηνπ ηνπηθνχ δηθηχνπ πνπ νλνκάδεηαη ESS (Extended Service Set) θαη ζην
νπνίν είλαη δπλαηή ε δηαζχλδεζε θαη ε επηθνηλσλία πνιιψλ BSS κεηαμχ ηνπο. Σν ζηνηρείν
πνπ ρξεζηκνπνηείηαη γηα ηελ δηαζχλδεζε ησλ BSS νλνκάδεηαη DS (Distributed System). H
πξφζβαζε ζην DS γίλεηαη κε ηελ βνήζεηα ελφο ζηαζκνχ πνπ θαιείηαη AP (Access Point) θαη ν
νπνίνο παξέρεη νπζηαζηηθά ηε δηαζχλδεζε ησλ ζηαζκψλ πνπ βξίζθνληαη ζε δηάθνξα BSS ζην
DS.
8.4.
Σύπνη θίλεζεο ζηαζκώλ
Σν 802.11 αλαγλσξίδεη ηνπο παξαθάησ ηχπνπο θίλεζεο ζηαζκψλ:
Απνπζία κεηαθίλεζεο: Ο ηχπνο απηφο αλαθέξεηαη ζε ζηαζκνχο πνπ δελ κεηαθηλνχληαη θαη ζε
απηνχο πνπ κεηαθηλνχληαη κέζα ζε έλα ηνπηθφ BSS.
61
BSS κεηαθίλεζε: Ο ηχπνο απηφο αλαθέξεηαη ζε ζηαζκνχο πνπ κεηαθηλνχληαη απφ έλα BSS ζε
έλα άιιν BSS κέζα ζην ίδην ESS.
ESS κεηαθίλεζε: Απηφο ν ηχπνο κεηαθίλεζεο αλαθέξεηαη ζε ζηαζκνχο πνπ κεηαθηλνχληαη απφ
έλα BSS ζε έλα άιιν BSS ην νπνίν αλήθεη ζε δηαθνξεηηθφ ESS.
Αμίδεη λα αλαθέξνπκε φηη ην 802.11 ελψ ππνζηεξίδεη μεθάζαξα ηνπο δχν πξψηνπο ηχπνπο
κεηαθίλεζεο, δελ εγγπάηαη ηελ δηαηήξεζε ηεο ζχλδεζεο θαηά ηελ κεηαθίλεζε ζε δηαθνξεηηθφ ESS.
8.5.
Μεραληζκνί ιεηηνπξγίαο
Σν 802.11 ππνζηεξίδεη δχν ηξφπνπο ιεηηνπξγίαο:
Οκόηηκα ή Ad Hoc: φπνπ δελ ππάξρεη θάπνηνο θεληξηθφο ζηαζκφο βάζεο ή ζεκείν
πξφζβαζεο, νη θφκβνη είλαη ηζφηηκνη θαη ε πξφζβαζε ζην θνηλφ κέζν (ηνλ θελφ ρψξν)
ξπζκίδεηαη απφ θάπνην θαηαλεκεκέλν πξσηφθνιιν φπσο ην CSMA/CA.
Με ζεκείν πξόζβαζεο: έλαλ θεληξηθφ θφκβν ηνπηθνχ δηθηχνπ δειαδή, ζπλήζσο
ζπλδεδεκέλν ζε ελζχξκαην δίθηπν θνξκνχ (π.ρ. ζην Internet ή ζε θάπνην κεγάιν Ethernet
LAN).
Καη ζηηο δχν ηερληθέο ππνζηεξίδνληαη ξπζκνί κεηάδνζεο 1 θαη 11Mbps ζηελ δψλε ζπρλνηήησλ
2.4 - 2.4835GHz ζε κηθξέο απνζηάζεηο. Έλα άιιν ελδηαθέξνλ ζεκείν ζηελ πεξίπησζε ησλ
αζχξκαησλ δηθηχσλ είλαη ε ζπκβαηφηεηα ησλ δηαθφξσλ ζπζθεπψλ.
8.6.
Η αξρηηεθηνληθή ηνπ 802.11
Δλψ ε ηνπνινγία θαζνξίδεη ηα αλαγθαία κέζα γηα ηε θπζηθή δηαζχλδεζε ηνπ αζχξκαηνπ
δηθηχνπ, ε αξρηηεθηνληθή θαζνξίδεη ηνλ ηξφπν ιεηηνπξγίαο ηνπ δηθηχνπ. Έηζη, ε αξρηηεθηνληθή ηνπ
802.11 ε νπνία εθαξκφδεηαη ζε θάζε ζηαζκφ, απνηειείηαη απφ έλα ππφζηξσκα MAC θαη ην ζηξψκα
PHY (θπζηθφ).
8.7.
Σν ππόζηξσκα MAC (Medium Access Control Sublayer) ηνπ 802.11
΢θνπφο ηνπ ππνζηξψκαηνο MAC είλαη λα παξέρεη ιεηηνπξγίεο ειέγρνπ πξφζβαζεο (ζηηο
νπνίεο ζπκπεξηιακβάλνληαη ε δηεπζπλζηνδφηεζε, ν έιεγρνο ηεο ζσζηήο ζεηξάο ησλ πιαηζίσλ θ.ά.)
ζην κνηξαδφκελν θπζηθφ θαλάιη, φπσο απηφ θαζνξίδεηαη απφ ην πξφηππν.
Σν ππφζηξσκα MAC ηνπ IEEE 802.11 ιεηηνπξγεί σο δηεπαθή κεηαμχ ηνπ θπζηθνχ επηπέδνπ
θαη ηεο αζχξκαηεο θάξηαο δηθηχνπ. Τπνζηεξίδεη ηφζν δνκεκέλε φζν θαη ιεηηνπξγία Ad Hoc. Γχν
επηπιένλ ραξαθηεξηζηηθά αμηνπηζηίαο ζην IEEE 802.11 MAC ππνεπίπεδν είλαη ν θπθιηθφο έιεγρνο
πιενλαζκνχ (CRC - Cyclic Redundancy Check) θαη ν θαηαθεξκαηηζκφο παθέησλ. Κάζε παθέην έρεη
ην δηθφ ηνπ CRC ππνινγηζκέλν θαη απηφ επηζπλάπηεηαη, ψζηε λα εμαζθαιίζεη φηη ηα δεδνκέλα δελ
έρνπλ θαηαζηξαθεί θαηά ηε κεηαθνξά.
Ο θαηαθεξκαηηζκφο παθέησλ ζα ζηείιεη κεγάια παθέηα ζε κηθξά θνκκάηηα φηαλ
απνζηέιινληαη αζχξκαηα. Απηφ έρεη δχν πιενλεθηήκαηα. Σν πξψην είλαη ε κείσζε ηεο αλάγθεο γηα
αλακεηάδνζε, δηφηη ε πηζαλφηεηα λα αιινησζεί έλα παθέην απμάλεηαη κε ην κέγεζνο ηνπ παθέηνπ. Σν
δεχηεξν είλαη φηη ζηελ πεξίπησζε αιινίσζεο παθέηνπ, ν θφκβνο πξέπεη λα αλακεηαδίδεη κφλν έλα
κηθξφ θνκκάηη, επνκέλσο απηφ είλαη πην γξήγνξν.
8.8.
Πξόζβαζε ζην αζύξκαην κέζν κέζσ ηεο ιεηηνπξγίαο CSMA/CA
Tν CSMA/CA (Carrier Sense Multiple Access with Collision Avoidance). Η ιεηηνπξγία
Carrier Sense πξαγκαηνπνηείηαη µε παξαθνινχζεζε ηνπ θαλαιηνχ πξηλ ηελ έλαξμε εθπνκπήο. Αλ
62
θάπνηνο άιινο client εθείλε ηελ ψξα ηχρεη λα εθπέκπεη, ηφηε ν πξψηνο πεξηκέλεη, έσο φηνπ λα βξεζεί
ζηηγκή πνπ ην θαλάιη λα είλαη ειεχζεξν. Γηα λα επηηεπρζεί έλα θαιφ πνζνζηφ ζπγρξνληζκνχ, πνπ ζα
εμαζθαιίζεη ηελ εχξπζκε ιεηηνπξγία ηνπ δηθηχνπ, πξέπεη νη πεξηζζφηεξνη ζηαζκνί λα βξίζθνληαη ζε
ζέζε λα «αθνχλ» ηηο εθπνκπέο φισλ ησλ άιισλ.
Όηαλ δειαδή έλαο ζηαζκφο ειέγρεη ην µέζν γηα λα δεη αλ είλαη ζε ρξήζε, κπνξεί εζθαικέλα
λα απνθαζίζεη φηη είλαη ειεχζεξν, µηαο θαη δελ είλαη ζε ζέζε λα ιαµβάλεη ηηο εθπνκπέο φισλ ησλ
άιισλ ζηαζκψλ ηνπ Access Point. ΢ε απηήλ ηελ πεξίπησζε, ην απνηέιεζκα ζα είλαη ζπλερείο
ζπγθξνχζεηο. ΢πλήζσο ην Access Point ηείλεη λα επλνεί ηνλ εθπνµπφ µε ην θαιχηεξν ζήµα, θαζψο
ιαµβάλεη ην ζήµα ηνπ αζζελέζηεξνπ ζαλ ζφξπβν θαη ην απνξξίπηεη. Γεδνκέλσλ ινηπφλ ησλ
ζπλζεθψλ, µηα θαη µφλν ζπζθεπή κπνξεί λα κνλνπσιήζεη νιφθιεξν ην εχξνο δψλεο ηνπ AP.
8.9.
Υξνληθά δηαζηήκαηα πξόζβαζεο
Σν ΙΔΔΔ 802.11 θαζνξίδεη ηελ χπαξμε ρξνληθψλ δηαζηεκάησλ γηα ηελ κεζνιάβεζε κεηαμχ
ησλ δηαθφξσλ ιεηηνπξγηψλ απνζηνιήο θαη ιήςεο πιαηζίσλ ελφο ζηαζκνχ. Σν ρξνληθφ δηάζηεκα
κεηαμχ ησλ πιαηζίσλ (frames) θαιείηαη IFS (Inter Frame Space).
8.10. Σν θπζηθό επίπεδν ηνπ 802.11
Σν 802.11 θαζνξίδεη δηάθνξα θπζηθά ζηξψκαηα, θαζψο γίλνληαη δηαζέζηκεο λέεο ηερλνινγίεο.
Έηζη, ελψ ην αξρηθφ Standard ππνζηήξηδε ξπζκνχο κεηάδνζεο έσο 2 Mbps, ηα ηξέρνληα Standard ηεο
νηθνγέλεηαο 802.11 θαζνξίδνπλ θπζηθά ζηξψκαηα κε ξπζκνχο κεηάδνζεο κέρξη θαη 54 Mbps,
ρξεζηκνπνηψληαο θαηάιιειεο ηερληθέο δηακφξθσζεο.
Σν IEEE 802.11 θπζηθφ ζηξψκα (Physical Layer) είλαη ρσξηζκέλν ζε δχν κέξε, ην θπζηθφ
ζηξψκα πξσηνθφιινπ ζχγθιηζεο (PLCP - Physical Medium Dependent) θαη ην θπζηθφ κέζνλ
εμαξηήζεσο (PMD - Physical Medium Dependent). Σν PMD θξνληίδεη γηα ηελ αζχξκαηε
θσδηθνπνίεζε. Σν PLCP παξνπζηάδεη κηα θνηλή δηεπαθή γηα ην MAC ππφζηξσκα ψζηε λα επεκβαίλεη
ζε απηφ θαη λα ηνπ παξέρεη αλίρλεπζε θέξνληνο φπσο θαη CCA (Clear Channel Assessment ΢αθήο
Δθηίκεζε Καλαιηνχ).
PLCP έρεη δχν δνκέο, έλα καθξχ θαη έλα κηθξφ πξννίκην. Όια ηα ζπκβαηά κε ην 802.11
ζπζηήκαηα πξέπεη λα ππνζηεξίδνπλ ην καθξχ πξννίκην. Σν κηθξφ πξννίκην παξέρεηαη ζην
πξσηφθνιιν γηα λα βειηησζεί ε απνηειεζκαηηθφηεηα ηεο απφδνζεο ελφο δηθηχνπ θαηά ηε κεηάδνζε
εηδηθψλ δεδνκέλσλ, φπσο θσλήο, VoIP (Voice-over IP) θαη streaming video.
8.11. Λεηηνπξγίεο ηνπ θπζηθνύ ζηξώκαηνο
Γηα ηελ εθηέιεζε ησλ ιεηηνπξγηψλ ηνπ ππνζηξψκαηνο PLCP, ην 802.11 θαζνξίδεη ηελ ρξήζε
ησλ κεραλψλ θαηάζηαζεο (state machines). Κάζε κεραλή θαηάζηαζεο εθηειεί κία απφ ηηο παξαθάησ
ιεηηνπξγίεο:
Αλίρλεπζε θέξνληνο: Η ιεηηνπξγία απηή αθνξά ηνλ θαζνξηζκφ ηεο θαηάζηαζεο ηνπ κέζνπ
δειαδή αλ ην κέζν είλαη απαζρνιεκέλν ή αλ έρνπκε εηζεξρφκελα ζήκαηα (δεδνκέλα).
Μεηάδνζε: Η ιεηηνπξγία απηή αλαθέξεηαη ζηελ απνζηνιή ησλ δηαδνρηθψλ bytes ελφο
πιαηζίνπ δεδνκέλσλ.
Λήςε: Η ιεηηνπξγία απηή αλαθέξεηαη ζηελ ιήςε δηαδνρηθψλ bytes ελφο πιαηζίνπ δεδνκέλσλ.
Σν θπζηθφ ζηξψκα (PHY) θαιχπηεη ηε θπζηθή δηεπαθή κεηαμχ ησλ ζπζθεπψλ θαη αζρνιείηαη
κε ηε κεηάδνζε αθαηέξγαζησλ (raw) bits κέζσ ηνπ θαλαιηνχ επηθνηλσλίαο. Σν θπζηθφ επίπεδν ηνπ
πξνηχπνπ IEEE 802.11 είλαη κηα επέθηαζε ηνπ IEEE 802.11 θπζηθνχ επηπέδνπ ην νπνίν ππνζηεξίδεη 1
θαη 2 Mbps. Σν IEEE 802.11 κπνξεί λα ππνζηεξίμεη πςειφηεξεο ηαρχηεηεο κεηάδνζεο δεδνκέλσλ ηεο
ηάμεο ηνπ 5,5 θαη 11 Mbps κε ηε ρξήζε Complementary Code Keying (CCK) κε Quadrature Phase
Shift Keying (QPSK) δηακφξθσζε θαη ηερλνινγία Direct-Sequence Spread-Spectrum (DSSS).
63
8.12. Τπεξεζίεο πνπ παξέρεη ην πξσηόθνιιν 802.11
Σν 802.11 θαζνξίδεη ηηο ππεξεζίεο πνπ παξέρνπλ ηηο απαηηνχκελεο ιεηηνπξγίεο γηα ηελ απνζηνιή
ησλ δεδνκέλσλ αλάκεζα ζε δχν νκφηηκα ζηξψκαηα LLC27. Απηέο νη ππεξεζίεο, πνπ πινπνηεί ην
ζηξψκα MAC, ρσξίδνληαη ζε δχν θαηεγνξίεο:
Station Services: Authentication, Deauthentication θαη Privacy.
Distribution System Services: Association, Disassociation, Distribution, Integration θαη
Reassociation.
8.12.1. Station Services
Σν 802.11 θαζνξίδεη ππεξεζίεο γηα ηελ παξνρή ιεηηνπξγηψλ κεηαμχ ησλ ζηαζκψλ:
Authentication: θάζε ζηαζκφο, είηε είλαη κέξνο ελφο IBSS ή ελφο ESS δηθηχνπ, πξέπεη λα
ρξεζηκνπνηήζεη ηελ ππεξεζία ηεο ‘επηθχξσζεο’ (authentication) πξηλ ηελ εγθαηάζηαζε κηαο
ζχλδεζεο (association).
Deauthentication: φηαλ έλαο ζηαζκφο ζέιεη λα απνζπλδεζεί (disassociate) απφ έλαλ άιινλ
ζηαζκφ ρξεζηκνπνηεί ηελ ππεξεζία πνπ θαιείηαη ‘deauthentication’.
Privacy: ε ππεξεζία απηή βαζίδεηαη ζηνλ αιγφξηζκν WEP. Ο αιγφξηζκνο απηφο
θξππηνγξαθεί ηα κελχκαηα (κε ηελ ρξήζε ηνπ αιγνξίζκνπ θξππηνγξάθεζεο RC4) πνπ
ζηέιλνληαη δηα κέζνπ ηνπ αζχξκαηνπ δηθηχνπ.
8.12.2. Distribution System Services
 Associaiton: θάζε ζηαζκφο πξέπεη αξρηθά λα ζέζεη ζε ιεηηνπξγία ηελ ππεξεζία ηεο ζχλδεζεο
(association) κε έλα AP πξηλ ζηείιεη νπνηαδήπνηε πιεξνθνξία.
 Disassociaiton: ε ππεξεζία απηή ηεξκαηίδεη κηα ππάξρνπζα ζχλδεζε. Οη ζηαζκνί πξέπεη λα
απνζπλδένληαη φηαλ εγθαηαιείπνπλ έλα δίθηπν θαη ηα AP φηαλ ρξεηάδνληαη ζπληήξεζε.
 Distribution: Έλαο ζηαζκφο ρξεζηκνπνηεί ηελ ππεξεζία απηή θάζε θνξά πνπ ζέιεη λα ζηείιεη
MAC πιαίζηα δηα κέζνπ ηνπ DS. Σν 802.11 δελ θαζνξίδεη ηνλ ηξφπν κε ηνλ νπνίν ην DS
δηαλέκεη ηα δεδνκέλα. Η κφλε πιεξνθνξία πνπ δίλεη ε ππεξεζία ζην DS είλαη ν θαζνξηζκφο
ηνπ BSS γηα ην νπνίν πξννξίδεηαη ην πιαίζην.
 Integration: ε ππεξεζία ηεο ελνπνίεζεο (integration) θάλεη εθηθηή ηελ δηαλνκή ησλ MAC
πιαηζίσλ κέζσ κηαο πχιεο (portal) κεηαμχ ελφο DS θαη ελφο LAN πνπ δελ αλήθεη ζηελ
νηθνγέλεηα 802.11.
 Reassociation: ε ππεξεζία απηή ηεο επαλαζχλδεζεο (reassociation) θαζηζηά ηθαλφ έλα
ζηαζκφ λα αιιάδεη ηελ ηξέρνπζα θαηάζηαζε ζχλδεζεο απφ έλα AP ζε έλα άιιν. Με ηνλ
ηξφπν απηφ ππνζηεξίδεηαη ε κεηάβαζε κεηαμχ δηαθνξεηηθψλ BSS.
Σν 802.11 ππνζηεξίδεη, κεηαμχ ησλ άιισλ ππεξεζηψλ, ηελ πεξηαγσγή (roaming) ελφο ζηαζκνχ
κεηαμχ πνιιψλ APs, ηα νπνία ρξεζηκνπνηνχλ ην ίδην ή δηαθνξεηηθφ θαλάιη. Γηα ηελ ππνζηήξημε ηεο
ιεηηνπξγίαο απηήο, θάζε AP κεηαδίδεη ζε ζπγθεθξηκέλα ρξνληθά δηαζηήκαηα (ζπλήζσο θάζε 100 ms)
έλα ζήκα (πνπ θαιείηαη beacon signal) θαη ην νπνίν ελεκεξψλεη ηνλ θάζε ζηαζκφ γηα ηελ ηξέρνπζα
ηζρχ ηεο ζχλδεζήο ηνπ κε ην αλάινγν AP.
27
παξέρεη κεραληζκνχο πνιππιεμίαο πνπ θαζηζηνχλ δπλαηή ηε δπλαηφηεηα ζε δηαθνξεηηθά δηθηπαθά
πξσηφθνιια λα ζπλππάξμνπλ.
64
8.13. Σν πξσηόθνιιν IEEE 802.11b
Σν 8020.11b απνηειεί ζπκπιήξσκα ζην πξφηππν IEEE 802.11 θαη έρεη ηελ εκπνξηθή
νλνκαζία Wi-Fi. Σν Wi-Fi πξνέξρεηαη απφ ηα αξρηθά ησλ «Wireless Fidelity» (Φεθηαθή Πηζηφηεηα).
Η νηθνγέλεηα απηή πεξηιακβάλεη θαη ην 802.11b πνπ ρξεζηκνπνηεί θαη ε Wishield.
8.14. Πεξηγξαθή
Σν 802.11b έρεη κέγηζην ξπζκφ δεδνκέλσλ 11 Mbit/s θαη ρξεζηκνπνηεί ηελ CSMA/CA κέζνδν
πξφζβαζεο κέζνπ πνπ νξίδεηαη ζην αξρηθφ πξφηππν (ΙΔΔΔ 802.11). Λφγσ ησλ επηπιένλ δεδνκέλσλ
έιεγρνπ πνπ απαηηεί ε CSMA/CA (protocol overhead),ζηελ πξάμε, ην 802.11b έρεη κέγηζηε απφδνζε
πεξίπνπ 5,9 Mbit/s φηαλ ρξεζηκνπνηνχκε TCP θαη 7,1 Mbit/s, κε UDP.
Σν 802.11b είλαη κηα άκεζε επέθηαζε ηεο ηερληθήο δηακφξθσζεο DSSS (Direct Sequence
Spread Spectrum) πνπ νξίδεηαη ζην αξρηθφ πξφηππν. Σα WLAN ιεηηνπξγνχλ ζηε κε αδεηνδνηεκέλε
πεξηνρή ζπρλνηήησλ ISM (Industrial, Scientific and Medical) ζηα 2,4 - 2.4835 Ghz. ΢ηελ Διιάδα
ρξεζηκνπνηείηαη ε δώλε ησλ 2.4 GHz.
Οη 802.11b ζπζθεπέο πθίζηαληαη παξεκβνιέο απφ άιια πξντφληα πνπ ιεηηνπξγνχλ ζηε δψλε
2.4 GHz. ΢πζθεπέο πνπ ιεηηνπξγνχλ ζην εχξνο ζπρλφηεηαο 2,4 GHz πεξηιακβάλνπλ: θνχξλνπο
κηθξνθπκάησλ, ζπζθεπέο Bluetooth, ζχζηεκα ελδνεπηθνηλσλίαο θαη αζχξκαηα ηειέθσλα.
8.15. Direct Sequence Spread Spectrum (DSSS)
΢ηελ ηερληθή DSSS ην κεηαδηδφκελν ζήκα θσδηθνπνηείηαη θαηά θάζε κε ςεπδό-ηπραία
ηκήκαηα «ηερλεηνύ ζνξύβνπ» ηα νπνία νλνκάδνληαη chips. Οπζηαζηηθά θάζε κεηαδηδφκελν bit
δεδνκέλσλ πνιιαπιαζηάδεηαη κε απηφ ην ζήκα ηνπ ηερλεηνχ ζνξχβνπ ην νπνίν είλαη ελαιιαγή ησλ
ηηκψλ -1 θαη 1 ζε ζπρλφηεηα πνιχ κεγαιχηεξε ηνπ αξρηθνχ ζήκαηνο. Με απηφ ηνλ ηξφπν ε ελέξγεηα
ηεο κεηάδνζεο εμαπιψλεηαη ζε κεγαιχηεξν εχξνο δψλεο. Η αθνινπζία ησλ ζεκάησλ ηνπ ςεπδφζνξχβνπ είλαη εθ ησλ πξνηέξσλ γλσζηή ηφζν ζηνλ πνκπφ φζν θαη ζηνλ δέθηε. Ο δέθηεο επεηδή
γλσξίδεη ηελ αθνινπζία ηνπ ηερλεηνχ ζνξχβνπ κπνξεί λα απνθσδηθνπνηήζεη ην ζήκα θαη λα
αλαθηήζεη ηελ αξρηθή πιεξνθνξία.
Δηθόλα 8. 3: Σα δεδνκέλα (data signal) θσδηθνπνηνύληαη κε ην ζήκα «ηερλεηνύ ζνξύβνπ» (PN-code) θαη
παξάγεηαη ην ηειηθό ζήκα πνπ εθπέκπεηαη (coded signal).
65
Δηθόλα 8. 4: Η σθέιηκε πιεξνθνξία (Narrowband Waveform) πιαηζηώλεηαη κε ην ζήκα «ηερλεηνύ
ζνξύβνπ» (Spread Waveform) θαη εμαπιώλεηαη ζην θάζκα ζπρλνηήησλ.
8.16. Καλάιηα θαη ζπρλόηεηεο εθπνκπήο
Σν 802.11b πξσηφθνιιν ρξεζηκνπνίεη 14 θαλάιηα εύξνπο 22Mhz ηα νπνία επηθαιύπηνληαη
κεηαμχ ηνπο. Απηφ δίλεη ηελ δπλαηφηεηα ζε πνιινχο ζηαζκνχο λα ιεηηνπξγνχλ ηαπηφρξνλα ρσξίο
παξεκβνιέο.
Δηθόλα 8. 5: Γηάγξακκα επηθάιπςεο θαλαιηώλ.
Α/Α
Καλαιηνχ
΢πρλφηεηα
ζε Ghz
1
2
3
4
5
6
7
8
9
10
11
12
13
2.412 GHz
2.417 GHz
2.422 GHz
2.427 GHz
2.432 GHz
2.437 GHz
2.442 GHz
2.447 GHz
2.452 GHz
2.457 GHz
2.462 GHz
2.467 GHz
2.472 GHz
Delta
΢πρλφηεηαο
ζε MHz
5 MHz
5 MHz
5 MHz
5 MHz
5 MHz
5 MHz
5 MHz
5 MHz
5 MHz
5 MHz
5 MHz
5 MHz
5 MHz
Δχξνο Καλαιηνχ Δπηθαιχπηεη
ζε GHz
ην θαλάιη κε
Α/Α
2.401-2.423 GHz 2
2.406-2.428 GHz 1.3
2.411-2.433 GHz 2,4
2.416-2.438 GHz 3,5
2.421-2.443 GHz 4,6
2.426-2.448 GHz 5,7
2.431-2.453 GHz 6,8
2.436-2.458 GHz 7,9
2.441-2.463 GHz 8,10
2.446-2.468 GHz 9,11
2.451-2.473 GHz 10,12
2.456-2.478 GHz 11,13
2.461-2.483 GHz 12
Πίλαθαο 10: Οη ζπρλόηεηεο ησλ θαλαιηώλ ηνπ 802.11b.
66
8.17. Αλνρή ζηνλ ζόξπβν
Δπηπιένλ, IEEE 802.11b θαζνξίδεη έλαλ δπλακηθό ξπζκό δηακεηαγσγήο, επηηξέπνληαο ζηνπο
ξπζκνχο δεδνκέλσλ λα πξνζαξκφδνληαη απηφκαηα ζε ζνξπβώδεηο ζπλζήθεο. Απηφ ζεκαίλεη φηη νη
ζπζθεπέο IEEE 802.11b ζα κεηαδψζνπλ ζε ρακειφηεξεο ηαρχηεηεο, 5.5 Mbps, 2 Mbps, θαη 1 Mps
θάησ απφ ζπλζήθεο ζνξχβνπ. Όηαλ νη ζπζθεπέο θηλεζνχλ πίζσ, εληφο πεξηνρψλ κε πςειφηεξε
ηαρχηεηα κεηάδνζεο, ε ζχλδεζε απηφκαηα ζα επηηαρπλζεί θαη πάιη.
67
8.18.
Παξνπζίαζε ηεο WiShield
Η Wishield καο παξέρεη αζχξκαην πξσηφθνιιν 802.11b φπσο επίζεο θαη ηελ δπλαηφηεηα λα
καο δηαθνκίδεη (serve) άπιεο ηζηνζειίδεο πνπ κπνξνχκε λα δηακνξθψζνπκε ην πεξηερφκελν ηνπο.
Δηθόλα 8. 6: Κάηνςε ηεο WiShield.
8.19. Υαξαθηεξηζηηθά:
Δπηπξφζζεηε πιαθέηα γηα ην Arduino κε απνιπηή ζπκβαηφηεηα δηαζηάζεσλ
9 pin επηπξφζζεηα γηα θάζε επηπιένλ ρξήζε
SPI πξσηφθνιιν επηθνηλσλίαο (κεγίζηεο ζπρλφηεηαο 25MHz)
Όια ηα pin ηνπ Arduino είλαη πξνζβάζηκα κέζσ απηήο
Δχθνιε πξφζβαζε ζην θνπκπί reset
Δλζσκαησκέλε θεξαία
Δπηινγή είδνπο interrupt κέζσ pin, INT0 (port D, pin 2) θαη pin 8 port B, pin 0)
LED θαηάζηαζεο ζχλδεζεο WiFi ζην pin 9 (port B, pin 1)
Μνλάδα DataFlash AT45DB161D κε ρσξεηηθφηεηα 16 Mbit (2MB)
Δηθόλα 8. 7: Η θεξαία ηεο WiShield θαη ε πξνζάξηεζε πάλσ ζην Arduino.
68
8.20. Υαξαθηεξηζηηθά κνλάδαο Wi-Fi
Πηζηνπνηεκέλε 802.11b Wi-Fi ζπζθεπή κε ηαρχηεηεο δηεθπεξαησηηθφηεηαο:
o 1Mbps θαη 2 Mbps
Τπνζηήξημε ησλ πξνηχπσλ ππνδνκήο (BSS) θαη ad hoc (IBSS) αζχξκαηεο δηθηχσζεο
Αζθάιεηα αζχξκαησλ δηθηχσλ κέζσ πξνηχπσλ:
o WEP (64-bit θαη 128-bit)
o WPA/WPA2 (TKIP θαη AES) PSK
Υακειή θαηαλάισζε ελέξγεηαο :
o Αλακνλή 10mA (Stanby)
o Μεηάδνζε 230mA (Transmit)
o Λήςε 85mA (Receive)
o Αλακνλή ρακειήο θαηαλάισζεο 250κA (Sleep)
8.21. Πσο ρξεζηκνπνηνύκε ην θάζε pin
 Μνλάδα WiFi κέζσ δηαύινπ SPI
o
o
o
o
Λεηηνπξγηά Slave Select (SS) : ζην pin 10 ηνπ Arduino (port Β, pin 2), θαζνξίδεη ηελ
slave ζπζθεπή
Λεηηνπξγηά Clock (SCK) : ζην pin 13 ηνπ Arduino (port B, pin 5), πξνζζέηεη επηπιένλ
ιεηηνπξγίεο ρξνληζκνχ
Λεηηνπξγηά Master In, Slave Out (MISO) : ζην pin 12 ηνπ Arduino (port B, pin 4), ε
master ζπζθεπή δέρεηαη είζνδν ελψ ε slave παξάγεη ηελ έμνδν
Λεηηνπξγηά Master Out, Slave In (MOSI) : ζην pin 11 ηνπ Arduino (port B, pin 3), ε
master ζπζθεπή παξάγεη ηελ έμνδν ελψ ε slave δέρεηαη είζνδν
 Δπηινγή είδνπο interrupt (κνλό κέζσ επηινγέα)
o
o
INT0 : ζην pin 2 ηνπ Arduino (port D, pin 2)
DIG8 : ζην pin 8 ηνπ Arduino (port B, pin 0)
 Interrupt επηινγέαο γηα ην WiFi
o Δπηηξέπεη ηελ επηινγή κεηαμχ ησλ ηχπσλ INT0 or DIG8

o
LED θαηάζηαζεο WiFi ζύλδεζεο: ζην pin 9 ηνπ Arduino (port B, pin 1)
Μφιηο ε WiShield ζπλδεζεί κε έλα ζεκείν πξφζβαζεο (AP) ε νπνηαδήπνηε WiFi
ζπζθεπή κέζσ ελφο AdHoc δηθηχνπ, απηφ ην LED αλάβεη
 Δπηινγέαο (jumper) LED
o
Η αλάθηεζε ηνπ pin 9 γηα ρξήζε, κε αθαίξεζε ηνπ επηινγέα LED
 DataFlash ιεηηνπξγία κέζσ δηαύινπ SPI
o
o
o
69
Λεηηνπξγία Slave Select (SS) : ζην pin 7ηνπ Arduino (port D, pin 7), θαζνξίδεη ηελ
slave ζπζθεπή
Λεηηνπξγία Clock (SCK) : ζην pin 13 ηνπ Arduino (port B, pin 5), πξνζζέηεη επηπιένλ
ιεηηνπξγίεο ρξνληζκνχ
Λεηηνπξγία Master In, Slave Out (MISO) : ζην pin 12 ηνπ Arduino (port B, pin 4), ε
master ζπζθεπή δέρεηαη είζνδν ελψ ε slave παξάγεη ηελ έμνδν
o

Λεηηνπξγία Master Out, Slave In (MOSI) : ζην pin 11 ηνπ Arduino (port B, pin 3), ε
master ζπζθεπή παξάγεη ηελ έμνδν ελψ ε slave δέρεηαη είζνδν
Κνπκπί Reset
o Σν ίδην θνπκπί ρξεζηκνπνηεί
ην Arduino (ίδηα ζέζε) γηα λα πξνθαιέζεη Reset.
Πξνθαιεί reset ζηελ Wishield θαη ζην Arduino
70
71
9.
Τινπνίεζε ηνπ ηειεκεηξηθνύ ππνζπζηήκαηνο
Έρνληαο θαηαλνήζεη ζέκαηα φπσο ηειεκεηξία, κηθξνειεγθηέο, αηζζεηήξεο θαη αζχξκαηα
πξσηνθνιιά επηθνηλσλίαο, είκαζηε ζε ζέζε λα πξνρσξήζνπκε ζηελ πινπνίεζε ηνπ ηειεκεηξηθνχ
ππνζπζηήκαηνο. Θα κειεηήζνπκε ηηο απαηηήζεηο ηνπ θαη βάζεη απηψλ, ζα παξακεηξνπνηήζνπκε ηνπο
αηζζεηήξεο θαη ζα πινπνηήζνπκε εθαξκνγή ζε γιψζζα πξνγξακκαηηζκνχ C++, πνπ ζα ζπλδπάδεη
φια ηα κέξε ηνπ ππνζπζηήκαηνο κε απψηεξν ζηφρν ηελ ηθαλνπνίεζε ησλ απαηηήζεσλ.
΢εκείσζε: ΢ε θακία πεξίπησζε αληηθείκελν απηήο ηεο εξγαζίαο δελ απνηεινχλ ζέκαηα φπσο
πξνγξακκαηηζκφο ζε C++, AVR C, Ηtml φπσο θαη ε ζχλζεζε css style sheets. Δπίζεο, δελ απνηεινχλ
ζέκα απηήο ηεο εξγαζίαο ηερληθά ζέκαηα φπσο εγθαηάζηαζε ινγηζκηθνχ θαη ξχζκηζε πιηθνχ ζε
νπνηνδήπνηε ιεηηνπξγηθφ ζχζηεκα.
9.1. Απαηηήζεηο ηνπ ηειεκεηξηθνύ ππνζπζηήκαηνο
΢’ απηή ηελ ελφηεηα ζα αλαιχζνπκε ηηο απαηηήζεηο ηνπ ηειεκεηξηθνχ ππνζπζηήκαηνο θαη ζα
ηηο ρσξίζνπκε ζε ππνελφηεηεο κε βάζε ην αληηθείκελν πνπ πξαγκαηεχνληαη θαη ζα ηηο
ρξεζηκνπνηήζνπκε σο νδεγφ ζηελ κεηέπεηηα αλάπηπμε. Οη απαηηήζεηο θαηεγνξηνπνηνχληαη βάζε ησλ
επηκέξνπο θνκκαηηψλ ηνπ ππνζπζηήκαηνο. Απηά πεξηιακβάλνπλ ηνπο αηζζεηήξεο, ην κηθξνειεγθηή
θαη ηα αζχξκαην πξσηφθνιιν πνπ ρξεζηκνπνηεί.
9.2. Απαηηήζεηο ησλ αηζζεηήξσλ
΢ην θεθάιαην 7 παξνπζηαζηήθαλ νη επηκέξνπο αηζζεηήξεο πνπ ζα ρξεζηκνπνηεζνχλ θαη
ζπληέζεθε κηα πνζφηεηα πιεξνθνξηψλ πνπ καο βνεζήζεη λα θαηαλνήζνπκε ηνπο αηζζεηήξεο θαη ηηο
απαηηήζεηο ηνπο, ψζηε λα ιεηηνπξγήζνπλ κέζα ζηα πιαίζηα πνπ νξίδεη ν θαηαζθεπαζηήο ηνπο.
΢πγθεθξηκέλα ν θάζε αηζζεηήξαο, απαηηεί ζπγθεθξηκέλεο ζπλζήθεο πεξηβάιινληνο γηα λα
ιεηηνπξγήζεη ζηα πιαίζηα πξνδηαγξαθψλ ηνπ θαηαζθεπαζηή. Αθφκε, νη αηζζεηήξεο έρνπλ
ζπγθεθξηκέλν εχξνο ηηκψλ εμφδνπ (ηηκέο κεηξήζεσλ), γεγνλφο πνπ πξέπεη λα ηνπ δψζνπκε επίζεο
ηδηαίηεξε έκθαζε. Σέινο, πξέπεη λα δψζνπκε έκθαζε ζε ηπρφλ ξπζκίζεηο πνπ απαηηνχληαη, ψζηε νη
κεηξήζεηο (ησλ αηζζεηήξσλ) λα είλαη αμηφπηζηεο.
Γηα ηνλ αηζζεηήξα ζεξκνθξαζίαο Dallas DS18B20:
Οη κεηξήζεηο καο λα είλαη ζην εχξνο -55 έσο 125 ° C.
Σα δηαζηήκαηα ρξφλνπ πνπ απαηηνχκε κεηξήζεηο λα κελ κηθξφηεξα απφ 93,75ms.
Απαηηείηαη κηα αληίζηαζε pull-up ηνπιάρηζηνλ 4.7kΧ.
Να παξέρνπκε ηάζε ηξνθνδνζίαο εληφο ηνπ εχξνπο 3 κε 5.5 Volt .
Γηα ηνλ αηζζεηήξα πγξαζίαο Honeywell HIH-4030:
Οη κεηξήζεηο καο λα είλαη ζην εχξνο 0 έσο 100 %RH.
Σα δηαζηήκαηα ρξφλνπ πνπ απαηηνχκε κεηξήζεηο λα κελ κηθξφηεξα απφ 5 sec.
Θεξκνθξαζία πεξηβάιινληνο ιεηηνπξγίαο απφ -40 έσο 90 ° C.
Να παξέρνπκε ηάζε ηξνθνδνζίαο 5 Volt .
Γηα ηνλ αηζζεηήξα PIR Parallax 555 - 280227:
Η πεξηνρή αλίρλεπζεο λα κελ είλαη κεγαιχηεξε απφ έλαλ θχθιν δηακέηξνπ 6 κέηξσλ.
Υξνληθφ δηάζηεκα ελφο ιεπηνχ ην φπνην ν αηζζεηήξαο απαηηεί γηα ηελ απηνξξχζκηζε
ηνπ.
Θεξκνθξαζία πεξηβάιινληνο ιεηηνπξγίαο απφ 0 έσο 50 ° C.
Να παξέρνπκε ηάζε ηξνθνδνζίαο 3.3 έσο 5 Volt.
72
9.3.
Απαηηήζεηο ηνπ κηθξνειεγθηή
Αλαθέξακε ζην θεθάιαην 3 ηη ζπλζέηεη έλαλ κηθξνειεγθηή θαη σο εθ ηνχηνπ έγηλαλ
θαηαλνεηέο νη ηδηφηεηεο ηνπ. Πξνθχπηεη ινηπφλ, φηη πξέπεη λα ηνλ ρεηξηζηνχκε σο κηα κνλάδα
πξνγξακκαηίζεκε, κε πεξηνξηζκνχο ζηηο δπλαηφηεηεο ηεο θαη ζπγθεθξηκέλεο απαηηήζεηο φπσο, π.ρ.
επηπιένλ απαηηνχκελν πιηθφ γηα ηελ ρξήζε ηνπ.
Απφ ηελ ζηηγκή πνπ ν κηθξνειεγθηήο είλαη ελζσκαησκέλνο ζηελ αλαπηπμηαθή πιαθέηα
Arduino, νη πεξηζζφηεξεο ιεηηνπξγηθέο απαηηήζεηο ηνπ θαιχπηνληαη απ’ απηήλ. Απνκέλεη λα
αλαιχζνπκε ηηο απαηηήζεηο ηεο αλαπηπμηαθήο πιαθέηαο Arduino θαη λ’ αλαθέξνπκε επηγξακκαηηθά ηηο
απαηηήζεηο ηνπ ATmega 328P.
Γηα ηνλ ATmega 328P:
Ο θψδηθαο πνπ ζα αλαπηχμνπκε λα κελ απαηηεί πεξηζζφηεξν απφ 32 ΚΒ ρψξν κλήκεο γηα ηελ
απνζήθεπζε ηνπ, νχηε πεξηζζφηεξν απφ 2 ΚΒ γηα ηνπο ππνινγηζκνχο πνπ ζα εθηειέζεη αιιά θαη λα
κελ απαηηεί πεξηζζφηεξν απφ 1 ΚΒ γηα κφληκε απνζήθεπζε δεδνκέλσλ.
Γηα ηελ αλαπηπμηαθή πιαθέηα Arduino:
Καιψδην USB ηχπνπ (A ζε B) γηα ηνλ πξνγξακκαηηζκφ.
Σξνθνδνζία 9 Volt θαη 500 mA ή κέζσ ζχξαο USB.
Η/Τ κε ιεηηνπξγηθφ ζχζηεκα πνπ λα ππνζηεξίδεη ην Arduino IDE.
9.4. Απαηηήζεηο ηνπ αζύξκαηνπ πξσηόθνιινπ
΢ην θεθάιαην 8 αλαιχζεθαλ ηα αζχξκαηα πξσηφθνιια επηθνηλσλίαο 802.11 θαη 802.11b.
΢ηελ πινπνίεζε καο ην αζχξκαην πξσηφθνιιν 802.11b ην παξέρεη ε αλαπηπμηαθή πιαθέηα WiShield.
Απνκέλεη λα ηθαλνπνηήζνπκε ηηο ιεηηνπξγηθέο απαηηήζεηο ηεο WiShield θαη λα ιάβνπκε ππφςε ηνπο
πεξηνξηζκνχο πνπ καο επηβάιεη.
Γηα ηελ αλαπηπμηαθή πιαθέηα WiShield:
Σάζε ηξνθνδνζίαο 5 Volt.
Παξνρή ΑΡ (Access Point) ζπκβαηφ κε 802.11b.
Σν ΑΡ λα είλαη ξπζκηζκέλν ζε infrastructure ή Ad hoc ιεηηνπξγία.
Να παξέρνπκε ζηελ WiShield έγθπξεο IP address, Subnet mask, Gateway IP θαη SSID
ψζηε λα κπνξεί λα ζπλδεζεί ζην ΑΡ θαη λα επηθνηλσλεί ζσζηά κ’ απηφ.
9.5. Δγθαηάζηαζε θαη ξύζκηζε ηνπ Arduino IDE
Γηα λα αλαπηχμνπκε ηελ πινπνίεζε είλαη απαξαίηεην λα εγθαηαζηήζνπκε ην Arduino IDE θαη
λα ξπζκίζνπκε ηηο παξακέηξνπο πνπ απαηηνχληαη γηα ηελ ρξήζε ηνπ. Σν Arduino IDE δελ παξέρεηαη
κε installer (απηφκαην εγθαηαζηάηε ινγηζκηθνχ) θαη πξέπεη λα ην εγθαηαζηήζνπκε εκείο ζηελ
επηζπκεηή ηνπνζεζία ζηνλ Η/Τ καο. Αξρηθά ζα θαηεβάζνπκε ην Arduino IDE απφ ηελ δηεχζπλζε 28
ζην δηαδίθηπν απ’ νπνχ θαη καο παξέρεηαη δσξεάλ, ζηελ αληίζηνηρε έθδνζε ηνπ ιεηηνπξγηθνχ
ζπζηήκαηνο ηνπ Η/Τ καο.
Σν Arduino IDE έξρεηαη ζε ζπκπηεζκέλν αξρείν (zip file) θαη ζα πξέπεη λα ην
απνζπκπηέζνπκε ζηνλ Η/Τ καο ζηελ επηζπκεηή ηνπνζεζία κε αληίζηνηρε εθαξκνγή απνζπκπίεζεο
(π.ρ. rar). Μεηά ζα πξέπεη λα εγθαηαζηήζνπκε ηνπο αληίζηνηρνπο drivers γηα ην FTDI chip ψζηε λα
κπνξνχκε λα έρνπκε επηθνηλσλία κεηαμχ ηνπ Arduino IDE θαη ηνπ Arduino κέζσ ζεηξηαθήο ζχξαο θαη
ηνπ πξσηνθφιινπ STK 500. Καη ηέινο, λα εγθαηαζηήζνπκε ηηο απαξαίηεηεο C++ βηβιηνζήθεο γηα ηελ
πινπνίεζε.
28
http://arduino.cc/en/Main/Software
73
΢εκείσζε: νη παξαπάλσ δηαδηθαζίεο δηαθνξνπνηνχληαη αλάινγα ην ιεηηνπξγηθφ ζχζηεκα ηνπ Η/Τ
καο. Θα δείμνπκε (ζε πεξηβάιινλ Windows XP) κφλν ηελ εγθαηάζηαζε ησλ C++ βηβιηνζεθψλ πνπ
είλαη θνηλή γηα φια ηα ιεηηνπξγηθά ζπζηήκαηα. Πιεξνθνξίεο γηα ηα ππφινηπα, παξέρνληαη ζηελ
δηεχζπλζε29 ηνπ δηαδηθηχνπ.
Δγθαηάζηαζε ησλ C++ βηβιηνζεθώλ:
Έρνληαο απνζπκπηέζεη ην Arduino IDE ζηελ επηζπκεηή ηνπνζεζία έρνπκε ηελ εμήο δνκή αξρείσλ θαη
θαθέισλ:
Δηθόλα 9. 1: Γνκή αξρείσλ εληόο ηνπ Arduino IDE.
Μεηαθηλνχκαζηε ζηνλ θάθειν libraries θαη δεκηνπξγνχκε ηνπο έμεο θαθέινπο εληφο απηνχ:
OneWire, DS18B20, WiShield θαη Dataflash. Έπεηηα απνζπκπηέδνπκε ηηο C++ βηβιηνζήθεο πνπ ζα ηηο
θαηεβάζνπκε απφ ηηο δηεπζχλζεηο 30 31 32 33 ηνπ δηαδηθηχνπ. Έπεηηα θάλνπκε δηπιφ θιηθ ζην
εθηειέζηκν αξρείν arduino.exe ψζηε νη βηβιηνζήθεο λα αλαγλσξηζηνχλ απφ ην Arduino IDE θαη λα
είκαζηε ζε ζέζε λα ηηο ρξεζηκνπνηήζνπκε.
Ρύζκηζε ηνπ Arduino IDE:
Έρνληαο νινθιεξψζεη ηηο παξαπάλσ ελέξγεηεο ην Arduino IDE είλαη έηνηκν πξνο ρξήζε θαη
ην κφλν πνπ απνκέλεη είλαη λα ξπζκίζνπκε ηνλ ηχπν αλαπηπμηαθήο πιαθέηαο Arduino πνπ ζα
ρξεζηκνπνηήζνπκε, ζηελ πεξίπησζε καο Arduino Duemilanove. Παηψληαο ηελ επηινγή
ToolsBoard Arduino Duemilanove or Nano w/Atmega 328 έρνπκε επηιέμεη ην ηχπν Arduino πνπ
επηζπκνχκε.
΢εκείσζε: ε παξαπάλσ ξχζκηζε θξίλεηαη απαξαίηεηε γηα ηελ ζσζηή ιεηηνπξγία ηνπ Arduino θαη ηελ
απνθπγή κφληκεο βιάβεο ζην hardware ηνπ.
29
http://arduino.cc/en/Guide/HomePage
https://github.com/asynclabs/WiShield θάθεινο WiShield
31
https://github.com/asynclabs/dataflash θάθεινο Dataflash
32
http://download.milesburton.com/Arduino/MaximTemperature/DallasTemperature_372Beta.zip θάθεινο
DS18B20
33
http://www.pjrc.com/teensy/arduino_libraries/OneWire.zip θάθεινο OneWire
30
74
Δηθόλα 9. 2: Δπηινγή ηύπνπ Arduino.
9.6. Παξαγσγή εθαξκνγώλ κέζσ ηνπ Arduino IDE
Έρνληαο νινθιεξψζεη ηελ εγθαηάζηαζε θαη παξακεηξνπνίεζε ηνπ Arduino IDE, είκαζηε ζε
ζέζε λα αλαπηχμνπκε ηελ πινπνίεζε ηνπ ηειεκεηξηθνχ ππνζπζηήκαηνο. Θα αλαιχζνπκε πνιχ
ζχληνκα ηε δηαδηθαζία αλάπηπμεο εθαξκνγψλ ζην Arduino IDE, φπσο επίζεο θαη ηα απαηηνχκελα
δνκηθά ζηνηρεηά απηήο.
Η δηαδηθαζία παξαγσγήο εθαξκνγώλ:
Η δηαδηθαζία παξαγσγήο εθαξκνγψλ ζην Arduino IDE είλαη ηδηαίηεξα απιή. Καηά ηελ
δηάξθεηα αλάπηπμεο ηεο πινπνίεζεο, ζα ρξεζηκνπνηήζνπκε κφλν δπν ιεηηνπξγίεο απ’ απηέο πνπ καο
παξέρεη ην Arduino IDE. Απηέο είλαη αξθεηέο γηα ηελ παξάγσγε θάζε εθαξκνγήο. Δίλαη νη ιεηηνπξγίεο
Verify ή Compile θαη Upload .
Verify ή Compile
Upload
Δηθόλα 9. 3: Λεηηνπξγίεο Compile/Verify θαη Upload ζην Arduino IDE.
Verify ή Compile: κε ηελ ιεηηνπξγία απηή ην Arduino IDE εθηειεί ηελ δηαδηθαζία compile34 γηα ηνλ
θψδηθα πνπ αλαπηχμακε θαη αλ δελ επηζεκάλεη ιάζε θαηά ηελ δηαδηθαζία compile ηφηε δεκηνπξγεί ηα
εμήο αξρεία:
34
κεηαηξέπεη/κεηαθξάδεη θείκελν γξακκέλν ζε κηα γιψζζα πξνγξακκαηηζκνχ (γιψζζα πεγαίνπ θψδηθα) ζε κηα
άιιε γιψζζα πξνγξακκαηηζκνχ (ηε γλώζζα ζηόχο π.χ. Assembly).
75
*.cpp πεγαίνο θψδηθαο C++ ηεο εθαξκνγή καο.
*.cpp.epp ηα πεξηερφκελα ηεο EEPROM (αλ έρεη ήδε ή απαηηεί ε εθαξκνγή δεδνκέλα εληφο ηεο)
*.cpp.elf executable linkable format αξρείν γηα ηελ πεξαηηέξσ αλάιπζε ηεο εθαξκνγήο.
*.cpp.hex δεδνκέλα ζε δεθαεμαδηθή κνξθή πξνο εθηέιεζε πνπ ζα κεηαθεξζνχλ ζην Arduino.
*.cpp.o object αξρείν πνπ ζπλδπάδεη πεγαίν θψδηθα κε ηηο απαξαίηεηεο βηβιηνζήθεο (C++).
΢εκείσζε: νπνχ * ην φλνκα ηνπ αξρείνπ ηεο εθαξκνγήο π.ρ. test.cpp.
Upload: κέζσ ηεο ιεηηνπξγίαο Upload ην εθηειέζηκν αξρείν ζε hex κνξθή κεηαθέξεηαη ζην Arduino
δηάκεζν ηεο USB ζχξαο θαη ηνπ πξσηνθφιινπ STK 500.
Σα απαξαίηεηα δνκηθά ζηνηρεία κηαο εθαξκνγήο:
Γηα λα ζεσξεζεί κηα εθαξκνγή έγθπξε ζην Arduino IDE ζα πξέπεη λα πεξηέρεη ππνρξεσηηθά
δπν ζπλαξηήζεηο, ηελ setup θαη ηελ loop. Η ζπλάξηεζε setup είλαη ππεχζπλε γηα ηηο απαξαίηεηεο
αξρηθνπνηήζεηο παξακέηξσλ ζε software θαη hardware επίπεδν. Η ζπλάξηεζε loop εθηειείηαη
ζπλερψο, ελψ ν θψδηθαο ηεο εθαξκνγήο καο εθηειείηαη.
΢εκείσζε: ε ρξήζε ησλ ζπλαξηήζεσλ setup θαη loop ζα αλαιπζεί πεξαηηέξσ θαηά ηελ δηαδηθαζία
αλάιπζεο ηνπ θψδηθα πινπνίεζεο ηνπ ηειεκεηξηθνχ ππνζπζηήκαηνο.
9.7. Οη ζηόρνη πινπνίεζεο ηνπ ηειεκεηξηθνύ ππνζπζηήκαηνο
Έρνληαο νινθιεξψζεη ηελ αλάιπζε απαηηήζεσλ θαη ηελ εγθαηάζηαζε ηνπ Arduino IDE, είλαη
πιένλ ζεκαληηθφ λα θαζνξίζνπκε ηνπο ζηφρνπο ηεο πινπνίεζεο ηνπ ηειεκεηξηθνχ ππνζπζηήκαηνο. Οη
ζηφρνη ηεο πινπνίεζεο ζα πεξηγξαθζνχλ ζχληνκα ζ’ απηή ηελ ελφηεηα θαη ζα αλαιπζνχλ εθηελψο
ζηηο επφκελεο.
΢πλνπηηθά νη ζηφρνη πνπ ζα πινπνηεζνχλ κέζσ ηεο γιψζζαο πξνγξακκαηηζκνχ C++ είλαη νη εμήο:
Τινπνίεζε ελφο software timer πνπ ζα κεηξά ηνλ ρξφλν ιεηηνπξγηάο ζε δεπηεξφιεπηα.
Κάζε 6 δεπηεξφιεπηα ζα κεηξά θαη ζα θαηαγξάθεη ηελ ζεξκνθξαζία θαη ηελ πγξαζία
φπσο επίζεο θαη ζα ειέγρεη αλ έρεη αληρλεπηεί θίλεζε ζηνλ ρψξν πνπ είλαη
ηνπνζεηεκέλν ην ηειεκεηξηθφ ππνζχζηεκα.
Κάζε 30 δεπηεξφιεπηα ζα ππνινγίδεηαη ε κέζε ζεξκνθξαζία θαη πγξαζία, επηπιένλ
ζα ππνινγίδεηαη ε κεγίζηε θαη ε ειάρηζηε ηηκή ζεξκνθξαζίαο θαη πγξαζίαο.
Κάζε 60 δεπηεξφιεπηα ζα απνζεθεχεη ζηελ κλήκε EEPROM ηηο ηηκέο κεγίζηεο θαη
ειάρηζηεο πγξαζίαο θαη ζεξκνθξαζίαο.
Κάζε κηα ψξα ή 3600 δεπηεξφιεπηα απνζεθεχεη ζηελ Dataflash κλήκε ηεο WiShield
ηελ κέζε ηηκή ζεξκνθξαζίαο θαη πγξαζίαο πνπ έρεη ήδε ππνινγηζηεί.
Γεκηνπξγία δπν ηζηνζειίδσλ δπλακηθνχ πεξηερνκέλνπ βάζεη ησλ εθάζηνηε
κεηξήζεσλ.
76
9.8.
Παξνπζίαζε θαη αλάιπζε πινπνίεζεο
΢ε πξνγξακκαηηζηηθφ επίπεδν ε πινπνίεζε απνηειείηαη απφ ηξία βαζηθά κέξε, ηηο
ζπλαξηήζεηο setup, loop, servePage. Κάζε κηα εμππεξεηεί ζπγθεθξηκέλε ιεηηνπξγία θαη φιεο καδί
πινπνηνχλ ην ζχλνιν ησλ ιεηηνπξγηψλ. ΢πγθεθξηκέλα ε setup καο επηηξέπεη λα ξπζκίζνπκε φιεο ηηο
απαξαίηεηεο παξακέηξνπο πνπ απαηηεί νη πινπνίεζε πξηλ ηελ θάζε εθηέιεζε ηνπ θψδηθα. Η loop
εθηειείηαη ζπλερψο θαη καο παξέρεη ηηο κεηξήζεηο θαη ηηο θαηαγξαθέο πνπ έρνπκε νξίζεη ζηνπο
ζηφρνπο ηεο πινπνίεζεο φπσο θαη επίζεο ηελ δπλαηφηεηα λα δηαθνκίζνπκε ηηο δπν ηζηνζειίδεο πνπ
έρνπκε αλαπηχμεη γηα ηελ παξνπζίαζε ησλ κεηξήζεσλ. Σέινο, ε servePage κέζσ εηδηθψλ ζπλδπαζκψλ
html strings (αιθαξηζκεηηθά ηζηνζειίδαο) καο παξέρεη ηηο ηζηνζειίδεο πνπ απαηηνχληαη.
9.9.
Αλάιπζε ηεο ζπλάξηεζεο setup
Μέζσ ηεο ζπλάξηεζεο setup ζα ξπζκίζνπκε software θαη hardware παξακέηξνπο.
΢πγθεθξηκέλα απελεξγνπνηνχκε πξνζσξηλά ην AT45DB161D (IC κλήκεο ηχπνπ Dataflash) θαη ην
g2100 (IC γηα ην πξσηφθνιιν 802.11b) ηεο WiShield. Σα απελεξγνπνηνχκε γηα λα απνθχγνπκε ηα
hardware conflicts (ζπγθξνχζεηο πιηθνχ) κεηαμχ ηνπο κέρξη ηελ νινθιήξσζε ηεο setup. Δπίζεο
απελεξγνπνηνχκε ηα interrupt γηα ην g2100 ηα νπνία είλαη ελεξγνπνηεκέλα εμ αξρήο. Αλ δελ ηα
απελεξγνπνηήζνπκε, θάζε θνξά πνπ γίλεηαη θιήζε ηεο ζπλάξηεζεο servePage ην interrupt πνπ ζα
παξαρζεί ζα καο απνηξέπεη λα εθηεινχκε κεηξήζεηο. Σέινο, αξρηθνπνηνχκε ηνλ αηζζεηήξα DS18B20
ψζηε λα είλαη ζε ζέζε λα καο παξέρεη κεηξήζεηο κέζσ ηνπ δηαχινπ 1 Wire.
9.10. Αλάιπζε ηεο ζπλάξηεζεο loop
΢ηελ ζπλάξηεζε loop πινπνηνχκε έλα software timer (ρξνλφκεηξν κέζσ ινγηζκηθνχ) ην νπνίν
καο παξέρεη ηελ δπλαηφηεηα λα κεηξάκε ηνλ ρξφλν ζε δεπηεξφιεπηα. Υξεζηκνπνηψληαο ην καο δίλεηαη
ε δπλαηφηεηα λα θαζνξίζνπκε ρξνληθά δηαζηήκαηα ζηα νπνία κπνξνχκε λα εθηεινχκε κεηξήζεηο θαη
ππνινγηζκνχο. Έρνληαο ήδε θαζνξίζεη ηα ρξνληθά δηαζηήκαηα πνπ απαηηνχληαη ζηνπο ζηφρνπο ηεο
πινπνίεζεο απνκέλεη λα αλαθέξνπκε πεξηιεπηηθά ηηο ιεηηνπξγίεο πνπ εθηειεί ε ζπλάξηεζε loop.
΢ην πξψην δεπηεξφιεπην (θαη κφλν ζε απηφ) αλαθηάκε απφ ηελ κλήκε EEPROM φπνπ ήηαλ
απνζεθεπκέλεο απφ πξνεγνχκελεο εθηειέζεηο ηνπ θψδηθα (κεηαμχ δηαδνρηθψλ reset ή power off), ηελ
κέγηζηε θαη ειάρηζηε ηηκή ζεξκνθξαζίαο θαη ηεο πγξαζίαο. Κάζε 6 δεπηεξφιεπηα κεηξάκε ηελ ηηκή
ηεο ζεξκνθξαζίαο θαη ηεο πγξαζίαο θη ειέγρνπκε αλ έρνπκε αληρλεχζεη θίλεζε. Κάζε 30
δεπηεξφιεπηα ππνινγίδνπκε κέζσ ησλ κεηξήζεσλ πνπ εθηεινχκε αλά 6 δεπηεξφιεπηα (5 κεηξήζεηο
ζε 30 δεπηεξφιεπηα), ηελ κέζε ζεξκνθξαζία θαη πγξαζία φπσο θαη ηελ ειάρηζηε αιιά θαη ηελ
κεγίζηε ηηκή ηνπο. Κάζε ιεπηφ απνζεθεχνπκε ηελ κεγίζηε θαη ειάρηζηε ηηκή ζεξκνθξαζίαο θαη
πγξαζίαο ζηελ κλήκε EEPROM ψζηε λα κπνξνχκε λα ηηο δηαηεξήζνπκε ζε πεξίπησζε reset ή power
off. Σέινο ζε θάζε εθηέιεζε ηεο loop αλ επηζπκνχκε καο παξέρεηαη ε δπλαηφηεηα λα καο δηαθνκηζηεί
θάπνηα απφ ηηο δπν ηζηνζειίδεο.
9.11. Αλάιπζε ηεο ζπλάξηεζεο servePage
Με ηελ ζπλάξηεζε servePage ζπλζέηνπκε ηηο δπν ηζηνζειίδεο πνπ έρνπκε αλαπηχμεη.
΢πλνπηηθά ε κέζνδνο ζχλζεζεο ηνπο ιεηηνπξγεί σο έμεο: κέζσ ησλ html strings πνπ έρνπκε
απνζεθεχζεη ζηελ κλήκε πνπ είλαη απνζεθεπκέλνο ν θψδηθαο ηεο πινπνίεζεο (νλνκαζία PROGMEM
θαη κέξνο ηεο Flash κλήκεο) ηνπ ATmega328P παξάγνπκε κε θαηάιιεινπο ζπλδπαζκνχο απηψλ
πιήξεηο ηζηνζειίδεο, επίζεο κε παξφκνηα κέζνδν πξνζζέηνπκε έλα css style sheet. Σέινο
πξνζζέηνπκε ζηελ ηζηνζειίδα έλα αξρείν εηθφλαο πνπ είλαη θη απηφ απνζεθεπκέλν ζηελ PROGMEM
κλήκε.
Πσο ε servePage ζπλζέηεη ηα html strings θαη ηηο ηηκέο κεηξήζεσλ ζε ηζηνζειίδεο
Γηα λα ζπλζέζνπκε έλα ηκήκα θεηκέλνπ ζε html ην πεξηθιείνπκε κε ηα αλάινγα tags
κνξθνπνίεζεο π.ρ. αλ επηζπκνχκε bold κνξθνπνίεζε ν θψδηθαο ζα ‘λαη ν εμήο: <b>θείκελν</b>. Σν
77
πξφβιεκα φκσο εκθαλίδεηαη φηαλ επηζπκνχκε λα ζπλζέζνπκε ηαπηφρξνλα θείκελν κε κνξθνπνίεζε
θαη ηηο ηηκέο κεηξήζεσλ. Οη ηηκέο ησλ κεηξήζεσλ είλαη νπζηαζηηθά κεηαβιεηέο, πνπ ζεκαίλεη φηη νη
ηηκή ηνπο αλά πάζα ζηηγκή ελδέρεηαη λα αιιάμεη. Δλ νιίγνηο ε html αδπλαηεί λα κνξθνπνηήζεη
θείκελν ην νπνίν δελ έρεη ζηαζεξή ηηκή θαη γηα λα επηηεπρηεί ε δηακφξθσζε πνπ επηζπκνχκε
απαηηείηαη κηα λέα κεζνδνινγία κνξθνπνίεζεο.
Η κεζνδνινγία πνπ ρξεζηκνπνηείηαη απφ ηελ πινπνίεζε αιιάδεη ην πξνεγνχκελν παξάδεηγκα
θψδηθα html σο εμήο: <b>θείκελν ηηκή κέηξεζεο θείκελν</b> ε δηάθνξα ζε ζρέζε κε πξηλ είλαη φηη ν
θψδηθαο ηψξα απνηειείηαη απφ 3 μερσξηζηά κέξε ην πξψην είλαη <b>θείκελν, ην δεχηεξν ηηκή
κέηξεζεο θαη ην ηξίην θείκελν</b>. ΢ε θάζε πεξίπησζε φκσο θαη ζχκθσλα κε ηηο αλάγθεο,
ζπλζέηνπκε θαηάιιεια κε ηελ παξαπάλσ κεζνδνινγία ηηο δπν ηζηνζειίδεο ηεο πινπνίεζεο.
Δίλαη ζεκαληηθφ λα αλαθέξνπκε φηη ε ζπλάξηεζε servePage «ηεκαρίδεη» ηηο ηζηνζειίδεο ηεο
πινπνίεζεο ζε ηκήκαηα html string θαη ηηκψλ κεηξήζεσλ ζχκθσλα κε ηελ παξαπάλσ κεζνδνινγία.
Τζηέξα απηά ηα ηκήκαηα απνζηέιινληαη κέζσ ηεο WiShield ζηνλ Η/Τ πνπ αηηείηαη ηηο ηζηνζειίδεο
θαη ν web browser (ηνπ Η/Τ) ηηο αλαζπλζέηεη ζε ηζηνζειίδεο.
9.12. Παξνπζίαζε ησλ ηζηνζειίδσλ ηεο πινπνίεζεο
΢ηελ πξψηε ηζηνζειίδα παξνπζηάδεηαη ε παξνχζα, κέζε, κέγηζηε θαη ειάρηζηε ηηκή ηεο
ζεξκνθξαζίαο θαη ηεο πγξαζίαο. Αθφκε παξνπζηάδεηαη αλ αληρλεχηεθε θίλεζε. ΢ηελ πεξίπησζε πνπ
έρεη αληρλεπηεί, καο παξνπζηάδεηαη ην πιήζνο ησλ αληρλεχζεσλ, πξηλ πφζε ψξα αληρλεχηεθε ε
ηειεπηαία αιιά θαη αλ έρνπκε θίλεζε ζε εμέιημε.
Δηθόλα 9. 4: Η αξρηθή (πξώηε) ηζηνζειίδα.
78
΢ηελ δεχηεξε ηζηνζειίδα παξνπζηάδεηαη ζε δπν πίλαθεο ε θαηαγξαθή ηεο ζεξκνθξαζίαο θαη
ηεο πγξαζίαο αλά ψξα γηα κηα πεξίνδν 24 σξψλ. Σν εηθνζηηεηξάσξν απηφ ρσξίδεηαη ζε ηξία νθηάσξα
θαη ε ψξα 0:00 είλαη ην πξψην απφ ηα αξηζηεξά θειί ηεο πξψηεο ζεηξάο. Δπίζεο ζε θάζε κηα απφ ηηο
ηζηνζειίδεο ππάξρεη έλα ρξνλφκεηξν ζην θάησ κέξνο πνπ καο δείρλεη ην ζπλνιηθφ ρξφλν ιεηηνπξγηάο
ηνπ ππνζπζηήκαηνο.
Δηθόλα 9. 5: Η δεύηεξε ηζηνζειίδα.
9.13. Παξνπζίαζε ηνπ θπθιώκαηνο ηεο πινπνίεζεο
Έρνληαο νινθιεξψζεη ζε πξνγξακκαηηζηηθφ επίπεδν ηελ πινπνίεζε πξέπεη λα ζπλζέζνπκε ην
θαηάιιειν θχθισκα πνπ λα πεξηιακβάλεη φινπο ηνπο αηζζεηήξεο θαη ηηο αλαπηπμηαθέο πιαθέηεο
Arduino θαη WiShield. ΢ην θχθισκα απηφ ππάξρνπλ θάπνηεο ηδηαίηεξεο απαηηήζεηο, φπσο ηηκή
εθαξκνδφκελεο ηάζεο, επηπιένλ εμαξηήκαηα αιιά θαη ε ζχλδεζε ηνπο ζε ζπγθεθξηκέλα pin ηνπ
Arduino. Οη απαηηήζεηο ζπγθεθξηκέλα είλαη νη εμήο:
Παξνρή ηάζεο 5 Volt κέζσ ηνπ pin 5V ηνπ Arduino.
Γείσζε κέζσ ηνπ pin GND ηνπ Arduino.
΢χλδεζε ηνπ αηζζεηήξα Dallas DS18B20 ζην ςεθηαθφ pin 4 ηνπ Arduino.
΢χλδεζε ηνπ αηζζεηήξα Honeywell HIH-4030 ζην αλαινγηθφ pin 5 ηνπ Arduino.
΢χλδεζε ηνπ αηζζεηήξα PIR Parallax 555 - 280227ζην ςεθηαθφ pin 5 ηνπ Arduino.
Σνπνζέηεζε αληίζηαζεο 4,7 kΧ κεηαμχ ηνπ ςεθηαθνχ pin 4 θαη ηνπ pin εμφδνπ ηνπ Dallas
DS18B20.
Πξνζαξκνγή ηεο WiShield ζην Arduino (φπσο ζηελ εηθόλα 8.7).
Παξνρή ζπλερνχο ηάζεο 9 Volt ζην Arduino κέζσ κεηαζρεκαηηζηή (220V AC ζε 9V DC).
79
Δηθόλα 9. 6: Φσηνγξαθία ηνπ θπθιώκαηνο πινπνίεζεο.
΢εκείσζε: Σν παξαπάλσ θχθισκα ην παξαζέηνπκε κφλν γηα ιφγνπο επίδεημεο. Η κνξθή ηνπ κπνξεί
λα κεηαβιεζεί, κνλαδηθφο πεξηνξηζκφο ζηελ πινπνίεζε είλαη νη απαηηήζεηο ηεο πξνεγνχκελεο
ελφηεηαο.
9.14. Ρύζκηζε θαη εγθαηάζηαζε ηνπ ηειεκεηξηθνύ ππνζπζηήκαηνο
Δθφζνλ απνθαζίζνπκε ηελ ηνπνζεζία εγθαηάζηαζεο ηνπ ηειεκεηξηθνχ ππνζπζηήκαηνο
νθείινπκε λα εθηειέζνπκε κηα ζεηξά ξπζκίζεσλ πξηλ ην ζέζνπκε ζε ιεηηνπξγία. ΢ηελ ελφηεηα
Aπαηηήζεηο ηνπ αζύξκαηνπ πξωηόθνιινπ, αλαθέξακε ηη απαηηήζεηο πξέπεη λα ηθαλνπνηήζνπκε ψζηε
ην ηειεκεηξηθφ ππνζχζηεκα λα κπνξεί λα έρεη αζχξκαηε επηθνηλσλία κε ηνλ Η/Τ καο. ΢πγθεθξηκέλα,
ζηνλ θψδηθα C++ ηεο πινπνίεζεο ζα πξέπεη λα ηξνπνπνηήζνπκε ηα πεδία πνπ αλαθέξνληαη ζε
παξακέηξνπο φπσο δηεχζπλζε IP, Gateway ΙΡ, subnet mask, SSID, security passphrase θαη ηνπνινγία
ζχλδεζεο (adhoc ή infastructure). Σξνπνπνηνχκε ηα παξαπάλσ, ζηηο ηηκέο πνπ έρνπλ νξηζηεί ζην AP,
ζην νπνίν ζα ζπλδεζεί ην ηειεκεηξηθφ ππνζχζηεκα.
΢εκείσζε: Λφγσ φηη ε WiShield δελ δηαζέηεη ελζσκαησκέλε ηελ ιεηηνπξγία DHCP νη παξαπάλσ
ξπζκίζεηο θξίλνληαη απαξαίηεηεο.
80
81
10. ΢πκπεξάζκαηα
Η πινπνίεζε ηνπ ηειεκεηξηθνχ απνζηήκαηνο, καο παξέρεη ηελ δπλαηφηεηα λα κειεηήζνπκε
εχθνια ηηο πεξηβαιινληηθέο ζπλζήθεο ηνπ ρψξνπ πνπ είλαη εγθαηεζηεκέλν αξθεί, απηφο λα
θαιχπηεηαη απφ αζχξκαηε ππνδνκή πξσηνθφιινπ 802.11b. Σα νθέιε ρξήζεο ηνπ ζεκαληηθά, ηα
θπξηφηεξα ην κέγεζνο ηνπ, ην νπνίν είλαη ηδηαίηεξα κηθξφ, επίζεο νη απαηηήζεηο ηνπ ζε ελέξγεηα αιιά
θαη ζε ηερλνγλσζία πνπ απαηηείηαη γηα ηελ δηαρείξηζε ηνπ είλαη επίζεο ρακειέο. Σέινο, ζεκαληηθφ
φθεινο απνηειεί ην θφζηνο ηνπ, ην νπνίν είλαη αξθεηά ρακειφ θαη ην νπνίν κάιηζηα είλαη ηδηαίηεξα
πξνζηηφ ζε ζρέζε κε ηα αληίζηνηρα νινθιεξσκέλα ηειεκεηξηθά ζπζηήκαηα πνπ είλαη δηαζέζηκα ζην
εκπφξην.
10.1. Μειινληηθέο επεθηάζεηο
Χο επέθηαζε ηνπ ηειεκεηξηθνχ ππνζπζηήκαηνο κπνξνχκε λα νξίζνπκε ελαιιαθηηθά ζελάξηα ρξήζεο,
ηα νπνία φκσο, πιήξσο θαιχπηνληαη απφ ηηο δπλαηφηεηεο ηνπ ππάξρνληνο hardware. ΢πγθεθξηκέλα:
Υξεζηκνπνηψληαο κηα επηπιένλ νκάδα ίδησλ αηζζεηήξσλ, ε αθξίβεηα ηνπ αιιά θαη ε πεξηνρή
θάιπςεο ζα απμεζνχλ αηζζεηά.
Η κεηαηξνπή ηνπ ζε ζηαζκφ πξφβιεςεο θαηξνχ, κε κφλε αιιαγή ηνπ PIR αηζζεηήξα, κε έλαλ
ζπκβαηφ αηζζεηήξα αηκνζθαηξηθήο πίεζεο.
Λφγσ φηη ηα schematics ηνπ Arduino αιιά θαη ηεο WiShield είλαη δηαζέζηκα ππφ ηελ άδεηα
Creative Commons κπνξνχκε λα ηξνπνπνηήζνπκε ηα θπθιψκαηα ηνπο ψζηε λα θαηαιακβάλνπλ
αθφκε ιηγφηεξν ρψξν ή λα ηνπο πξνζζέζνπκε επηπιένλ hardware.
82
83
Βηβιηνγξαθία
[1] Frank Carden, Robert Henry, Russ Jedlicka, Telemetry Systems Engineering, Artech House
Telecommunications Library 2002
[2] Yuan Taur, Tak H. Ning, Fundamentals of Modern VLSI Devices, Cambridge University Press
2009
[3] John Crisp, Introduction to Microprocessors and Microcontrollers, Elsevier 2004
[4] Dale Wheat, Arduino Internals, Apress 2011
[5] Jacob Fraden, Handbook of Modern Sensors, Springer 2010
[6] Robert P. Benedict, Fundamentals of Temperature, Pressure and Flow Measurements, John Wiley
& Sons 1984
[7] John M. Castillo, Relative Humidity: Sensors, Management and Environmental Effects, Nova
Science 2011
[8]William Trochim, James P. Donnelly, The Research Methods Knowledge Base, Atomic Dog 2007
[9] Maxim DS18B20, http://datasheets.maxim-ic.com/en/ds/DS18B20.pdf
[10] Honeywell HIH-4030, http://sensing.honeywell.com/index.php?ci_id=51625&la_id=1
[11] Parallax PIR 555–280227, http://www.parallax.com/Portals/0/Downloads/docs/prod/sens/55528027-PIRSensor-v2.1.pdf
[12] Andrew S. Tanenbaum, Computer Networks, Prentice Hall 2010
[13] WiShield, http://asynclabs.com/wiki/index.php?title=WiShield_2.0
84
85
Παξαξηήκαηα
Παξάξηεκα Α θώδηθαο πινπνίεζεο ζε C++
/**********************************************************************************
Filename:
Description:
Thesis_code.cpp
θώδηθαο πινπνίεζεο ηνπ ηειεκεηξηθνύ ππνζπζηήκαηνο ζε C++
***********************************************************************************/
Σηελ παξνύζα πινπνίεζε ν θώδηθαο ρσξίδεηαη ζε ηξία βαζηθά κέξε setup, servePage θαη
loop.
Σην θνκκάηη setup νπζηαζηηθά αξρηθνπνηνύκε ηηο παξακέηξνπο hardware θαη software
πνπ απαηηνύληαη. Ιδηαίηεξε πξνζνρή πξέπεη λα δνζεί ζηελ ζσζηή αξρηθνπνίεζε ηεο
Wishield ώζηε λα κελ έρεη hardware conflicts κε ην AT45DB161D. Γηα απηό ην ιόγν
απελεξγνπνηνύκε ην AT45DB161D κέρξη λα ην ρξεηαζηνύκε. Επίζεο ζέηνπκε ην pin 8 ζε
HIGH θαηάζηαζε ώζηε ην g2100 802.11b chip ηεο Wishield λα κελ παξάγεη interrupt θαη
λα ζηακαηήζεη ηελ loop.
Σην θνκκάηη loop πινπνηνύκε έλαλ software timer πνπ κεηξά δεπηεξόιεπηα θαη θάλνπκε
κεηξήζεηο θαη ππνινγηζκνύο. Αξρηθά δηαβάδνπκε ηελ κεγίζηε θαη ειάρηζηε ηηκή
ζεξκνθξαζίαο αιιά όπσο θαη ηεο πγξαζίαο από ηελ EEPROM πνπ ήηαλ απνζεθεπκέλεο εθεί
από πξνεγνύκελεο εθηειέζεηο θώδηθα (κεηαμύ δηαδνρηθώλ reset). Κάζε 6 δεπηεξόιεπηα
κεηξάκε ζεξκνθξαζία θαη πγξαζία θη αλ έρνπκε αληρλεύζεη θίλεζε. Κάζε 30
δεπηεξόιεπηα ππνινγίδνπκε ηελ κέζε ζεξκνθξαζία θαη πγξαζία όπσο θαη ηελ ειάρηζηε
αιιά θαη ηελ κεγίζηε ηνπο. Κάζε ιεπηό απνζεθεύνπκε ηελ κεγίζηε θαη ειάρηζηε ηηκή
ζεξκνθξαζίαο θαη πγξαζίαο ζηελ EEPROM ώζηε λα κπνξνύκε λα ηηο δηαηεξνύκε ζε
πεξίπησζε reset ή power off. Τέινο κέζσ ηεο WiServer.server_task πνπ εθηειείηαη ζε
θάζε εθηέιεζε ηεο loop, μεθηλάκε ηελ δηαθόκεζε ηζηνζειίδσλ.
Σην θνκκάηη servePage ζπλζέηνπκε ηηο δπν ηζηνζειίδεο πνπ έρνπκε αλαπηύμεη. Η
κέζνδνο ζύλζεζεο ηνπο είλαη ε έμεο: κέζσ ησλ html strings πνπ έρνπκε απνζεθεύζεη
ζηελ PROGMEM κλήκε παξάγνπκε πιήξεηο ηζηνζειίδεο κε θαηάιιεινπο ζπλδπαζκνύο απηώλ.
Επίζεο πξνζζέηνπκε css stylesheet θαη κηα εηθόλα πνπ είλαη επίζεο
απνζεθεπκέλα
ζηελ PROGMEM κλήκε.
Σηελ πξώηε ηζηνζειίδα παξνπζηάδεηαη ε παξνύζα, κέζε, κέγηζηε θαη ειάρηζηε ηηκή ηεο
ζεξκνθξαζίαο θαη ηεο πγξαζίαο. Αθόκε παξνπζηάδεηαη αλ αληρλεύηεθε θίλεζε αλ λαη, ην
πιήζνο ηνπο θαη αλ έρνπκε θίλεζε ζε εμέιημε.
Σηελ δεύηεξε ηζηνζειίδα παξνπζηάδεηαη ε θαηαγξαθή ηεο ζεξκνθξαζίαο θαη ηεο πγξαζίαο
αλά ώξα γηα έλα εηθνζηηεηξάσξν. Κάζε εηθνζηηεηξάσξν ρσξίδεηαη ζε ηξία νθηάσξα θαη ε
ώξα 0:00 είλαη ζην πξώην αξηζηεξά θειί.
Σε θάζε κηα από ηηο ηζηνζειίδεο ππάξρεη έλα ρξνλόκεηξν ζην footer πνπ καο δείρλεη
ην ζπλνιηθό ρξόλν ιεηηνπξγηάο ηνπ ππνζπζηήκαηνο.
Επίζεο πινπνηήζεθαλ ηέζζεξεηο επηπιένλ ζπλαξηήζεηο. Η get_temperature ππνινγίδεη
ηελ ζεξκνθξαζία. Η get_humidity ππνινγίδεη ηελ πγξαζία κε όξηζκα ηελ παξνύζα
ζεξκνθξαζία.
Η uptime παίξλεη όξηζκα ηνλ αξηζκό ησλ δεπηεξνιέπησλ πνπ πέξαζαλ από ηελ αξρή
εθηέιεζεο ηνπ θώδηθα θαη ππνινγίδεη ηηο κέξεο, ώξεο, ιεπηά, θαη δεπηεξόιεπηα
ιεηηνπξγηάο.
Καη ηέινο ε FloatFromByteArray ζπλζέηεη έλαλ float από 4 byte.
**********************************************************************************/
#include <dataflash.h>
//βηβιηνζήθε γηα ρξήζε ηνπ DataFlash AT45DB161D
86
#include <WiServer.h> //βηβιηνζήθε γηα ηελ δηαθόκιζε ηζηνζειίδσλ
#include "gradient.h"
//ε εηθόλα gradient.jpg έρεη κεηαηξαπεί ζε πίλαθα PROGMEM
γηα ρξήζε σο header
extern "C"
{
#include "g2100.h"
//βηβιηνζήθε γηα low level control ηνπ g2100 chip
}
#include <OneWire.h>
//βηβιηνζήθε γηα low level control ηνπ One Wire bus
#include <DallasTemperature.h> //βηβιηνζήθε γηα low level control ηνπ DS18B20
#define ONE_WIRE_BUS 4
//ζύλδεζε ηνπ DS18B20 ζην pin 4
OneWire oneWire(ONE_WIRE_BUS); //δεκηνπξγία αληηθεηκέλνπ θιάζεο OneWire κε όξηζκα
ην pin 4
DallasTemperature sensors(&oneWire); //δεκηνπξγία αληηθεηκέλνπ θιάζεο
DallasTemperature κε όξηζκα ην oneWire
#define FLASH_SLAVE_SELECT 7 //ην pin 7 σο FLASH_SLAVE_SELECT
#define WIFI_SLAVE_SELECT 10 //ην pin 10 σο WIFI_SLAVE_SELECT
//---νκάδα macro πνπ ρεηξίδεηαη ηελ EEPROM σο εληαίν θνκκάηη κλήκεο κέζσ κίαο
struct---//
#include <avr/eeprom.h>
#define eeprom_read_to(dst_p, eeprom_field, dst_size) eeprom_read_block(dst_p,
(void *)offsetof(__eeprom_data, eeprom_field), MIN(dst_size,
sizeof((__eeprom_data*)0)->eeprom_field))
#define eeprom_read(dst, eeprom_field) eeprom_read_to(&dst, eeprom_field,
sizeof(dst))
#define eeprom_write_from(src_p, eeprom_field, src_size) eeprom_write_block(src_p,
(void *)offsetof(__eeprom_data, eeprom_field), MIN(src_size,
sizeof((__eeprom_data*)0)->eeprom_field))
#define eeprom_write(src, eeprom_field) { typeof(src) x = src;
eeprom_write_from(&x, eeprom_field, sizeof(x)); }
#define MIN(x,y) ( x > y ? y : x )
//-------------------------------------------------------------------------------//
//---global κεηαβιεηέο-----------------------------------------------------------//
float
humidity_loop,average_temperature,max_temperature,average_humidity,max_humidity,hum
idity_now,temperature_now,temperature_loop,temperature_min=99.9,humidity_min=99.9,t
emperature_array[5],humidity_array[5];
volatile unsigned long seconds,minutes,hours,days; //κεηαβιεηέο πνπ καο δείρλνπλ
ην ζπλνιηθό ρξόλν ιεηηνπξγίαο
static unsigned long lastTick = 0; //πξνζσξηλή κεηαβιεηή γηα ηνλ ππνινγηζκό ελόο
δεπηεξνιέπηνπ
volatile static unsigned long timer,pir_timer; //θπξίσο ρξνλόκεηξν & ρξνλόκεηξν
ηνπ pir αηζζεηήξα
int pir=0; //πιήζνο αληρλεύζεσλ θίλεζεο
//-------------------------------------------------------------------------------//
//---struct πνπ θαηαγξάθεη ηηο κέγηζηεο θαη ειάρηζηεο ηηκέο ηεο πγξαζίαο &
ζεξκνθξαζίαο ζηελ EEPROM---//
struct __eeprom_data {
const float eeprom_max_temp;
const float eeprom_min_temp;
const float eeprom_min_hum;
const float eeprom_max_hum;
};
//---Παξάκεηξνη αζύξκαηεο επηθνηλσλίαο κε ην AP----------------------------------//
U8 local_ip[] = {xxx,xxx,xxx,xxx}; //IP ηεο WiShield
U8 gateway_ip[] = {xxx,xxx,xxx,xxx}; //Gateway IP
U8 subnet_mask[] = {xxx,xxx,xxx,xxx}; //Subnet mask
const prog_char ssid[] PROGMEM = {"xxx"}; //SSID, Max 32 bytes
U8 security_type = 0; //ηύπνο αζθάιεηαο 0==open, 1==WEP, 2==WPA, 3==WPA2
U8 wireless_mode = 1; //ηύπνο δηθηύνπ 1==Infrastructure, 2==Ad-hoc
const prog_char security_passphrase[] PROGMEM = {""}; //AP password
prog_uchar wep_keys[] = {}; //wep keys
87
U8 security_passphrase_len, ssid_len;
//αξηζκόο ραξαθηήξσλ ησλ keys
//-------------------------------------------------------------------------------//
//---html strings γηα ηελ δπλακηθή δεκηνπξγία ηζηνζειίδσλ------------------------//
const prog_char css[] PROGMEM= {"html,body{margin:0;padding:0}body{font: 100%
arial,sans-serif;text-align:center}p{margin:0 10px 10px} a{padding:5px; textdecoration:none; color:#000000;} div#header{border:1px solid gray;backgroundcolor:#CBE9F2;background-image:url('gradient.jpg');background-repeat:repeatx;}div#header h1{height:80px;line-height:80px;margin:0;paddingleft:10px;}div#container{text-align:left}div#content p{lineheight:1.4}div#navigation{background:#F6F0E0;}div#navigation ul{margin:15px 0;
padding:0; list-style-type:none;}div#navigation li{marginbottom:5px;}div#extra{background:#F1E1B5;}div#footer{background:#D0D0D0;}div#footer
p{margin:0;padding:5px 10px}div#container{width:700px;margin:0
auto}div#wrapper{float:left;width:100%}div#content{margin-left:
300px}div#navigation{float:left;width:150px;margin-left:-550px}div#extra{border:1px
solid gray;float:left;width:180px;margin-left:-700px}div#footer{border:1px solid
gray;clear:left;width:100%}"};
const prog_char header[] PROGMEM= {"<html><head><meta
content=\"text/html;charset=utf-8\" http-equiv=\"content-type\"/><title>Ιζηνζειίδα
παξαθνινύζεζεο ηειεκεηξηθνύ ππνζπζηήκαηνο</title><link rel=\"stylesheet\"
href=\"styles.css\" type=\"text/css\" /></head><body><div id=\"container\"><div
id=\"header\"><h1>Τειεκεηξηθό ππνζύζηεκα</h1></div><div id=\"wrapper\"><div
id=\"content\">"};
const prog_char home_nav[] PROGMEM= {"</div></div><div
id=\"extra\"><p><strong><h3><p>Πινήγεζε</p></h3></strong><hr/><p><a
href=\"/log\">Καηαγξαθέο 24σξνπ</a></p>"};
const prog_char log_nav[] PROGMEM= {"</div></div><div
id=\"extra\"><p><strong><h3><p>Πινήγεζε</p></h3></strong><hr/><p><a
href=\"/\">Αξρηθή ζειίδα</a></p>"};
const prog_char log_caption[] PROGMEM= {"<p><h3>Πίλαθεο θαηαγξαθήο</h3></p>"};
const prog_char footer[] PROGMEM= {"</div><div id=\"footer\"><p><b>Σπλνιηθόο ρξόλνο
ιεηηνπξγίαο: </b>"};
const prog_char footer_end[] PROGMEM= {"</p></div></div></body></html>"};
const prog_char temperature_banner[] PROGMEM= {"<p><h4>Θεξκνθξαζία</h4></p>"};
const prog_char celsius[] PROGMEM= {"&#8451;"};
const prog_char percentage[] PROGMEM= {"&#37;"};
const prog_char text_now[] PROGMEM= {"<p>Τξέρνπζα: "};
const prog_char text_max[] PROGMEM= {"<p>Μέγηζηε: "};
const prog_char text_med[] PROGMEM= {"<p>Μέζε: "};
const prog_char text_min[] PROGMEM= {"<p>Ειάρηζηε: "};
const prog_char humidity_banner[] PROGMEM= {"<p><h4>Σρεηηθή πγξαζία</h4></p>"};
const prog_char pir_table[] PROGMEM= {"<p><table border=\"0\">"};
const prog_char home_pir[] PROGMEM= {"<p><h4>Αλίρλεπζε θίλεζεο</h4></p><hr/>"};
const prog_char pir_now[] PROGMEM= {"<td>Κίλεζε ζε εμέιημε:</td>"};
const prog_char pir_msg_2[] PROGMEM= {"<td>Πιήζνο αληρλεύζεσλ θίλεζεο:</td>"};
const prog_char log_table[] PROGMEM= {"<p><table border=\"3\">"};
const prog_char log_caption_1[] PROGMEM= {"<td colspan=\"8\"><center><b>Ωξηαία
κέηξεζε ζεξκνθξαζίαο ζε &#8451;</b></center></td>"};
const prog_char log_caption_2[] PROGMEM= {"<td colspan=\"8\"><center><b>Ωξηαία
κέηξεζε ζρεηηθήο πγξαζίαο ζε &#37;</b></center></td>"};
const prog_char log_caption_max[] PROGMEM= {"<td colspan=\"8\"
rowspan=\"1\"><center><b>Μέγηζηε:</b> "};
const prog_char log_caption_min[] PROGMEM= {"<td colspan=\"8\"
rowspan=\"1\"><center><b>Ειάρηζηε:</b> "};
const prog_char log_caption_at[] PROGMEM= {"ζηηο "};
const prog_char log_caption_end[] PROGMEM= {":00</center>"};
const prog_char yes[] PROGMEM= {"<td>NAI</td>"};
const prog_char no[] PROGMEM= {"<td>ΟΧΙ</td>"};
const prog_char last[] PROGMEM= {"<td>Η ηειεπηαία πξηλ:</td>"};
const prog_char hr[] PROGMEM= {"<hr/>"};
const prog_char p_end[] PROGMEM= {"</p>"};
const prog_char space[] PROGMEM= {"&nbsp;"};
const prog_char tr[] PROGMEM= {"<tr>"};
const prog_char tr_end[] PROGMEM= {"</tr>"};
const prog_char td[] PROGMEM= {"<td>"};
const prog_char td_end[] PROGMEM= {"</td>"};
88
const prog_char table_end[] PROGMEM= {"</table></p>"};
const prog_char d[] PROGMEM= {"d "};
const prog_char h[] PROGMEM= {"h "};
const prog_char m[] PROGMEM= {"m "};
const prog_char s[] PROGMEM= {"s"};
//-------------------------------------------------------------------------------//
//----ε ζπλάξηεζε setup είλαη ππεύζπλε γηα ηελ αξρηθνπνίεζε software & hardware
παξακέηξσλ πξηλ ηελ εθηέιεζε ηεο loop----//
void setup()
{
pinMode(FLASH_SLAVE_SELECT,OUTPUT); //ζέηεη ην pin 7 σο έμνδν
digitalWrite(FLASH_SLAVE_SELECT,HIGH); //πξνζσξηλή απελεξγνπνίεση ηνπ AT45DB161D
γηα απνθπγή conficts
pinMode(WIFI_SLAVE_SELECT,OUTPUT); //ζέηεη ην pin 10 σο έμνδν
digitalWrite(WIFI_SLAVE_SELECT,HIGH); //πξνζσξηλή απελεξγνπνίεση ηνπ g2100 γηα
απνθπγή conficts
WiServer.init(servePage); //αξρηθνπνίεζε ηεο ηζηνζειίδαο πνπ ζα δηαθνκίζνπκε
dflash.init(FLASH_SLAVE_SELECT); //AT45DB161D σο slave
digitalWrite(8, HIGH); //ην pin 8 αλεβαίλεη ζε θαηάζηαζε HIGH ώζηε λα κελ
παξάγεη interrupt ην g2100 θαη ζηακαηάεη ηελ loop()
sensors.begin(); //αξρηθνπνίεζε ηνπ DS18B20
}
//-------------------------------------------------------------------------------//
//---ε ζπλάξηεζε απηή ζπλζέηεη ηελ θύξηα ηζηνζειίδα πνπ ζα δηαθνκίζνπκε---//
boolean servePage(char* URL) {
if (strcmp(URL, "/") == 0){
WiServer.print_P(header);
WiServer.print_P(hr);
WiServer.print_P(temperature_banner);
WiServer.print_P(hr);
WiServer.print_P(text_now);
WiServer.print(temperature_now=get_temperature()); //ζεξκνθξαζία ηώξα
WiServer.print_P(celsius);
WiServer.print_P(p_end);
WiServer.print_P(text_min);
WiServer.print(temperature_min); //ειάρηζηε ζεξκνθξαζία
WiServer.print_P(celsius);
WiServer.print_P(p_end);
WiServer.print_P(text_med);
WiServer.print(average_temperature); //κέζε ζεξκνθξαζία
WiServer.print_P(celsius);
WiServer.print_P(p_end);
WiServer.print_P(text_max);
WiServer.print(max_temperature); //κέγηζηε ζεξκνθξαζία
WiServer.print_P(celsius);
WiServer.print_P(hr);
WiServer.print_P(humidity_banner);
WiServer.print_P(hr);
WiServer.print_P(text_now);
WiServer.print(humidity_now=get_humidity(temperature_now)); //πγξαζία ηώξα
WiServer.print_P(percentage);
WiServer.print_P(p_end);
WiServer.print_P(text_min);
WiServer.print(humidity_min); //ειάρηζηε πγξαζία
WiServer.print_P(percentage);
WiServer.print_P(p_end);
WiServer.print_P(text_med);
WiServer.print(average_humidity); //κέζε πγξαζία ηώξα
WiServer.print_P(percentage);
WiServer.print_P(p_end);
WiServer.print_P(text_max);
WiServer.print(max_humidity); //κέγηζηε πγξαζία ηώξα
WiServer.print_P(percentage);
89
WiServer.print_P(p_end);
WiServer.print_P(hr);
WiServer.print_P(home_pir);
WiServer.print_P(pir_table);
WiServer.print_P(tr);
WiServer.print_P(pir_msg_2);
WiServer.print_P(td);
WiServer.print(pir); //πόζεο θηλήζεηο είρακε
WiServer.print_P(td_end);
WiServer.print_P(tr_end);
WiServer.print_P(tr);
WiServer.print_P(last);
if(pir>0)
{
uptime(timer-pir_timer); //ε ηειεπηαία θίλεζε πόηε ήηαλ
WiServer.print_P(td);
WiServer.print(hours);
//ώξεο κεηά ηελ ηειεπηαία θίλεζε
WiServer.print_P(h);
WiServer.print(minutes); //ιεπηά κεηά ηελ ηειεπηαία θίλεζε
WiServer.print_P(m);
WiServer.print(seconds); //δεπηεξόιεπηα κεηά ηελ ηειεπηαία θίλεζε
WiServer.print_P(s);
WiServer.print_P(td_end);
}
else
{
WiServer.print_P(td);
WiServer.print("--");
WiServer.print_P(td_end);}
WiServer.print_P(tr_end);
WiServer.print_P(tr);
WiServer.print_P(pir_now);
if(digitalRead(5)==1) //θίλεζε ζε εμέιημε
WiServer.print_P(yes);
if(digitalRead(5)==0) //απνπζία θίλεζεο
WiServer.print_P(no);
WiServer.print_P(tr_end);
WiServer.print_P(table_end);
WiServer.print_P(home_nav); //ζειίδα θαηαγξαθήο 24σξνπ
WiServer.print_P(footer);
uptime(timer);
//uptime ζπζηήκαηνο
WiServer.print(days); //ζπλνιηθέο κέξεο ιεηηνπξγίαο
WiServer.print_P(d);
WiServer.print(hours); //ζπλνιηθέο ώξεο ιεηηνπξγίαο
WiServer.print_P(h);
WiServer.print(minutes); //ζπλνιηθά ιεπηά ιεηηνπξγίαο
WiServer.print_P(m);
WiServer.print(seconds); //ζπλνιηθά δεπηεξόιεπηα ιεηηνπξγίαο
WiServer.print_P(s);
WiServer.print_P(footer_end);
return true;
}
//--------------------------------ηέινο βαζηθήο ηζηνζειίδαο---------------------//
//---όηαλ ν web browser θάλεη αίηεκα γηα ζπγθεθξηκέλα αξρεία ηα απνζηέιινπμε κε ηνλ
παξαθάησ θώδηθα---//
if (strcmp(URL, "/styles.css") == 0){ //απνζηνιή ηνπ stylesheet styles.css
WiServer.print_P(css); //δεδνκέλα ζηελ PROGMEM
return true;
}
if (strcmp(URL, "/gradient.jpg") == 0){ //απνζηνιή εηθόλαο gradient.jpg
WiServer.write_P((char*)gradient,912); //δεδνκέλα ζηελ PROGMEM
90
return true;
}
//-------------------------------------------------------------------------------//
//---εδώ ζπλζέηνπκε ηελ ηζηνζειίδα θαηαγξαθώλ 24σξνπ---//
if (strcmp(URL, "/log") == 0){
float v,max_temp=0.0,min_temp=99.9,max_hum=0.0,min_hum=99.9; //πξνζσξηλέο
κεηαβιεηέο γηα ηηο ηηκέο κέγηζησλ θαη ειάρηζησλ ζηνπο πίλαθεο
int max_pos=0,min_pos=0,max_pos_2=0,min_pos_2=0; //πξνζσξηλέο κεηαβιεηέο γηα
ηελ ζέζε κέγηζησλ θαη ειάρηζησλ ζηνπο πίλαθεο
byte array_byte[4]; //πίλαθαο γηα ηελ απνζήθεπζε ησλ 4 byte ελόο float
dflash.Page_To_Buffer(0,1);
dflash.Page_To_Buffer(1,2);
WiServer.print_P(header);
//κεηαθνξά δεδνκέλσλ από ηελ page 0 ζηνλ buffer 1
//κεηαθνξά δεδνκέλσλ από ηελ page 1 ζηνλ buffer 2
//---πίλαθαο θαηαγξαθήο ζεξκνθξαζίαο---//
WiServer.print_P(log_caption);
WiServer.print_P(log_table);
WiServer.print_P(tr);
WiServer.print_P(log_caption_1);
WiServer.print_P(tr_end);
WiServer.print_P(tr);
//---1ε γξακκή πίλαθα ηηκώλ ζεξκνθξαζίαο---//
for (int j=0,i=0;i< 33; i++) //επεμεξγαζία 32 byte ή 8 float
{
if((i%4==0)&&(i!=0)) //έιεγρνο αλ είκαζηε ζην 4ν byte
{
WiServer.print_P(td);
v=FloatFromByteArray(array_byte); //δόκεζε ηηκήο από 4 byte ζ' έλα float
WiServer.print(v);
if(v>max_temp){ //εύξεζε κέγηζηεο ηηκήο
max_temp=v;
max_pos=i/4;}
//ζέζε κέγηζηεο ηηκήο
if(v<min_temp){ //εύξεζε ειάρηζηεο ηηκήο
min_temp=v;
min_pos=i/4;}
//ζέζε ειάρηζηεο ηηκήο
WiServer.print_P(td_end);
j=0; //κόιηο έγηλε αλάγλσζε ηνπ 4νπ byte
}
array_byte[j]=dflash.Buffer_Read_Byte(1,i); //αλάγλσζε 1 byte από ηνλ buffer 1
j++; //ζέζε επόκελνπ byte
}
WiServer.print_P(tr_end);
//---2ε γξακκή πίλαθα ηηκώλ ζεξκνθξαζίαο---//
WiServer.print_P(tr);
for (int j=0,i=36;i<65; i++) //επεμεξγαζία 32 byte ή 8 float offset 32 byte
{
if((i%4==0)&&(i!=0)) //έιεγρνο αλ είκαζηε ζην 4ν byte
{
WiServer.print_P(td);
v=FloatFromByteArray(array_byte); //δόκεζε ηηκήο από 4 byte ζ' έλα float
WiServer.print(v);
if(v>max_temp){ //εύξεζε κέγηζηεο ηηκήο
max_temp=v;
max_pos=i/4;}
//ζέζε κέγηζηεο ηηκήο
if(v<min_temp){ //εύξεζε ειάρηζηεο ηηκήο
min_temp=v;
min_pos=i/4;}
//ζέζε ειάρηζηεο ηηκήο
WiServer.print_P(td_end);
j=0; //κόιηο έγηλε αλάγλσζε ηνπ 4νπ byte
}
array_byte[j]=dflash.Buffer_Read_Byte(1,i);
91
//αλάγλσζε 1 byte από ηνλ buffer 1
j++; //ζέζε επόκελνπ byte
}
WiServer.print_P(tr_end);
//---3ε γξακκή πίλαθα ηηκώλ ζεξκνθξαζίαο---//
WiServer.print_P(tr);
for (int j=0,i=68;i< 97; i++) //επεμεξγαζία 32 byte ή 8 float offset 32 byte
{
if((i%4==0)&&(i!=0)) //έιεγρνο αλ είκαζηε ζην 4ν byte
{
WiServer.print_P(td);
v=FloatFromByteArray(array_byte); //δόκεζε ηηκήο από 4 byte ζ' έλα float
WiServer.print(v);
if(v>max_temp){ //εύξεζε κέγηζηεο ηηκήο
max_temp=v;
max_pos=i/4;}
//ζέζε κέγηζηεο ηηκήο
if(v<min_temp){ //εύξεζε ειάρηζηεο ηηκήο
min_temp=v;
min_pos=i/4;}
//ζέζε ειάρηζηεο ηηκήο
WiServer.print_P(td_end);
j=0; //κόιηο έγηλε αλάγλσζε ηνπ 4νπ byte
}
array_byte[j]=dflash.Buffer_Read_Byte(1,i); //αλάγλσζε 1 byte από ηνλ buffer 1
j++; //ζέζε επόκελνπ byte
}
WiServer.print_P(tr_end);
WiServer.print_P(tr);
WiServer.print_P(log_caption_max);
WiServer.print(max_temp); //κέγηζηε ηηκε ζεξκνθξαζίαο
WiServer.print_P(celsius);
WiServer.print_P(space);
WiServer.print_P(log_caption_at);
WiServer.print(max_pos-1); //ηη ώξα
WiServer.print_P(log_caption_end);
WiServer.print_P(td_end);
WiServer.print_P(tr_end);
WiServer.print_P(tr);
WiServer.print_P(log_caption_min);
WiServer.print(min_temp); //ειάρηζηε ηηκε ζεξκνθξαζίαο
WiServer.print_P(celsius);
WiServer.print_P(space);
WiServer.print_P(log_caption_at);
WiServer.print(min_pos-1); //ηη ώξα
WiServer.print_P(log_caption_end);
WiServer.print_P(td_end);
WiServer.print_P(tr_end);
WiServer.print_P(table_end);
//---πίλαθαο θαηαγξαθήο πγξαζίαο---//
WiServer.print_P(log_table);
WiServer.print_P(tr);
WiServer.print_P(log_caption_2);
WiServer.print_P(tr_end);
//---1ε γξακκή πίλαθα ηηκώλ πγξαζίαο---//
for (int j=0,i=0;i< 33; i++) //επεμεξγαζία 32 byte ή 8 float
{
if((i%4==0)&&(i!=0)) //έιεγρνο αλ είκαζηε ζην 4ν byte
{
WiServer.print_P(td);
v=FloatFromByteArray(array_byte); //δόκεζε ηηκήο από 4 byte ζ' έλα float
WiServer.print(v);
if(v>max_hum){ //εύξεζε κέγηζηεο ηηκήο
max_hum=v;
max_pos_2=i/4;} //ζέζε κέγηζηεο ηηκήο
if(v<min_hum){
//εύξεζε ειάρηζηεο ηηκήο
min_hum=v;
92
min_pos_2=i/4;} //ζέζε ειάρηζηεο ηηκήο
WiServer.print_P(td_end);
j=0; //κόιηο έγηλε αλάγλσζε ηνπ 4νπ byte
}
array_byte[j]=dflash.Buffer_Read_Byte(2,i);
j++; //ζέζε επόκελνπ byte
}
WiServer.print_P(tr_end);
//---2ε γξακκή πίλαθα ηηκώλ πγξαζίαο---//
WiServer.print_P(tr);
//αλάγλσζε 1 byte από ηνλ buffer 2
for (int j=0,i=36;i<65; i++) //επεμεξγαζία 32 byte ή 8 float offset 32 byte
{
if((i%4==0)&&(i!=0)) //έιεγρνο αλ είκαζηε ζην 4ν byte
{
WiServer.print_P(td);
v=FloatFromByteArray(array_byte); //δόκεζε ηηκήο από 4 byte ζ' έλα float
WiServer.print(v);
if(v>max_hum){ //εύξεζε κέγηζηεο ηηκήο
max_hum=v;
max_pos_2=i/4;} //ζέζε κέγηζηεο ηηκήο
if(v<min_hum){
//εύξεζε ειάρηζηεο ηηκήο
min_hum=v;
min_pos_2=i/4;} //ζέζε ειάρηζηεο ηηκήο
WiServer.print_P(td_end);
j=0; //κόιηο έγηλε αλάγλσζε ηνπ 4νπ byte
}
array_byte[j]=dflash.Buffer_Read_Byte(2,i);
j++; //ζέζε επόκελνπ byte
}
WiServer.print_P(tr_end);
//---3ε γξακκή πίλαθα ηηκώλ πγξαζίαο---//
WiServer.print_P(tr);
//αλάγλσζε 1 byte από ηνλ buffer 2
for (int j=0,i=68;i< 97; i++) //επεμεξγαζία 32 byte ή 8 float offset 32 byte
{
if((i%4==0)&&(i!=0)) //έιεγρνο αλ είκαζηε ζην 4ν byte
{
WiServer.print_P(td);
v=FloatFromByteArray(array_byte); //δόκεζε ηηκήο από 4 byte ζ' έλα float
WiServer.print(v);
if(v>max_hum){ //εύξεζε κέγηζηεο ηηκήο
max_hum=v;
max_pos_2=i/4;} //ζέζε κέγηζηεο ηηκήο
if(v<min_hum){
//εύξεζε ειάρηζηεο ηηκήο
min_hum=v;
min_pos_2=i/4;} //ζέζε ειάρηζηεο ηηκήο
WiServer.print_P(td_end);
j=0; //κόιηο έγηλε αλάγλσζε ηνπ 4νπ byte
}
array_byte[j]=dflash.Buffer_Read_Byte(2,i); //αλάγλσζε 1 byte από ηνλ buffer 2
j++; //ζέζε επόκελνπ byte
}
WiServer.print_P(tr_end);
WiServer.print_P(tr);
WiServer.print_P(log_caption_max);
WiServer.print(max_hum); //κέγηζηε ηηκε πγξαζίαο
WiServer.print_P(percentage);
WiServer.print_P(space);
WiServer.print_P(log_caption_at);
WiServer.print(max_pos_2-1); //ηη ώξα
WiServer.print_P(log_caption_end);
WiServer.print_P(td_end);
WiServer.print_P(tr_end);
WiServer.print_P(log_caption_min);
WiServer.print(min_hum); //ειάρηζηε ηηκε πγξαζίαο
93
WiServer.print_P(percentage);
WiServer.print_P(space);
WiServer.print_P(log_caption_at);
WiServer.print(min_pos_2-1); //ηη ώξα
WiServer.print_P(log_caption_end);
WiServer.print_P(td_end);
WiServer.print_P(tr_end);
WiServer.print_P(table_end);
WiServer.print_P(log_nav); //πίζσ ζηελ αξρηθή ζειίδα
WiServer.print_P(footer);
uptime(timer);
//ππνινγηζκόο uptime
WiServer.print(days);
//ζπλνιηθέο κέξεο ιεηηνπξγίαο
WiServer.print_P(d);
WiServer.print(hours);
//ζπλνιηθέο ώξεο ιεηηνπξγίαο
WiServer.print_P(h);
WiServer.print(minutes); //ζπλνιηθά ιεπηά ιεηηνπξγίαο
WiServer.print_P(m);
WiServer.print(seconds); //ζπλνιηθά δεπηεξόιεπηα ιεηηνπξγίαο
WiServer.print_P(s);
WiServer.print_P(footer_end);
return true;
}
//--------------------------ηέινο ηζηνζειίδαο log---------------------------//
return false;
//αλ επεηζηξέςεη ςεπδέο -->URL not found --> 404 error---//
}
//---------------------------ηέινο servePage()--------------------------//
//---ε loop εθηειείηαη ζπλερώο---//
void loop(){
static unsigned i,j=0,k=1,timer_2,timer_3,timer_4,timer_5; //αλ δελ είλαη ηύπνπ
static ζα ράζνπλ ηηο ηηκέο ηνπο αλα iteration
float temperature_sum,average_temperature_loop,humidity_sum,average_humidity_loop;
WiServer.server_task();
//βαζηθή ζπλάξηεζε πνπ ειέγρεη αλ δεηάκε θάπνηα ηζηνζειίδα
if(!zg_get_conn_state()) //αλ αληρλεπζεί απνζύλδεζε --> low level reset ζην g2100
{
zg_chip_reset();
WiServer.init(servePage);
}
//---πινπνίζε ελνο software timer πνπ ειέγρεη αλ ε δηαθνξά ηεο millis() κε ηελ
lastTick είλαη 1000 msec ή 1 sec
if (millis() - lastTick >= 1000)
{
lastTick = millis(); //ε millis() καο επηζηξέθεη ηα millisecond από ηελ αξρή
εθηέζεο ηνπ θώδηθα
timer++; //κεηξήζεθε ελα sec
timer_2++;
//βνεζεηηθνί timers
timer_3++;
//<--|
timer_4++;
//<--|
timer_5++;
//<--|
}
//---εγγξαθή κέγηζησλ & ειάρηζησλ ηηκώλ από ηελ EEPROM πνπ θαηαγξάθζεθαλ ζε
πξνεγνύκελεο κεηξήζεηο --> παξακέλνπλ κεηαμύ ησλ reset---//
if(timer==1)
{
float temp_t_max,temp_t_min,temp_h_max,temp_h_min;
eeprom_read(temp_t_max, eeprom_max_temp);
eeprom_read(temp_t_min, eeprom_min_temp);
eeprom_read(temp_h_max, eeprom_max_hum);
94
eeprom_read(temp_h_min, eeprom_min_hum);
max_temperature=temp_t_max;
temperature_min=temp_t_min;
max_humidity=temp_h_max;
humidity_min=temp_h_min;
}
//---ειέγρνπκε γηα θίλεζε & θξαηάκε 5 δείγκαηα αλ 6 sec θαη βξίζθνπκε επίζεο
κέγηζηε & ειάρηζηε ηηκή---//
if(timer_2==6) //ειέγρεηαη θάζε 6 sec
{
temperature_loop=get_temperature(); //κέηξεζε ζεξκνθξαζίαο
humidity_loop=get_humidity(temperature_loop); //κέηξεζε πγξαζίαο
if(i>4)
i=0;
temperature_array[i]=temperature_loop; //πίλαθαο ζεξκνξαζίαο
humidity_array[i]=humidity_loop;
//πίλαθαο πγξαζίαο
i++;
timer_2=0; //κεδεληζκόο timer
if(temperature_loop>max_temperature) //εύξεζε κέγηζηεο ζεξκνθξαζίαο
max_temperature=temperature_loop;
if(temperature_loop<temperature_min) //εύξεζε ειάρηζηεο ζεξκνθξαζίαο
temperature_min=temperature_loop;
if(humidity_loop>max_humidity)
//εύξεζε κέγηζηεο πγξαζίαο
max_humidity=humidity_loop;
if(humidity_loop<humidity_min)
//εύξεζε ειάρηζηεο πγξαζίαο
humidity_min=humidity_loop;
if (digitalRead(5) == HIGH)
//PIR ζην pin 5 αλ δώζεη HIGH --> θίλεζε
{
pir++; //ζύλνιν αληρλεπζέλησλ θηλήζεσλ
pir_timer=timer; //ρξνληθή ζηηγκή πνπ αληρλεύηεθε θίλεζε
}
}
//---ππνινγίδνπκε ηελ κέζε ηηκή ζεξκνθξαζίαο & πγξαζίαο κε 5 δείγκαηα πνπ ηα
παίξλνπκε αλά 6 sec---//
if(timer_3==30) //ειέγρεηαη θάζε κηζό ιεπηό
{
temperature_sum=humidity_sum=0;
for(int i=0;i<5;i++)
{
temperature_sum+=temperature_array[i];
humidity_sum+=humidity_array[i];
}
average_temperature_loop=temperature_sum/5;
average_humidity_loop=(humidity_sum/5);
average_temperature=average_temperature_loop;
average_humidity=average_humidity_loop;
timer_3=0; //κεδεληζκόο timer
}
if(timer_4==60) //ειέγρεηαη θάζε ιεπηό
{
float temp_t_max,temp_t_min,temp_h_max,temp_h_min;
temp_t_max=max_temperature;
temp_t_min=temperature_min;
temp_h_max=max_humidity;
temp_h_min=humidity_min;
eeprom_write(temp_t_max, eeprom_max_temp); //εγγξαθή κέγηζησλ & ειάρηζησλ ζηελ
EEPROM
eeprom_write(temp_t_min, eeprom_min_temp); //<--|
eeprom_write(temp_h_max, eeprom_max_hum);
//<--|
eeprom_write(temp_h_min, eeprom_min_hum);
//<--|
timer_4=0; //κεδεληζκόο timer
}
if(timer_5==3600)
{
95
//ειέγρεηαη θάζε ώξα --> 3600 sec
if(k)
{
float t_t=average_temperature;
float t_h=average_humidity;
dflash.Buffer_Write_Float(1,j,t_t); //κεηαθνξά ηεο κέζεο ζεξκνθξαζίαο ζην
buffer
dflash.Buffer_Write_Float(2,j,t_h); //κεηαθνξά ηεο κέζεο πγξαζίαο ζην buffer
dflash.Buffer_To_Page(1,0); //κεηαθνξά δεδνκέλσλ ζηελ page 0
dflash.Buffer_To_Page(2,1); //κεηαθνξά δεδνκέλσλ ζηελ page 1
j+=4; //κεηαθίλεζε ζηελ επόκελε ζέζεο κλήκεο 1 float --> 4 byte
if(j==96)
{
k=0;
}
}
timer_5=0; //κεδεληζκόο timer
}
}
//---ηέινο ηεο loop----------------//
//---ε get_temperature ππνινγίδεη ηελ ζεξκνθξαζία ---//
float get_temperature()
{
sensors.setWaitForConversion(true); //αλακνλή έσο ν DS18B20 επηζηξέςεη ηελ
ζεξκνθξαζία
sensors.requestTemperatures(); //request γηα ζεξκνθξαζία ζηνλ δίαπιν 1 Wire
return sensors.getTempCByIndex(0); //ε ζεξκνθξαζία ηεο πξώηεο ζπζθεπήο ζηνλ
δίαπιν
}
//---ε get_humidity ππνινγίδεη ηελ πγξαζία κε όξηζκα ηελ παξνύζα ζεξκνθξαζία ---//
float get_humidity(float temperature)
{
float humidity,input;
input=analogRead(5); //ε ηηκή πνπ καο δίλεη ν αηζζεηήξαο HIH-4030
humidity=(((((input/1024)*5)+0.017)-0.958)/30.68)/(1.0546 (0.00216*(temperature)))*1000; //ππνινγηζκόο πγξαζίαο βάζε επίδξαζεο ζεξκνθξαζίαο
return humidity;
}
//---ε uptime πέξλεη όξηζκα αξηζκό δεπηεξνιέπησλ θαη ππνινγίδεη ηηο days hours
minutes seconds
void uptime(unsigned long timer)
{
days=timer/86400; //δεπηεξόιεπηα αλά κέξα
hours=(timer%86400)/3600; //δεπηεξόιεπηα αλά ώξα
minutes=((timer%86400)%3600)/60; //δεπηεξόιεπηα αλά ιεπηό
seconds=((timer%86400)%3600)%60; //δεπηεξόιεπηα ππόινηπν
}
//---ε FloatFromByteArray ζπλζέηεη έλαλ float απν 4 byte
float FloatFromByteArray (const unsigned char * received_data)
{
float f;
memcpy (&f, received_data, sizeof (float)); //παίξλεη 4 byte θαη αληηγξάθει ηα
δεδνκέλα ηνπο σο εληαίν θνκκάηη κλήκεο κέζσ ηεο memcpy ζην πεξηερόκελν ελόο δείθηε
float
return f;
}
96
Παξάξηεκα Β θώδηθαο html ηζηνζειίδσλ
΢εκείσζε: ο κώδικας html περιέχει και ηιμές μεηρήζεων.
Πξώηε ηζηνζειίδα:
<html>
<head>
<meta content="text/html; charset=UTF-8" http-equiv="content-type">
<title>Ιζηνζειίδα παξαθνινύζεζεο ηειεκεηξηθνύ ππνζπζηήκαηνο</title>
<link rel="stylesheet" href="thesis_home_files/styles.css" type="text/css">
</head>
<body>
<div id="container">
<div id="header">
<h1>Τειεκεηξηθόππνζύζηεκα</h1></div>
<div id="wrapper"><divid="content">
<hr>
<p></p><h4>Θεξκνθξαζία</h4><p></p>
<hr><p>Τξέρνπζα: 24.31℃</p>
<p>Ειάρηζηε: 22.00℃</p>
<p>Μέζε: 24.31℃</p>
<p>Μέγηζηε: 26.25℃</p>
<hr><p></p>
<h4>Σρεηηθή πγξαζία</h4><p></p>
<hr>
<p>Τξέρνπζα: 42.93%</p>
<p>Ειάρηζηε: 17.92%</p>
<p>Μέζε: 42.45%</p>
<p>Μέγηζηε: 55.67%</p>
<hr><p></p>
<h4>Αλίρλεπζε θίλεζεο</h4><p></p>
<hr>
<p><table border="0"><tbody>
<tr><td>Πιήζνο αληρλεύζεσλ θίλεζεο:</td><td>8</td></tr>
<tr><td>Η ηειεπηαία πξηλ:</td><td>0h 0m 3s</td></tr>
<tr><td>Κίλεζε ζε εμέιημε:</td><td>ΟΧΙ</td>
</tr></tbody></table></p></div></div>
<div id="extra">
<p><strong><h3><p>Πινήγεζε</p></h3></strong></p>
<hr>
<p><a href="http://192.168.1.10/log">Καηαγξαθέο 24σξνπ</a></p></div>
<div id="footer"><p>
<b>Σπλνιηθόο ρξόλνο ιεηηνπξγίαο: </b> 1d 0h 50m 4s</p></div></div>
</body>
</html>
97
Γεύηεξε ηζηνζειίδα:
<html>
<head>
<meta content="text/html; charset=UTF-8" http-equiv="content-type">
<title>Ιζηνζειίδα παξαθνινύζεζεο ηειεκεηξηθνύ ππνζπζηήκαηνο</title>
<link rel="stylesheet" href="thesis_log_files/styles.css" type="text/css">
</head>
<body>
<div id="container">
<div id="header"><h1>Τειεκεηξηθό ππνζύζηεκα</h1></div>
<div id="wrapper"><div id="content"><p></p>
<h3>Πίλαθεο θαηαγξαθήο </h3><p></p>
<p><table border="3"><tbody><tr><td colspan="8"><center>
<b>Ωξηαία κέηξεζε ζεξκνθξαζίαο ζε ℃</b></center></td></tr>
<tr><td>24.87</td><td>24.90</td><td>24.86</td><td>24.87</td><td>24.89</td><td>24.85
</td><td>24.89</td><td>24.89</td></tr>
<tr><td>24.89</td><td>24.84</td><td>24.72</td><td>24.74</td><td>24.75</td><td>24.71
</td><td>24.74</td><td>24.77</td></tr>
<tr><td>24.77</td><td>24.79</td><td>24.75</td><td>24.75</td><td>24.75</td><td>24.75
</td><td>24.75</td><td>24.75</td></tr>
<tr><td colspan="8" rowspan="1"><center>
<b>Μέγηζηε:</b> 24.90℃&nbsp;ζηηο 1:00</center></td></tr>
<tr><td colspan="8" rowspan="1"><center><b>Ειάρηζηε:</b> 24.71℃&nbsp;ζηηο
13:00</center></td></tr>
</tbody></table></p><p><table border="3"><tbody>
<tr><td colspan="8">
<center><b>Ωξηαία κέηξεζε ζρεηηθήο πγξαζίαο ζε %</b></center></td></tr>
<tr><td>45.36</td><td>43.87</td><td>44.35</td><td>44.28</td><td>44.98</td><td>44.73
</td><td>44.35</td><td>44.25</td></tr>
<tr><td>44.25</td><td>46.44</td><td>44.65</td><td>44.71</td><td>45.16</td><td>45.76
</td><td>45.48</td><td>45.29</td></tr>
<tr><td>45.29</td><td>45.26</td><td>44.84</td><td>45.57</td><td>45.35</td><td>46.46
</td><td>45.00</td><td>44.97</td></tr>
<tr><td colspan="8" rowspan="1"><center>
<b>Μέγηζηε:</b> 46.46%&nbsp;ζηηο 21:00</center></td></tr>
<tr><td colspan="8" rowspan="1"><center>
<b>Ειάρηζηε:</b> 43.87%&nbsp;ζηηο 1:00</center></td></tr>
</tbody></table></p>
</div></div><div id="extra"><p>
<strong><h3><p>Πινήγεζε</p></h3></strong></p>
<hr>
<p><a href="http://192.168.1.10/">Αξρηθή ζειίδα</a></p>
</div><div id="footer">
<p><b>Σπλνιηθόο ρξόλνο ιεηηνπξγίαο: </b>1d 0h 50m 9s</p></div></div>
</body>
</html>
98
Παξάξηεκα Γ ην css style sheet ησλ δύν ηζηνζειίδσλ
Css style sheet:
html,body{margin:0;padding:0}
body{font: 100% arial,sans-serif;text-align:center}
p{margin:0 10px 10px}
a{padding:5px; text-decoration:none; color:#000000;}
div#header{border:1px solid gray;background-color:#CBE9F2;backgroundimage:url('gradient.jpg');background-repeat:repeat-x;}
div#header h1{height:80px;line-height:80px;margin:0;padding-left:10px;}
div#container{text-align:left}
div#content p{line-height:1.4}
div#navigation{background:#F6F0E0;}
div#navigation ul{margin:15px 0; padding:0; list-style-type:none;}
div#navigation li{margin-bottom:5px;}
div#extra{background:#F1E1B5;}
div#footer{background:#D0D0D0;}
div#footer p{margin:0;padding:5px 10px}
div#container{width:700px;margin:0 auto}
div#wrapper{float:left;width:100%}
div#content{margin-left: 300px}
div#navigation{float:left;width:150px;margin-left:-550px}
div#extra{border:1px solid gray;float:left;width:180px;margin-left:-700px}
div#footer{border:1px solid gray;clear:left;width:100%}
99
Παξάξηεκα Γ παξνπζίαζε πηπρηαθήο
Δθαξκνγέο αζχξκαηεο
ηειεκεηξίαο ζηελ
αλαπηπμηαθή πιαηθφξκα
Arduino
Διεπζεξηάδεο Μηραήι
ΑΜ: 982
Δπηβιέπσλ θαζεγεηήο: Κνξλάξνο Γεψξγηνο
1
΢πλδπάδνπκε:
3 αηζζεηήξεο
•Θεξκνθξαζίαο
•Τγξαζίαο
•Κίλεζεο
Αλαπηπμηαθέο πιαθέηεο
•Arduino
•WiShield
2
100
Με ζθνπφ:
Σειεκεηξηθφ ππνζχζηεκα
•Δθηειεί κεηξήζεηο & ππνινγηζκνχο
•Καηαγξάθεη
•Γηαθνκίδεη ηζηνζειίδεο
3
Αξρηθά ζα κειεηήζνπκε
ζέκαηα :
•Σειεκεηξία
• Μηθξνειεγθηέο
• Αηζζεηήξεο
• Αζχξκαηα πξσηφθνιια
4
101
Σειεκεηξία
•Ση είλαη
•Πσο ιεηηνπξγεί
•Οθέιε
5
Μηθξνειεγθηέο
Ση είλαη;
•Ση πξνζθέξνπλ;
•Σαμηλφκεζε
•Βαζηθή δνκή
•Πξνγξακκαηηζκφο
6
102
Αηζζεηήξεο
Δίδε:
•Άκεζνο
•Έκκεζνο
Σαμηλφκεζε:
•Παζεηηθφο
•Δλεξγεηηθφο
•Απφιπηνο
•΢ρεηηθφο
•Ιδηαίηεξσλ ραξαθηεξηζηηθψλ &
ηδηνηήησλ
7
Θεξκνθξαζία, πγξαζία
& αηζζεηήξεο
Ση είλαη:
•Θεξκνθξαζία
•Τγξαζία
•Απφιπηε
•΢ρεηηθή
•Κιίκαθεο κέηξεζεο
•Δίδε
8
103
Θεξκνθξαζία, πγξαζία
& αηζζεηήξεο (2)
•Αηζζεηήξεο ζεξκνθξαζίαο
•Δπαθήο
•Δμ απνζηάζεσο
•Αηζζεηήξεο πγξαζίαο
•Γπζθνιίεο ζηηο κέηξεζεηο
9
΢θάικα κέηξεζεο θαη
αηζζεηήξεο
Καηά ηηο κεηξήζεηο ζεκαληηθφ λα έρνπκε ππφςελ :
•΢θάικα κέηξεζεο
•Αβεβαηφηεηα
•Δκθάληζε ηπραίσλ & ζηαηηζηηθψλ ζθαικάησλ
•Δλίζρπζε επαλαιεςηκφηεηαο
10
104
Αζχξκαην πξσηφθνιιν
802.11b
•Δπέθηαζε ηνπ 802.11
•Ad hoc ή Infrastructure
•΢ηα 2.4 GHz
•Απφδνζε έσο 5.5 Mbps
•14 επηθαιππηφκελα θαλάιηα ησλ 22MHz
•Απνθπγή ζπγθξνχζεσλ κε CSMA/CA
•Αλνρή ζηνλ ζφξπβν
11
Arduino
•Αλαπηπμηαθή πιαθέηα κηθξνειεγθηή
•Open source hardware
•Arduino IDE
•Δλζσκαηψλεη απαξαίηεηα εμαξηήκαηα
•Κφζηνο
12
105
Arduino (2)
•14 ςεθηαθή pin
•5 αλαινγηθά pin
•FTDI ζε USB
Δπεμεξγαζηήο ATmega 328P:
•16 MHz
•32 KB Flash
•2 KB SRAM
•1 KB EEPROM
•Πξνζηαζία απφ πςειή ηάζε & ιαλζαζκέλν πξνγξακκαηηζκφ
13
WiShield
•Αζχξκαην πξσηφθνιιν 802.11b
•Όια ηα pin ηνπ Arduino πξνζβάζηκα &
απνιπηή ζπκβαηφηεηα δηαζηάζεσλ
•Δλζσκαησκέλε θεξαία
•DataFlash κε ρσξεηηθφηεηα 16 Mbit (2MB)
14
106
Dallas DS18B20
•1-Wire interface πνπ απαηηεί κφλν έλα pin
•Μνλαδηθφο 64-Bit θσδηθφο ζην on-board ROM
•-55 C έσο +125 C (-67 F έσο 257 F)
•Ρπζκηδφκελε αθξίβεηα κέηξεζεο
•Υξφλνο κέηξεζεο 750ms max
•«Παξαζηηηθή ηάζε»
•Λεηηνπξγία ζπλαγεξκνχ
15
Honeywell HIH-4030
•Γξακκηθή απφθξηζε ηάζεο εμφδνπ
•Απμεκέλε αθξίβεηα 3,5%
•΢ηαζεξή επίδνζε , κεδακηλή αλάγθε γηα
αλαξξχζκηζε
•Αλζεθηηθφο ζε δηάθνξα ρεκηθά
16
107
PIR Parallax 555 – 280227
•Δχξνο αλίρλεπζεο κέρξη 6 κέηξα
•Έμνδνο ελφο bit πςειή / ρακειή
δηαθξηηήο ηηκήο
•Jumper κνλήο ή ζπλερφκελεο
εμφδνπ ζε bit
•3-pin SIP
17
Τινπνίεζε
•Τινπνίεζε ελφο software timer
Ση εθηειείηαη ζε θαζε ρξνληθφ δηαζηεκα:
• Κάζε 6 δεπηεξφιεπηα
• Κάζε 30 δεπηεξφιεπηα
•Κάζε 60 δεπηεξφιεπηα
•Κάζε κηα ψξα
•Γεκηνπξγία δπν ηζηνζειίδσλ δπλακηθνχ πεξηερνκέλνπ
18
108
Τινπνίεζε (2)
Βαζηθή δνκή θψδηθα C++ νη ζπλαξηήζεηο:
•setup
•loop
•servePage
19
Τινπνίεζε (3)
setup:
Ρχζκηζε Software & hardware παξακέηξσλ
loop:
•΢πλερήο εθηέιεζε
•Μεηξήζεηο & θαηαγξαθέο
•Έιεγρνο αλ επηζπκνχκε ηζηνζειίδα
20
109
Τινπνίεζε (4)
servePage:
•΢χλζεζε ηζηνζειίδσλ
•΢ηαηηθφηαηα Html<b>θείκελν</b>
•Μεζνδνινγία δπλακηθψλ ηζηνζειίδσλ
 <b>θείκελν κεηξήζεηο θείκελν</b>
21
Τινπνίεζε (5)
Οη ηζηνζειίδεο ηεο πινπνίεζεο
•΢ηελ πξψηε
Βαζηθεο κεηξεζεηο
•΢ηελ δεχηεξε
Καηαγξαθεο 24 σξνπ
Σν θχθισκα ηεο πινπνίεζεο:
•Ρχζκηζε θαη εγθαηάζηαζε
22
110
΢πκπεξάζκαηα
•Μειέηε πεξηβαιινληηθψλ ζπλζεθψλ
•Ιδηαίηεξα κηθξφ κέγεζνο
•Υακειέο απαηηήζεηο ζε ελέξγεηα θαη
ηερλνγλσζία
•Αξθεηά ρακειφ θφζηνο
23
Μειινληηθέο επεθηάζεηο
•Οκάδα ίδησλ αηζζεηήξσλ, ε αθξίβεηα θαη ε πεξηνρή
θάιπςεο ζα απμεζνχλ αηζζεηά
•Η κεηαηξνπή ηνπ ζε ζηαζκφ πξφβιεςεο θαηξνχ, κε
κφλε αιιαγή ηνπ PIR αηζζεηήξα, κε έλαλ ζπκβαηφ
αηζζεηήξα αηκνζθαηξηθήο πίεζεο
•Schematics ηνπ Arduino αιιά θαη ηεο WiShield είλαη
δηαζέζηκα ππφ ηελ άδεηα Creative Commons,
ηξνπνπνηνχκε ψζηε ζκίθξπλζε ή επηπιένλ hardware
24
111
Βηβιηνγξαθηα
[1] Frank Carden, Robert Henry, Russ Jedlicka, Telemetry Systems Engineering, Artech House
Telecommunications Library 2002
[2] Yuan Taur, Tak H. Ning, Fundamentals of Modern VLSI Devices, Cambridge University
Press 2009
[3] John Crisp, Introduction to Microprocessors and Microcontrollers, Elsevier 2004
[4] Dale Wheat, Arduino Internals, Apress 2011
[5] Jacob Fraden, Handbook of Modern Sensors, Springer 2010
[6] Robert P. Benedict, Fundamentals of Temperature, Pressure and Flow Measurements, John
Wiley & Sons 1984
[7] John M. Castillo, Relative Humidity: Sensors, Management and Environmental Effects, Nova
Science 2011 [8]William Trochim, James P. Donnelly, The Research Methods Knowledge Base,
Atomic Dog 2007
[9] Maxim DS18B20, http://datasheets.maxim-ic.com/en/ds/DS18B20.pdf
[10] Honeywell HIH-4030, http://sensing.honeywell.com/index.php?ci_id=51625&la_id=1
[11] Parallax PIR 555–280227,
http://www.parallax.com/Portals/0/Downloads/docs/prod/sens/555-28027-PIRSensor-v2.1.pdf
[12] Andrew S. Tanenbaum, Computer Networks, Prentice Hall 2010
[13] WiShield, http://asynclabs.com/wiki/index.php?title=WiShield_2.0
25
΢αο επραξηζησ πνιχ!
Δξσηήζεηο;
26
112
Was this manual useful for you? yes no
Thank you for your participation!

* Your assessment is very important for improving the work of artificial intelligence, which forms the content of this project

Related manuals

Download PDF

advertising