
Tartalomjegyzék:
2025 Szerző: John Day | [email protected]. Utoljára módosítva: 2025-01-23 14:47

Az Arduino könnyen kommunikálhat a külvilággal vezetékes Ethernet kapcsolaton keresztül. Mielőtt azonban elkezdenénk, feltételezzük, hogy rendelkezik alapvető ismeretekkel a számítógépes hálózatokról, például arról, hogyan kell számítógépeket RJ45 kábelekkel hubhoz/útválasztóhoz csatlakoztatni, mi az IP- és MAC -cím stb. Ezenkívül itt van egy gyors összefoglaló az Ethernetről.
Szüksége lesz egy Arduino Uno -ra vagy kompatibilis tábla Ethernet -pajzsával, amely a W5100 Ethernet vezérlő IC -t használja (nagyjából mindegyiket) a kép szerint.
Ezenkívül a tápegységet a külső egyenáramú aljzaton keresztül kell táplálni - a W5100 IC több áramot használ, mint az USB tápellátása. Egy 9 V -os 1,5 A -os dugaszcsomag/fali szemölcs elegendő.
1. lépés:

Végül - a pajzsok felforrósodnak - ezért ügyeljen arra, hogy ne érintse meg a W5100 készüléket hosszabb használat után. Ha nem biztos benne - ez a W5100 IC.
2. lépés:
Miután megkapta az Ethernet-kompatibilis Arduino-t, és csatlakoztatta a külső áramellátást-érdemes ellenőrizni, hogy minden működik-e. Nyissa meg az Arduino IDE -t, és válassza a Fájl> Példák> Ethernet> Webszerver lehetőséget. Ez betölt egy egyszerű vázlatot, amely megjeleníti az analóg bemenetekről egy webböngészőben gyűjtött adatokat. Azonban még ne töltse fel, némi módosítást igényel.
Meg kell adnia az Ethernet -pajzs IP -címét - ez a vázlaton belül történik. Ez egyszerű, menj a sorhoz:
IPAdd ip (10, 1, 1, 77);
És módosítsa úgy, hogy megfeleljen a saját beállításainak. Például otthonunkban az útválasztó IP -címe 10.1.1.1, a nyomtató 10.1.1.50 és az összes számítógép… 50 alatt van. Tehát a pajzs IP -jét 10.1.1.77 -re állítom a sor megváltoztatásával:
bájt mac = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED};
Ha azonban csak egy pajzsod van, hagyd békén. Lehet, hogy nagyon, nagyon, statisztikailag ritka az esélye annak, hogy a MAC -címe megegyezik a meglévő hardverével, így ez egy újabb alkalom lenne annak megváltoztatására.
3. lépés:

Ha azonban csak egy pajzsod van, hagyd békén. Lehet, hogy nagyon, nagyon, statisztikailag ritka az esélye annak, hogy a MAC -címe megegyezik a meglévő hardverével, így ez egy újabb alkalom lenne annak megváltoztatására.
Miután elvégezte a módosításokat, mentse el és töltse fel a vázlatot. Most nyisson meg egy webböngészőt, és keresse meg a vázlatban megadott IP -címet, és valami hasonlóat kell bemutatnia a képhez.
Mi történik?
Az Arduino programozása egyszerű weboldalt kínál az analóg bemenetek által mért értékekkel. Frissítheti a böngészőt, hogy frissített értékeket kapjon. Ezen a ponton - vegye figyelembe, hogy az Ethernet -pajzsok 10–13 -as digitális tűket használnak, így nem használhatja őket másra. Egyes Arduino Ethernet -pajzsok microSD -kártya foglalattal is rendelkezhetnek, amely szintén másik digitális tűt használ - ezért ellenőrizze a dokumentációt, hogy melyik.
4. lépés:
Ennek ellenére most, hogy láthatjuk, hogy az Ethernet pajzs működik, továbbléphetünk valami hasznosabbra. Boncoljuk fel egyszerű módon az előző példát, és nézzük meg, hogyan oszthatunk el és jeleníthetünk meg érdekesebb adatokat a hálózaton. Referenciaként az összes Ethernet-hez kapcsolódó funkciót az Ethernet Arduino könyvtár kezeli. Ha megvizsgálja az előző vázlatot, amelyet most használtunk, akkor az a rész lesz érdekes:
for (int analogChannel = 0; analogChannel <6; analogChannel ++) {int sensorReading = analogRead (analogChannel); client.print ("analóg bemenet"); client.print (analógChannel); client.print ("is"); client.print (sensorReading); client.println (""); } client.println ("");
Remélhetőleg a vázlatnak ez a része ismerős lesz - emlékezzen arra, hogyan használtuk a serial.print (); a múltban, amikor adatokat küldött a soros monitor dobozába? Nos, most ugyanezt tehetjük, de az adatokat az Ethernet -pajzsunkról visszaküldve egy webböngészőbe - más szóval, egy nagyon egyszerű típusú weboldalt. Van azonban valami, amit esetleg meg akar tanulni a formázáshoz. a kimenet olvasható formátumban - HTML kód. Nem vagyok webhelyfejlesztő (!), Ezért nem fogok túl sokat foglalkozni a HTML -szel.
Ha azonban szépen formázott weboldalakat szeretne kiszolgálni az Arduino -val és így tovább, akkor ez egy jó kezdet. Az egyszerűség érdekében a következő két funkció lesz a leghasznosabb:
client.print ("is");
Client.print (); lehetővé teszi számunkra, hogy szöveget vagy adatokat küldjünk vissza a weboldalra. Ugyanúgy működik, mint a serial.print (), tehát nincs újdonság. Az adattípust ugyanúgy megadhatja, mint a serial.print (). Természetesen használhatja az adatok visszaküldésére is. A másik hasznos sor:
client.println ("");
amely a HTML kódot visszaküldi a webböngészőnek, és azt mondja, hogy kezdjen új sort. A kocsi visszatérését/új vonalat ténylegesen okozó rész a
amely egy HTML -kód (vagy „címke”) egy új sorhoz.
Tehát ha bonyolultabb weboldal -megjelenítéseket készít, akkor egyszerűen beilleszthet más HTML -címkéket a kliensbe.print (); nyilatkozat. Ha többet szeretne megtudni a HTML parancsokról, itt van egy jó oktatóoldal.
Végül - vegye figyelembe, hogy a vázlat csak akkor küldi el az adatokat, amikor kérték, azaz amikor megkapta a kérést a webböngészőtől.
5. lépés: Az Arduino elérése az interneten keresztül

Eddig jó. De mi van, ha az Arduino -t a helyi hálózaton kívülről szeretné elérni?
Szüksége lesz egy statikus IP -címre - vagyis annak az IP -címnek, amelyet az internetszolgáltatója a kapcsolathoz rendelt, változatlannak kell maradnia. Ha nincs statikus IP -címe, addig, amíg a modemet/útválasztót véglegesen az IP -címen hagyja, nem szabad megváltoznia. Ez azonban nem optimális megoldás.
Ha az internetszolgáltató egyáltalán nem tud statikus IP -t ajánlani, akkor is továbbléphet a projektben egy olyan szervezet használatával, amely dinamikus DNS -t kínál. Ezek a szervezetek saját statikus IP -gazdagépnevet (pl. Mojo.monkeynuts.com) kínálnak szám helyett, kövesse nyomon a változó IP -címet, és kapcsolja össze az új gazdagépnévvel. Amit összegyűjtök, a modemnek támogatnia kell (rendelkezik beépített ügyféllel…) ezeket a DDNS szolgáltatásokat.
Példaként két vállalat a No-IP és a DynDNS.com. Kérjük, vegye figyelembe, hogy ezt a kettőt nem használtam, csak példaként szolgálnak. Most, hogy megtalálja az IP -címét … általában ezt az útválasztó adminisztrációs oldalára bejelentkezve találhatja meg - általában 192.168.0.1, de lehet más is. Kérdezze meg szállítóját vagy internetszolgáltatóját, ha ők szállították a hardvert. Ebben a példában, ha beírom a 10.1.1.1 böngészőt, és miután beírtam a modem adminisztrációs jelszavamat, a következő képernyő jelenik meg a kép szerint.
6. lépés:

Amit a fenti képen lát, az a WAN IP -címe, amit keres. Hogy a csínytevőket távol tartsam, elfeketítettem néhány címemet.
A következő lépés a porttovábbítás bekapcsolása. Ez megmondja az útválasztónak, hogy hová kell átirányítani a külvilágból érkező bejövő kéréseket. Amikor a modem ilyen kérést kap, el szeretnénk küldeni ezt a kérést az Ethernet pajzsunk portszámára. Használni a:
EthernetServer szerver (125);
A vázlatunkban szereplő funkció a portszámot 125 -re állította. Minden modem konfigurációs képernyője másképp fog kinézni, de példaként itt van egy a képen.
7. lépés:

Tehát a fenti képen az első sorból látható, hogy a bejövő portok száma 125 -re van állítva, és az Ethernet -pajzs IP -címe 10.1.1.77 - ugyanaz, mint a vázlaton.
A beállítások mentése után minden készen áll. Az Ethernet -pajzsom külső címe a WAN: 125 lesz, így az Arduino eléréséhez a távoli webes eszköz böngészőjébe beírom a WAN -címemet: 125 -tel a végén, amely kapcsolatba lép a magányos Ethernet hardverrel otthon.
Továbbá előfordulhat, hogy módosítania kell a modem tűzfal beállításait, hogy a 125 -ös port „nyitott” legyen a bejövő kérésekre. Kérjük, nézze meg a modem dokumentációját, hogy megtudja, hogyan kell ezt megtenni. A szabad világban alapvetően bármely internethez csatlakoztatott eszközről beírhatom a WAN- és portszámomat az URL mezőbe, és megkaphatom az eredményeket. Például egy telefonról, amikor LTE mobil adatkapcsolaton keresztül csatlakozik az internethez.
Tehát ebben a szakaszban mostantól adatokat jeleníthet meg az Arduino által létrehozott egyszerű weboldalon, és bárhonnan hozzáférhet hozzájuk korlátlan internet -hozzáféréssel. Korábbi Arduino -ismereteivel mostantól felhasználhatja az érzékelőkből vagy a vázlat más részeiből származó adatokat, és megjelenítheti azokat a visszakereséshez.
8. lépés: Az érzékelőadatok megjelenítése egy weboldalon

Példaként az érzékelőadatok weboldalon történő megjelenítésére használjunk egy olcsó és népszerű hőmérséklet- és páratartalom -érzékelőt - a DHT22 -t. Telepítenie kell a DHT22 Arduino könyvtárat, amely ezen az oldalon található. Ha most először használja a DHT22 -t, kísérletezzen a könyvtárhoz mellékelt példavázlattal, hogy megértse, hogyan működik.
Csatlakoztassa a DHT22 -t az adattűvel az Arduino D2 -hez, a Vin -t az 5V -os tűhöz, a GND -t pedig a… GND -hez. Most a vázlatunk - a hőmérséklet és a páratartalom megjelenítése egy weboldalon. Ha nem ismeri a HTML -t, használhat ilyen online szolgáltatásokat a kód létrehozásához, amelyet aztán módosíthat a vázlatban való használatra. Az alábbi példában a DHT22 hőmérséklet- és páratartalom -adatait egy egyszerű weboldalon jeleníti meg:
#include "SPI.h" #include "Ethernet.h"
// DHT22 érzékelőhöz
#tartalmazza a "DHT.h" #define DHTPIN 2 #define DHTTYPE DHT22
// Írja be a vezérlő MAC- és IP -címét alább.
// Az IP -cím a helyi hálózattól függ: byte mac = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED}; IPAdd ip (10, 1, 1, 77);
// Inicializálja az Ethernet szerverkönyvtárat
// a használni kívánt IP -címmel és porttal // (a 80 -as port a HTTP alapértelmezett): EthernetServer szerver (125); DHT dht (DHTPIN, DHTTYPE);
üres beállítás ()
{dht.begin (); // Nyissa meg a soros kommunikációt, és várja meg a port megnyitását: Serial.begin (9600); while (! Sorozat) {; // várjon, amíg a soros port csatlakozik. Csak Leonardo esetén szükséges} // indítsa el az Ethernet -kapcsolatot és a szervert: Ethernet.begin (mac, ip); szerver.begin (); Serial.print ("a szerver itt van"); Serial.println (Ethernet.localIP ()); }
üres hurok ()
{// bejövő ügyfelek figyelése EthernetClient kliens = szerver.available (); if (kliens) {Serial.println ("új kliens"); // egy http kérés üres sorral végződik, boolean currentLineIsBlank = true; while (client.connected ()) {if (client.available ()) {char c = client.read (); Soros.írás (c); // ha a sor végére ért (új sor // karaktert kapott), és a sor üres, akkor a http -kérés véget ért, // így választ küldhet, ha (c == 'n' && currentLineIsBlank) {// szabványos http válaszfejléc küldése client.println ("HTTP/1.1 200 OK"); client.println ("Tartalom-típus: szöveg/html"); client.println ("Kapcsolat: bezárás"); // a kapcsolat lezárul a válasz kliens befejezése után.println ("Frissítés: 30"); // az oldal automatikus frissítése 30 másodpercenként client.println (); client.println ("");
client.println ("");
// adatok beszerzése a DHT22 érzékelőből
float h = dht.readHumidity (); float t = dht.readTemperature (); Soros.println (t); Soros.println (h);
// innen beírhatjuk saját HTML kódunkat a weboldal létrehozásához
client.print ( Irodai időjárás
Irodai hőmérséklet - );
kliens.nyomat (t);
client.print ( Celsius fok
);
client.print ("
Páratartalom - );
kliens.nyomat (h);
client.print ( százalék
);
client.print ("
Az oldal 30 másodpercenként frissül <
. );
szünet;
} if (c == 'n') {// új sort kezdesz currentLineIsBlank = true; } else if (c! = 'r') {// kapott egy karaktert az aktuális sorban currentLineIsBlank = false; }}} // adjon időt a webböngészőnek az adatkésleltetés fogadására (1); // a kapcsolat bezárása: client.stop (); Serial.println ("kliens leválasztva"); }}
Ez az IDE webszerver példavázlatának módosítása, amelyet korábban használtunk - néhány módosítással. Először is, a weboldal automatikusan frissül 30 másodpercenként - ez a paraméter a sorban van beállítva:
client.println ("Frissítés: 30"); // automatikusan frissíti az oldalt 30 másodpercenként
… És a weboldalunk egyedi HTML -kódja a sor alatt kezdődik:
// innen beírhatjuk saját HTML kódunkat a weboldal létrehozásához
Ezután egyszerűen beillesztheti a szükséges HTML -t a client.print () függvényekbe a kívánt elrendezés létrehozásához. Végül - itt van egy példa képernyőkép a példa vázlatról a munkahelyen.
Tehát itt van, egy másik hasznos módja annak, hogy az Arduino kölcsönhatásba lépjen a külvilággal. Ezt a bejegyzést a pmdway.com hozza meg neked - mindent a gyártóknak és az elektronika rajongóinak, ingyenes szállítással világszerte.
Ajánlott:
Az STM32f767zi Cube IDE használatának első lépései és egyéni vázlat feltöltése: 3 lépés

Első lépések az STM32f767zi Cube IDE -vel és a Feltöltés egyéni vázlata: VÁSÁROL (kattintson a tesztre a vásárláshoz/a weboldal megtekintéséhez) STM32F767ZISUPPORTED SZOFTVER · STM32CUBE IDE · KEIL MDK ARM µVISION · EWARM IAR EMBEDDED WORD STM mikrovezérlők programozására használják
A BeagleBone Black használatának első lépései: 11 lépés

A BeagleBone Black használatának első lépései: Miután egy ideig az Arduino -t használtam, úgy döntöttem, hogy kipróbálom a Beaglebone Black -et. Látva az Instructables tartalmának hiányát, és nehézségeket okozva az induláshoz, segíteni akartam másoknak a BeagleBone Black beállításában
A Raspbian Buster telepítése a Raspberry Pi 3 - -ra A Raspbian Buster használatának első lépései a Raspberry Pi 3b / 3b+segítségével: 4 lépés

A Raspbian Buster telepítése a Raspberry Pi 3 | -ra A Raspbian Buster használatának megkezdése a Raspberry Pi 3b / 3b+alkalmazással: Sziasztok, a közelmúltban a Raspberry pi szervezet új Raspbian operációs rendszert indított Raspbian Buster néven. Ez a Raspbian új verziója a Raspberry pi's számára. Tehát ma ebben az utasításban megtanuljuk, hogyan kell telepíteni a Raspbian Buster OS -t a Raspberry pi 3 -ra
A Qoopers használatának első lépései: 3 lépés

A Qoopers első lépései: A Qoopers a Robobloq oktató robotkészlete. Ez egy új cég; most fejezték be a közösségi finanszírozási kampányt az Indiegogóban. Büszke voltam arra, hogy támogattam a kampányukat, mert úgy gondolom, hogy a Qoopers egy szép játék gyerekeknek, valamint erős robotika
Az Arduino és az ESP8266 használatának első lépései: 11 lépés

Az Arduino és az ESP8266 használata: Az ESP8266 független mikrovezérlőként használható beépített Wi-Fi-vel és két GPIO-tűvel, vagy soros kommunikáción keresztül egy másik mikrokontrollerrel is használható, hogy Wi-Fi-kapcsolatot biztosítson a mikrokontrollerhez. IoT előállítására használható