Fórum témák
» Több friss téma |
A klónok CH340 Soros-USB illesztőjének drivere (Letöltés)
Portable verzióval, nem az operációs rendszer merevlemezén használva nem lesz hasonló problémád.
Nem kell hozzá portable verzió. Csak le kell menteni a //user/documents/Arduino/libraries könyvtárat és visszamásolni. Ha zipből csomagolod is oda kell rakni. A board file-t viszont ugyanugy fel kell telepíteni az az IDE-be telepíti magát.
Javítom magam. Lehet, hogy nálam azért működött mert már fel volt telepítve 1x. De csak ha odamásolod zipből library manager helyett akkor is működik egy lib, tehát elvileg működnie kell. A hozzászólás módosítva: Szept 25, 2020
Én jobban szeretem a portable változatot, azért javasoltam. Hátrányát eddig nem vettem észre, előnye meg főleg az, hogy akárhova magammal tudom vinni. A board fájlokat is mappán belülre telepíti, tehát egy rendszer újratelepítés után sem változik semmi.
Üdv!
Adott egy esp32, ami egy oldalt hostol helyi hálózaton 80-as proton, 192.168.0.107-es ip címen. Helyi hálózaton tökéletesen működik, viszont a portforwardolás nem igazán akar működni. Service és internal portnak 80-at adtam meg, ip címnek azt a címet, amin helyi hálózaton elérem az oldalt, ip címnek pedig a "What's my IP" keresésre kidobott ipcímet adtam meg. Mit ronthattam el? (Router: TP-Link TL-WR740N) Ezelőtt nem próbálkoztam portforwardolással, nincs benne tapasztalatom. A segítő válaszokat előre is köszönöm!
Hali!
Lehet hogy nem publikus az ipcímed, amit a szolgáltatótól kapsz, olyan mintha egy másik router mögött lennél, amin nincs konfigurálva a port forward. Hívd fel a szolgáltatód, nekem a Digi, régebben az UPC is díjmentesen átállította a kapcsolatom publikus ipcímre. Ezen kivül ha kivölről akarod elérni tudnod kell a ezt a külső ipcímedet, ami minden csatlakozás után más lehet, vagyis hiába nézed meg, mint írtad, holnap már lehet más a címed. Valamilyen dinamikus dns szolgáltatást is igénybe kellene venned, célszerűen amit a routered támogat, vagy futtatsz egy klienst pc-n vagy valamelyik hálózati eszközödön ami frissíti az ipcímed.
Köszönöm!
Holnap megtudakolom a szolgáltatónál, mi a helyzet.
Lehet kérni fix ipcímet is, de ahhoz vastagabb pénztárca kell
![]()
Nálunk vékonyabb is elég ( azt hiszem ingyenes) , ha csak domain nevet kérek.
Azt meg hogy? DDNS szolgáltatást ad az internet szolgáltató? Nem tudtam, hogy ilyen is van. De ha DDNS minek érte fizetni? Van ingyenes is.
Szia,
Nekem is volt hasonló problémám, 2 TP-Link routerrel is. Mindkettőnél máshogy oldottam meg. A probléma az, hogy a külső 80-as porton figyel a router remote management szolgáltatása, akkor is, ha nincs bekapcsolva. Ha a router engedi, akkor a remote management portot állítsd át másra. Ha nem engedi, akkor a forward beállításoknál kell másik service portot megadnod. Ez esetben így írd be az url-t a böngészőben: külső_ip_cím:service_port A hozzászólás módosítva: Szept 28, 2020
Szia
Átállítottam a remote management portot 79-re, de most a router ip címét beírva már meg se nyitja az oldalát ![]() A hozzászólás módosítva: Szept 28, 2020
Pl.: http://192.168.0.0:79
Az IP cím után meg kell adni a portot is, ha nem 80.
Az ingyenes DDNS szolgáltatók a szolgáltatóm routerén fentakadnak ( annak a WAN oldali IP címét adják vissza) . Nekem egy belső IP címet ad a szolgáltató,(10.xxx.xxx.xxx) azt kívülről senki nem éri el. ( ugyan úgy ahogyan a saját routerem mögé sem lát be senki, akit nem engedek be.) A domain néven viszont már elérhetővé teszi a routeremet a net felől, anélkül, hogy neki plusz költséget okozna a külső IP-cím fentartása.
Automatikusan kitölti, mégse megy.
Mi lehet a baj?
Tessék?
A 10/8, 192.168/16, 172.16/12 címek privát címek, ezeket senki se éri el kívülről, domain néven keresztül se, mert az is IP címre fordul le. Minden normális tűzfal eldobja a link local és a private címeket, és a CGNAT címeket is kívülről. Ez v4 esetén biztosan igaz. Ha eléred a router-ed kívülről, akkor vagy a szolgáltatód ad neked egy web felületet a router-edhez, amin keresztül tudod konfigolni, vagy v6-on keresztül megy ez a forgalom, ami megint más kávéház...
Nem tudom, de hogy az arduino témához semmi köze, az biztos.
Ez ahhoz hasonló amikor egyetlen IP címen több különböző webszerver fut, különböző domain nevek alatt.
Amikor a szolgáltatóhoz befut egy kérés, akkor a böngésző nem csak egyszerűen az adott IP 80-as portját kéri le, hanem a kérésben benne van a domain név is. Ez alapján a domain név alapján a szolgáltató (visszafelé NAT-olva) továbbítja a kérést a megfelelő user belső IP címe felé (van erre az "elő-szerverre" egy szakkifejezés, ami most nem ugrik be)... Így egyetlen IPv4 címet használva több különböző domain nevű weboldal kiszolgálható. A hozzászólás módosítva: Szept 29, 2020
Reverse proxy-nak hívják az "elő-szervert", ami le tudja válogatni, hogy melyik szervernek kell passzolni a kérést domain név alapján. Web szerverrel adott funkcionalitás ez, az ismert webszerverek tudják ezt, nálam most nginx-en fut ez a lépés.
Hogy hogy működik mindez írok egy kis összefoglalót, szerintem hasznos határterületi ismeret Arduinohoz: * A szolgáltatók alapvetően háromféle kapcsolatot adhatnak: ** Saját Fix IP cím: ez erősen zsebbenyúlós, ebben az esetben minden portra mindent be lehet állítani. ** Saját IP cím (úgy értve, hogy az IP azonosítja a nálunk lévő dobozt), de időnként változik: az IP címek fogyása miatt ezt most már kérni kell, de most még ingyenesen adják (az én szolgáltatómnál). Itt is minden portot tetszőlegesen irányíthatunk, viszont meg kell oldani, hogy a domain név-> IP hozzárendelés frissüljön, amikor új címet kapunk. Illetve kellemetlen velejárója, hogy a DNS-nek van egy időzített természete, váltáskor egy rövid ideig beragadhat az előző IP cím: érdemes a DNS timeout-ot a lehető legkisebbre venni. A domain név szolgáltatómnál van olyan, hogy programból lehet frissíteni az IP-t, illetve a dyndns szolgáltatók eleve erre valók. ** NAT-olt hálózat: nincs saját publikus IP-nk, hanem egyetlen IP mögött van egy csomó felhasználó. Ilyenkor port forwardot egyáltalán nem lehet beállítani, azaz lényegében csak kifelé menő TCP kéréseket tud a hálózat kezelni. Technikailag persze be lehet port forwardingot állítani, de a standard portokra (http:80 https:443) nem fognak, mert egy IP:port párost csak egyetlen gépre lehet átirányítani. NAT-olt esetben működik a reverse proxy: ez nem sima port forwarding, hanem olyan, hogy "belenéz" a TCP üzenet elejébe, aminek http-nek kell lenni, és abban benne van, hogy melyik szervernek (domain név szerint) szól az üzenet, és eszerint találja meg, hogy melyik szervernek kell továbbküldeni a kérést. További érdekesség, hogy https-sel is működik ez, mert https-en majdnem minden titkosított, de a domain nevet még titkosítatlanul is átküldi a kliens éppen ezért, hogy lehessen reverse proxy-zni a titkosított https-t is. Ráadásul a titkosítás része, hogy a szerver azonosítja magát, hogy a domain névnek ő a valódi kiszolgálója, és ezt is a domain név alapján teszi. Tehát nem csak reverse proxyhoz, hanem ahhoz is szükséges ez, hogy egy szerver több domain nevet is kiszolgálhasson https protokollon - különben nem tudná, hogy melyik SSL kulccsal kell azonosítania magát a kliens felé. Ez nekem is új volt, hogy van szolgáltató aki NAT mellé ad reverse proxy szolgáltatást. Ilyen esetben a publikus IP cím még nem azonosítja a gépedet, csak a domain névvel együtt (amit a böngésző a DNS lekérésre használ, ami visszaadja a szolgáltató NAT kilépőpontját, majd utána a http(s) csomagban is elküldi erre a címre, és ott a szolgáltató eszerint ágaztatja el, hogy hova kell továbbküldeni a kérést). Ezért ha az IP címet írod be a böngészőbe, akkor nem fog működni, csak akkor ha a rendes címmel nyitod meg az oldalt. Reverse Proxy-t azért érdemes sajátot is üzemeltetni, mert így be lehet állítani olyat, hogy egyetlen belépési pontról több szerver tartalmát is kiszolgálhatod. Illetve a reverse proxy szerver csinálhatja a titkosítást, sőt akár login előtétet is lehet tenni rá. A belső hálózatodon lesz csak titkosítatlan a forgalom, így már valóban báran ki lehet tenni publikus netre az Arduino-t. A Reverse Proxy futhat egy mini gépen - pl Raspberry PI, stb, vagy akár a roueren is, ha hackelhető routered van kellő tárhellyel és RAM-mal. Nálam így van beállítva: https://domainnevem.com/egyik/ -> kérések az egyik belső http szerver felé mennek https://domainnevem.com/masik/ -> kérések a másik belső http szerver felé mennek Így egyetlen domain név (bár az aldomain ingyenes volna: valami.domainnevem.com) és SSL certificate (bár LetsEncrypt-nél ez teljesen ingyenes) kell csak, és többféle tartalmat ki tud szolgálni. Leginkább az a jó benne, hogy a domain+SSL cert+login részt egyszer kellett csak megcsinálni.
Jogos, a reverse proxy nem jutott eszembe. Nem is értem miért, mert én is csináltam már ilyet
![]()
Tisztelt Kollégák!
A beszélgetés olyan irányt vett, ami nem igazán tartozik az Arduino témakörébe, habár a kiindulási pont valóban e köré épült. Mivel azonban a HE deklaráltan nem informatikai fórum, ezért kérjük, hogy ezt a beszélgetést valamely szakirányú oldalon szíveskedjetek folytatni! Megértéseteket köszönjük.
Jól látom, hogy Arduino alatt nem lehet(vagy legalábbis nem egyértelmű) az EEPROM-ba fordítási időben adatot elhelyezni?
Sose csináltam még, de eléggé elképzelhetetlennek tűnik. Legrosszabb esetben írsz egy Móritzka prógramot, ami beírja az eepromot neked, aztán jöhet a másik program ami meg használja. Ha sehogy másként nem megy, így biztosan fog
![]()
Forditasi idoben? Vagy forditas utan feltoltes kozben?
![]() En mostansag az avra forditot hasznaltam es az avr-objcopy-val allitom elo az eep.hex file-t, ami az eepromba irando adatokat tartalmazza es fel is tolti a programmal egyutt. Feltetelezem az arduino kornyezet is tudja ezt csipobol. A hozzászólás módosítva: Okt 1, 2020
Igen, jelenleg hasonló módon egy fix címen figyeli, üres e még az EEPROM, s ha igen, induláskor feltölti az alapértékekkel azt, majd beállítja a fix címet foglalttá. Ez így működik, de nem túl elegáns...
Fordításit írtam ) Nem szeretnék mókolgatni hasonló módon! Talán itt is menne, de ez így túl macerás, és végképp nem elegáns megoldás.
Normális fejlesztő környezetekben ezt különösebb probléma nélkül megadható deklaráláskor, hogy hová szeretném, hogy kerüljön az adat(hely, cím)..., gondoltam talán itt is van valami hivatalos lehetőség erre...
Szerintem csak a flash-ba tud beírni ilyen módon:
const dataType variableName[] PROGMEM = {data0, data1, data3…}; const dataType variableName[] PROGMEM = {}; // use this form const PROGMEM dataType variableName[] = {}; // or this one const dataType PROGMEM variableName[] = {}; // not this one dataType: Allowed data types: any variable type. variableName: the name for your array of data. Ez sem túl elegáns, de innen is másolható az EEPROM-ba az alapértelmezett adat, és így legalább nem foglal el az SRAM-ból területet erre a célra.
Akkor próbáld meg így:
Használj AVR programozó hardvert. Az Arduino bootloader nem támogatja az EEPROM írását.
Skori:
Ez ismert megoldás, a flash memóriába való tárolásra. sargarigo: Ez nem nyújt semmivel sem többet, azon kívül, hogy a címeket nem neked kell kezelned! 2015-ös állapot szerint a bootloaderje nem támogatja az EEPROM-ba való írást, ezért nem tölthető fel fordítási időben. Feltehetően ez azóta sem változott meg... :/
Igen, én is erre jutottam! Úgy működne, nyilván..., de akkor az Arduino kényelmét veszíteném el, részben...
Marad az eddigi megoldás, amit már leírtam. |
Bejelentkezés
Hirdetés |