Σχεδίαση Συστημάτων με τον Arduino Μάθημα 3. Σύστημα Συλλογής & Επεξεργασίας Μετρήσεων. Η Έννοια του Global Positioning System

Σχετικά έγγραφα
Σχεδίαση Συστημάτων με τον Arduino Μάθημα 3. Σύστημα Συλλογής & Επεξεργασίας Μετρήσεων. Η Έννοια του Global Positioning System

Συλλογή & Επεξεργασία Δεδομένων Εργαστήριο 8. Σύστημα Συλλογής & Επεξεργασίας Μετρήσεων. Η Έννοια του Global Positioning System

ΕΝΟΤΗΤΑ 14 Πρωτόκολλα Επικοινωνίας

Μάθημα 2 Δραστηριότητα 2: Δημιουργώντας το Μετεωρολογικό Σταθμό. Επανεξέταση των βασικών εννοιών της C και του προγραμματισμού.

Συλλογή & Επεξεργασία Δεδομένων Εργαστήριο 3 Μέτρηση Θερμοκρασίας Σύστημα Ελέγχου Θερμοκρασίας. Σύστημα Συλλογής & Επεξεργασίας Μετρήσεων

Πτυχιακή Εργασία Οδηγώντας ένα Ρομποτικό Αυτοκίνητο με το WiFi. Η Ασύρματη Επικοινωνία, χρησιμοποιώντας

Μέτρηση Θερμοκρασίας με τον αισθητήρα TMP36. Σύστημα Συλλογής & Επεξεργασίας Μετρήσεων. Βασική δομή ενός προγράμματος στο LabVIEW.

Συλλογή & Επεξεργασία Δεδομένων Εργαστήριο 1. Arduino + LabVIEW: Μέτρηση Έντασης Φωτός με Φωτοαντίσταση. Σύστημα Συλλογής & Επεξεργασίας Μετρήσεων

Συλλογή & Επεξεργασία Δεδομένων Εξαμηνιαία ΡομποΚαθαριστής Μέρος Β : Το Πρόγραμμα. Σχεδίαση Συστήματος Πραγματικής Εφαρμογής (Prototyping).

Συλλογή & Επεξεργασία Δεδομένων Εργαστήριο 2 USB και Σειριακή Επικοι- νωνία Σ Σειριακή Επικοινωνία

Εφαρμογές Σειριακής Επικοινωνίας

Ψηφιακά Αντικείμενα Μάθημα 1 Δραστηριότητα 1. Προγραμματισμός Φυσικών Συστημάτων. Νέα Ψηφιακά Αντικείμενα

Μάθημα 1 ΑΙΣΘΗΤΗΡΕΣ Ο Αισθητήρας Δύναμης. Επανεξέταση των βασικών εννοιών της C και του προγραμματισμού.

Συλλογή & Επεξεργασία Δεδομένων Εργαστήριο 8. Μετρώντας Επιτάχυνση με το Accelerόμετρο (ADXL 335) Σύστημα Συλλογής & Επεξεργασίας Μετρήσεων

Αθήνα 29 ΝΟΕ, 2016 ΘΕΜΑ: ΑΙΤΗΜΑ ΑΓΟΡΑΣ ΥΛΙΚΩΝ ΓΙΑ ΤΟ ΕΡΓΑΣΤΗΡΙΟ ΣΥΛΛΟΓΗΣ & ΕΠΕΞΕΡΓΑΣΙΑΣ ΔΕΔΟΜΕΝΩΝ

Συλλογή & Επεξεργασία Δεδομένων Εργαστήριο 4. Οδηγώντας έναν DC Κινητήρα. Το κύκλωμα της Λειτουργίας DC Κινητήρα

Προγραμματισμο ς σε Arduino

Εξαμηνιαία Εργασία 2013 Προγραμματίζοντας τον Arduino στη C Μέρος Β : Επικοινωνία Υπολογιστή με Μικροελεγκτή

FOSSCOMM ο Συνέδριο Κοινοτήτων Ανοιχτού Λογισμικού Σάββατο 20 Απριλίου Ομάδα Σχολής Ικάρων Εργαστήριο Arduino

1o ΕΠΑΛ- Ε.Κ. Συκεών -Τομζασ: Ηλεκτρονικισ, Ηλεκτρολογίασ και Αυτοματιςμοφ Εκπαιδευτικοί: Μπουλταδάκθσ τζλιοσ Μαυρίδθσ Κωνςταντίνοσ

Συλλογή & Επεξεργασία Δεδομένων Εξαμηνιαία Σχεδίαση Συστήματος Πραγματικής Εφαρμογής (Prototyping).

ΣΥΣΤΗΜΑΤΑ SCADA. Μέρος 5. Δικτύωση για Απομακρυσμένο Έλεγχο και Μεταφορά Δεδομένων

Ενσωματωμένα Συστήματα

Φύλλο εργασίας 6 - Θερμόμετρο εξωτερικού χώρου. Το κύκλωμα σε breadboard

Έλεγχος κινητήρα συνεχούς ρεύματος με τρανζίστορ και Arduino

Εγχειρίδιο Χρήσης V3.0

Arduino Teachers Workshop

Εγκατάσταση του LabVIEW

Φύλλο εργασίας 9 - Αυτόνομο ρομποτικό όχημα αποφυγής εμποδίων

ΕΡΓΑΣΤΗΡΙΟ 6 ΟΔΗΓΗΣΗ ΑΠΕΙΚΟΝΙΣΕΩΝ SSD ΚΑΙ LCD

ΑΣΚΗΣΗ 1 (22 Νοεμβρίου 2017)

ΕΡΓΑΣΤΗΡΙΟ 4 ΕΙΣΑΓΩΓΗ ΣΤΟN ARDUINO: ΨΗΦΙΑΚΗ ΕΙΣΟΔΟΣ/ΕΞΟΔΟΣ

ΣΤΟΙΧΕΙΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ARDUINO

Εξαμηνιαία Εργασία 2013 Προγραμματίζοντας τον Arduino στη C Μέρος Α : Υλικά

Συλλογή & Επεξεργασία Δεδομένων Εργαστήριο 5. Ρυθμίζοντας τη Φορά Περιστροφής. Σύστημα Συλλογής & Επεξεργασίας Μετρήσεων

ΕΦΑΡΜΟΓΕΣ ΤΗΛΕΠIΚΟΙΝΩΝΙΑΚΩΝ ΔΙΑΤΑΞΕΩΝ

Πλακέτα Arduino. 1ο ΕΠΑΛ Περάματος - 7ο ΕΚ Πειραιά

Α. Βασική Χρήση κινητήρα - Servo με τη βιβλιοθήκη <Servo.h>

Ψηφιακά Αντικείμενα Μάθημα 1 Δραστηριότητα 2. Προγραμματισμός Φυσικών Συστημάτων. Συστήματα Πραγματικών Εφαρμογών. Νέα Ψηφιακά Αντικείμενα

Μετρήσεις και συλλογή δεδομένων (Data acquisition) με μικροελεγκτές. Εισαγωγή στο Arduino. Ηλεκτρομηχανολογικός εξοπλισμός διεργασιών

για τις ρυθμίσεις LabView μέσα από το κανάλι και του καλωδίου USB.

1o ΕΠΑΛ- Ε.Κ. Συκεών -Τομέας: Ηλεκτρονικής, Ηλεκτρολογίας και Αυτοματισμού Εκπαιδευτικοί: Μπουλταδάκης Στέλιος Μαυρίδης Κώστας

//στο pin 3 του μικροελεγκτή συνδέουμε το control pin του ρελέ. WRITE 'I am on' στο SOCKET // λέω στον client ότι άναψα τη λάμπα

ΔΡΑΣΤΗΡΙΟΤΗΤΑ ΕΙΣΑΓΩΓΗ ΣΤΟ ARDUINO- 01a

Εφαρμογές Αναλογικών Ε/Ε PWM (pulse Width Modulation)

ΑΣΚΗΣΗ 2 (29 Νοεμβρίου 2016)

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Δημιουργία Κλάσεων και Αντικειμένων

1o ΕΠΑΛ- Ε.Κ. Συκεών -Τομέας: Ηλεκτρονικής, Ηλεκτρολογίας και Αυτοματισμού Εκπαιδευτικοί: Μπουλταδάκης Στέλιος Μαυρίδης Κώστας

ΕΝΟΤΗΤΑ 10: ΟΔΗΓΗΣΗ ΚΙΝΗΤΗΡΩΝ

Εγκατάσταση του Arduino IDE

Φύλλο εργασίας 3 - Χριστουγεννιάτικα φωτάκια (σταδιακή αύξηση και μείωση φωτεινότητας ενός LED) Το κύκλωμα σε breadboard

ΣΥΣΤΗΜΑΤΑ SCADA. Μέρος 5. Δικτύωση για Απομακρυσμένο Έλεγχο και Μεταφορά Δεδομένων

Εργαστηριακές σημειώσεις για το μάθημα: «Εισαγωγή στην Μηχατρονική»

Περιεχόμενα συσκευασίας

Το κύκλωμα σε breadboard

Παραδείγµατα χρήσης του µικροελεγκτή Arduino Εφαρµογές για το εργαστήριο Μέρος 2 ο :Οδήγηση Κινητήρων DC(PM)

ADB P.RG A4201G. 2play Internet & Σταθερή 1play Internet

Οδηγίες σύνδεσης στο eduroam. Project Name: Eduroam Description: Οδηγίες σύνδεσης στο Eduroam Author: Μήλιος Γιώργος Copyright: 2017, Μήλιος Γιώργος

2017 Κατασκευάζω και Προγραμματίζω με τον μικροελεγκτή Arduino

Φύλλο εργασίας 7 - Δημιουργώ τα δικά μου χρώματα με το RGB LED

Συλλογή & Επεξεργασία Δεδομένων. Προγραμματίζοντας τον Arduino Μέρος Ι: Μεταβλητές, Εντολές Εισόδου & Εξόδου. Ολοκληρωμένο Περιβάλλον Ανάπτυξης (IDE)

ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΕΡΓΑΣΤΗΡΙΟ: ΜΙΚΡΟΕΛΕΓΚΤΕΣ

Σκοπός. Εργαστήριο 6 Εντολές Επανάληψης

ΡΟΜΠΟΤΙΚΗ ΚΑΙ ΑΥΤΟΜΑΤΙΣΜΟΣ

ΡΟΜΠΟΤΙΚΗ ΜΕ ARDUINO - ARDUINO ΚΑΙ ΗΧΟΣ I. Δημιουργός: Δρ.Αθανάσιος Μπαλαφούτης Επιβλέπων: Πετεινάτος Ηλίας Υποψήφιος Διδάκτωρ

ΥΠΗΡΕΣΙΑ ΠΛΗΡΟΦΟΡΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΤΟΜΕΑΣ ΔΙΚΤΥΩΝ ΚΑΙ ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ

AΕΙ ΠΕΙΡΑΙΑ T.T. ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΚΩΝ ΕΦΑΡΜΟΓΩΝ

Κωνσταντίνος Γκαλονάκης. Arduino: Προγραμματισμός στην πράξη

Ενσωματωμένα Συστήματα

ιαδικτυακές Εφαρµογές

WiFi V-Timer ΕΚΔΟΣΗ 2Η

ΑΣΚΗΣΗ ΜHΧΑΤΡΟΝΙΚΗΣ. Τέλος όταν εισάγετε ένας σωστός συνδυασμός η ένδειξη του display να μηδενίζετε.

Σελίδα.1/1

TO ΥΠΟΠΡΟΓΡΑΜΜΑ ΣΥΝΑΡΤΗΣΗ

ΟΔΗΓΙΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ΚΑΙ ΧΡΗΣΗΣ ΤΟΥ. WiFi V-Timer ΕΚΔΟΣΗ 1 Η

Επιμέλεια παρουσίασης: Αριστείδης Παλιούρας ΤΙ ΕΊΝΑΙ ΈΝΑ ΡΟΜΠΟΤ (ROBOT)?

Οδηγίες Χρήσης EAP Controller Software

Οδηγίες Σύνδεσης Ασύρματου Δικτύου ΤΜΗΥ&Π. Οδηγίες Σύνδεσης για λοιπά Linux/Unix Συστήματα

ΟΔΗΓΙΕΣ ΧΡΗΣΗΣ LIVETRIP TRAVELLER

Σκοπός. Προγραμματίζοντας τον Arduino ΙΙ Εντολή Εκχώρησης & Εντολές. Συλλογή & Επεξεργασία Δεδομένων. Πρόγραμμα. Εντολές Επεξεργασίας Δεδομένων

ΡΟΜΠΟΤΙΚΗ ΜΕ ARDUINO - ARDUINO ΚΑΙ ΗΧΟΣ II. Δημιουργός: Δρ.Αθανάσιος Μπαλαφούτης Επιβλέπων: Πετεινάτος Ηλίας Υποψήφιος Διδάκτωρ

Εισαγωγή στον Προγραμματισμό

ΡΟΜΠΟΤΙΚΗ. ΕΡΓΑΣΙΑ ΠΑΝΩ ΣΤΗΝ ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΝΧΤ ΚΑΙ ΤΑ ΠΡΩΤΟΚΟΛΛΑ ΕΠΙΚΟΙΝΩΝΙΑΣ BLUETOOTH, I2C και serial communication

Web and HTTP. Βασικά Συστατικά: Web Server Web Browser HTTP Protocol

ΟΔΗΓΙΕΣ ΣΥΝΔΕΣΗΣ ΣΤΟ ΑΣΥΡΜΑΤΟ ΔΙΚΤΥΟ eduroam

Δρομολογητής Wifi Smart R6300v2 Οδηγός εγκατάστασης

Οδηγός γρήγορης εγκατάστασης. (Για Windows και MAC) Ασύρματη κάμερα IP HD για εξωτερικούς χώρους v3.14

ΑΤΕΙ ΘΕΣΣΑΛΟΝΙΚΗΣ - ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΜΑΘΗΜΑ: ΤΗΛΕΠΙΚΟΙΝΩΝΙΕΣ ΚΑΙ ΔΙΚΤΥΑ Η/Υ. Υλοποίηση Γέφυρας με την Χρήση Σημείου Πρόσβασης

Κάντε περισσότερα. Δρομολογητής Smart WiFi Nighthawk X10 AD7200. Μοντέλο R9000

στο δικό σου προσωπικό χώρο my Cyta

Τεχνολογίες Παγκόσμιου Ιστού. 1η διάλεξη

Οδηγός γρήγορης εγκατάστασης. (Για Windows και MAC) Ασύρματη κάμερα IP HD περιστροφής / κλισης για εσωτερικούς χώρους v3.14

Οδηγός γρήγορης εγκατάστασης. Ασύρματη κάμερα. IP MJPEGγια εξωτερικούς χώρους V3.14

LFT169 - LFR169 ΠΟΜΠΟΣ ΚΑΙ ΔΕΚΤΗΣ ΨΗΦΙΑΚΩΝ ΚΑΙ ΑΝΑΛΟΓΙΚΩΝ ΣΗΜΑΤΩΝ

Φύλλο Εργασίας 4 Συνθετική εργασία

Μ.Π.Σ. «ΠΡΟΗΓΜΕΝΕΣ ΜΕΘΟΔΟΙ ΚΑΤΑΣΚΕΥΗΣ ΠΡΟΙΟΝΤΩΝ ΑΠΟ ΞΥΛΟ» Μάθημα: Σχεδίαση και Εφαρμογές Διαδραστικών Συστημάτων. Διδάσκοντας: Α.

Electronics μαζί με τα συνοδευτικά καλώδια και το αισθητήριο θερμοκρασίας LM335 που περιέχονται

Ως Διαδίκτυο (Internet) ορίζεται το παγκόσμιο (διεθνές) δίκτυο ηλεκτρονικών υπολογιστών (international network).

Γνωριμία με το Arduino

Εφαρμογές αναλογικών / Ψηφιακών

Transcript:

Σκοπός Σχεδίαση Συστημάτων μα τον Arduino Σχεδίαση Συστημάτων με τον Arduino Μάθημα 3 High WiFi!. Σύστημα Συλλογής & Επεξεργασίας Μετρήσεων Η Έννοια του Global Positioning System (GPS) Αρχή λειτουργίας του GPS Πώς το GPS προσδιορίζει θέση στο χώρο το γεωγραφικό πλάτος & μήκος του σημείου στο χώρο που βρισκόμαστε GPS Αισθητήρας (Δέκτης) Υπολογισμός θέσης, χρησιμοππιώντας το δέκτη GPS και τη GPS Shield της Adafruit Δομές προγραμματισμού.

[WIFI] 3.1 ΕΠΙΔΙΩΞΗ ΤΗΣ ΑΣΚΗΣΗΣ Στο σπίτι, συνήθως, χρησιμοποιούμε ένα ασύρματο δίκτυο, για να συνδεόμαστε στο διαδίκτυο. Η χαρακτηριστική σύνδεση στο διαδίκτυο, είναι μέσα από ένα WiFi router ενώ έξω, στη Σχολή, σε καφέ και εστιατόρια, χρησιμοποιούμε το WiFi σε κάθε μέρος, για να συνδεόμαστε στο διαδίκτυο (Εικόνα 1). Όμως, το WiFi και το διαδίκτυο, δεν είναι για τη πρόσβαση, μόνον από ανθρώπους χρήστες, στο διαδίκτυο, αλλά και από συστήματα, όχι μόνον ρομπότ, αλλά και συστήματα μετρήσεων. Γιατί και πως ένα σύστημα να έχει πρόσβαση στο διαδίκτυο? Σ ένα όχι πολύ μακρινό μέλλον, το διαδίκτυο δεν θα συνδέει μόνον ψηφιακές συσκευές υπολογιστές, tablets και κινητά και δεν θα εξυπηρετεί μόνον ανθρώπους - χρήστες, αλλά και αναλογικές συσκευές, όπως αισθητήρες, κάμερες και ηλεκτρικές συσκευές. Σ αυτό το διευρυμένο διαδίκτυο του μέλλοντος που ονομάζουμε Internet of Things ή Βιομηχανικό Διαδίκτυο, θα μπορεί να συνδέεται κάθε ηλεκτρικό σύστημα ή συσκευή, αλλά και τα αυτοκίνητα με ηλεκτρικούς κινητήρες και οι κινητήρες στις βιομηχανικές μονάδες. Σ αυτό το διευρυμένο διαδίκτυο, θα μπορούμε να έχουμε πρόσβαση και να επικοινωνούμε, όχι μόνον με ψηφιακά αντικείμενα, αλλά και με αναλογικά. Εφόσον, για παράδειγμα οι ηλεκτρικές συσκευές θα συνδέονται σ αυτό το διευρυμένο διαδίκτυο, θα μπορούμε, από οπουδήποτε, να λειτουργούμε τις ηλεκτρικές συσκευές στο σπίτι μας να ανάβουμε ή αν έχουμε ξεχάσει, να κλείνουμε, την ηλεκτρική κουζίνα ή τα φώτα, από το κινητό μας. Οι εφαρμογές αυτής της ιδέας είναι πάρα πολλές. Τόσες ώστε το διευρυμένο διαδίκτυο των συσκευών να λέγεται πως είναι η επόμενη μεγάλη ιδέα των υπολογιστών. Μ αυτό τον τρόπο, ένα σύστημα μέτρησης, ένα σύστημα, για παράδειγμα που μετράει τη στάθμη του υγρού σε μία δεξαμενή, ή ένα μετεωρολογικός σταθμός, στην οροφή ενός κτιρίου ή ένα ρομπότ που το στέλνουμε για να ελέγξει τους σωλήνες ύδρευσης / αποχέτευσης, δεν θα πρέπει, υποχρεωτικά, να είναι καλωδιωμένα στον υπολογιστή, για να μπορούμε να βλέπουμε τις μετρήσεις τους, αλλά ασύρματα, θα μπορούμε να βλέπουμε τις μετρήσεις και να ρυθμίζουμε τη λειτουργία αυτών των συστημάτων. Έχοντας λίγο δικαιολογήσει γιατί μία συσκευή, ένα ρομπότ ή ένα σύστημα μέτρησης να συνδέονται στο διαδίκτυο, σ αυτή την άσκηση, ξεκινάμε να εξετάζουμε το πώς ένα σύστημα μπορεί να συνδέεται στο διαδίκτυο, μέσα από ένα WiFi δίκτυο. Δημιουργούμε ένα μικρό μετεωρολογικό σταθμό και επιχειρούμε να συνδέσουμε αυτό το σταθμό στο διαδίκτυο, ώστε να μπορεί να ανεβάζει τις μετρήσεις, στο διαδίκτυο και εμείς να μπορούμε να βλέπουμε αυτές τις μετρήσεις, από το διαδίκτυο (Εικόνα 2). Μπορούμε να συνδέουμε το μετεωρολογικό σταθμό στο διαδίκτυο με δύο τρόπους, ενσύρματα ή ασύρματα. Εδώ εξετάζουμε την ασύρματη σύνδεση, μέσα από το 2

[Σχεδίαση Συστημάτων με τον Arduino] Εικόνα 1: To WiFi, είναι αυτό που περισσότερο χρησιμοποιείται, για τη πρόσβαση στο διαδίκτυο, όχι μόνον από ανθρώπινους χρήστες του διαδικτύου, αλλά και από συστήματα τεχνητής νοημοσύνης. WiFi. Έτσι, σ αυτή την άσκηση, θα δούμε πως συνδέουμε ένα σύστημα στο διαδίκτυο, μέσα από το WiFi και πως αυτό το σύστημα μπορεί να χρησιμοποιεί το διαδίκτυο, σχεδόν όπως και εμείς, λειτουργώντας όπως και εμείς, σαν client ή server, ανοίγοντας και διαβάζοντας ιστοσελίδες, αλλά και δημιουργώντας τη δική του ιστοσελίδα, για να ανεβάζει τις μετρήσεις του, στο διαδίκτυο. Πέρα από τον τρόπο και το μέσο σύνδεσης, η άσκηση θα μας επιτρέψει να δούμε τη βασική αρχή λειτουργίας του WiFi, αλλά και βασικές έννοιες τεχνικές της χρήσης του διαδικτύου, όπως η έννοια client server πως δηλαδή ένα σύστημα μπορεί να χρησιμοποιεί το διαδίκτυο δημιουργώντας μία ιστοσελίδα και ανεβάζοντας μετρήσεις σ αυτή την ιστοσελίδα, ώστε να μπορούμε να δούμε αυτές τις μετρήσεις στο διαδίκτυο, πηγαίνοντας και ανοίγοντας τη σελίδα του συστήματος μέτρησης, στο διαδίκτυο, όπως θα ανοίγαμε κάθε άλλη σελίδα του διαδικτύου. Έτσι, μέσα από αυτή την εργασία / Βασικοί στόχοι της εργασίαw είναι να δούμε πως: Μπορούμε να χρησιμοποιούμε την WiFi shield Μάθουμε πως μπορούμε να χρησιμοποιούμε τη WiFi βιβλιοθήκη συναρτήσε- 3

[WIFI] ων Μάθουμε πως μπορούμε να συνδεόμαστε σε ασύρματα δίκτυα Εξετάσουμε βασικές έννοιες προγραμματισμού της ασύρματης επικοινωνίας υπολογιστή μικροελεγκτή Στέλνουμε μηνύματα από / προς τον υπολογιστή, στον / από το μικροελεγκτή ο υπολογιστής και ο μικροελεγκτής, μπορεί να ανταλλάσουν μηνύματα, μέσω WiFi. 3.2 Πρώτη Γνωριμία με το WiFi 3.3 Εντοπίζοντας τα WI-FI Δίκτυα Στα προηγούμενα εργαστηριακά πειράματα, είδαμε τη μέτρηση μεταβλητών θερμοκρασία, φωτεινότητα, απόσταση με αισθητήρες. Είδαμε / δημιουργήσαμε απλά συστήματα μέτρησης, για να μετράμε αυτές τις μεταβλητές / χαρακτηριστικά του ε- ξωτερικού περιβάλλοντος. Σ αυτό το πείραμα, θα δούμε πως μπορούμε να συνδέουμε το σύστημα μέτρησης στο διαδίκτυο, μέσα από το WiFi και να δημιουργούμε μία απλή ιστοσελίδα, όπου θα ανεβάζουμε / εμφανίζουμε τις μετρήσεις. Αυτή η ιστοσελίδα θα μπορεί να είναι προσβάσιμη από οποιαδήποτε συσκευή υπολογιστή, tablet ή κινητό που μπορεί να συνδέεται στο διαδίκτυο. Το σύστημα που θα δημιουργήσουμε σ αυτό το πείραμα, θα είναι η βάση, για να δημιουργούμε / σχεδιάζουμε συστήματα που θα μπορούμε να ελέγχουμε / λειτουργούμε, από το διαδίκτυο. Γενικά, για να συνδέουμε συστήματα στο διαδίκτυο, χρειαζόμαστε hardware ο- ρισμένα υλικά και συσκευές τη WiFi shield, πληροφορίες διευθύνσεις (IP διευθύνσεις) και προγράμματα που θα συνδέουν το σύστημα, στο διαδίκτυο, αλλά και που θα επιτρέπουν στο σύστημα να χρησιμοποιεί το διαδίκτυο. Ξεκινάμε από το hardware Για να συνδεθεί ο Arduino στο διαδίκτυο ή σ ένα ασύρματο δίκτυο, χρειάζεται τη WiFi shield. Το πρώτο βήμα στη WiFi σύνδεση του Arduino, είναι να τοποθετήσουμε τη WiFi shield. Έτσι, 3.3.1 Ξεκινάμε, εγκαθιστώντας τη WiFi shield, τοποθετώντας την επάνω στον Arduino. Οι ακροδέκτες της πλακέτας πέφτουν ακριβώς πάνω στις θύρες του Arduino. 3.3.2 Συνδέουμε τον Arduino στον υπολογιστή. 4

[Σχεδίαση Συστημάτων με τον Arduino] Για να ελέγξουμε τη λειτουργία της Wi-Fi, γράφουμε ένα απλό πρόγραμμα που θα εμφανίσει στη σειριακή οθόνη, όλα τα ασύρματα δίκτυα που η WiFi μπορεί να εντοπίζει. #include <SPI.h> #include <WiFi.h> void setup() // Start Serial, Waiting For Connection: Serial.begin(9600); while(!serial) ; void loop() delay(10000); printnetworks(); void printnetworks() // scan networks: Serial.println("Scanning Networks"); byte num = WiFi.scanNetworks(); Περιοδικά, ο Arduino εξετάζει τα ασύρματα δίκτυα στη περιοχή, για να αναγνωρίσει δίκτυα που μπορεί να συνδεθεί // print the network number and name for each network found: for (int network = 0; network<num; network++) Serial.print(network); Serial.print(") "); Serial.print(WiFi.SSID(network)); Serial.print(" Strength: "); Serial.print(WiFi.RSSI(network)); Serial.print(" dbm Security: "); Serial.println(WiFi.encryptionType(network)); 3.4 Βρίσκοντας Ένα Ελεύθερο Δίκτυο & Κάνοντας τη Σύνδεση σ Αυτό Για να συνδεθούμε σ ένα δίκτυο, χρειάζεται να αλλάξουμε το κώδικα που έχουμε γράψει δημιουργώντας μία συνάρτηση και καλώντας αυτή την στη συνάρτηση, στη setup(). #include <SPI.h> #include <WiFi.h> int status = WL_IDLE_STATUS; 5

[WIFI] void setup() // Start Serial, Waiting For Connection: Serial.begin(9600); while(!serial) ; connectopennetwork("conn-x90f378"); void loop() delay(10000); printnetworks(); void printnetworks() // scan networks: Serial.println("Scanning Networks"); byte num = WiFi.scanNetworks(); void connectopennetwork(char ssid[]) Serial.print("Connecting To "); Serial.println(ssid); status = WiFi.begin (ssid); while(status!= WL_CONNECTED); Serial.print("Connected to: "); Serial.println(WiFi.localIP()); // print the network number and name for each network found: for (int network = 0; network<num; network++) Serial.print(network); Serial.print(") "); Serial.print(WiFi.SSID(network)); Serial.print(" Strength: "); Serial.print(WiFi.RSSI(network)); Serial.print(" dbm Security: "); Serial.println(WiFi.encryptionType(network)); Για να συνδεθούμε, σ ένα ανοιχτό ασύρματο δίκτυο, δηλαδή σ ένα ασύρματο δίκτυο, χωρίς κωδικό, χρησιμοποιούμε την εντολή. 6

[Σχεδίαση Συστημάτων με τον Arduino] 3.5 Σύνδεση σ Ένα Δίκτυο με Κωδικό #include <SPI.h> #include <WiFi.h> int status = WL_IDLE_STATUS; void setup() // Start Serial, Waiting For Connection: Serial.begin(9600); while(!serial) ; connectclosednetwork("conn-x90f378", "8ce08190f378"); void loop() delay(10000); printnetworks(); void printnetworks() // scan networks: Serial.println("Scanning Networks"); byte num = WiFi.scanNetworks(); // print the network number and name for each network found: for (int network = 0; network<num; network++) Serial.print(network); Serial.print(") "); Serial.print(WiFi.SSID(network)); Serial.print(" Strength: "); Serial.print(WiFi.RSSI(network)); Serial.print(" dbm Security: "); Serial.println(WiFi.encryptionType(network)); void connectclosednetwork(char ssid[], char password[]) Serial.print("Connecting To "); Serial.println(ssid); status = WiFi.begin (ssid, password); while (status!= WL_CONNECTED); Serial.print("Connected to: "); Serial.println(WiFi.localIP()); Για να συνδεθούμε, σ ένα κλειστό. ασύρματο δίκτυο, δηλαδή σ ένα ασύρματο δίκτυο με κωδικό, χρησιμοποιούμε την εντολή. 7

[WIFI] 3.6 Δημιουργώντας Έναν WebServer Τώρα που έχουμε συνδεθεί σ ένα δίκτυο, μπορούμε να ανταλλάσουμε να στέλνουμε και να παίρνουμε δεδομένα, μέσα από αυτό το δίκτυο. Χρειάζεται να χρησιμοποιήσουμε την έννοια client server, για την επικοινωνία του Arduino με τον υπολογιστή. Τώρα που ο Arduino, δηλαδή ο μικροελεγκτής επάνω στο ρομποτικό αυτοκίνητο, έχει συνδεθεί σ ένα WiFi δίκτυο και έχει αποκτήσει μία κανονική IP διεύθυνση, σ αυτό το δίκτυο (Εικόνα ), μπορούμε να έχουμε πρόσβαση και να ελέγχουμε τον Arduino και το ρομποτικό αυτοκίνητο, ασύρματα, από τον υπολογιστή, το tablet ή το κινητό μας, μέσα απ αυτό το δίκτυο, αλλά και το διαδίκτυο, χρησιμοποιώντας την IP διεύθυνση που ο Arduino έχει σ αυτό. Πώς? O Arduino, μέσα από τη σύνδεσή του σ ένα WiFi δίκτυο, μπορεί να έχει πρόσβαση στο διαδίκτυο και να κάνει ότι ακριβώς και εμείς, στο διαδίκτυο: να πλοηγείται σ αυτό, να ανοίγει, αλλά και να δημιουργεί δικές του ιστοσελίδες, να παίρνει και να στέλνει emails. Έτσι, εφόσον ο Arduino έχει συνδεθεί σ ένα WiFi δίκτυο, μπορούμε να έχουμε πρόσβαση, να επικοινωνούμε μ αυτόν και να τον ελέγχουμε και να ελέγχουμε το ρομποτικό αυτοκίνητο, με πολλούς, διαφορετικούς τρόπους. Ένας τρόπος είναι μέσα από την αποστολή / ανταλλαγή emails. Στέλνουμε emails με εντολές στον Arduino, για το πώς / που θα κινήσει το αυτοκίνητο. Ο Arduino μπορεί να ελέγχει τo email του, τακτικά, να κοιτάζει αν έχει πάρει καινούργιο email, να το ανοίγει, να το διαβάζει και να εκτελεί τις εντολές σ αυτό. Το email είναι ένας τρόπος / μέσο επικοινωνίας με τον Arduino που μπορούμε να χρησιμοποιούμε, όταν κατά διαστήματα, θέλουμε να επικοινωνήσουμε με τον Arduino. Όμως, εμείς θέλουμε να είμαστε σε μία συνεχή / ανοικτή γραμμή επικοινωνίας με τον Arduino,ώστε κάθε στιγμή, εύκολα και γρήγορα, να μπορούμε να στέλνουμε εντολές στον Arduino, για τη κατεύθυνση και τη ταχύτητα που θα κινήσει το ρομποτικό αυτοκίνητο. Γι αυτό, για την επικοινωνία με τον Arduino, χρησιμοποιούμε μία διαφορετική μορφή επικοινωνίας, από τα emails, στη βάση της διάκρισης σε client server. Clients και Servers Όλες οι συσκευές που είναι συνδεμένες στο διαδίκτυο μπορεί να έχουν έναν από δύο ρόλους. Μπορεί να λειτουργούν είτε σαν clients, είτε ως servers, αν και μερικές μπορεί να εκτελούν και τους δύο ρόλους. Όλη η λειτουργία του διαδικτύου είναι η μετάδοση πληροφοριών από υπολογιστή σε υπολογιστή, γενικότερα, από συσκευή σε συσκευή. Όταν ένας υπολογιστής, γενικότερα συσκευή έχει αποθηκευμένες πληροφορίες και δεδομένα και παρέχει αυτές τις πληροφορίες σε άλλες συσκευές, στο διαδίκτυο, τότε λέμε πως αυτή η συσκευή λειτουργεί σαν server. Αυτές οι πληροφορίες μπορεί να έχουν πολλές μορφές. Μπορεί να είναι μίας ιστοσελίδα, πληροφορίες από μία βάση δεδομένων ή emails. 8

[Σχεδίαση Συστημάτων με τον Arduino] O client είναι η αντίθετη λειτουργία. Λέμε πως μία συσκευή στο διαδίκτυο λειτουργεί σαν client, όταν ζητάει πληροφορίες και δεδομένα, από άλλες συσκευές. Όταν, για παράδειγμα, μπαίνουμε στο Internet, από τον υπολογιστή μας, τότε ο web browser στον υπολογιστή μας το Chrome ή το Firefox λειτουργεί σαν client, ζητώντας πληροφορίες από ιστοσελίδες που είναι αποθηκευμένες σε άλλους υπολογιστές στο διαδίκτυο. Συνδέοντας τον Arduino στο Διαδίκτυο Για την επικοινωνία με τον Arduino, στον έλεγχο του ρομποτικού αυτοκίνητου, θα χρησιμοποιήσουμε το μοντέλο client server. O Arduino,δηλαδή θα λειτουργεί σαν server, δημιουργώντας και παρέχοντας / εξυπηρετώντας μία ιστοσελίδα, μέσα από την οποία μπορούμε να επιλέγουμε και να δίνουμε εντολές στον Arduino, για το πώς θα κινήσει το αυτοκίνητο. Ελέγχοντας τον Arduino από το Διαδίκτυο Πρώτα, ρυθμίζουμε τον Arduino να λειτουργεί σαν web server. Ο Arduino δηλαδή λειτουργεί σαν ιστοσελίδα, όπου σ αυτή, μπορούμε να έχουμε πρόσβαση και να ρυθμίζουμε τις πύλες εισόδου εξόδου του Arduino. Στο interface μ αυτή την ιστοσελίδα, δημιουργούμε κουμπιά για να λειτουργούμε - περιστρέφουμε κατά την ορθή ή ανάστροφη φορά και να σταματάμε τους κινητήρες που ελέγχει ο Arduino, μέσα από τη motor shield. Δημιουργώντας μία απλή ιστοσελίδα Πρώτα, σχεδιάζουμε μία απλή ιστοσελίδα πριν επιχειρήσουμε να προγραμματίσουμε τον Arduino να εξυπηρετεί αυτή την ιστοσελίδα Αυτή η ιστοσελίδα θα έχει απλά κουμπιά, για να καθορίζουμε τη κίνηση του ρομποτικού αυτοκίνητου τις βασικές λειτουργίες / εντολές που μπορούμε να δώσουμε στο ρομποτικό αυτοκίνητο Μέσα από αυτά θα χειριζόμαστε το ρομποτικό αυτοκίνητο, θα το σταματάμε, θα το στρίβουμε. 9

[WIFI] #include <SPI.h> #include <WiFi.h> int status = WL_IDLE_STATUS; char ssid[] = "Aspaite"; WiFiServer server(80); boolean clientconnected = false; const int SPEED_A = 11, DIR_A = 13, BRAKE_A = 8, SPEED_B = 3, DIR_B = 12, BRAKE_B = 9; boolean receiving = false; int command; void setup() //Start Serial, Waiting For Connection: Serial.begin(9600); pinmode(brake_a, OUTPUT); // Brake pin on channel A pinmode(dir_a, OUTPUT); // Direction pin on channel A pinmode(brake_b, OUTPUT); // Brake pin on channel B pinmode(dir_b, OUTPUT); // Direction pin on channel B while (!Serial) ; //Start the WiFi connection and server while ( status!= WL_CONNECTED) Serial.print("Attempting to connect to SSID: "); Serial.println(ssid); // Connect to Aspaite status = WiFi.begin(ssid); // wait 10 seconds for connection: delay(10000); Serial.print("Connected to: "); Serial.println(WiFi.localIP()); server.begin(); 10

[Σχεδίαση Συστημάτων με τον Arduino] void loop() //listen for incoming clients (incoming web page request connections) WiFiClient client = server.available(); // Create connection to client. if (client) // Make sure the client is active // an http request ends with a blank line boolean currentlineisblank = true; boolean sendheader = false; while (client.connected()) if (client.available() > 0) // Checks if the client has sent any data. char c = client.read(); if (receiving && c == ' ') receiving = false; //Done receiving if (c == '?') receiving = true; //Found arguments if (receiving) //An LED command is specified with an L if (c == 'L') command = client.parseint(); Serial.println(command); motor_begin(command); break; if (!sendheader ) client.println("http/1.1 200 OK"); client.println("content-type: text/html"); client.println("connection: close"); client.println(); client.println("<!doctype HTML>"); client.println("<html>"); //Move Forward client.println("<form action='' method='get'>"); client.println("<input type='hidden' name='l' value='1' />"); client.println("<input type='submit' value='move Forward' />"); client.println("</form>"); //Turn Left client.println("<form action='' method='get'>"); 11

[WIFI] client.println("<input type='hidden' name='l' value='2' />"); client.println("<input type='submit' value='turn Left' />"); client.println("</form>"); //Turn Right client.println("<form action='' method='get'>"); client.println("<input type='hidden' name='l' value='3' />"); client.println("<input type='submit' value='turn Right />"); client.println("</form>"); //Reverse client.println("<form action='' method='get'>"); client.println("<input type='hidden' name='l' value='-1' />"); client.println("<input type='submit' value='reverse' />"); client.println("</form>"); // add a meta refresh tag, so the browser pulls again every 5 sec: client.println("<meta http-equiv=\"refresh\" content=\"5\">"); client.println("<br />"); client.println("</html>"); sendheader = true; if (c == '\n' && currentlineisblank) break; if (c == \n ) // you're starting a new line currentlineisblank = true; else if (c!= '\r') // you've gotten a character on the current line currentlineisblank = false; //end if (client.available()) //end while (client.conected()) //give the web browser time to receive the data delay(1); //close the connection: client.stop(); //end if (client) //end loop () 12

[Σχεδίαση Συστημάτων με τον Arduino] Παρόμοια συνδεόμαστε στο διαδίκτυο και δημιουργούμε μία ιστοσελίδα με τις μετρήσεις από αισθητήρες, ακόμα και όταν χρησιμοποιούμε μία διαφορετική WiFi shield, για παράδειγμα τη WiFi της Adafruit #include <SPI.h> #include <Adafruit_CC3000.h> // CC3000 pins #define ADAFRUIT_CC3000_IRQ 3 #define ADAFRUIT_CC3000_VBAT 8 #define ADAFRUIT_CC3000_CS 10 //Network id and paasword #define ssid "Aspaite" #define pass[] "" #define WLAN_SECURITY WLAN_SEC_USEC Adafruit_CC3000 cc3000 = Adafruit_CC3000(ADAFRUIT_CC3000_CS, ADAFRUIT_CC3000_IRQ, ADAFRUIT_CC3000_VBAT); Adafruit_CC3000_Server server(80); void setup() //Start Serial, Waiting For Connection: Serial.begin(115200); while (!Serial) ; //Start the WiFi connection and server if (!cc3000.begin()) while(1); Serial.print("Attempting to connect to SSID: "); Serial.println(ssid); // Connect to Aspaite if (!cc3000.connecttoap(ssid, pass, WLAN_SECURITY)) while(1); while (!cc3000.checkdhcp()) delay(100); Serial.print("Connected to: "); Serial.println(WiFi.localIP()); 13

[WIFI] server.begin(); void loop() //listen for incoming clients (incoming web page request connections) Adafruit_CC3000_ClientRef client = server.available(); if (client) // Make sure the client is active // an http request ends with a blank line boolean currentlineisblank = true; while (client.connected()) if (client.available() > 0) // Checks if the client has sent any data. char c = client.read(); if (c == '\n' && currentlineisblank) client.println("http/1.1 200 OK"); client.println("content-type: text/html"); client.println("connection: close"); client.println(); client.println("<!doctype HTML>"); client.println("<html>"); // add a meta refresh tag, so the browser pulls again every 5 sec: client.println("<meta http-equiv=\"refresh\" content=\"5\">"); // output the value of analog input pin A0 onto the web page int sensorreading = analogread(a0); client.print("analog input "); client.print( A0 ); client.print(" is "); client.print(sensorreading); client.println("<br />"); client.println("</html>"); break; //end if (c == '\n' && currentlineisblank) if (c == \n ) // you're starting a new line currentlineisblank = true; else if (c!= '\r') 14

[Σχεδίαση Συστημάτων με τον Arduino] // you've gotten a character on the current line currentlineisblank = false; //end if (client.available()) //end while (client.conected()) //give the web browser time to receive the data delay(1); //close the connection: client.stop(); //end if (client) //end loop () 15