Sisukord:
- Samm 1:
- 2. samm:
- 3. samm:
- 4. samm:
- Samm: juurdepääs oma Arduinole Interneti kaudu
- 6. samm:
- 7. samm:
- 8. samm: andurite andmete kuvamine veebilehel
Video: Arduino ja Etherneti kasutamise alustamine: 8 sammu
2024 Autor: John Day | [email protected]. Viimati modifitseeritud: 2024-01-30 08:47
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:
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:
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
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:
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:
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
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:
Traadita temperatuuri- ja vibratsioonisensorite kasutamise alustamine: 7 sammu
Traadita temperatuuri- ja vibratsioonisensorite kasutamisega alustamine: Mõnikord põhjustab vibratsioon paljudes rakendustes tõsiseid probleeme. Alates masina võllidest ja laagritest kuni kõvaketta jõudluseni põhjustab vibratsioon masina kahjustusi, varajast väljavahetamist, madalat jõudlust ja mõjutab oluliselt täpsust. Jälgimine
Digispark Attiny85 kasutamise alustamine Arduino IDE abil: 4 sammu
Digisparkiga Attiny85 alustamine Arduino IDE kasutamine: Digispark on Attiny85 -l põhinev mikrokontrolleri arendusplaat, mis sarnaneb Arduino liiniga, ainult odavam, väiksem ja natuke vähem võimas. Terve hulga kilpidega, mis laiendavad selle funktsionaalsust ja võimalust kasutada tuttavat Arduino ID -d
ESP32 kasutamise alustamine - ESP32 tahvlite installimine Arduino IDE -sse ESP32 vilkuv kood: 3 sammu
ESP32 kasutamise alustamine | ESP32 tahvlite installimine Arduino IDE -sse ESP32 vilkumiskood: selles juhendis näeme, kuidas alustada esp32 -ga töötamist ja kuidas esp32 -tahvleid Arduino IDE -sse installida, ning programmeerime esp 32, et käivitada vilkumiskood arduino ide abil
Arduino ja ESP8266 kasutamise alustamine: 11 sammu
Arduino ja ESP8266 kasutamise alustamine: ESP8266 saab kasutada sõltumatu mikrokontrollerina, millel on sisseehitatud Wi-Fi ja kaks GPIO-nööpi, või seda saab kasutada koos teise mikrokontrolleriga jadaühenduse kaudu, et anda mikrokontrollerile WiFi-ühendus. Seda saab kasutada asjade Interneti valmistamiseks
HC05 Bluetooth -mooduli ja Arduino kasutamise alustamine [Õpetus]: 6 sammu
HC05 Bluetooth -mooduli ja Arduinoga alustamine [Õpetus]: seda ja muid hämmastavaid õpetusi saate lugeda ElectroPeaki ametlikul veebisaidil. Selles õpetuses saate teada, kuidas suhelda ja andmeid saata Bluetoothiga, kasutades HC05 Bluetooth -moodulit ja Arduino plaati. Selle artikli lõpus saate teada