SlideShare uma empresa Scribd logo
1 de 10
Baixar para ler offline
Curso sobre Arduino:
Ethernet
11-7-2014
ElCacharreo.com José Antonio Vacas
Arduino Básico: Presente
ElCacharreo.com Arduino
Básico
Arduino Básico: Presente
ElCacharreo.com Arduino
Básico
javacasm@elcacharreo.com
twitter
linkedin
blog
José Antonio Vacas Martínez
Arduino Básico: Ethernet
ElCacharreo.com Arduino
Básico
Puede utilizarse tanto como cliente
como servidor, es decir enviado o
recibiendo datos
Soporta hasta 4 conexiones
simultáneas
http://www.instructables.
com/id/Arduino-Ethernet-Shield-
Tutorial/?ALLSTEPS
Arduino Básico: Ethernet server
ElCacharreo.com Arduino
Básico
#include <Ethernet.h>
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
byte ip[] = { 10, 0, 0, 177 }; //the IP address for the shield:
byte gateway[] = { 10, 0, 0, 1 };// the router's gateway address:
byte subnet[] = { 255, 255, 0, 0 };// the subnet:
Server server = Server(23);
void setup(){
// initialize the ethernet device
Ethernet.begin(mac, ip, gateway, subnet);
// start listening for clients
server.begin();}
void loop(){
// if an incoming client connects, there will be bytes available to read:
Client client = server.available();
if (client == true) {
// read bytes from the incoming client and write them back
// to any clients connected to the server:
server.write(client.read());
}
}
Ejemplos Ethernet: webserver
ElCacharreo.com Arduino
Básico
void loop() { // listen for incoming clients
EthernetClient client = server.available();
if (client) {
Serial.println("new client");
boolean currentLineIsBlank = true; // an http request ends with a blank line
while (client.connected()) {
if (client.available()) {
char c = client.read(); Serial.write(c);
if (c == 'n' && currentLineIsBlank) { // send a standard http response header
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 seconds:
client.println("<meta http-equiv="refresh" content="5">");
// output the value of each analog input pin
for (int analogChannel = 0; analogChannel < 6; analogChannel++) {
int sensorReading = analogRead(analogChannel);
client.print("analog input "); client.print(analogChannel); client.print(" is "); client.print(sensorReading);
client.println("<br />");
}
client.println("</html>");
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; } } }
delay(1); // give the web browser time to receive the data
client.stop(); // close the connection:
Serial.println("client disonnected"); }}
Ethernet: ejemplo cliente
ElCacharreo.com Arduino
Básico
#include <SPI.h>
#include <Ethernet.h>
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
char server[] = "www.google.com"; // name address for Google (using DNS)
IPAddress ip(192,168,0,177);
EthernetClient client;
void setup() {
Serial.begin(9600); while (!Serial) { ; // wait for serial port to connect. Needed for Leonardo only }
if (Ethernet.begin(mac) == 0) { Serial.println("Failed to configure Ethernet using DHCP");
Ethernet.begin(mac, ip); }
delay(1000); Serial.println("connecting..."); // give the Ethernet shield a second to initialize:
// if you get a connection, report back via serial:
if (client.connect(server, 80)) { Serial.println("connected"); // Make a HTTP request:
client.println("GET /search?q=arduino HTTP/1.1"); client.println("Host: www.google.com"); client.println
("Connection: close"); client.println(); }
else { Serial.println("connection failed"); // kf you didn't get a connection to the server:}}
void loop()
{
if (client.available()) {
char c = client.read();
Serial.print(c);
}
if (!client.connected()) { Serial.println(); Serial.println("disconnecting."); client.stop();
while(true); }}
Shield: ENC28J60
enc28J60
Librería ethercard (by JeeLab)
https://github.com/jcw/ethercard/archive/master.zip
Diferencias:
Precio
Rendimiento
Librerías más potente
ElCacharreo.com Arduino
Básico
Shield: ENC28J60, ejemplo cliente
#include <EtherCard.h>
static byte mymac[] = { 0x74,0x69,0x69,0x2D,0x30,0x31 }; byte Ethernet::buffer[700]; static uint32_t timer;
char website[] PROGMEM = "www.google.com";
static void my_callback (byte status, word off, word len) { // called when the client request is complete
Serial.println(">>>"); Ethernet::buffer[off+300] = 0; Serial.print((const char*) Ethernet::buffer + off); Serial.println("...");}
void setup () { Serial.begin(57600); Serial.println("n[webClient]");
if (ether.begin(sizeof Ethernet::buffer, mymac) == 0) Serial.println( "Failed to access Ethernet controller");
if (!ether.dhcpSetup()) Serial.println("DHCP failed");
ether.printIp("IP: ", ether.myip); ether.printIp("GW: ", ether.gwip); ether.printIp("DNS: ", ether.dnsip);
if (!ether.dnsLookup(website)) Serial.println("DNS failed");
ether.printIp("SRV: ", ether.hisip);}
void loop () {
ether.packetLoop(ether.packetReceive());
if (millis() > timer) { timer = millis() + 5000;
Serial.println(); Serial.print("<<< REQ ");
ether.browseUrl(PSTR("/foo/"), "bar", website, my_callback); }}
ElCacharreo.com Arduino
Básico
Conclusiones
Gracias por vuestra atención
ElCacharreo.com Arduino
Básico

Mais conteúdo relacionado

Mais procurados

Socket programming with php
Socket programming with phpSocket programming with php
Socket programming with phpElizabeth Smith
 
Docker Networking
Docker NetworkingDocker Networking
Docker NetworkingWeaveworks
 
Weave Networking on Docker
Weave Networking on DockerWeave Networking on Docker
Weave Networking on DockerStylight
 
Docker-OVS
Docker-OVSDocker-OVS
Docker-OVSsnrism
 
Linux Network commands
Linux Network commandsLinux Network commands
Linux Network commandsHanan Nmr
 
Your app lives on the network - networking for web developers
Your app lives on the network - networking for web developersYour app lives on the network - networking for web developers
Your app lives on the network - networking for web developersWim Godden
 
Rasperry pi Part 12
Rasperry pi Part 12Rasperry pi Part 12
Rasperry pi Part 12Techvilla
 
Dockerffm meetup 20150113_networking
Dockerffm meetup 20150113_networkingDockerffm meetup 20150113_networking
Dockerffm meetup 20150113_networkingAndreas Schmidt
 
TRENDnet IP Camera Multiple Vulnerabilities
TRENDnet IP Camera Multiple VulnerabilitiesTRENDnet IP Camera Multiple Vulnerabilities
TRENDnet IP Camera Multiple Vulnerabilitiesinsight-labs
 
NGiNX, VHOSTS & SSL (let's encrypt)
NGiNX, VHOSTS & SSL (let's encrypt)NGiNX, VHOSTS & SSL (let's encrypt)
NGiNX, VHOSTS & SSL (let's encrypt)Marcel Cattaneo
 
Building interactivity with websockets
Building interactivity with websocketsBuilding interactivity with websockets
Building interactivity with websocketsWim Godden
 
OpenSSH: keep your secrets safe
OpenSSH: keep your secrets safeOpenSSH: keep your secrets safe
OpenSSH: keep your secrets safeGiovanni Bechis
 
securing_syslog_onFreeBSD
securing_syslog_onFreeBSDsecuring_syslog_onFreeBSD
securing_syslog_onFreeBSDwebuploader
 
PHP Project development with Vagrant
PHP Project development with VagrantPHP Project development with Vagrant
PHP Project development with VagrantBahattin Çiniç
 
Puppet User Group Presentation - 15 March 2012
Puppet User Group Presentation - 15 March 2012Puppet User Group Presentation - 15 March 2012
Puppet User Group Presentation - 15 March 2012Walter Heck
 

Mais procurados (19)

Socket programming with php
Socket programming with phpSocket programming with php
Socket programming with php
 
Docker Networking
Docker NetworkingDocker Networking
Docker Networking
 
Weave Networking on Docker
Weave Networking on DockerWeave Networking on Docker
Weave Networking on Docker
 
Docker-OVS
Docker-OVSDocker-OVS
Docker-OVS
 
Linux Network commands
Linux Network commandsLinux Network commands
Linux Network commands
 
Your app lives on the network - networking for web developers
Your app lives on the network - networking for web developersYour app lives on the network - networking for web developers
Your app lives on the network - networking for web developers
 
Rasperry pi Part 12
Rasperry pi Part 12Rasperry pi Part 12
Rasperry pi Part 12
 
Linux networking
Linux networkingLinux networking
Linux networking
 
Dockerffm meetup 20150113_networking
Dockerffm meetup 20150113_networkingDockerffm meetup 20150113_networking
Dockerffm meetup 20150113_networking
 
TRENDnet IP Camera Multiple Vulnerabilities
TRENDnet IP Camera Multiple VulnerabilitiesTRENDnet IP Camera Multiple Vulnerabilities
TRENDnet IP Camera Multiple Vulnerabilities
 
NGiNX, VHOSTS & SSL (let's encrypt)
NGiNX, VHOSTS & SSL (let's encrypt)NGiNX, VHOSTS & SSL (let's encrypt)
NGiNX, VHOSTS & SSL (let's encrypt)
 
Squid Server
Squid ServerSquid Server
Squid Server
 
Building interactivity with websockets
Building interactivity with websocketsBuilding interactivity with websockets
Building interactivity with websockets
 
Netmiko library
Netmiko libraryNetmiko library
Netmiko library
 
OpenSSH: keep your secrets safe
OpenSSH: keep your secrets safeOpenSSH: keep your secrets safe
OpenSSH: keep your secrets safe
 
securing_syslog_onFreeBSD
securing_syslog_onFreeBSDsecuring_syslog_onFreeBSD
securing_syslog_onFreeBSD
 
PHP Project development with Vagrant
PHP Project development with VagrantPHP Project development with Vagrant
PHP Project development with Vagrant
 
Puppet User Group Presentation - 15 March 2012
Puppet User Group Presentation - 15 March 2012Puppet User Group Presentation - 15 March 2012
Puppet User Group Presentation - 15 March 2012
 
Nginx
NginxNginx
Nginx
 

Semelhante a Arduino práctico ethernet

Networking and Data Access with Eqela
Networking and Data Access with EqelaNetworking and Data Access with Eqela
Networking and Data Access with Eqelajobandesther
 
Arduino、Web 到 IoT
Arduino、Web 到 IoTArduino、Web 到 IoT
Arduino、Web 到 IoTJustin Lin
 
Advance Java-Network Programming
Advance Java-Network ProgrammingAdvance Java-Network Programming
Advance Java-Network Programmingashok hirpara
 
Network programming in java - PPT
Network programming in java - PPTNetwork programming in java - PPT
Network programming in java - PPTkamal kotecha
 
Socket Programming it-slideshares.blogspot.com
Socket  Programming it-slideshares.blogspot.comSocket  Programming it-slideshares.blogspot.com
Socket Programming it-slideshares.blogspot.comphanleson
 
Network security Lab manual
Network security Lab manual Network security Lab manual
Network security Lab manual Vivek Kumar Sinha
 
Socket Programming - nitish nagar
Socket Programming - nitish nagarSocket Programming - nitish nagar
Socket Programming - nitish nagarNitish Nagar
 
Application Layer and Socket Programming
Application Layer and Socket ProgrammingApplication Layer and Socket Programming
Application Layer and Socket Programmingelliando dias
 
Lab manual cn-2012-13
Lab manual cn-2012-13Lab manual cn-2012-13
Lab manual cn-2012-13Sasi Kala
 
INTRODUCTION TO SOCKETS IN COMPUTER NETWORKS DEPT OF CSE.ppt
INTRODUCTION TO SOCKETS IN COMPUTER NETWORKS DEPT OF CSE.pptINTRODUCTION TO SOCKETS IN COMPUTER NETWORKS DEPT OF CSE.ppt
INTRODUCTION TO SOCKETS IN COMPUTER NETWORKS DEPT OF CSE.pptsenthilnathans25
 
Network Prog.ppt
Network Prog.pptNetwork Prog.ppt
Network Prog.pptEloOgardo
 

Semelhante a Arduino práctico ethernet (20)

Ethernet Shield
Ethernet ShieldEthernet Shield
Ethernet Shield
 
Networking and Data Access with Eqela
Networking and Data Access with EqelaNetworking and Data Access with Eqela
Networking and Data Access with Eqela
 
Pemrograman Jaringan
Pemrograman JaringanPemrograman Jaringan
Pemrograman Jaringan
 
Basic socket programming
Basic socket programmingBasic socket programming
Basic socket programming
 
Arduino、Web 到 IoT
Arduino、Web 到 IoTArduino、Web 到 IoT
Arduino、Web 到 IoT
 
Unit 8 Java
Unit 8 JavaUnit 8 Java
Unit 8 Java
 
03 sockets
03 sockets03 sockets
03 sockets
 
Advance Java-Network Programming
Advance Java-Network ProgrammingAdvance Java-Network Programming
Advance Java-Network Programming
 
Network programming in java - PPT
Network programming in java - PPTNetwork programming in java - PPT
Network programming in java - PPT
 
123
123123
123
 
Socket Programming it-slideshares.blogspot.com
Socket  Programming it-slideshares.blogspot.comSocket  Programming it-slideshares.blogspot.com
Socket Programming it-slideshares.blogspot.com
 
Sockets intro
Sockets introSockets intro
Sockets intro
 
Network security Lab manual
Network security Lab manual Network security Lab manual
Network security Lab manual
 
Socket programming
Socket programming Socket programming
Socket programming
 
Socket Programming - nitish nagar
Socket Programming - nitish nagarSocket Programming - nitish nagar
Socket Programming - nitish nagar
 
Application Layer and Socket Programming
Application Layer and Socket ProgrammingApplication Layer and Socket Programming
Application Layer and Socket Programming
 
A.java
A.javaA.java
A.java
 
Lab manual cn-2012-13
Lab manual cn-2012-13Lab manual cn-2012-13
Lab manual cn-2012-13
 
INTRODUCTION TO SOCKETS IN COMPUTER NETWORKS DEPT OF CSE.ppt
INTRODUCTION TO SOCKETS IN COMPUTER NETWORKS DEPT OF CSE.pptINTRODUCTION TO SOCKETS IN COMPUTER NETWORKS DEPT OF CSE.ppt
INTRODUCTION TO SOCKETS IN COMPUTER NETWORKS DEPT OF CSE.ppt
 
Network Prog.ppt
Network Prog.pptNetwork Prog.ppt
Network Prog.ppt
 

Mais de Jose Antonio Vacas

Robotica Educativa CEP Granada 2015
Robotica Educativa CEP Granada 2015Robotica Educativa CEP Granada 2015
Robotica Educativa CEP Granada 2015Jose Antonio Vacas
 
1. inteligencia artificial y robótica
1. inteligencia artificial y robótica1. inteligencia artificial y robótica
1. inteligencia artificial y robóticaJose Antonio Vacas
 
2. inteligencia artificial - Tareas
2. inteligencia artificial - Tareas2. inteligencia artificial - Tareas
2. inteligencia artificial - TareasJose Antonio Vacas
 
3. inteligencia artificial ramas
3. inteligencia artificial   ramas3. inteligencia artificial   ramas
3. inteligencia artificial ramasJose Antonio Vacas
 
2.1 android cep jaen 2014 estructura de aplicación
2.1 android cep jaen 2014   estructura de aplicación2.1 android cep jaen 2014   estructura de aplicación
2.1 android cep jaen 2014 estructura de aplicaciónJose Antonio Vacas
 
1.1 android cep jaen 2015 introducción
1.1 android cep jaen 2015   introducción1.1 android cep jaen 2015   introducción
1.1 android cep jaen 2015 introducciónJose Antonio Vacas
 
1.2 android cep jaen 2015 instalación del entorno
1.2 android  cep jaen 2015   instalación del entorno1.2 android  cep jaen 2015   instalación del entorno
1.2 android cep jaen 2015 instalación del entornoJose Antonio Vacas
 
1.3 android cep jaen 2015 plantillas y estructura de aplicación
1.3 android cep jaen 2015   plantillas y estructura de aplicación1.3 android cep jaen 2015   plantillas y estructura de aplicación
1.3 android cep jaen 2015 plantillas y estructura de aplicaciónJose Antonio Vacas
 
1.4 android cep jaen 2015 emulador
1.4 android cep jaen 2015   emulador1.4 android cep jaen 2015   emulador
1.4 android cep jaen 2015 emuladorJose Antonio Vacas
 
Arduino práctico introducción a la electrónica
Arduino práctico   introducción a la electrónicaArduino práctico   introducción a la electrónica
Arduino práctico introducción a la electrónicaJose Antonio Vacas
 
Arduino práctico comunicaciones - serie
Arduino práctico   comunicaciones - serieArduino práctico   comunicaciones - serie
Arduino práctico comunicaciones - serieJose Antonio Vacas
 
Arduino práctico comunicaciones
Arduino práctico   comunicacionesArduino práctico   comunicaciones
Arduino práctico comunicacionesJose Antonio Vacas
 

Mais de Jose Antonio Vacas (20)

No mas semáforos javacasm
No mas semáforos   javacasmNo mas semáforos   javacasm
No mas semáforos javacasm
 
1.4 open hardware
1.4   open hardware1.4   open hardware
1.4 open hardware
 
Curso arduino basico bitbloq
Curso arduino basico bitbloqCurso arduino basico bitbloq
Curso arduino basico bitbloq
 
Robotica Educativa CEP Granada 2015
Robotica Educativa CEP Granada 2015Robotica Educativa CEP Granada 2015
Robotica Educativa CEP Granada 2015
 
Construcción de brazo robot
Construcción de brazo robotConstrucción de brazo robot
Construcción de brazo robot
 
Robotica educativa ii
Robotica educativa iiRobotica educativa ii
Robotica educativa ii
 
Robótica educativa swipe
Robótica educativa   swipeRobótica educativa   swipe
Robótica educativa swipe
 
1. inteligencia artificial y robótica
1. inteligencia artificial y robótica1. inteligencia artificial y robótica
1. inteligencia artificial y robótica
 
2. inteligencia artificial - Tareas
2. inteligencia artificial - Tareas2. inteligencia artificial - Tareas
2. inteligencia artificial - Tareas
 
3. inteligencia artificial ramas
3. inteligencia artificial   ramas3. inteligencia artificial   ramas
3. inteligencia artificial ramas
 
2.1 android cep jaen 2014 estructura de aplicación
2.1 android cep jaen 2014   estructura de aplicación2.1 android cep jaen 2014   estructura de aplicación
2.1 android cep jaen 2014 estructura de aplicación
 
1.1 android cep jaen 2015 introducción
1.1 android cep jaen 2015   introducción1.1 android cep jaen 2015   introducción
1.1 android cep jaen 2015 introducción
 
1.2 android cep jaen 2015 instalación del entorno
1.2 android  cep jaen 2015   instalación del entorno1.2 android  cep jaen 2015   instalación del entorno
1.2 android cep jaen 2015 instalación del entorno
 
1.3 android cep jaen 2015 plantillas y estructura de aplicación
1.3 android cep jaen 2015   plantillas y estructura de aplicación1.3 android cep jaen 2015   plantillas y estructura de aplicación
1.3 android cep jaen 2015 plantillas y estructura de aplicación
 
1.4 android cep jaen 2015 emulador
1.4 android cep jaen 2015   emulador1.4 android cep jaen 2015   emulador
1.4 android cep jaen 2015 emulador
 
Arduino práctico librerias
Arduino práctico   libreriasArduino práctico   librerias
Arduino práctico librerias
 
Arduino práctico introducción a la electrónica
Arduino práctico   introducción a la electrónicaArduino práctico   introducción a la electrónica
Arduino práctico introducción a la electrónica
 
Arduino práctico comunicaciones - serie
Arduino práctico   comunicaciones - serieArduino práctico   comunicaciones - serie
Arduino práctico comunicaciones - serie
 
Arduino práctico comunicaciones
Arduino práctico   comunicacionesArduino práctico   comunicaciones
Arduino práctico comunicaciones
 
Arduino práctico servos
Arduino práctico   servosArduino práctico   servos
Arduino práctico servos
 

Último

Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024SynarionITSolutions
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdflior mazor
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...DianaGray10
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyKhushali Kathiriya
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingEdi Saputra
 

Último (20)

Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 

Arduino práctico ethernet

  • 3. Arduino Básico: Presente ElCacharreo.com Arduino Básico javacasm@elcacharreo.com twitter linkedin blog José Antonio Vacas Martínez
  • 4. Arduino Básico: Ethernet ElCacharreo.com Arduino Básico Puede utilizarse tanto como cliente como servidor, es decir enviado o recibiendo datos Soporta hasta 4 conexiones simultáneas http://www.instructables. com/id/Arduino-Ethernet-Shield- Tutorial/?ALLSTEPS
  • 5. Arduino Básico: Ethernet server ElCacharreo.com Arduino Básico #include <Ethernet.h> byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; byte ip[] = { 10, 0, 0, 177 }; //the IP address for the shield: byte gateway[] = { 10, 0, 0, 1 };// the router's gateway address: byte subnet[] = { 255, 255, 0, 0 };// the subnet: Server server = Server(23); void setup(){ // initialize the ethernet device Ethernet.begin(mac, ip, gateway, subnet); // start listening for clients server.begin();} void loop(){ // if an incoming client connects, there will be bytes available to read: Client client = server.available(); if (client == true) { // read bytes from the incoming client and write them back // to any clients connected to the server: server.write(client.read()); } }
  • 6. Ejemplos Ethernet: webserver ElCacharreo.com Arduino Básico void loop() { // listen for incoming clients EthernetClient client = server.available(); if (client) { Serial.println("new client"); boolean currentLineIsBlank = true; // an http request ends with a blank line while (client.connected()) { if (client.available()) { char c = client.read(); Serial.write(c); if (c == 'n' && currentLineIsBlank) { // send a standard http response header 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 seconds: client.println("<meta http-equiv="refresh" content="5">"); // output the value of each analog input pin for (int analogChannel = 0; analogChannel < 6; analogChannel++) { int sensorReading = analogRead(analogChannel); client.print("analog input "); client.print(analogChannel); client.print(" is "); client.print(sensorReading); client.println("<br />"); } client.println("</html>"); 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; } } } delay(1); // give the web browser time to receive the data client.stop(); // close the connection: Serial.println("client disonnected"); }}
  • 7. Ethernet: ejemplo cliente ElCacharreo.com Arduino Básico #include <SPI.h> #include <Ethernet.h> byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; char server[] = "www.google.com"; // name address for Google (using DNS) IPAddress ip(192,168,0,177); EthernetClient client; void setup() { Serial.begin(9600); while (!Serial) { ; // wait for serial port to connect. Needed for Leonardo only } if (Ethernet.begin(mac) == 0) { Serial.println("Failed to configure Ethernet using DHCP"); Ethernet.begin(mac, ip); } delay(1000); Serial.println("connecting..."); // give the Ethernet shield a second to initialize: // if you get a connection, report back via serial: if (client.connect(server, 80)) { Serial.println("connected"); // Make a HTTP request: client.println("GET /search?q=arduino HTTP/1.1"); client.println("Host: www.google.com"); client.println ("Connection: close"); client.println(); } else { Serial.println("connection failed"); // kf you didn't get a connection to the server:}} void loop() { if (client.available()) { char c = client.read(); Serial.print(c); } if (!client.connected()) { Serial.println(); Serial.println("disconnecting."); client.stop(); while(true); }}
  • 8. Shield: ENC28J60 enc28J60 Librería ethercard (by JeeLab) https://github.com/jcw/ethercard/archive/master.zip Diferencias: Precio Rendimiento Librerías más potente ElCacharreo.com Arduino Básico
  • 9. Shield: ENC28J60, ejemplo cliente #include <EtherCard.h> static byte mymac[] = { 0x74,0x69,0x69,0x2D,0x30,0x31 }; byte Ethernet::buffer[700]; static uint32_t timer; char website[] PROGMEM = "www.google.com"; static void my_callback (byte status, word off, word len) { // called when the client request is complete Serial.println(">>>"); Ethernet::buffer[off+300] = 0; Serial.print((const char*) Ethernet::buffer + off); Serial.println("...");} void setup () { Serial.begin(57600); Serial.println("n[webClient]"); if (ether.begin(sizeof Ethernet::buffer, mymac) == 0) Serial.println( "Failed to access Ethernet controller"); if (!ether.dhcpSetup()) Serial.println("DHCP failed"); ether.printIp("IP: ", ether.myip); ether.printIp("GW: ", ether.gwip); ether.printIp("DNS: ", ether.dnsip); if (!ether.dnsLookup(website)) Serial.println("DNS failed"); ether.printIp("SRV: ", ether.hisip);} void loop () { ether.packetLoop(ether.packetReceive()); if (millis() > timer) { timer = millis() + 5000; Serial.println(); Serial.print("<<< REQ "); ether.browseUrl(PSTR("/foo/"), "bar", website, my_callback); }} ElCacharreo.com Arduino Básico
  • 10. Conclusiones Gracias por vuestra atención ElCacharreo.com Arduino Básico