Ethernet shield+servomotore+led
l'uso dell'ethernet shield con un servomotore e dei led
Components and supplies
1
Arduino Mega 2560
1
Resistor 10k ohm
1
Arduino Ethernet Shield 2
1
5 mm LED: Red
1
SG90 Micro-servo motor
Apps and platforms
1
Arduino Web Editor
1
Arduino IDE
Project description
Code
CODICE
arduino
1/* 2 Created by RICCARDO POGLIACOMI 3 4 5 Arduino Uno with Ethernet Shield Webserver 6 */ 7 8#include <SPI.h> 9#include <Ethernet.h> 10#include <Servo.h> 11Servo myservo; 12int led1 = 2; //relay1 13int led2 = 13; //relay2 14int led3 = 4; //relay3 15int led4 = 5; //relay4 16byte mac[] = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED}; //indirisso fisico 17byte ip[] = {192, 168, 1, 177}; //indirizzo ip locale 18byte subnet[] = {255, 255, 255, 0}; //indirizzo subnet 19byte gateway[] = {192, 168, 1, 1}; //indirizzo gateway //subnet mask 20EthernetServer server(80); //server port 21String readString; 22 23void setup() { 24 // Apro la comunicazione seriale: 25 Serial.begin(9600); 26 while (!Serial) { 27 ; // wait for serial port to connect. Needed for Leonardo only 28 } 29 //Imposto i pin come OUTPUT 30 pinMode(led1, OUTPUT); 31 pinMode(led2, OUTPUT); 32 pinMode(led3, OUTPUT); 33 pinMode(led4, OUTPUT); 34 pinMode(5, OUTPUT); //pin selected to control 35 myservo.attach(7); //the pin for the servo control 36 37 // Inizio la comunicazione Ethernet con il server: 38 Ethernet.begin(mac, ip, gateway, subnet); 39 server.begin(); 40 Serial.print("server is at "); 41 Serial.println(Ethernet.localIP()); 42} 43 44 45void loop() { 46 // Creo una connessione al client 47 EthernetClient client = server.available(); 48 if (client) { 49 while (client.connected()) { 50 if (client.available()) { 51 char c = client.read(); 52 53 //Leggo i caratteri da HTTP 54 if (readString.length() < 100) { 55 //Inserisco i caratteri nella stringa 56 readString += c; 57 //Serial.print(c); 58 } 59 60 //Se la richiesta HTTP è andata a buon fine 61 if (c == '\n') { 62 Serial.println(readString); //scrivi sul monitor seriale per debugging 63 64 client.println("HTTP/1.1 200 OK"); //Invio nuova pagina 65 client.println("Content-Type: text/html"); 66 client.println(); 67 client.println("<HTML>"); 68 client.println("<HEAD>"); 69 client.println("<meta name='apple-mobile-web-app-capable' content='yes' />"); 70 client.println("<meta name='apple-mobile-web-app-status-bar-style' content='black-translucent' />"); 71 client.println("<link rel='stylesheet' type='text/css' href='http://postazionistreamer.altervista.org/ARDUINO.css' />"); 72 client.println("<TITLE>CONTRLLO DISPOSITIVI DA REMOTO</TITLE>"); 73 client.println("</HEAD>"); 74 client.println("<BODY>"); 75 client.println("<H1>CONTRLLO DISPOSITIVI DA REMOTO</H1>"); 76 client.println("<hr />"); 77 client.println("<br />"); 78 client.println("<H2>ARDUINO UNO CON ETHERNET SHIELD</H2>"); 79 client.println("<br />"); 80 client.println("<a href=\\"/?on\\"\\">ACCENDI SERVOMOTORE</a>"); //Modifica a tuo piacimento:"Accendi LED 1" 81 client.println("<a href=\\"/?off\\"\\">SPEGNI SERVO MOTORE</a><br />"); //Modifica a tuo piacimento:"Spegni LED 1" 82 client.println("<br />"); 83 client.println("<br />"); 84 client.println("<a href=\\"/?button2on\\"\\">ACCENDI LED 2</a>"); //Modifica a tuo piacimento:"Accendi LED 2" 85 client.println("<a href=\\"/?button2off\\"\\">SPEGNI LED 2</a><br />"); //Modifica a tuo piacimento:"Spegni LED 2" 86 client.println("<br />"); 87 client.println("<br />"); 88 client.println("<a href=\\"/?button3on\\"\\">ACCENDI LED 3</a>"); //Modifica a tuo piacimento:"Accendi LED 3" 89 client.println("<a href=\\"/?button3off\\"\\">SPEGNI LED 3</a><br />"); //Modifica a tuo piacimento:"Spegni LED 3" 90 client.println("<br />"); 91 client.println("<br />"); 92 client.println("<a href=\\"/?button4on\\"\\">ACCENDI LED 4</a>"); //Modifica a tuo piacimento:"Accendi LED 4" 93 client.println("<a href=\\"/?button4off\\"\\">SPEGNI LED 4</a><br />"); //Modifica a tuo piacimento:"Spegni LED 4" 94 client.println("<br />"); 95 96 97 client.println("<br />"); 98 client.println("</BODY>"); 99 client.println("</HTML>"); 100 101 delay(1); 102 client.stop(); 103 //Controlli su Arduino: Se è stato premuto il pulsante sul webserver 104 105 if (readString.indexOf("?button2on") >0){ 106 digitalWrite(led2, HIGH); 107 } 108 if (readString.indexOf("?button2off") >0){ 109 digitalWrite(led2, LOW); 110 } 111 if (readString.indexOf("?button3on") >0){ 112 digitalWrite(led3, HIGH); 113 } 114 if (readString.indexOf("?button3off") >0){ 115 digitalWrite(led3, LOW); 116 } 117 if (readString.indexOf("?button4on") >0){ 118 digitalWrite(led4, HIGH); 119 } 120 if (readString.indexOf("?button4off") >0){ 121 digitalWrite(led4, LOW); 122 } 123 124 125 if(readString.indexOf("?on") >0)//checks for on 126 { 127 myservo.write(10); 128 digitalWrite(5, HIGH); // set pin 4 high 129 Serial.println("Led On"); 130 } 131 if(readString.indexOf("?off") >0)//checks for off 132 { 133 myservo.write(300); 134 digitalWrite(5, LOW); // set pin 4 low 135 Serial.println("Led Off"); 136 } 137 138 //Cancella la stringa una volta letta 139 readString=""; 140 141 } 142 } 143 } 144} 145}
CODICE
arduino
1/* 2 Created by RICCARDO POGLIACOMI 3 4 5 Arduino Uno with Ethernet 6 Shield Webserver 7 */ 8 9#include <SPI.h> 10#include <Ethernet.h> 11#include 12 <Servo.h> 13Servo myservo; 14int led1 = 2; //relay1 15int led2 = 13; 16 //relay2 17int led3 = 4; //relay3 18int led4 = 5; //relay4 19byte 20 mac[] = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED}; //indirisso fisico 21byte ip[] = 22 {192, 168, 1, 177}; //indirizzo ip locale 23byte subnet[] = {255, 255, 255, 0}; 24 //indirizzo subnet 25byte gateway[] = {192, 168, 1, 1}; //indirizzo gateway //subnet 26 mask 27EthernetServer server(80); //server port 28String 29 readString; 30 31void setup() { 32 // Apro la comunicazione seriale: 33 Serial.begin(9600); 34 35 while (!Serial) { 36 ; // wait for serial port to connect. Needed for Leonardo 37 only 38 } 39 //Imposto i pin come OUTPUT 40 pinMode(led1, OUTPUT); 41 pinMode(led2, 42 OUTPUT); 43 pinMode(led3, OUTPUT); 44 pinMode(led4, OUTPUT); 45 pinMode(5, 46 OUTPUT); //pin selected to control 47 myservo.attach(7); //the pin for the servo 48 control 49 50 // Inizio la comunicazione Ethernet con il server: 51 Ethernet.begin(mac, 52 ip, gateway, subnet); 53 server.begin(); 54 Serial.print("server is at "); 55 56 Serial.println(Ethernet.localIP()); 57} 58 59 60void loop() { 61 // Creo 62 una connessione al client 63 EthernetClient client = server.available(); 64 if 65 (client) { 66 while (client.connected()) { 67 if (client.available()) 68 { 69 char c = client.read(); 70 71 //Leggo i caratteri da 72 HTTP 73 if (readString.length() < 100) { 74 //Inserisco i caratteri 75 nella stringa 76 readString += c; 77 //Serial.print(c); 78 79 } 80 81 //Se la richiesta HTTP è andata a buon fine 82 if 83 (c == '\ 84') { 85 Serial.println(readString); //scrivi sul 86 monitor seriale per debugging 87 88 client.println("HTTP/1.1 200 89 OK"); //Invio nuova pagina 90 client.println("Content-Type: text/html"); 91 92 client.println(); 93 client.println("<HTML>"); 94 95 client.println("<HEAD>"); 96 client.println("<meta name='apple-mobile-web-app-capable' 97 content='yes' />"); 98 client.println("<meta name='apple-mobile-web-app-status-bar-style' 99 content='black-translucent' />"); 100 client.println("<link rel='stylesheet' 101 type='text/css' href='http://postazionistreamer.altervista.org/ARDUINO.css' />"); 102 103 client.println("<TITLE>CONTRLLO DISPOSITIVI DA REMOTO</TITLE>"); 104 105 client.println("</HEAD>"); 106 client.println("<BODY>"); 107 108 client.println("<H1>CONTRLLO DISPOSITIVI DA REMOTO</H1>"); 109 client.println("<hr 110 />"); 111 client.println("<br />"); 112 client.println("<H2>ARDUINO 113 UNO CON ETHERNET SHIELD</H2>"); 114 client.println("<br />"); 115 116 client.println("<a href=\\"/?on\\"\\">ACCENDI SERVOMOTORE</a>"); 117 //Modifica a tuo piacimento:"Accendi LED 1" 118 client.println("<a 119 href=\\"/?off\\"\\">SPEGNI SERVO MOTORE</a><br />"); //Modifica a tuo piacimento:"Spegni 120 LED 1" 121 client.println("<br />"); 122 client.println("<br 123 />"); 124 client.println("<a href=\\"/?button2on\\"\\">ACCENDI LED 125 2</a>"); //Modifica a tuo piacimento:"Accendi LED 2" 126 client.println("<a 127 href=\\"/?button2off\\"\\">SPEGNI LED 2</a><br />"); //Modifica a tuo piacimento:"Spegni 128 LED 2" 129 client.println("<br />"); 130 client.println("<br 131 />"); 132 client.println("<a href=\\"/?button3on\\"\\">ACCENDI LED 133 3</a>"); //Modifica a tuo piacimento:"Accendi LED 3" 134 client.println("<a 135 href=\\"/?button3off\\"\\">SPEGNI LED 3</a><br />"); //Modifica a tuo piacimento:"Spegni 136 LED 3" 137 client.println("<br />"); 138 client.println("<br 139 />"); 140 client.println("<a href=\\"/?button4on\\"\\">ACCENDI LED 141 4</a>"); //Modifica a tuo piacimento:"Accendi LED 4" 142 client.println("<a 143 href=\\"/?button4off\\"\\">SPEGNI LED 4</a><br />"); //Modifica a tuo piacimento:"Spegni 144 LED 4" 145 client.println("<br />"); 146 147 148 149 client.println("<br />"); 150 client.println("</BODY>"); 151 152 client.println("</HTML>"); 153 154 delay(1); 155 client.stop(); 156 157 //Controlli su Arduino: Se è stato premuto il pulsante sul webserver 158 159 160 if (readString.indexOf("?button2on") >0){ 161 digitalWrite(led2, 162 HIGH); 163 } 164 if (readString.indexOf("?button2off") >0){ 165 166 digitalWrite(led2, LOW); 167 } 168 if (readString.indexOf("?button3on") 169 >0){ 170 digitalWrite(led3, HIGH); 171 } 172 if 173 (readString.indexOf("?button3off") >0){ 174 digitalWrite(led3, LOW); 175 176 } 177 if (readString.indexOf("?button4on") >0){ 178 digitalWrite(led4, 179 HIGH); 180 } 181 if (readString.indexOf("?button4off") >0){ 182 183 digitalWrite(led4, LOW); 184 } 185 186 187 188 if(readString.indexOf("?on") >0)//checks for on 189 { 190 191 myservo.write(10); 192 digitalWrite(5, HIGH); // set pin 193 4 high 194 Serial.println("Led On"); 195 } 196 if(readString.indexOf("?off") 197 >0)//checks for off 198 { 199 myservo.write(300); 200 digitalWrite(5, 201 LOW); // set pin 4 low 202 Serial.println("Led Off"); 203 } 204 205 206 //Cancella la stringa una volta letta 207 readString=""; 208 209 210 } 211 } 212 } 213} 214}
Downloadable files
SCHEMA
SCHEMA

Comments
Only logged in users can leave comments