ArduineAndo - Arduino Ethernet (2023)

arduineando – Arduino Ethernet (1)

Arduino Ethernet -skjoldet lar en Arduino -plakett koble seg til Internett.Er basert på Ethernet -brikkenVISNETW5100 (datablad).Wiznet W5100 gir en IP -nettverksstabel som er i stand til TCP og UDP.Støtter opptil fire samtidige sokkelforbindelser.Bruk Ethernet Lalibrería til å skrive programmer som kobles til Internett ved hjelp av skjoldet.

Skjoldet Ethernet har kontakter som tillater å koble andre plater på toppen og stable dem på Arduino -platen.

Arduino bruker digitale pinner 10, 11, 12 og 13 (SPI) for å kommunisere med W5100 i Ethernet -skjoldet.Disse pinnene kan ikke brukes til generisk I/O.

Skjoldet gir en standard Ethernet -kontakt RJ45

Tilbakestill -knappen i skjoldet tilbakestilles begge deler, W5100 og Arduino -plaketten.

Skjoldet inneholder et nummer delegert informasjon:

  • PWR: Indikerer at platen og skjoldet blir matet
  • Link: Angir tilstedeværelsen av et nettverk og flash -kobling når skjoldet sender eller mottar data
  • Fulld: indikerer at nettverkstilkoblingen er full duplex
  • 100m: Indikerer tilstedeværelsen av en 100 MB/s nettverkstilkobling (i motsetning til 10 MB/s)
  • RX: Blinker når skjoldet mottar data
  • TX: blinker når skjoldet sender data
  • COLL: blinker når kollisjoner blir oppdaget i nettverket

Jumper -soldaten merket som "int" kan kobles til for å la Arduino -platen motta varsler om avbruddshendelser fra W5100, men dette støttes ikke av Ethernet Bookstore.Jumperen kobler W5100 -pinnen til den digitale pinnen 2 av Arduino.

SD SD i skjoldet støttes ikke av Arduino -programvaren.

For å bruke Ethernet -skjoldet må du bare montere på Arduino -platen.For å laste skissene til platen, koble den til datamaskinen ved hjelp av USB -kabelen slik den normalt gjøres.Når skissen er ladet, kan datamaskinplaten kobles fra og mate fra en ekstern kilde.

Koble skjoldet Ethernet til en datamaskin, en bryter eller en ruter ved hjelp av en standard Ethernet -kabel (Cat5ocat6Con ConnectorJ45).Datamaskinforbindelsen kan kreve bruk av en tverrkabel (selv om mange nåværende datamaskiner, inkludertDe siste Mac -modelleneDe kan krysse internt).

Nettverksinnstillinger

Skjoldet må tilordnes en MAC -adresse og en fast IP ved å bruke funksjonenEthernet.Begin ().En MAC -adresse er en unik global identifikator for hver enkelt enhet;Å tilordne en tilfeldig fungerer vanligvis, men ikke bruk den for mer enn en plate.

Koble Arduino som en webserver

Enheten vil kunne svare på en HTTP -begjæring med skjoldet Ethernet.Etter å ha åpnet en nettleser og lagt inn IP -adressen som er tilordnet Arduino Ethernet Shield, vil Arduino hans svare på verdiene for statusen til hans analoge oppføring (A0) og hans digitale inngang (pinne 2). arduineando – Arduino Ethernet (2)1. Vi kobler Arduino -platen vår til Ethernet -skjoldet.2. Vi kobler Ethernet -skjoldet til ruteren.3. Vi kobler også datamaskinen vår til ruteren for å være i samme nettverk.4. På datamaskinen kan vi bekrefte IP -en som nettverket tildeler oss som følger: Hvis vi er i en Mac, skriver vi innTerminalOg vi setter:

ifconfig

Hvis vi er i vinduer, går vi til Windows -konsollen: vi utførerCMD og vi legger:

ipconfigarduineando – Arduino Ethernet (3)

Vi observerer at det viser oss konfigurasjonen av nettverket og vi ser i 0:

en0:Flagg = 8863  mtu 1500 inet6 fe80 :: 226: b0ff: gebyrf: 72a0%en0 prefikslen 64 Scopeid 0x4 inet192.168.1.155Netmask 0xffff00 kringkasting 192.168.1.255 Ether 00: 26: B0: EF: 72: A0

I mitt tilfelle viser det meg at datamaskinen min er tilordnet IP -adressen:192.168.1.155Slik at de er på samme nettverk, ser vi i skissen som jeg har lagt nedenfor:byte ip [] = {192, 168, 1, 6};Og vi ser at adressen er lik, bare det siste tallet endres.La oss prøve at retningen vi tildeler Ethernet -skjoldet i skissen er lik alle tallene bortsett fra det siste.På denne måten vil vi sørge for at de deler den samme undernettverksmasken og den samme koblingsdøren, men med to forskjellige IP -adresser.

Sketch Servidor Web:

#include  // inkluderer Ethernet -bokhandelen #include  // Ethernet -identifikator unicobyte mac [] = {0xde, 0xad, 0xbe, 0xef, 0xfe, 0xed};byte ip [] = {192, 168, 1, 6};// IP -adresse tildeler Arduino Ethernet Shieldetherneterver -server (80);// er HTML -porten for internettforbindelse // mainVoid setup () {ethernet.begin (mac, ip);// Initialiser bokhandel og nettverkskonfigurasjoner server.begin ();// Start kommunikasjon gjennom porten} // CycllicLavoid Loop () {EthernetClient Client = Server.Available ();if (klient) {// en http -forespørsel ender med en linje i Blancolean Current_line_is_blank = true;While (client.connected ()) {if (client.aVilable ()) {char c = client.read (); // Hvis vi har nådd slutten av linjen (mottatt en ny linje // tegn) og linjen er tom, http -forespørselen er over, // slik at vi kan sende et svar (c == '\ n' && current_line_is_blank) {} client.println ("http/1.1 200 ok");// Sendt inn standard respons http client.println ("Content-thepe: text/html");client.println (); client.print ("digital input");// utskriftsverdi digital input client.print ("2"); klient.print ("er");client.print (digitalRead (2));// lesing av pinne 2 (digital) klient.println ("
");client.println ("
"); client.print ("analog input");// utskriftsverdi inndata analog klient.print ("0");klient.print ("er");klient.print (analogi (0));// lesing av pin 0 (analogo) client.println ("
");klient.println ("
"); break; if (c == '\ n') {current_line_is_blank = true;// vi starter en ny linje} annet hvis (c! = '\ R') {current_line_is_blank = falsk;// vi får et tegn i den gjeldende linjen}}}} // vi gir webserveren en stund til å motta forsinkelsesdataene (1);// forsinkelse av en 1 ms (millisekund) klient.stop ();}

Når vi har lastet programmet, har vi lagt inn terminalen vår:

Ping -A 192.168.1.6

Med "ping" -kommandoen sender vi pakker til IP -adressen som vi legger nedenfor.I mitt tilfelle har jeg lagt IP -adressen som jeg har tildelt Arduino Ethernet.Ved å gi ham «Enter» kan vi se at RX- og TX -lysdiodene til Arduino Ethernet er tent i synkroni med sending av terminaldata.

arduineando – Arduino Ethernet (4)

Vi ser i konsollen at du mottar 64 byte fra IP -adressen.

Merk: For å stoppe prosessen, trykk "CTRL-C" eller "CTRL Z".

På dette tidspunktet har vi Arduino konfigurert i nettverket !!!

Trykknapp og LDR sender data til en IP

Nå skal vi koble til en krets og sende data gjennom nettverket.

arduineando – Arduino Ethernet (5)5.

Vi kobler til den analoge pinnen eller en fotoresistor (LDR) og skaper en spenningsdel med en 1KOHM -motstand som vi har sett i Arduino -opplæringen.6. Vi kobler en push Botton til den digitale pin 2 som vi tidligere så i Arduino -opplæringen sammen med en 10kOHM -motstand.7. Vi laster skissen til platen.8. Vi åpner en nettleser (Explorer, Firefox, Chrome, Safari) og setter i søkefeltet, Nustra Ethernet Shield IP -adresse.I mitt tilfelle er det192.168.1.6,som er den jeg tildelte i skissen.

arduineando – Arduino Ethernet (6)Vi kan se at ved å sette IP -adressen i nettleseren, får vi tilgang til via Ethernet til dataene som Arduino sender oss.Vi har beskrevet disse dataene i følgende skissekode:

client.print ("digital oppføring");// Print Value Digital Customer.print ("2"); Client.print ("ES");Customer.print (digitalRead (2));// lesing av pinne 2 (digital) klient.println ("
");Customer.println ("
"); client.print ("analog");// utskriftsverdi -oppføring Angloga customer.print ("0");klient.print ("es");client.print (analogread (0));// Lesing av pin 0 (analog)

9. Hvis du trykker på trykknappen og oppdater nettleseren, ser vi at verdien avDigital inngangtil 1. 10. Hvis vi varierer lyset på vår LDR, og vi kjøler nettleseren, kan vi også se at verdiene tilAnalog inngang.

Nettklient

La oss nå laste skissenWebClientsom vises i eksemplene på Ethernet of Arduino.I dette eksemplet skal vi koble til Google for å motta Google -data i Arduino.

Vi ser at i skissen en IP -adresse som tilsvarer Google vises, endrer adressen seg, så vi må bekrefte at den tilsvarer.For dette legger vi inn Mac -terminalen vår eller i Windows -konsollen:

ping www.google.com

Og vi kan se hvilken adresse IP som tilsvarer.

arduineando – Arduino Ethernet (7)

I dette tilfellet gir det meg følgende IP -google =173.194.45.16

Bytt deretter ut den tilsvarende IP -adressen i WebClient -skissen min.

Skisse Web Client

/* Webklient Denne skissen kobles til et nettsted (http://www.google.com) ved hjelp av et Arduino Wiznet Ethernet Shield.Krets: * Ethernet Shield festet til pinner 10, 11, 12, 13 opprettet 18. desember 2009 Modifisert 9. april 2012 av David A. Mellis */#Inkluder  #include  // Angi en MAC -adresseFor kontrolleren din nedenfor.// Nyere Ethernet -skjold har en MAC -adresse trykt på et klistremerke på Shieldbyte Mac [] = {0xde, 0xad, 0xbe, 0xef, 0xfe, 0xed}; iPaddress Server (173,194,45,16);// Google // Initialiser Ethernet Client Library // med IP -adressen og porten til serveren // som du vil koble til (port 80 er standard for http): EthernetClient -klient; void setup () {// Åpne Serialkommunikasjon og vent til havnen åpner: Serial.Begin (9600);mens (! Serial) {;// Vent til seriell port kobler til.Nødvendig for bare Leonardo} // Start Ethernet -tilkoblingen: if (Ethernet.Begin (Mac) == 0) {Serial.println ("Kunne ikke konfigurere Ethernet ved bruk av DHCP");// ikke noe poeng i å fortsette, så gjør ingenting for alltid: for (;;);} // gi Ethernet -skjoldet et sekund for å initialisere: forsinkelse (1000);Serial.println ("Connecting ..."); // Hvis du får en tilkobling, rapporter tilbake via Serial: if (client.connect (server, 80)) {Serial.println ("tilkoblet");// Gjør en HTTP -forespørsel: Client.println ("Get/Search? Q = Arduino http/1.0");client.println ();} annet {// kf du fikk ikke en forbindelse til serveren: Serial.println ("tilkobling mislyktes");}} void loop () {// Hvis det er innkommende byte tilgjengelig // fra serveren, kan du lese dem og skrive ut dem: if (client.aVaLable ()) {char c = client.read ();Serial.print (c);} // Hvis serveren er koblet fra, stopp klienten: if (! client.connected ()) {Serial.println ();Serial.println ("frakobling.");client.stop (); // gjør ingenting for alltid: for (;;);}}

Etter å ha lastet skissen til platen, åpner viovervåke serienfra Arduino og vi kan se at Google -data blir utskrevet med henvisning til Arduino -ordet ihtml.

arduineando – Arduino Ethernet (8)

Kontrollerer et lys med Arduino Ethernet ved hjelp av en IP


I dette eksemplet handler det om å slå av og på et lys gjennom Internett, og for dette vil vi bruke Arduino Ethernet Shield Ethernet.Grunnleggende HTML -kunnskap vil være nødvendig, ganske enkelt for å kunne gjøre nettstedet til vår smak.Gjennom dette nettstedet kan vi slå på og slå av pæren vår når vi vil.Fra datamaskinen, iPad, nettbrett eller en hvilken som helst enhet med Wi-Fi-tilkobling.

Det vi skal lage med Ethernet -skjoldet, er en webserver, som vil gi oss HTML -koden for å kunne se den i nettleseren vår og for å kunne samhandle med den.

På Internett er en server en ekstern datamaskin som gir dataene som etterspørres av nettleserne på andre datamaskiner.I lokale nettverk (LAN, Local Area Network), forstås det som programvaren som konfigurerer en PC som en server for å lette tilgangen til nettverket og ressursene.Serverne lagrer informasjon i form av websider, og gjennom HTTP -protokollen leverer de den på forespørsel fra kunder (nettlesere) i HTML -format.

En server serverer informasjon til datamaskiner som kobles til den.Når brukere kobler seg til en server, kan de få tilgang til programmer, filer og annen serverinformasjon.På nettet er en server en datamaskin som bruker HTTP -protokollen for å sende websider til brukerens utstyr når han ber dem om.

arduineando – Arduino Ethernet (9)

I dette tilfellet skal vi ikke bruke Internett -nettverket, men vi vil gjøre det på lokalt nivå i det som kalles et LAN -nettverk (Local Area Network).For å få tilgang til nettstedet vi mener, må vi få tilgang til med en IP -adresse som tilhører nettverket vårt, som vil være den vi har tildelt Ethernet Shield.

Vi kommer til å laste inn følgende skisse, men vi må legge IP -adressen som tilsvarer samme underavsnitt og gateway i nettverket vårt.I mitt tilfelle er det:

Ipadress IP (192,168,1,6);

Skisse Arduino Ethernet på/av

#include  #include  // erklaración de la Direcciones mac e ip.También del Puerto 80 byte mac [] = {0xde, 0xad, 0xbe, 0xef, 0xfe, 0xed};// Mac Ipaddress IP (192,168,1,6);// IP EthernetServer Servidor (80);int pin_led = 8;String readString = streng (30);Strengtilstand = String (3);
Void setup () {ethernet.begin (mac, ip);// vi initialiserer med den tildelte server.begin () adresser;Pinmode (pin_led, output);
digitalwrite (pin_led, lav); state = "off";}
void loop () {EthernetClient cliente = servidor.aVailable ();if (klient) {boolean lineaenblanco = true;while (cliente.connected ()) {if (cliente.aVailable ()) {char c = client.read ();if (readString.length () <30) {readstring.concat (c); // cliente conectado // leemos petición http caracter a caracter // almacenar los caracteres en la variabel readstring} if (c == '\ n' &&lineaenblanco) // si la petición http ha finizado {int led = readstring.indexof ("led =");if (readString.SubString (LED, LED+5) == "LED = T") {DigitalWrite (pin_led, høy); state = "på";} annet hvis (readString.SubString (LED, LED+5) == "LED = F") {DigitalWrite (pin_led, lav);State = "off";} // cabecera http estándarcliente.println ("http/1.1 200 ok");klient.println ("Content-Type: Text/HTML");klient.println ();// página web en html ciente.println ("");klient.println ("");cliente.println (" lampara on/off ");cliente.println (""); client.println ("");klient.println ("");cliente.println ("

lampara av/off

"); cliente.print ("

");klient.print ("Estado de la lampara:");cliente.print (state);klient.print ("



");cliente.println ("");cliente.println ("");klient.println ("");klient.println ("");klient.println ("
Top Articles
Latest Posts
Article information

Author: Ouida Strosin DO

Last Updated: 27/12/2023

Views: 5537

Rating: 4.6 / 5 (76 voted)

Reviews: 91% of readers found this page helpful

Author information

Name: Ouida Strosin DO

Birthday: 1995-04-27

Address: Suite 927 930 Kilback Radial, Candidaville, TN 87795

Phone: +8561498978366

Job: Legacy Manufacturing Specialist

Hobby: Singing, Mountain biking, Water sports, Water sports, Taxidermy, Polo, Pet

Introduction: My name is Ouida Strosin DO, I am a precious, combative, spotless, modern, spotless, beautiful, precious person who loves writing and wants to share my knowledge and understanding with you.