Sisukord:

Arduino ja Etherneti kasutamise alustamine: 8 sammu
Arduino ja Etherneti kasutamise alustamine: 8 sammu

Video: Arduino ja Etherneti kasutamise alustamine: 8 sammu

Video: Arduino ja Etherneti kasutamise alustamine: 8 sammu
Video: Создание приложений для мобильных устройств, игр, Интернета вещей и многого другого с помощью AWS DynamoDB, Рик Хулихан 2024, November
Anonim
Arduino ja Etherneti kasutamise alustamine
Arduino ja Etherneti kasutamise alustamine

Teie Arduino saab juhtmega Etherneti ühenduse kaudu hõlpsalt välismaailmaga suhelda. Enne alustamist eeldame siiski, et teil on arvutivõrkude loomise põhiteadmised, näiteks teadmised selle kohta, kuidas ühendada arvutid jaoturi/ruuteriga RJ45 kaablitega, mis on IP- ja MAC -aadress jne. Lisaks on siin hea kiire ülevaade Etherneti kohta.

Teil on vaja Arduino Uno või ühilduvat tahvlit, millel on Etherneti kilp, mis kasutab pildi järgi W5100 Etherneti kontrolleri IC -d (peaaegu kõiki neid).

Lisaks peate plaati toite saama välise alalisvoolu pistikupesa kaudu - W5100 IC kasutab rohkem voolu kui USB -toide suudab toita. Piisab 9V 1,5A pistikust/seina tüügast.

Samm 1:

Pilt
Pilt

Lõpuks - kilbid lähevad kuumaks - seega olge ettevaatlik, et te ei puudutaks W5100 pärast pikaajalist kasutamist. Kui te pole kindel - see on W5100 IC.

2. samm:

Kui olete oma Etherneti toega Arduino ühendanud ja väline toide ühendatud-on hea mõte kontrollida, kas see kõik töötab. Avage Arduino IDE ja valige Fail> Näited> Ethernet> Veebiserver. See laadib lihtsa visandi, mis kuvab veebibrauseris analoogsisenditest kogutud andmed. Kuid ärge seda veel üles laadige, see vajab kergeid muudatusi.

Peate määrama Etherneti kilbi IP -aadressi - seda tehakse visandi sees. See on lihtne, minge reale:

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

Ja muutke seda vastavalt oma seadistusele. Näiteks meie kodus on ruuteri IP -aadress 10.1.1.1, printer on 10.1.1.50 ja kõik arvutid on alla… 50. Nii et ma seadistan oma kilbi IP väärtuseks 10.1.1.77, muutes jooneks:

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

Kuid kui teil on ainult üks kilp, jätke see rahule. Võib olla väga, väga statistiliselt haruldane võimalus, et MAC -aadress on sama, mis teie olemasoleval riistvaral, nii et oleks aeg seda muuta.

3. samm:

Pilt
Pilt

Kuid kui teil on ainult üks kilp, jätke see rahule. Võib olla väga, väga statistiliselt haruldane võimalus, et MAC -aadress on sama, mis teie olemasoleval riistvaral, nii et oleks aeg seda muuta.

Kui olete muudatused teinud, salvestage ja laadige visand üles. Nüüd avage veebibrauser ja navigeerige visandile sisestatud IP -aadressile ning teile esitatakse midagi sarnast pildile.

Mis toimub?

Arduino on programmeeritud pakkuma lihtsat veebilehte analoogsisendite abil mõõdetud väärtustega. Värskendatud väärtuste saamiseks saate brauserit värskendada. Siinkohal - pange tähele, et Etherneti kilbid kasutavad digitaalseid kontakte 10–13, nii et te ei saa neid muuks kasutada. Mõnel Arduino Etherneti kilbil võib olla ka microSD -kaardi pesa, mis kasutab ka teist digitaalset tihvti - seega kontrollige dokumentatsioonist, milline neist.

4. samm:

Sellegipoolest, nüüd, kui näeme, et Etherneti kilp töötab, võime liikuda millegi kasulikuma poole. Lahkame eelmise näite lihtsal viisil ja vaatame, kuidas saame võrgus huvitavamaid andmeid levitada ja kuvada. Võrdluseks, kõiki Ethernetiga seotud funktsioone haldab Etherneti Arduino raamatukogu. Kui uurite eelmist visandit, mida me just kasutasime, on huvitav jaotis järgmine:

for (int analogChannel = 0; analogChannel <6; analogChannel ++) {int sensorReading = analogRead (analogChannel); client.print ("analoogsisend"); klient.print (analoogkanal); klient.print ("on"); klient.print (sensorReading); klient.println (""); } client.println ("");

Loodetavasti peaks see visandi osa olema tuttav - pidage meeles, kuidas oleme kasutanud serial.print (); varem jadamonitori kasti andmete saatmisel? Nüüd saame teha sama asja, kuid saata andmed oma Etherneti kilbilt tagasi veebibrauserisse - teisisõnu, väga lihtne veebilehe tüüp. Siiski on midagi, mida soovite vormindamiseks õppida või mitte. väljund loetavas vormingus - HTML -kood. Ma ei ole veebisaitide arendaja (!), Seega ei süvene liiga palju HTML -i.

Kuid kui soovite oma Arduinoga serveerida kenasti vormindatud veebisaite ja nii edasi, oleks siin hea algus. Lihtsuse huvides on kõige kasulikumad järgmised kaks funktsiooni:

klient.print ("on");

Klient.print (); võimaldab meil saata teksti või andmeid veebilehele tagasi. See töötab samamoodi nagu serial.print (), seega pole seal midagi uut. Andmetüübi saate määrata ka samamoodi nagu serial.print (). Loomulikult saate seda kasutada ka andmete tagasisaatmiseks. Teine kasulik rida on:

klient.println ("");

mis saadab HTML -koodi veebibrauserisse tagasi ja käsib alustada uut rida. Osa, mis tegelikult põhjustab vaguni tagasituleku/uue rea, on

mis on uue rea HTML -kood (või „silt”).

Nii et kui loote keerukamaid veebilehtede kuvamisi, saate lihtsalt sisestada kliendisse muud HTML -sildid.print (); avaldus. Kui soovite HTML -käskude kohta rohkem teada saada, on siin hea õpetuste sait.

Lõpuks - pange tähele, et visand saadab andmed alles siis, kui neid on taotletud, st kui veebibrauserilt on päring laekunud.

Samm: juurdepääs oma Arduinole Interneti kaudu

Juurdepääs teie Arduinole Interneti kaudu
Juurdepääs teie Arduinole Interneti kaudu

Siiamaani on kõik korras. Aga mis siis, kui soovite oma Arduinole juurde pääseda väljastpoolt kohalikku võrku?

Teil on vaja staatilist IP -aadressi - see tähendab, et IP -aadress, mille teie Interneti -teenuse pakkuja teie ühendusele määrab, peab jääma samaks. Kui teil pole staatilist IP -d, ei tohiks muutuda nii kaua, kui jätate modemi/ruuteri püsivalt oma IP -aadressile. See pole aga optimaalne lahendus.

Kui teie Interneti -teenuse pakkuja ei saa teile üldse staatilist IP -d pakkuda, saate siiski projektiga edasi liikuda, kasutades organisatsiooni, mis pakub dünaamilist DNS -i. Need organisatsioonid pakuvad teile numbri asemel oma staatilist IP -hosti nime (nt mojo.monkeynuts.com), jälgige oma muutuvat IP -aadressi ja seostage see uue hosti nimega. Sellest, mida ma saan koguda, peab teie modem neid DDNS-teenuseid toetama (omama sisseehitatud klienti …).

Näiteks kaks ettevõtet on No-IP jaDynDNS.com. Pange tähele, et ma pole neid kahte kasutanud, neid pakutakse lihtsalt näitena. Nüüd, et leida oma IP -aadress … tavaliselt leiate selle ruuteri halduslehele sisse logides - tavaliselt on see 192.168.0.1, kuid see võib olla erinev. Küsige oma tarnijalt või Interneti -teenuse pakkujalt, kas nad tarnisid riistvara. Selle näite puhul, kui sisestan veebibrauserisse 10.1.1.1 ja pärast modemi haldusparooli sisestamist, kuvatakse järgmine ekraanipilt.

6. samm:

Pilt
Pilt

Mida otsite, on teie WAN -i IP -aadress, nagu näete ülaltoodud pildil. Et vembumehed eemal hoida, olen osa oma aadressist mustaks teinud.

Järgmine asi, mida teha, on lülitada sisse portide edastamine. See ütleb ruuterile, kuhu suunata välismaailmast saabuvad päringud. Kui modem sellise taotluse saab, tahame selle päringu saata meie Etherneti kilbi pordi numbrile. Kasutades:

EthernetServeri server (125);

meie visandi funktsioon on määranud pordi numbrile 125. Iga modemi konfiguratsiooniekraan näeb välja erinev, kuid näitena on siin üks pildil.

7. samm:

Pilt
Pilt

Nii et ülaltoodud pildil olevalt realt number üks näete, et sissetulevate pordide numbrid on seatud 125 -le ja Etherneti kilbi IP -aadress on seatud 10.1.1.77 - sama mis visandil.

Pärast seadete salvestamist oleme kõik valmis. Minu Etherneti kilbi välisaadressiks on WAN: 125, nii et Arduinole juurdepääsemiseks sisestan oma WAN -aadressi lõpus oleva kaug -veebiseadme brauserisse: 125, mis võtab ühendust üksildase Etherneti riistvaraga kodus.

Lisaks peate võib -olla muutma modemi tulemüüri seadeid, et port 125 oleks sissetulevatele päringutele avatud. Palun vaadake oma modemi dokumentatsioonist lisateavet selle kohta, kuidas seda teha. Nüüd saan põhimõtteliselt igast internetiga ühendatud seadmest vabas maailmas sisestada oma WAN -i ja pordi numbri URL -i väljale ning saada tulemused. Näiteks telefonist, kui see on Internetiga ühendatud LTE mobiilse andmeside kaudu.

Nii et praeguses etapis saate nüüd kuvada andmeid oma Arduino loodud lihtsal veebilehel ja pääseda sellele juurde piiramatu Interneti -juurdepääsuga kõikjalt. Oma varasemate Arduino -teadmiste abil saate nüüd kasutada andurite või visandi muude osade andmeid ja kuvada need allalaadimiseks.

8. samm: andurite andmete kuvamine veebilehel

Andurite andmete kuvamine veebilehel
Andurite andmete kuvamine veebilehel

Näiteks andurite andmete kuvamiseks veebilehel kasutage odavat ja populaarset temperatuuri ja niiskuse andurit - DHT22. Peate installima DHT22 Arduino raamatukogu, mille leiate sellelt lehelt. Kui kasutate DHT22 -ga esimest korda, katsetage raamatukoguga kaasasolevat näidisjoonist, et saaksite aru, kuidas see toimib.

Ühendage DHT22 andmestikuga Arduino D2 -ga, Vin 5V kontaktiga ja GND… GND -ga. Nüüd meie visand - temperatuuri ja niiskuse kuvamine veebilehel. Kui te pole HTML -iga kursis, saate koodi genereerimiseks kasutada selliseid veebiteenuseid nagu see, mida saate seejärel visandis kasutamiseks muuta. Allolevas näites esitatakse DHT22 temperatuuri ja niiskuse andmed lihtsal veebilehel:

#include "SPI.h" #include "Ethernet.h"

// DHT22 anduri jaoks

#sisalda "DHT.h" #defineeri DHTPIN 2 #defineeri DHTTYPE DHT22

// Sisestage allpool kontrolleri MAC -aadress ja IP -aadress.

// IP -aadress sõltub teie kohalikust võrgust: bait mac = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED}; IPAdd ip (10, 1, 1, 77);

// Etherneti serveriteegi initsialiseerimine

// selle IP -aadressi ja pordiga, mida soovite kasutada // (port 80 on HTTP jaoks vaikimisi): EthernetServer server (125); DHT dht (DHTPIN, DHTTYPE);

tühine seadistus ()

{dht.begin (); // Ava jadaside ja oota pordi avamist: Serial.begin (9600); while (! Seeria) {; // oodake, kuni jadaport ühendatakse. Vajalik ainult Leonardo jaoks} // käivitage Etherneti ühendus ja server: Ethernet.begin (mac, ip); server.begin (); Serial.print ("server on"); Serial.println (Ethernet.localIP ()); }

tühine tsükkel ()

{// kuulake sissetulevaid kliente EthernetClient client = server.available (); if (klient) {Serial.println ("uus klient"); // http päring lõpeb tühja reaga boolean currentLineIsBlank = true; while (client.connected ()) {if (client.available ()) {char c = client.read (); Serial.write (c); // kui olete jõudnud rea lõppu (saanud uue rea // märgi) ja rida on tühi, on http -päring lõppenud, // et saaksite vastuse saata, kui (c == 'n' && currentLineIsBlank) {// saata standardne http -vastuse päis client.println ("HTTP/1.1 200 OK"); client.println ("Sisu tüüp: tekst/html"); client.println ("Ühendus: sulge"); // ühendus suletakse pärast vastuskliendi valmimist.println ("Värskenda: 30"); // värskendage lehte automaatselt iga 30 sekundi järel klient.println (); klient.println ("");

klient.println ("");

// saada andmeid DHT22 andurilt

ujuk h = dht.readHumidity (); ujuk t = dht.readTemperature (); Seeria.println (t); Seeria.println (h);

// siit saame veebilehe loomiseks sisestada oma HTML -koodi

client.print ( Kontori ilm

Kontori temperatuur - );

klient.print (t);

klient.print ( kraadi Celsiuse järgi

);

klient.print ("

Niiskus - );

klient.print (h);

klient.print ( protsent

);

klient.print ("

Lehte värskendatakse iga 30 sekundi järel <

. );

murda;

} if (c == 'n') {// alustate uut rida currentLineIsBlank = true; } else if (c! = 'r') {// olete saanud märgi praegusel real currentLineIsBlank = false; }}} // andke veebibrauserile aeg andmete vastuvõtmiseks (1); // ühenduse sulgemine: client.stop (); Serial.println ("klient on lahti ühendatud"); }}

See on IDE veebiserveri näite visandi muudatus, mida kasutasime varem - mõne muudatusega. Esiteks värskendatakse veebilehte automaatselt iga 30 sekundi järel - see parameeter määratakse reale:

client.println ("Värskenda: 30"); // värskendage lehte automaatselt iga 30 sekundi järel

… ja meie veebilehe kohandatud HTML algab rea all:

// siit saame veebilehe loomiseks sisestada oma HTML -koodi

Seejärel saate vajaliku paigutuse loomiseks lihtsalt nõutud HTML -i sisestada funktsioonidesse client.print (). Lõpuks - siin on näide tööpildi näidisekraanist.

Nii et teil on see, teine kasulik viis oma Arduino suhtlemiseks välismaailmaga. Selle postituse toob teile pmdway.com - kõik tegijatele ja elektroonikahuvilistele, tasuta kohaletoimetamine kogu maailmas.

Soovitan: