Sisällysluettelo:

Arduinon ja Ethernetin käytön aloittaminen: 8 vaihetta
Arduinon ja Ethernetin käytön aloittaminen: 8 vaihetta

Video: Arduinon ja Ethernetin käytön aloittaminen: 8 vaihetta

Video: Arduinon ja Ethernetin käytön aloittaminen: 8 vaihetta
Video: Connect Arduino to internet over USB (with Processing) - Simple Space Weather meter example (Part 1) 2024, Marraskuu
Anonim
Arduinon ja Ethernetin käytön aloittaminen
Arduinon ja Ethernetin käytön aloittaminen

Arduino voi helposti kommunikoida ulkomaailman kanssa langallisen Ethernet -yhteyden kautta. Ennen kuin aloitamme, oletetaan kuitenkin, että sinulla on perustiedot tietokoneverkosta, kuten tieto siitä, miten tietokoneet kytketään keskittimeen/reitittimeen RJ45 -kaapeleilla, mikä on IP- ja MAC -osoite jne. Lisäksi tässä on hyvä katsaus Ethernetiin.

Tarvitset Arduino Unon tai yhteensopivan kortin, jossa on Ethernet -suoja, joka käyttää W5100 Ethernet -ohjaimen IC: tä (melkein kaikki) kuvan mukaisesti.

Lisäksi kortille on syötettävä virtaa ulkoisen DC -liitännän kautta - W5100 IC käyttää enemmän virtaa kuin USB -virtalähde voi syöttää. 9 V: n 1,5 A: n pistokepakkaus/seinäsyöpä riittää.

Vaihe 1:

Kuva
Kuva

Lopuksi - suojat kuumenevat - joten varo koskemasta W5100 -laitteeseen pitkän käytön jälkeen. Jos et ole varma - tämä on W5100 IC.

Vaihe 2:

Kun sinulla on Ethernet-yhteensopiva Arduino ja ulkoinen virta on kytketty-on hyvä tarkistaa, että kaikki toimii. Avaa Arduino IDE ja valitse Tiedosto> Esimerkit> Ethernet> Verkkopalvelin. Tämä lataa yksinkertaisen luonnoksen, joka näyttää verkkoselaimen analogisista tuloista kerättyjä tietoja. Älä kuitenkaan lataa sitä vielä, se vaatii pieniä muutoksia.

Sinun on määritettävä Ethernet -suojauksen IP -osoite - tämä tehdään luonnoksen sisällä. Tämä on yksinkertaista, siirry riville:

IPAdd ip (10, 1, 1, 77);

Ja muuta sitä vastaamaan omaa asetustasi. Esimerkiksi kotimme reitittimen IP -osoite on 10.1.1.1, tulostin on 10.1.1.50 ja kaikki tietokoneet ovat alle… 50. Joten asetan kilven IP -arvoksi 10.1.1.77 muuttamalla rivin muotoon:

tavu mac = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED};

Jos sinulla on vain yksi kilpi, jätä se kuitenkin. Saattaa olla hyvin, hyvin tilastollisesti harvinainen mahdollisuus saada sama MAC -osoite kuin nykyisellä laitteistollasi, joten se olisi toinen aika muuttaa sitä.

Vaihe 3:

Kuva
Kuva

Jos sinulla on vain yksi kilpi, jätä se kuitenkin. Saattaa olla hyvin, hyvin tilastollisesti harvinainen mahdollisuus saada sama MAC -osoite kuin nykyisellä laitteistollasi, joten se olisi toinen aika muuttaa sitä.

Kun olet tehnyt muutokset, tallenna ja lähetä luonnos. Avaa nyt verkkoselain ja siirry luonnokseen antamaasi IP -osoitteeseen, ja sinulle pitäisi näyttää jotain samanlaista kuin kuva.

Mitä tapahtuu?

Arduino on ohjelmoitu tarjoamaan yksinkertaisen verkkosivun, jossa on analogisten tulojen mittaamat arvot. Voit päivittää selaimen saadaksesi päivitetyt arvot. Tässä vaiheessa - huomaa, että Ethernet -suojat käyttävät digitaalisia nastoja 10–13, joten et voi käyttää niitä mihinkään muuhun. Joissakin Arduino Ethernet -suojissa voi olla myös microSD -korttipaikka, joka käyttää myös toista digitaalista nastaista - joten tarkista dokumentaatiosta, mikä niistä.

Vaihe 4:

Kuitenkin nyt, kun näemme Ethernet -suojan toimivan, voimme siirtyä johonkin hyödyllisempään. Tarkastellaan edellistä esimerkkiä yksinkertaisella tavalla ja katsotaan, kuinka voimme jakaa ja näyttää mielenkiintoisempia tietoja verkossa. Vertailun vuoksi kaikkia Ethernetiin liittyviä toimintoja hoitaa Ethernet Arduino -kirjasto. Jos tarkastelet äskettäin käyttämäämme luonnosta, kiinnostava osa on:

for (int analogChannel = 0; analogChannel <6; analogChannel ++) {int sensorReading = analogRead (analogChannel); client.print ("analoginen tulo"); client.print (analoginen kanava); client.print ("on"); client.print (sensorReading); client.println (""); } client.println ("");

Toivottavasti tämän luonnoksen osan pitäisi olla tuttu - muista, kuinka olemme käyttäneet serial.print (); aiemmin lähetettäessä tietoja sarjamonitorilaatikkoon? Nyt voimme tehdä saman, mutta lähettää dataa Ethernet -suojauksestamme takaisin verkkoselaimeen - toisin sanoen hyvin perustyyppiselle verkkosivulle. tulostus luettavassa muodossa - HTML -koodi. En ole verkkosivustojen kehittäjä (!), Joten en syvenny HTML: ään liikaa.

Kuitenkin, jos haluat palvella kauniisti muotoiltuja verkkosivuja Arduinollasi ja niin edelleen, tämä olisi hyvä alku. Yksinkertaisuuden vuoksi seuraavat kaksi toimintoa ovat hyödyllisimpiä:

client.print ("on");

Client.print (); avulla voimme lähettää tekstiä tai dataa takaisin verkkosivulle. Se toimii samalla tavalla kuin serial.print (), joten mitään uutta siellä ei ole. Voit myös määrittää tietotyypin samalla tavalla kuin serial.print (). Voit tietysti käyttää sitä myös tietojen lähettämiseen. Toinen hyödyllinen rivi on:

client.println ("");

joka lähettää HTML -koodin takaisin verkkoselaimeen ja kehottaa sitä aloittamaan uuden rivin. Osa, joka aiheuttaa vaunun paluun/uuden rivin, on

joka on HTML -koodi (tai "tagi") uudelle riville.

Joten jos luot kehittyneempiä verkkosivunäytöksiä, voit lisätä muita HTML -tunnisteita client.print (); lausunto. Jos haluat oppia lisää HTML -komennoista, tässä on hyvä opetusohjelma.

Lopuksi - huomaa, että luonnos lähettää tiedot vain, kun niitä on pyydetty, eli kun se on vastaanottanut pyynnön verkkoselaimelta.

Vaihe 5: Arduinon käyttäminen Internetin kautta

Arduinon käyttäminen Internetin kautta
Arduinon käyttäminen Internetin kautta

Toistaiseksi - niin hyvä. Mutta entä jos haluat käyttää Arduinoa paikallisen verkon ulkopuolelta?

Tarvitset staattisen IP -osoitteen - eli IP -osoitteen, jonka Internet -palveluntarjoajasi määrittää yhteydellesi, on pysyttävä samana. Jos sinulla ei ole staattista IP -osoitetta, sen ei pitäisi muuttua niin kauan kuin jätät modeemin/reitittimen pysyvästi IP -osoitteeseesi. Se ei kuitenkaan ole optimaalinen ratkaisu.

Jos Internet -palveluntarjoajasi ei voi tarjota sinulle staattista IP -osoitetta lainkaan, voit silti edetä projektissa käyttämällä organisaatiota, joka tarjoaa dynaamisen DNS: n. Nämä organisaatiot tarjoavat sinulle oman staattisen IP -isäntänimen (esim. Mojo.monkeynuts.com) numeron sijasta. Seuraa muuttuvaa IP -osoitettasi ja linkitä se uuteen isäntänimeen. Kokemukseni mukaan modeemin on tuettava näitä DDNS-palveluja (sinulla on sisäänrakennettu asiakas…).

Esimerkiksi kaksi yritystä ovat No-IP jaDynDNS.com. Huomaa, että en ole käyttänyt näitä kahta, ne ovat vain esimerkkejä. Nyt löytääksesi IP -osoitteesi … yleensä tämä löytyy kirjautumalla reitittimen hallintasivulle - se on yleensä 192.168.0.1, mutta voi olla erilainen. Tarkista toimittajalta tai Internet -palveluntarjoajalta, ovatko he toimittaneet laitteiston. Tässä esimerkissä, jos kirjoitan 10.1.1.1 verkkoselaimeen ja modeeminhallintasalasanan syöttämisen jälkeen, seuraava näyttö näytetään kuvan mukaisesti.

Vaihe 6:

Kuva
Kuva

Etsit WAN -IP -osoitettasi, kuten näet yllä olevasta kuvasta. Pitääkseni huijarit loitolla, olen peittänyt osan osoitteestani.

Seuraavaksi on otettava portin edelleenlähetys käyttöön. Tämä kertoo reitittimelle, mihin ohjata ulkomaailman saapuvat pyynnöt. Kun modeemi vastaanottaa tällaisen pyynnön, haluamme lähettää pyynnön Ethernet -suojamme portin numeroon. Käyttämällä:

Ethernet -palvelinpalvelin (125);

luonnoksemme toiminto on asettanut portin numeroksi 125. Kunkin modeemin kokoonpanonäyttö näyttää erilaiselta, mutta esimerkkinä tässä on yksi kuvassa.

Vaihe 7:

Kuva
Kuva

Joten voit nähdä yllä olevan kuvan rivistä numero yksi, saapuvien porttien numeroiksi on asetettu 125 ja Ethernet -suojauksen IP -osoitteeksi 10.1.1.77 - sama kuin luonnoksessa.

Asetusten tallentamisen jälkeen olemme kaikki valmiita. Ethernet -suojani ulkoinen osoite on WAN: 125, joten päästäkseni Arduinoon kirjoitan WAN -osoitteeni: 125 lopussa etäselaimen selaimeen, joka ottaa yhteyttä yksinäiseen Ethernet -laitteistoon kotona.

Lisäksi saatat joutua muuttamaan modeemin palomuuriasetuksia, jotta portti 125 voidaan "avata" saapuville pyynnöille. Tarkista modeemin dokumentaatiosta lisätietoja tämän tekemisestä. Nyt voin periaatteessa mistä tahansa Internetiin yhdistetystä laitteesta vapaassa maailmassa kirjoittaa WAN- ja porttinumeroni URL -kenttään ja vastaanottaa tulokset. Esimerkiksi puhelimesta, kun se on yhteydessä Internetiin LTE -mobiilidatan kautta.

Joten tässä vaiheessa voit nyt näyttää tietoja yksinkertaisella Arduinosi luomisella verkkosivulla ja käyttää sitä mistä tahansa rajoittamattoman Internet -yhteyden avulla. Aikaisemmalla Arduino -tietämykselläsi voit nyt käyttää tietoja antureista tai muista luonnoksen osista ja näyttää ne hakua varten.

Vaihe 8: Anturitietojen näyttäminen verkkosivulla

Anturitietojen näyttäminen verkkosivulla
Anturitietojen näyttäminen verkkosivulla

Esimerkkinä anturitietojen näyttämisestä verkkosivulla käytämme halpaa ja suosittua lämpötila- ja kosteusanturia - DHT22. Sinun on asennettava DHT22 Arduino -kirjasto, joka löytyy tältä sivulta. Jos tämä on ensimmäinen kerta DHT22: n kanssa, kokeile kirjaston mukana toimitettua esimerkkiluonnosta, jotta ymmärrät, miten se toimii.

Kytke DHT22 datatapilla Arduino D2: een, Vin 5 V: n napaan ja GND… GND: hen. Nyt luonnoksemme - näyttää lämpötila ja kosteus verkkosivulla. Jos et tunne HTML -taitoja, voit luoda koodin tällaisilla verkkopalveluilla, joita voit muokata luonnoksessa käytettäväksi. Alla olevassa esimerkissä DHT22: n lämpötila- ja kosteustiedot näytetään yksinkertaisella verkkosivulla:

#Sisällytä "SPI.h"#Sisällytä "Ethernet.h"

// DHT22 -anturille

#sisällytä "DHT.h" #define DHTPIN 2 #define DHTTYPE DHT22

// Kirjoita ohjaimen MAC -osoite ja IP -osoite alla.

// IP -osoite riippuu paikallisverkostasi: tavu mac = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED}; IPAdd ip (10, 1, 1, 77);

// Alusta Ethernet -palvelinkirjasto

// käytettävän IP -osoitteen ja portin kanssa // (portti 80 on oletusarvo HTTP: lle): EthernetServer -palvelin (125); DHT dht (DHTPIN, DHTTYPE);

mitätön asennus ()

{dht.begin (); // Avaa sarjaliikenne ja odota portin avautumista: Serial.begin (9600); while (! Sarja) {; // odota, että sarjaportti muodostaa yhteyden. Tarvitaan vain Leonardolle} // käynnistä Ethernet -yhteys ja palvelin: Ethernet.begin (mac, ip); server.begin (); Serial.print ("palvelin on"); Serial.println (Ethernet.localIP ()); }

tyhjä silmukka ()

{// kuuntele saapuvia asiakkaita EthernetClient client = server.available (); if (asiakas) {Serial.println ("uusi asiakas"); // http -pyyntö päättyy tyhjään riviin boolean currentLineIsBlank = true; while (client.connected ()) {if (client.available ()) {char c = client.read (); Serial.write (c); // jos olet päässyt rivin loppuun (saanut uuden rivin // -merkin) ja rivi on tyhjä, http -pyyntö on päättynyt, // joten voit lähettää vastauksen, jos (c == 'n' && currentLineIsBlank) {// lähetä standardi http -vastausotsikko client.println ("HTTP/1.1 200 OK"); client.println ("Sisältötyyppi: teksti/html"); client.println ("Yhteys: sulje"); // yhteys suljetaan vastausasiakasohjelman päätyttyä.println ("Päivitä: 30"); // Päivitä sivu automaattisesti 30 sekunnin välein client.println (); client.println ("");

client.println ("");

// hae tietoja DHT22 -anturista

float h = dht.readHumidity (); float t = dht.readTemperature (); Sarja.println (t); Sarja.println (h);

// täältä voimme kirjoittaa oman HTML -koodimme verkkosivun luomiseksi

client.print ( Toimiston sää

Toimiston lämpötila - );

client.print (t);

client.print ( Celsius -astetta

);

client.print ("

Kosteus - );

client.print (h);

client.print ( prosenttia

);

client.print ("

Sivu päivittyy 30 sekunnin välein <

. );

tauko;

} if (c == 'n') {// aloitat uuden rivin currentLineIsBlank = true; } else if (c! = 'r') {// olet saanut merkin nykyiselle riville currentLineIsBlank = false; }}} // anna web -selaimelle aikaa vastaanottaa dataviive (1); // sulje yhteys: client.stop (); Serial.println ("asiakas katkaistu"); }}

Se on muutos IDE: n verkkopalvelimen esimerkkiluonnoksesta, jota käytimme aiemmin - muutamalla muutoksella. Ensinnäkin verkkosivu päivittyy automaattisesti 30 sekunnin välein - tämä parametri asetetaan riville:

client.println ("Päivitä: 30"); // Päivitä sivu automaattisesti 30 sekunnin välein

… Ja verkkosivumme mukautettu HTML -koodi alkaa rivin alla:

// täältä voimme kirjoittaa oman HTML -koodimme verkkosivun luomiseksi

Voit sitten yksinkertaisesti lisätä vaaditun HTML -koodin client.print () -funktioihin luodaksesi tarvitsemasi asettelun.

Joten sinulla on se, toinen hyödyllinen tapa saada Arduinosi olemaan vuorovaikutuksessa ulkomaailman kanssa. Tämän viestin tuo sinulle pmdway.com - kaikki valmistajille ja elektroniikan harrastajille, ilmainen toimitus maailmanlaajuisesti.

Suositeltava: