-
GAMEPOD.hu
Arduino hardverrel és szoftverrel foglakozó téma. Minden mikrovezérlő ami arduinoval programozható, és minden arduino program, board, és hardverrel kapcsolatos kérdések helye.
Új hozzászólás Aktív témák
-
vargalex
félisten
válasz its_grandpa #19455 üzenetére
Igen, üres, mert
ESP_ERR_NVS_NOT_FOUND
errorral tér vissza. Ebben az esetben ugye nem változik aznvs_buf
tartalma, azaz aContetns
logolás teljesen normális, hogy az üres string-re (nvs_buf[0] = '\0';
miatt) inicializált értékkel tér vissza.
Szóval, én is megpróbálnám a flash törlést.#19453 its_grandpa: Teljesen normális az a log, hiszen ahogy Aryes által bemásolt kódban is látszik, az eredeti
key
hosszát és azNVSBUFSIZE
-ra (150) beállítottlen
-t adja vissza, mivel a fentiek szerint utóbbi nem módosul (nyilván akey
egyébként sem módosulna).[ Szerkesztve ]
Alex
-
vargalex
félisten
válasz lanszelot #19504 üzenetére
Szia!
Esetleg, ha nem lenne bekapcsolva, akkor Arduino IDE-ban kapcsold be a Beállítások alatt a Bővebb kimenet mutatása eközben: feltöltés opciót (Preferences->Show verbose output during: upload).
Egyébként én még nem láttam bootloader nélküli nano-t. Csak olyat, amin még régi bootloader volt, ekkor az Arduino IDE-ben az Eszközök (Tools) menüben az Arduino Nano board kiválasztása után CPU-t is át kell állítani ATmega328P (Old Bootloader) típusra.Alex
-
vargalex
félisten
válasz lanszelot #19542 üzenetére
Én nem szoktam lib-eket csak úgy letölteni és bemásolni sehová. Egyszerűen Arduino IDE-ben az Eszközök->Könyvtárak kezelése alatt megkeresem a kérdéses lib-et (jelen esetben az U8glib-et, majd megnyomom a hozzá tartozó Telepítés gombot. Ezután a sketch-et bemásoltam az IDE-be, lementettem és azonnal hiba nélkül fordult.
Te hogyan csinálod ezt az egészet?Alex
-
vargalex
félisten
válasz its_grandpa #19574 üzenetére
Azért ez az IP-re feloldás nem ilyen egyszerű. Pl. az általad említett domain mögött két IP is van:
[gavarga@gavarga-5500 ~]$ drill icast.connectmedia.hu
;; ->>HEADER<<- opcode: QUERY, rcode: NOERROR, id: 15341
;; flags: qr rd ra ; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;; icast.connectmedia.hu. IN A
;; ANSWER SECTION:
icast.connectmedia.hu. 7 IN A 109.199.62.243
icast.connectmedia.hu. 7 IN A 109.199.61.243
;; AUTHORITY SECTION:
;; ADDITIONAL SECTION:
;; Query time: 12 msec
;; SERVER: 127.0.0.53
;; WHEN: Tue Mar 7 10:06:34 2023
;; MSG SIZE rcvd: 7
Ha az egyiket beégeted, de éppen nem megy, akkor nem tud fallback-olni a másodikra. Persze lehet, hogy éppen ilyen esetben nem megy a kollégának csak másodikra...
Alex
-
vargalex
félisten
válasz its_grandpa #19678 üzenetére
Pedig normális routereken (vagy inkább firmware-okban) olyan alhálózati maszkot használhatsz, amit csak akarsz:
Miért kellene a 255-höz ragaszkodni? Ez csak egy általános megszokás... De használhatok én itthon 172.16.0.0/16, vagy 10.0.0.0/8-as hálót is. Semmi nem akadályoz meg benne. És ahogy egyszer több okos eszköz van, lassan kinövi az ember a 254 eszközt (routerrel együtt).
#19679 Janos250: A subnetben a 0 nem véd ki semmit, a kolléga által is említett 50-es tartomány esetén a 255.255.50.0 subnet != 255.255.255.0-val... Utóbbi esetben lesznek olyan IP-k amik eléréséhez az eszközöd nem szeretne a gataway-on keresztül menni.
[ Szerkesztve ]
Alex
-
vargalex
félisten
válasz Janos250 #19682 üzenetére
Ahogy láthatod, a két esetben teljesen más a broadcast IP és a prefix is (amiről én beszéltem):
root@AX3200:~# ipcalc.sh 192.168.50.1 255.255.50.0
IP=192.168.50.1
NETMASK=255.255.50.0
BROADCAST=192.168.255.255
NETWORK=192.168.50.0
PREFIX=19
root@AX3200:~# ipcalc.sh 192.168.50.1 255.255.255.0
IP=192.168.50.1
NETMASK=255.255.255.0
BROADCAST=192.168.50.255
NETWORK=192.168.50.0
PREFIX=24
Tehát az első esetben az első 19 bit egyezése esetén már olyan pl. a 192.168.32.1 cél IP esetén sem fog átmenni a forgalom a gateway-on (hiszen az első 19 bit egyezik), pedig az lehet akár egy másik háló a gateway mögött...
[ Szerkesztve ]
Alex
-
vargalex
félisten
Az ESP eszközeid nem akkor kapják a 192.168.4.1-et, ha ők AP-ként és DHCP szerverként működnek és te rájuk csatlakozol, így kapsz tőlük egy IP-t a 192.168.4.1/24-ből?
Elvileg működhet a netmask átírás, de egyébként nem egyszerűbb a PC-den 192.168.2.0/24-ből beállítani egy statikus IP-t, közvetlenül csatlakozni vezetékkel az N14U-ra és átállítani a LAN IP-jét egy saját hálózatodban lévőre (nem használtra)? Gondolom repeater módban kikapcsolja a DHCP szervert... Majd visszarakhatod a PC-det DHCP-re.
Ezért szeretem az OpenWrt-t. Ott ilyen esetben én a második router LAN interface-jának azt mondom, hogy DHCP-n kérjen magának IP-t (és gateway-t, DNS-t). Nem kell kézzel beállítani semmit, látszik az első router DHCP táblájában.
[ Szerkesztve ]
Alex
-
vargalex
félisten
válasz its_grandpa #19695 üzenetére
Ott a beillesztett képen az Egyéni lehetőség... Oda azt adsz meg, amit akarsz, nincs megkötés az értékére.
Az nf_conntrack_max nem a kliensek, hanem az egyidejű kapcsolatok maximális számát határozza meg. Ha pl. torrentezel (bármelyik kliensen), akkor egyetlen kliens elvihet több 100, vagy több 1000 kapcsolatot is. Nálam ez fel van húzva:root@AX3200:~# cat /etc/sysctl.d/30-nf-conntrack-max.conf
net.netfilter.nf_conntrack_max=65535
Memóriával nincs gond, ehhez bőven elég a 256 MB:
259 kapcsolattal:
root@AX3200:~# cat /proc/net/nf_conntrack | wc -l
259
root@AX3200:~# free
total used free shared buff/cache available
Mem: 233328 44108 160416 452 28804 150040
Swap: 0 0 0
1227 kapcsolattal:
root@AX3200:~# cat /proc/net/nf_conntrack | wc -l
1227
root@AX3200:~# free
total used free shared buff/cache available
Mem: 233328 44584 159952 452 28792 149568
Swap: 0 0 0
#19690 Aryes: A .0 végű nem egy valós IP cím (azaz az általad említett 192.168.2.0), mivel 1-254-ig mehet. A 255 pedig a broadcast IP egy 255.255.255.0 (vagy másként /24-es) hálózat esetén, azaz ott az sem valós IP. Ezért írtam, hogy 192.168.2.2-192.168.2.254-ig bármit adhatsz (a 192.168.2.1 a router, azt azért nem).
[ Szerkesztve ]
Alex
-
vargalex
félisten
-
vargalex
félisten
Én úgy értettem a kollégát, hogy a starter kit már megvan...
De, hogy valami értelmeset is írjak:
A topikon is volt kolléga, aki készített videós tanfolyamot.
Illetve nem tudom, mennyire jó, de a TavIR-nek is van egy 60 napos ingyenes tanfolyama. Minden nap küldenek egy e-mail-t egy-egye témával.Alex
-
vargalex
félisten
válasz gordonfreemN #19760 üzenetére
A soros monitoron ilyenkor mit látsz? Valami csak lekapcsolja azt a ledet, ha csak felvillan... Ennyi a teljes kód, vagy csak kiemelted a lényeget?
Alex
-
vargalex
félisten
Ezért kérdeztem a kollégától, hogy ez a teljes kód-e. Mert ugye a bemásolt kód csak a másik gomb megnyomásakor kapcsolná le a ledet, addig folyamatosan világítania kellene.
A telefon kamárájához megjegyzés: telefon kérdése is, mert pl. iPhone-ok esetén (talán már a 6-os, vagy 7-es óta) a kamerán van IR szűrő, ott nem látszik a villogás...
Alex
-
vargalex
félisten
válasz gordonfreemN #19786 üzenetére
A break lényege, hogy utána más ág (így a default sem) hajtódik végre. Vagy nem értem, amit írsz...
Alex
-
vargalex
félisten
válasz gordonfreemN #19786 üzenetére
A soros log alapján Ayres kolléga megoldása jó kell, hogy legyen. A case -1 ágába a break-on kívül más nem kell. Viszont azt gyanítom, hogy kellene valami timeout is, mert amíg nyomod, addig jön a -1, de ha elengeded, akkor nem fog jönni semmi és nem is fut be a default ágba. Vagy, ha nem nyomsz gombot, akkor az irrecv.decode-ban áll?
Alex
-
vargalex
félisten
válasz bagarol #19795 üzenetére
Ezt így nem értem. Ha az
irrecv.decode false
-t ad, amikor nincs bejövő adat, akkor az eredeti kód szerint nem atrue
ág fut, azaz nincscase
, tehát nincs, ami kikapcsolja a ledet. Vagy nem erre gondoltál?Alex
-
vargalex
félisten
válasz bagarol #19797 üzenetére
Erre írtam, hogy
false
-t kellene visszaadnia, ha nem volt fogadott adat. Erre válaszoltad, hogy azt is ad. Tehát mégsem azt ad... Az is biztos, hogy nem 0-t, mert akkor azelse
ág futna (ami nincs).Alex
-
vargalex
félisten
válasz Tomika86 #19889 üzenetére
Szia!
A
valcheck
és asendInfo
függvényben is független, önállóXMLHttpRequest
objektumot hozol létre. Így asendInfo
-ban elküldött adat nem fogja szerintem kiváltani avalcheck
-ben definiáltXMLHttpRequest onreadystatechange
eseményét. És ugye a sorrend is rossz, előbb kell azonreadystatechange
definiálás, utána a küldés..
Illetve a /size feldolgozásnál a check statustrue
esetén (bár én éppen megcserélném a true-false értékeket, mert így az elnevezéshez képest fordítva működik, azaz igaz esetén hibás, hamis esetén OK) nem http 200-at kellene visszaadni, ha azt szeretnéd, hogy a javascriptonreadystatechange
else ága fusson le.Szóval, szerintem valahogy így kellene (csak részleteket írok):
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
if(xhttp.readyState == 4 && xhttp.status == 200) {
alert('Ok status');
}
else {
alert('Invalid status');
}
};
sendInfo(xhttp, file.size);
...
function sendInfo(xmlHttp, size) {
xmlHttp.open("post", "/size");
xmlHttp.send(size);
}
...
if (check_status)
{
request->send(400, "text/plain", "FAIL CONNECTION");
Serial.println("Check status Fail");
}
else {
Serial.println("Check status Ok");
request->send(200);
}
[ Szerkesztve ]
Alex
-
vargalex
félisten
válasz Tomika86 #19892 üzenetére
Nem teljesen értem, mert az átirányítás nincs kezelve az ajax hívásodban. Miért irányítana bárhová a böngésző?
Milyen kiíratott üzenetre gondolsz, hogy nem jelenik meg? A javascript-ből csak az alert megy, semmilyen visszatérő értékkel nem foglalkozol ott... Tehát a jelenlegi kódoddal az alerten kívül más nem is kell, hogy megjelenjen a böngészőben.Alex
-
vargalex
félisten
válasz Tomika86 #19896 üzenetére
ESP oldalról válaszolod az átirányítást (ezt látnod is kell a böngészőben developer módban a network fülön, ahogy minden más választ is), de azt ajax hívás esetén a böngésző nem követi, azaz neked kell a javascript-ben a location-t beállítani. Ennek a résznek nincs köze az esp-hez, tisztán böngésző/javascript működés.
[ Szerkesztve ]
Alex
-
vargalex
félisten
válasz Tomika86 #19898 üzenetére
Eddig is tiszta volt, hogy mit szeretnél!
Csak a redirect-et - ahogy írtam - a javascript-ből indított ajax hívás nem kezeli le. Ha a böngészőben megnézed Developer módban a Network fület, akkor látni fogod, hogy megkapja a HTTP 302-t (legalábbis a forrás szerint 302 megy vissza), de a böngésző nem kezd vele semmit... Ezt neked kell a javascript kódodban kezelni, ahogy a http 200-at is teszed.
Legalábbis emlékeim szerint nem kezd a redirect-el semmit a böngésző, de amint időm engedi, tesztelem. De a Developer mód Network füle sokat tud segíteni...Alex
-
vargalex
félisten
válasz KoVee84 #19938 üzenetére
Mire iratod ki az adatokat? Ha nem e-ink kijelzőre, akkor ugye a kijelzés is harap erősen az akkuból.
Egyébként, ha e-ink, akkor ahogy a kolléga mondja, deep sleep-be kell küldeni az ESP32-t (én ESP8266-al csináltam percenként ébredő hőmérőket, amik 10 percenként wifi-re is csatlakoznak és post-olják az addig mért adatokat, azok egy 18650-es cellával 3-4 hónapig elvannak) és időzítve ébreszteni.Szerk.: mondjuk a developer board-ok nem biztos, hogy ideálisak a feladatra, mivel ha az ESP-t deep sleep-be is küldöd, attól a körítés, ami a lapon van, fogja enni az akkut. És nem biztos, hogy maga az ESP a legnagyobb fogyasztó. Én csupasz ESP12E-kett használtam a projektemhez.
[ Szerkesztve ]
Alex
-
vargalex
félisten
válasz its_grandpa #20088 üzenetére
Én ezt egy projektben így kezeltem:
unsigned long ElapsedTime = millis() - StartTime;
if (ElapsedTime > StartTime) {
ElapsedTime = ULONG_MAX - StartTime + millis();
...
}
Alex
-
vargalex
félisten
válasz its_grandpa #20153 üzenetére
Én sem használok goto-t, pont ezért rendesen meglepődtem, mikor a legutóbbi melónál kernel patch-et kellett backportolni (OpenWrt alá) és bőven van goto a mainline kernel kódjában...
Alex
-
vargalex
félisten
válasz its_grandpa #20163 üzenetére
Nem lehet tudni, hogy mi van a ....-ban.
Egyébként szerintem ebben a formában kettő. Tehettél volna a
for
-ba egy deklarációt, akkor legalább 3 lenne...Alex
-
vargalex
félisten
-
vargalex
félisten
válasz lanszelot #20383 üzenetére
Szia!
A kolléga által bemásolt kódrészletben egyértelműen ott van megjegyzésként a value-nál:
deprecated,moved to decodedIRData.decodedRawData ///< Decoded value / command [max 32-bits]
Nyilván fejlődött, módosult közben a példához képest a lib. Ezt neked kell lekövetned, vagy aktuális példát kell keresni. A fenti struct-ból látszik, hogy neked nem a
decode_results
-ra van szükséged, hiszen szinte minden deprecated. Ahogy láthatod, átkerültek adecodedIRData
-ba.
De egyébként a readme-ban minden le van írva. Érdemes szétnézni az példák között esetleg..[ Szerkesztve ]
Alex
-
-
vargalex
félisten
válasz lanszelot #20418 üzenetére
Csak belenéztem a lib-be, így egyáltalán nem biztos, amit írok. De azt látom, hogy a beep metódus csak belső változókat állít be és az osztály példány majd azzal dolgozik. Ez azt is jelenti, hogy a te kódod azonnal fut tovább (illetve lesz a 250 ms delay) és újra elkezdődik a loop, megint bemegy az if-be és újra inicializálja a beep-el a csipogást. Ezért hallod folyamatosan ugyan azt (szerintem).
Alex
-
vargalex
félisten
válasz lanszelot #20420 üzenetére
Mondom, hogy szerintem azért, mert a loop-od újra lefut és újra inicializálja az egész beep-et (nem várja meg az előző lefutását)... Azaz nem telik le az 1500 ms szünet!
Mondjuk ez a serial kiíratásokból (a távolság úgyis ott van) rögtön látnod kell.[ Szerkesztve ]
Alex
-
-
vargalex
félisten
válasz Janos250 #20425 üzenetére
A kolléga által írt "sufni tuning" megoldás után én is éppen azt kerestem a lib-ben, hogy csak megcsinálták, hogy lekérdezhető legyen a beep parancs futásának állapota. Erre nem... Ezért nem is írtam másik megoldási javaslatot.
Persze lehetne azt, hogy kiszámoljuk, hogy az adott paraméterezéssel meddig tart a csipogás és az if-ben vizsgáljuk, hogy az eltelt-e már (ekkor nyilván érdemes a 3 ág indulási idejét 3 különböző változóban tárolni, mert nyiván egyik állapotról a másikra akár azonnal át akarhatunk váltani). Persze, ez csak hozzávetőleges idő lesz.Alex
Új hozzászólás Aktív témák
- OLED TV topic
- Elden Ring
- Bestbuy játékok
- Xbox Series X|S
- Skoda, VW, Audi, Seat topik
- Xiaomi Pad 6S Pro 12.4 - Kína (válasza az) iPad(r)e
- Egy utolsó platformmal egészíti ki a negyedik generációs EPYC családot az AMD
- HiFi műszaki szemmel - sztereó hangrendszerek
- Kipróbáltuk a Xiaomi 14 Ultra fotós szettjét
- Vodafone mobilszolgáltatások
- További aktív témák...
- ASUS H97-PRO alaplap 1150 Intel H97 lapkakészlet, 4xDDR3, SATA 3.0, HDMI, M.2 SSD foglalat
- Macbook Pro 16.2" M1 PRO 10C/16C 16GB - 1TB Magyar billentyűzet - Garanciális 2025.08.04.-ig
- Sharkoon TG5 számítógép ház Corsair HX650 tápegységgel eladó
- Asus V8460 Ultra ( Geforce 4 Ti 4600 )
- HP Prodesk 600 G5 DM, Tiny i5-9500T , 8-16GB DDR4 , 256GB NvME , 2 év gari , AAM számla
Állásajánlatok
Cég: Promenade Publishing House Kft.
Város: Budapest
Cég: Alpha Laptopszerviz Kft.
Város: Pécs