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

Σχετικά έγγραφα
ιαδικτυακές Εφαρµογές

14. Δικτύωση με Java Δικτύωση με Java Sockets Δημιουργία της σύνδεσης Διευθυνσιοδότηση της σύνδεσης

{ πρωτόκολλο, τοπική-διεύθυνση, τοπική-διεργασία, απομακρυσμένη-διεύθυνση, απομακρυσμένη-διεργασία }

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

ιαδικτυακές Εφαρµογές Πραγµατικού Χρόνου µε Java

Στοιχεία εξεταζόµενου Αριθµός Απάντησης Βαθµολογία. Σύνολο (Θέµα 4 ο )

ΗY335: Δίκτυα Υπολογιστών Χειμερινό Εξάμηνο Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης Διδάσκουσα: Μαρία Παπαδοπούλη

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

(C) 2010 Pearson Education, Inc. All rights reserved.

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αρχεία

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

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 22/11/07

Εισαγωγή στον Κατανεμημένο Προγραμματισμό

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java II

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

ΕΙΣΟ ΟΣ-ΕΞΟ ΟΣ Ε ΟΜΕΝΩΝ

Ειδικά Θέματα Προγραμματισμού

ΕΙΣΟ ΟΣ-ΕΞΟ ΟΣ Ε ΟΜΕΝΩΝ

Πρόγραµµα 9.1 Πέρασµα δεδοµένων στην µνήµη

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

Η Υλοποίηση της Επικοινωνίας. Κατανεµηµένα Συστήµατα

10.1 Γενικά για τα streams

Εγχειρίδιο Συναρτήσεων. Socket *sopen(const int type, const int protocol, const char *host, const char *service)

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

Απλή Δομή Επιλογής. Ο κώδικας. //με χρήση μεταβλητών. delay (3000);

Διδάσκων: Παναγιώτης Ανδρέου

ΠΛΗΡΟΦΟΡΙΚΗ ΙI Ενότητα 12: Ροές και είσοδος/έξοδος αρχείων

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

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

ΑΤΕΙ ΘΕΣΣΑΛΟΝΙΚΗΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Αλγοριθμική και Προγραμματισμός

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Πίνακες Κλάσεις και Αντικείμενα

MusicOnCloud: Μια cloud-based υπηρεσία online streaming μουσικής

Modbus basic setup notes for IO-Link AL1xxx Master Block

Αντικειµενοστρεφής Προγραµµατισµός

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java II

Εργαστήριο Java. Αντικείµενο: Δίκτυα. Χειρισµός URLs. Άσκηση 1. Lab11. Πακέτο java.net

Δομές ελέγχου ροής προγράμματος

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java

Μεταφορά Αρχείων µε χρήση της Υπηρεσίας FTP σελ. 1

Διάλεξη 20: Αναδρομή (Recursion) Διδάσκων: Παναγιώτης Ανδρέου

Εξοικείωση με τις εντολές ipconfig και ping

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

ΕΝΟΤΗΤΑ 4 Λήψη Αποφάσεων και Συναρτήσεις Ελέγχου

ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΛΓΟΡΙΘΜΟΙ ΕΡΓΑΣΤΗΡΙΟ

Δομές ελέγχου & επανάληψης

ΜΕΤΑΦΟΡΑ ΑΡΧΕΙΩΝ FTP

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

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

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

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

Επίπεδο Μεταφοράς. (ανεβαίνουμε προς τα πάνω) Εργαστήριο Δικτύων Υπολογιστών Τμήμα Μηχανικών Η/Υ και Πληροφορικής

Φύλλο εργασίας 4 - Αυτόματο φωτάκι νυκτός

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

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 29/11/07

Θέματα Προγραμματισμού Η/Υ

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java

ΠΛΗΡΟΦΟΡΙΚΗ ΙI Ενότητα 3: Έλεγχος ροής προγράμματος

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java III

HY335 4ο Φροντιστήριο

Προγραμματισμός με BSD Sockets σε περιβάλλον Linux

Εργαστήριο ΔΙΑΧΕΙΡΙΣΗ ΑΡΧΕΙΩΝ & ΚΑΤΑΛΟΓΩΝ ΣΤΟ UNIX. Εισαγωγή

ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ (JAVA) 11/3/2008

Κατανεμημένα Συστήματα

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

Λειτουργικά Συστήματα

Αντικειμενοστρεφής Προγραμματισμός Διάλεξη 6 : ΠΙΝΑΚΕΣ

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java II

Οντοκεντρικός Προγραμματισμός

4 Εισαγωγή στο Arduino

HY150a Φροντιστήριο 3 24/11/2017

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

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

Προγραμματισμός ΙΙ (Java) 6. Διαχείριση δεδομένων

Αντικειμενοστρεφής Προγραμματισμός

10 η Διάλεξη Python Βάσεις δεδομένων στη python

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java III

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εξαιρέσεις

Connecto. Τμήμα Επιστήμης Υπολογιστών, Πανεπιστήμιο Κρήτης Άγγελος Σφακιανάκης. Επιφάνεια Άμεσης Σύνδεσης

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Πίνακες Κλάσεις και Αντικείμενα

I (JAVA) Ονοματεπώνυμο: Α. Μ.: Δώστε τις απαντήσεις σας ΕΔΩ: Απαντήσεις στις σελίδες των ερωτήσεων ΔΕΝ θα ληφθούν υπ όψην.

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

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

ΑΤΕΙ ΘΕΣΣΑΛΟΝΙΚΗΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Αλγοριθμική και Προγραμματισμός. Είσοδος Έξοδος (Input Output) Εξαιρέσεις (Exceptions)

Εργασία Μαθήματος Αξία: 40% του τελικού σας βαθμού Ανάθεση: Παράδοση:

Κατανεμημένα Συστήματα. Javascript LCR example

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java

CloudBox!: Ένα εργαλείο cloud αποθήκευσης αρχείων με κατανεμημένο τρόπο

Προγραμματισμός με Python στο Raspberry Pi. LED και PWMLED. για το Code Club Απρίλιος Σύλλογος Εκπαιδευτικών Πληροφορικής Χίου

10. Πληκτρολόγιο matrix 4x4

Εισαγωγή στη Matlab 2 Εισαγωγή στην Αριθμητική Ανάλυση Διδάσκων: Γεώργιος Ακρίβης Βοηθός: Δημήτριος Ζαβαντής

Έλεγχος με Μικροϋπολογιστές Εργαστήριο ενσωματωμένων συστημάτων

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

Αντικειμενοστρεφής Προγραμματισμός Διάλεξη 11 : ΑΡΧΕΙΑ ΚΑΙ ΧΕΙΡΙΣΜΟΣ ΣΦΑΛΜΑΤΩΝ

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

Αρχεία Ένα αρχείο αποτελείται από μία σειρά ομοειδών δεδομένων που ονομάζονται λογικές εγγραφές (logical record)

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 25/10/07

Transcript:

//server's pseudocode (φορτωμένος στην Arduino's flash) //αρχικό σετάρισμα SET IP=192.168.10.253; OPEN_SOCKET_WITH_ADRESS( IP, 5000) ; //σερβίρω τα requests που δέχομαι από τον client WHILE (TRUE) { if (client){ READ char FROM THE SOCKET if (char=='a'){ SET PIN 3 HIGH VOLTAGE //στο pin 3 του μικροελεγκτή συνδέουμε το control pin του ρελέ // κανω trigger το ρελε->ανάβω τη λάμπα WRITE 'I am on' στο SOCKET // λέω στον client ότι άναψα τη λάμπα else if (char=='b'){ SET PIN 3 LOW VOLTAGE // σβήνω τη λάμπα WRITE 'I am off' στο SOCKET

#include <SPI.h> #include <Ethernet.h> int relay=2;//the relay's trigger pin is connected to arduino 's digital pin 2 byte mac[]={0xaa,0xaa,0xaa,0xaa,0xaa,0xaa; //the mac adress for the shield byte ip[]={192,168,10,253; //the ip adress for the shield EthernetServer server(5000);//the server opens a socket on port 5000 for the client 's commands void setup(){ pinmode(relay,output); Ethernet.begin(mac,ip); delay(10);//give a little time for the shield to initialize itself server.begin(); // start listening void loop(){ EthernetClient client = server.available(); //waits for clients if (client) { //i read the client 's request //the request will be one letter //'a'=turn IT ON //'b'=turn IT OFF char ch=client.read(); if (ch=='a'){

digitalwrite(relay,high);//i turn on the lamp client.println("i am on"); // i inform the client app that i turned on the light else if (ch='b'){ digitalwrite(relay,low); client.println("i am off"); delay(10); //client's pseudocode (φορτωμένος στo laptop) //αρχικό σετάρισμα OPEN A SOCKET WITH ADRESS ( 192.168.10.25, 20000) ; CONNECT TO REMOTE SERVER 'S SOCKET ( 192.168.10.253, 5000); //διαβάζω τα commands του user και αποκρινομαι καταλληλως WHILE (TRUE) { PRINT A COMMAND PROMPT "enter a command:"; READ cmd; if (cmd == 'turn on'){ WRITE 'a' στο SOCKET //στείλε εντολή να ανάψει η λάμπα READ response FROM THE SOCKET AND PRINT IT

else if (cmd == 'turn off'){ WRITE 'b' στο SOCKET //στείλε εντολή να σβήσει η λάμπα READ response FROM THE SOCKET AND PRINT IT else if (cmd == 'exit'){ close() else{ PRINT "command not found" import java.io.*; import java.net.*; public class RemoteLamp { public static void main(string[] args) { byte[] ipserver={ (byte)192, (byte)168, (byte)10, (byte)253 ; // το ip του server στον οποιο θελουμε να συνδεθουμε try{ Socket s=new Socket(InetAddress.getByAddress(ipServer),5000); //δημιουργω ενα socket("δικο μου socket") που συνδεεται με το server socket

/* πιο αναλυτικα... πως εκτελειται η παραπανω statement χρονικα; 1)δημιουργώ "το δικο μου socket" με ip την δικια μου ip και σαν port καποιον τυχαια επιλεγμενο αριθμο απο 0-65535 που το OS του υπολογιστή μου διάλεξε να μου δώσει(αυτό το port εκείνη τη δεδομένη στιγμή δε χρησιμοποιείται) το socket(192.168.10.253, 5000) δεν ειναι το δικό μου socket!!! ειναι του server!!! 2)στέλνω ενα πακέτο tcp connection request στο server 3)αμα ο server δεχθει αρχιζω και μιλαω μαζι του οτιδηποτε γραφτει στο socket αυτο θα σταλει στο server socket */ OutputStream sout=s.getoutputstream();//μέσω του sout θα κανω write στο socket,δηλαδη θα στειλω στο server DataInputStream sin=new DataInputStream(s.getInputStream()); //μέσω του sin θα κανω read απο το socket,δηλαδη θα διαβασω ο,τι μου εστειλε ο server DataInputStream keyboard=new DataInputStream(System.in); String command,indication ; while(true){ command=keyboard.readline(); //διαβασε απο το πληκτρολογιο if (command.equals("turn ON")){ //αν εδωσε turn on sout.write("a".getbytes()); //στειλε το a indication=sin.readline(); //διαβασε την απαντηση του server System.out.println(indication); //τυπωσε την στην κονσολα

else if (command.equals("turn OFF")){ sout.write("b".getbytes()); indication=sin.readline(); System.out.println(indication); εφαρμογη else if (command.equals("exit")){ // αν θελει να κλεισει την s.close(); //κλεισε τη συνδεση break; else{ FOLLOWING:"); System.out.println("THE COMMANDS ARE THE System.out.println("TURN ON"); System.out.println("TURN OFF"); System.out.println("EXIT"); catch(ioexception e){ System.out.println(e.getMessage()); System.exit(0);

import socket SERVER_ADR='192.168.10.253' PORT=5000 try: #ftiaxe to socket kai kane th syndesh s=socket.socket() s.connect((server_adr,port)) while True: command=raw_input('enter a command:') if command=='turn on': #sto socket grapse 'a' #read and print the response(apoteleitai apo 7 bytes "i am on") s.send('a') print s.recv(7) elif command=='turn off': #sto socket grapse 'b #read and print the response(apoteleitai apo 8 bytes "i am off") s.send('b') print s.recv(8) elif command=='quit': print('bye bye!!!') break else:

print('command not found\ninsert one of the following commands:\n1)turn on\n2)turn off\n3)quit\n') except : print("\nsth bad happened") finally: if not s==none: s.close()