Hirdetés
-
PROHARDVER!
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
-
tvamos
nagyúr
válasz
Teasüti #10290 üzenetére
Nem tudom, hogy a "esp32 kernel panic" dologrol van-e meg szo, de nekem volt problemam azzal, hogy task-ok kozott volatile globalokkal akartam adatokat atadni.
A megoldasthoz ezt a doksit hasznaltam: [link]
Az adatokat ennek a pvParameters mautatonak a segitsegevel adtam at.
Bocs, ha mar nem errol van szo! -
válasz
Teasüti #10285 üzenetére
Nem értek annyira hozzá, de a taskok nálam is furán működtek. Már korábban lehet írtam, de most hogy szóba került leírom megint hát ha van összefüggés vagy ötlet.
Task nélkül tökéletesen fut a program: ESPNow, I2C, Wifi(Webserver + NTP), SPI. Ezeket használom. Taskokkal megoldva már kevésbé. I2C-n olvasva nem mindig kérte jól le az adatokat az ESP. Próbáltam prioritásokat állítani, próbáltam 0 és 1 mag között ide-oda pakolászni a taskokat. Néha jól olvasta az I2C adatokat, néha nem, néha meg többször egymás után rossz adatok jöttek. Néha reset segített, néha az se. Emellett volt még a wifi-nél NTP-vel is gond, bár ott nem emlékszek, hogy kimondottan a task okozta-e, de azóta hogy nem task-al oldom meg nincs egyikkel se baj.
Tehát ahogy kezdtem nem értek hozzá, tapasztalatot írtam le, de gyanúm az lenne, hogy az ESP nem teljes értékű 2 magos eszköz mint egy számítógép processzor. 0. magon mennek a perifériák, 1. magon meg nem véletlen van a loop is. Tehát lehet próbálkozni taskokkal, de valójában 1 magos az eszköz, 0. mag a sok periféria elem miatt van, hogy ne akadjon össze. Szerintem.
Szívesen fogadok bármiféle észrevételt.
-
Sziasztok!
ESP32 SPIFFS-el foglalkozott valaki? Csak olvasgatás szinten néztem rá és felmerült kérdésként a működése. Ez ha minden igaz a 4MB flash-ből foglal le egy bizonyos méretet fájl tárolására, így kevesebb hely marad a fő program számára ha jól értem. Tovább menve az elv is kérdés számomra:
Since if SPIFFS was never formatted it will fail mounting and we need to format it, then we will pass this flag as true. In my case, I already had my file system formatted, so this flag has no effect.
Eszerint hasonló mint egy winchester partícionálás? Ha egyszer lefoglaltam az SPIFFS-nek egy bizonyos méretet (leformáztam), akkor később hiába töltök rá egy egyszer LED Blink programot, nem fogja az egészet letörölni, programot rátölteni és a fentmaradó részt üresen hagyni? Tehát ha többé nem kell a fájlrendszer akkor le kell valahogy törölni az SPIFFS partíciót?
-
Tankblock
aktív tag
válasz
Teasüti #10277 üzenetére
Hello,
Miért az összes file végződése .ino?
Azt nem értem, hogy miért van a fps_cap paramétered a Setup függvényben kiszámolva, de a task már rég fut mire odaérne a számolásban???
A taskok közötti változók kezelésére volatile kellene ha nem lehet máshogy muszáj. Ha meg csak 1x kell
futnia inkább tedd a Task elejére mielőtt a végtelen ciklus futna.....ez inkább C kód mint C++...
Amit tanácsolok, dekomponáld a projectet kisebb részegységekre majd egyesével integráld vissza.
NE használj változókat különböző taskokban főleg ha az csak egy konstans --> arra van a #defineMinimalizáld a változóidat és funkcionlításokat rendezzd classokba...
Task elején class init majd végtelen ciklusba számolja amit kell. Taskok közötti communikációra FreeRTOS is van ajánlása xQueue vagy xEventGroup ha szignálozni kellene,A debug üzeneteket is mentsd le, mert sokat segítenek abban, hogy merre kellene nézelődni. Pluszban most egy MQTT C++ dolgozom és memory leak után nyomozok.
Itt pl a
ESP_LOGI(TAG, "[APP] Free memory: %d bytes", esp_get_free_heap_size());
használom a szabad memória fellelhetőségének. -
XP NINJA
őstag
Sziasztok, ESP32-höz szeretnék oled kijelzőt rendelni. Ez működne? [link]
-
Teasüti
nagyúr
válasz
Janos250 #10253 üzenetére
Valamint tőled kérdezném még, mint ESP32 gurutól, hogy találkoztál-e már olyan hibával, hogy pánikol a CPU 1 a sok task miatt, viszont olyan 5-6 reset után végül csak képes elindulni a oprendszer?
Jelenleg 6-7 taskom van, amit szétszórtam a két mag közt (0. magon a gyors függvények, 1. magon a hosszabb programok), prioritásnak alacsony 10 alattiakat adtam meg és mindegyik task-nak eltérőt.
Ha csökkentem a taskok számát, akkor nem pánikol a proci. Van erre vmi ötleted mi lehet?
Minden task-ot szabályosan írtam meg: végtelen ciklusban futnak valamennyi delay()-jel a végükön. -
Victoryus
addikt
WiFiServer server(80); //a szerver a 80-as portot figyeli
int LED_PIN = 2;
void setup() {
WiFi.mode(WIFI_AP); //access point
WiFi.softAP("Hello_IoT", "12345678"); //ssid plusz jelszó
server.begin(); //192.168.4.1
//Looking under the hood
Serial.begin(115200); //Start communication between the ESP8266-12E and the monitor window
IPAddress HTTPS_ServerIP= WiFi.softAPIP(); // Obtain the IP of the Server
Serial.print("Server IP is: "); // Print the IP to the monitor window
Serial.println(HTTPS_ServerIP);
pinMode(LED_PIN, OUTPUT); //GPIO16 is an OUTPUT pin;
digitalWrite(LED_PIN, LOW); //Initial state is OFF
}
void loop() {
WiFiClient client = server.available();
if (!client) {
return;
}
//Looking under the hood
Serial.println("Somebody has connected :)");
//Read what the browser has sent into a String class and print the request to the monitor
String request = client.readString();
//Looking under the hood
Serial.println(request);
// Handle the Request
if (request.indexOf("/OFF") != -1){
digitalWrite(LED_PIN, HIGH); }
else if (request.indexOf("/ON") != -1){
digitalWrite(LED_PIN, LOW);
// THE HTML document
String S = "HTTP/1.1 200 OK\r\n";
S += "Content-Type: text/html\r\n\r\n";
S += "<!DOCTYPE HTML>\r\n<html>\r\n";
S += "<br><input type=\"button\" name=\"b1\" value=\"Turn LED ON\" onclick=\"location.href='/ON'\">";
S += "<br><br><br>";
S += "<input type=\"button\" name=\"b1\" value=\"Turn LED OFF\" onclick=\"location.href='/OFF'\">";
S += "</html>\n";
//Serve the HTML document to the browser.
client.flush(); //clear previous info in the stream
client.print(S); // Send the response to the client
delay(1);
Serial.println("Client disonnected"); //Looking under the hood
}
}Ezt a példát tettem fel a Wemos-ra. Ha simán az url mögé írom (192.168.4.1/ON vagy OFF) akkor megcsinálj. OFF esetén bedobja azt a honlapot is, ami bele lett írva a kódba. De tetű lassú, ezzel hogy lehet egy autót távirányítani? Rég nekiment volna már bárminek, mire veszi a következő utasítást.
-
Victoryus
addikt
Wemos D1 R2-alapon készítenék távirányítós autót. Uno+bluetooth-tal csináltam már ilyet, de esp8266-tal még nem. Egyáltalán mivel lenne jobb: wifivel vagy bluetooth-tal? A wifinek nagyobb a hatótávolsága, így akár egy sportpályán is lehetne játszani. Telefonon keresztül irányítanám.
-
-
Teasüti
nagyúr
válasz
ecaddsell #10236 üzenetére
ESP32 floating-point performance
És a hozzá kapcsolódó Espressif fórum téma.Lényegében csúnyán kikap az ARM procitól.
-
ecaddsell
aktív tag
Lehet, hogy az esp32 lebegőpontos képességei túl gyengék lennének a feladathoz.
Nekem nem úgy tűnik vsz. jobb mint bármi más ebben a kategóriában...
http://www.robinscheibler.org/2017/12/12/esp32-fft.html -
-
Teasüti
nagyúr
válasz
ecaddsell #10226 üzenetére
ESP32 kimenetein egyébként ha jól tudom több fokozatú meghajtás van. Vannak kisebb és gyorsabb FET-ek, és vannak erősebbek, de lassúbbak. ESD kár tipikus példája amikor a kicsi FET-ek elszállnak, de a nagyok még működnek. Az egészből annyit veszel csak észre, hogy nem hozza a specifikációkat a port nagyobb sebességen.
Épp mostanában olvastam erről, már nem tudom minek a kapcsán.
-
tvamos
nagyúr
Ezt aprojektet szeretnem lemasolni nemi valtoztatassal: [link]
Lenne a projektben meg egy ESP32 is.
Meg lehet valahogy szerezni ezt az arm_math.h-t ESP-re, vagy veszett fejsze nyele? (En nem talaltam meg. LEhet, hogy rossz kereso szavakat irtam a google-be.)
Mert ha nem lehet, akkor teszek egy-ket Teensy-t az ESP melle, csak jo lett volna elkerulni ezt. -
ecaddsell
aktív tag
válasz
Amarton #10225 üzenetére
Pedig tényleg nagyon kicsi a valószínűsége, hogy hibás legyen, különösen nagy szériás cuccnál ahol minden automatizálva megy beleértve a tesztelést.
A chip-eket pl. a legtöbb esetben gyári szalagból kivágva kaptam.
Pl. DC-DC konverternél meg a panelizált (géppel) beültetett NYÁK-ból nem törték szét az egyes darabokat, hanem egyben küldték a min egységet amit árultak.
Persze nem mindig ez van, pl. csatlakozósoros panelt sose kapsz panelizáltan.Egyébként ilyen esetek elkerülésére (különösen, ha nem túl drága) min. duplán szoktam venni. Amellett, hogy lesz tartalék (és nem kell hónapot várni míg megjön a másik ha valami gond van), ilyenkor megnézem, hogy minden darab ugyanúgy működik és ha igen élek azzal a feltételezéssel, hogy valahol máshol van a gond.
Nem mondom, hogy sose fordulhat elő, hogy hiba van és ha valami akkor az ESD bárhol tönkre tudja vágni a cuccot.
Egyébként az ESD az egyik legalattomosabb hiba, mert ez az ami nem feltétlen teljesen teszi tönkre egyből a cuccot és ez ami nagyon rossz mert nehéz észre venni, mert pl. SPI még simán megy, de valahol már nem tudja a speckót a CMOS chip.
Pl egyszer ESP32 valamelyik pinjére véletlenül 5V jutott. Egyből tönkrement és annyira nagy áramot vett fel, hogy a stabi IC majdnem kiégett. Rögtön látszott kuka. Másik ESP32 egyik pinjénél meg azt vettem észre, hogy nem bírja a nagyobb frekvenciás jelet. Vsz. olyan ESD-t kapott amit már nem teljesen kezelt a védelem (valami minimális védelem van ezekben) és az a pin bizonytalanná vált. Legalább fél órám ment rá (de lehet jóval több), csere más pinre, csere más ESP32-re stb mire megtaláltam mi lehet a gondja.Szóval lehet a cuccod pont ott ment tönkre amikor bekötötted.
Aztán még van olyan storym is amikor a CMOS chip (ADF4351) EN pinje nem lett felhúzva, de csak 1 másképp tervezett panelnél vettem észre a hibát (bizonytalanná vált a lock), mert az elsőnél olyan volt az elrendezés, hogy annyi áram odakúszott, hogy elég volt neki (ugye CMOS bemenet több 10 MOhm tip.). Ha nem kapok egy másképp tervezett panelt, lehet sose veszem észre...
Röviden: El lehet hobbizni ezekkel az Arduino kompatibilis cuccokkal, ahol a hibák/veszteségek nem nagy ügy (pláne, ha rátolod az eladóra), de az ipari kategória nagyon más. Nem véletlen, hogy nagy-szériás gyártás ma már szinte csak Kínában fordul elő. Nem mellékesen szokás szidni a minőség-ellenőrzést. De azért nézzük meg, hogy pl. a jlcpcb-nek 20 cent/hobbi paneles árba (szállítás nélkül értendő) belefér automatizált optikai és elektromos ellenőrzés. Ezek után nem csoda, hogy ennek a szakmának se nálunk se nyugaton sem rózsásak a kilátásai. Hobbizni persze OK.
-
Teasüti
nagyúr
válasz
Janos250 #10200 üzenetére
Olyan túl sok mondanivalóm nincs a PCNT-vel kapcsolatban. Működik a példa alapján.
Inkább matematikai fejtörést okoz a frekvencia mérése. Ugye másodperc az alapegysége, viszont nekem ennél gyakoribb frissítés kellene. Mondjuk olyan 200 ms-os frissítés már elfogadható. Ez viszont azt jelenti, hogy fel kell szoroznom a mért értéket ha SI mértékegységet szeretnék látni. Ez meg precizitás csökkenéssel jár, így már csak a(z 5-ös) szorzó többszörösét kaphatom eredményül. Ráadásul így az 5 Hz a legkisebb mérhető egység, ez alatt inkonzisztens eredményt ad nulla és öt között váltakozva. Ezt így egyelőre csak szűréssel tudom áthidalni.
Nincs vmi jobb matematikai módszer a gyakoribb frissítésre? Kíváncsi lennék vajon egy hall szenzoros jeladóból hogy számol pontos értékeket gyors frissítéssel egy km óra?Hogyne használtad volna a PWM-et, vagy sose írtál még be egyetlen ledcWrite() parancsot se?
RMT-t meg én nem használtam még direktben sose, csak könyvtárból. RMT-vel hogy csinálnál mondjuk 100 Hz 50% PWM jelet?
RMT bemenetként is érdekelne, állítólag azzal periódusidőt is lehet mérni vhogy. Na ha vmi, akkor az precíz és gyors lenne!Meg most láttam a Technical Reference doksiban, hogy vannak natív Motor Control funkciók is a PWM perifériában ESP32-ben.
Na erről nem is tudtam. Van benne egy Capture Unit is, ami meg beérkező PWM jelet tud mérni, vagy mi a szösz. Ezt megtartom harmadik lehetőségnek, ha a PCNT és az RMT nem válna be. -
Teasüti
nagyúr
válasz
ecaddsell #10196 üzenetére
Most néztem át ezt, de ebben nincs megszakítás kezelés.
Itt csak kiolvassa a függvény a számlálót a loop()-ban.
Természetesen már szoftveresen számolom ki a frekvenciát, vagy ezt hogy érted? Ha jól értem ezt a programot a számlálás maga nem szoftveres. Nem változóban számolja a megszakításokat, hanem regiszterben. És függetlenül attól mit csinál a cpu, legalábbis remélem. Ennyiből áll a pulse counting, nem? Vagy van rá hardveres gyorsítás, ahol a pulzusok számából frekvenciát köp ki eredményül? Meglepne...Nem akarom túlbonyolítani a dolgot. Nekem elég annyi, hogy a program blokkolása nélkül tudjon számolni és igény szerint kiolvasni ezt az értéket.
Ezt hogy kell elképzelni? Vmi olyasmi, mint ESP32-nél a tetszőlegesen beállítható GPIO mátrix?
-
ecaddsell
aktív tag
válasz
Teasüti #10184 üzenetére
Az első az ESP-IDF-hez íródott, miközben én Arduino IDE-ben vagyok.
Nekem még soha nem okozot gondot ESP-IDF-et használni az Arduino IDE-ből...
Többek között a második kód esetén sem.
De mindegy, te tudod mire kell és mit vállalsz be ehhez.Én elég sokat vállaltam ebben a témában (talán túl sokat is) pl. VHDL kód írása és tesztelése (működni látszik) Xilinx CPLD-re, nyáktervezés (kétfajta progit is bevetettem) stb. Nagyon sokat tanultam belőle, annak ellenére, hogy lehet ez is a befejezetlen projectek sorát fogja gyarapítani.
-
Teasüti
nagyúr
válasz
ecaddsell #10183 üzenetére
Hát mondjuk megszakítást használni és programból számolni. Az szoftveres és sokat elvesz a cpu időből, ha nagy a frekvencia.
Értékelem a segítséget, de sajnos nem tűnik számomra használhatónak egyik sem.
Az első az ESP-IDF-hez íródott, miközben én Arduino IDE-ben vagyok.
A második meg egyáltalán micsoda? Nem fogom tudni visszafejteni azt a kódot, ahhoz túl nagy és bonyolult.
Főleg, hogy egy rakás hardver közeli függvényt hív be, amikről fingom sincsen.Vmi Instructables.com színvonalú példa nincs véletlen? Én nem találtam...
-
Janos250
őstag
válasz
gyapo11 #10172 üzenetére
Az ilyesmik miatt (is) kedvelem én az ESP32-t. Egyik szál nem csinál mást, csak figyeli a gombot, a másik szál meg..., a harmadik meg.. és így tovább, ahány kell. A szálon belül nyugodtan lehet "várakozás", mert az nem igazi várakozás, hanem a másik szálnak adódik át a vezérlés.
-
Teasüti
nagyúr
Kérhetnék egy kis segítséget a PCNT-vel ESP32-n? Nem találok egyetlen egy példát sem.
-
ecaddsell
aktív tag
válasz
Tankblock #10148 üzenetére
Ha csak ez az egyetlen gondja lenne az ESP32 ADC-jének, akkor igen, de sajnos több sebből vérzik.
A nemlinearitás egyébként máshol jobban vesézve van:
https://github.com/espressif/esp-idf/issues/164Amit linkeltél meg van említve a zaj is, amibe már korábban is belefutottam és amit sokkal nehezebb kezelni.
Amit ajánlgatnak az vicc, 100nF-os kondit csak az tehet oda, aki valami lassú szenzort olvas. Eleve az ESP32 ADC-je nem valami gyors, szóva tipikusan a multisampling se opció.Visszatérve a zajra: A zaj forrása tipikusan a digitális kapcsolási zaj és erősen függ attól, mennyi kimenet változik szimultán módon. Na erről nem szól az ábra.
Ma (meg már 1 ideje) a komolyabb analóg és digitális részt is tartalmazó chipek több tápfeszt igényelnek. Azaz külön kellhet szűrni és stabilizálni a digitális mag tip. alacsonyabb tápfeszét (1V tól 1.8V környéke), a digit interface-t (tip. 1.8-3.3V) ill. az analóg részeket. Ez persze megdrágítja a dolgot és ott spórolnak ahol tudnak.
Kb. ennek az eredménye, hogy a spec szerint 12 bites ESP32 ADC kb. 7 vagy max. 8 bites valójában...Amivel ezzel kapcsolatban mostanában küzdök: Miután az ESP32-vel a 8 digit/s reciprok freki mérőt megcsináltam, elkezdtem áttérni a 10 digit/s-es interpoláló reciprok freki mérőre. Ennek az a lényege, hogy nemcsak azt mérjük, hogy a jel egy adott egész számú periódusára hány egész referencia jel periódus tartozik, hanem a referencia jel tört periódus idejét is mérjük.
Ez úgy történik, hogy a tört periódus ideje alatt 1 kondenzátort töltünk konstans árammal és a töltés végén megmérjuk a kondenzátor feszültségét (ennek a digitális részét CPLD adja nem az ESP32).
Mivel nálam a referencia periódusa 10ns (100MHz) max. ennyi ideig tölt a kondenzátor, ami túl nagy nem lehet, mert akkor nagyon nagy tötlő áram kellene. Szóva a kondenzátor kb. 1 nF, és 30mA körüli töltőárammal kb. 280mV feszültség emelkedést lehet elérni max (azaz normálisan 0-280mV emelkedés, ami nem nulláról indul, szóval lényegtelen, hogy kis értékeket nem tud az ESP32 mérni).
Azaz a két digithez kb. 3mV felbontással kellene mérni. Viszonylag gyorsan, mert a kis kondenzátor gyorsan veszti a töltést még nagy impedancián is.
Na itt az ahol az extra 100nF nem opció.
Oszcilloszkópon frankón látszik a jel. A filléres Aneng 8008 multiméter is konzisztensen tudja indikálni az feszültség emelkedést.
Csak az ESP32 küzd a jellel a saját maga által generálta zajban...Szóval messze nem csak a linearitás a gond. Zajos és a sebessége is megérne 1 külön github részt, hogy mi a teendő, ha normális sebességet szeretnénk (erre is elég sok fórumbejegyzés van már). Talán mégsem véletlen a sok panasz.
-
válasz
Tankblock #10151 üzenetére
Igen, emiatt vettem külső ADC-t. Költségbe így rosszul jöttem ki.
Az ESP 3v3 regulátorából jövő feszültséget használtam és egy potit, közben multiméterrel mértem. 0-3V között 10-15 pontot vettem fel. A multiméter ami elvileg pontos, ahhoz képest tized voltokat tért el az ESP ADC-jével mérve az érték. 3-3.3V között talán 1 értéket mért az ADC, 3.1 V körül már 3.3V-ot mért, miközben multiméterrel láttam, hogy nem annyi az érték. Közel 0 V-nál is hasonló volt, bár ott pontosabb. Tehát a 0 és 3 V körül levágta az értékeket és nem pontosan mérte, a kettő között pedig tized-század V eltérések is előfordultak. Ahol esetleg a tized V eltérés belefér ott még használható lehet talán.
Sajnálom, mert az uno-n lévő atmel ADC-je elég pontos és általános mérésekre szépen használható, ami nem mondható el az ESP32-ről.
(#10153) tvamos
Én mikor keresgéltem arduinos könyvtár support-ot, akkor az ADS1115-ot találtam, így nekem az lett. -
Attix70
aktív tag
válasz
Tankblock #10148 üzenetére
Teszteltem de nem lineáris, és nem is 0-tól indul a mérés ez a grafikonon is látható (persze attól még lineárisnak tüntetik fel). Ha használni akarom akkor kell egy tartományt keresnem amin belül lineáris (egyéb hardveres trükkökkel). Ez egy nagy hibája az ESP32-nek, remélem megjelenik valami hasonló amin az AD konverter jól működik
-
Attix70
aktív tag
válasz
rsanya87 #10134 üzenetére
A tápnak nem az áramával van gond, hanem a stepper motorokkal. Mivel induktív jellegű ezért lehet, hogy az adott alkalmazásban (12V-ról) csak pár tized ampert vesz fel. Ahol erő is kell ott minimum 24V-os táplálást használnak, csak tanácsot szerettem volna adni (szerintem ez lenne az egyszerűbb, egy próbát megér).
Más:
Korábban kérdeztelek titeket, hogy mivel oldanátok meg elektromos bicikli diagnosztikáját (HC-05+arduino vagy ESP32). ESP32-őt ajánlottatok. Próbálkozásaim alapján tapasztaltam, hogy nagyon NEM lineáris az ADC benne ami egy akkus eszköznél fontos lenne. Valami tanácsotok lenne? -
válasz
XP NINJA #10108 üzenetére
Ezzel próbáltad? [link] Én legutóbb ezzel sikeresen felraktam.
Amúgy ha nem megy a rátöltés, akkor a gomb nyomkodásnál annyit kell, hogy a töltés közben mikor kiírja, hogy "....." ott lenyomni a boot gombot az ESP board-on, reset-et nem kell nyomkodni.
Belinkeled milyen ESP32 board-ot vettél?
-
XP NINJA
őstag
Megérkezett az ESP32 nekem is, de nem tudom összehozni a géppel..
Felraktam a könyvtárat hozzá, CP210x_Universal_Windows_Driver is meg van, de upload-nál: A fatal error occurred: Failed to connect to ESP32: Timed out waiting for packet header
Ha a boot gombot nyomom hosszan, közben megnyomom az EN-t akkor pedig A fatal error occurred: Invalid head of packet (0x65). Keresem, de nem találok megoldást
Valakinek ötlete esetleg? -
brickm
őstag
Sziasztok!
Atom és platformIO modullal küzdök jelenleg. A Problémám az, hogy építettem egy szoftvert egy hardverre, amit windows alól buildelve feltöltöttem éshazsnálok jelenleg is, viszont most MAC-en sajnos nem sikerül a buildelés.
Egy ESP8266 NodeMCU-0.9es devboardra menne a program. a main.ino tartalmazza a vezérlést, az index.h pedig a webes megjelenést. Viszont feltöltés után nincs weblap. Látom a mikrokontrolleren, hogy érkezik kérés, (handle kezelőm van) de nem küld vissza lapot. Az az első gyanúm, hogy mac-en nem buildeli automatikusan hozzá az index.h file-t (ez amúgy stringbe töltődik be a programban) Meg tudom valahol nézni, hogy miket buildel? Esetleg más ötlet?
Aruino IDE alól ugyan ez a jelenség, amúgy error mentesen lefut a compile.
-
válasz
tvamos #10077 üzenetére
Vettem egy wattmérőt, ebben van egy BL6523GX chip, ami soros porton keresztül kommunikál, és ezt szeretnék elkapni. Az a célja az egésznek, hogy egy ESP8266-segítségével espurna FW-rel, webes felületen is tudjam figyelni az aktuális fogyasztást. Perpill a FW nem támogatja ezt a chipet, és látni akarom, hogy egyáltalán kinyerhető-e valami az adatfolyamból.
-
tvamos
nagyúr
Hello!
Az a kinom, hogy az egyik taskbol szeretnem triggerelni a masikat.
Csinaltam egy valtozot, ami "volatile".
Raallitottam az egyik taskot, hogy figyelje, ha a valtozo 1, csinalja meg, amit kell, es utana allitsa 0-ba.
A loop-bol sikerul is triggerelni a taskot, szepen vegrehajtja, amit kell.
Sajnos a masik taskbol nem megy ez.
Mi lehet a problema?Jut is eszembe...
ESP32
Arduino framework
xTaskCreate-tel vannak letrehozva a taskok -
Teasüti
nagyúr
válasz
kbhuinfo #10006 üzenetére
Megpróbáltad leválasztani az összes egyéb eszközt - ha van - és csak az esp-t és a modult beüzemelni?
Az ESP 5V vagy 3V lábáról (LDO-nak bírnai kell) megtáplálni a modult. Így a feszültségek tuti jók, hisz ugyanarról megy a vezérlő is.
Amúgy úgy méred, hogy a vezérlővel össze van kötve, vagy méréshez leválasztottad az ESP-ről? Ha utóbbi, akkor a vezérlő húzza le GND-re. Akkor viszont még a szoftver is kérdőjeles.(#10007) Amarton
Az, h "jobb", az elég relatív. Milyen tulajdonságban jobb? -
ecaddsell
aktív tag
válasz
kbhuinfo #9998 üzenetére
A kérdés pedig: mire van szükség (ellenállás, kondenzátor, stb.), hogy jól működjön az áramkör? Feltételezem, hogy valami hiányzik és a mérés az, ami ezt az űrt betölti
Jó eséllyel árnyékolás az ami hiányzik. De ha nem is ez kellene legyen az első lépés. Az ESP32 nekem pl. bezavarta a GPS vevőt amíg jó távol nem tettem a GPS vevő antennáját.
-
kbhuinfo
tag
Elnézést a korábbi szűkszavúságért. A microwave radar (RCWL-0516) lábai VIN (5V), GND, és az OUT (ezen a lábon érzékelés esetén megjelenik 3,3V a GND-hez képest). Az ESP32-re kötve csak akkor jön 3.3V az OUT kimeneten (és jelzi a mozgásérzékelést a GPIO bemenetén az esp32-nek), ha az ESP32 GND pinje és az OUT között mérem a feszültséget egy multiméterrel. A kérdés pedig: mire van szükség (ellenállás, kondenzátor, stb.), hogy jól működjön az áramkör? Feltételezem, hogy valami hiányzik és a mérés az, ami ezt az űrt betölti... Köszi!
-
tvamos
nagyúr
Probalt mar valaki Nikon fenykepezogepet vezerelni Arduinoval (pontosabban ESP32) IR-en keresztul? Van par pelda, nem tudom, hogy melyiket probaljam.
-
Janos250
őstag
válasz
Tankblock #9981 üzenetére
"HW azért van hogy használjuk"
A kiváncsi ember meg azért. hogy mindent kipróbáljon.
Igen, vannak rá kész könyvtárak az RMT-re, de...
Kiváncsi voltam, hogy elég gyors-e az ESP32, hogy szoftveres időzítéssel kezelje ezeket az 1 mikro alatti időzítéseket. Igen, elég gyors. Akkor persze nem a millis és micros függvényeket használjuk, hanem a 240 MHz-es órajeleket számláló SFR regisztert. Igaz, hogy ez csak 32 bites, és tizen.. másodpercenként átfordul, de lehet 64-bites eredményt is kapni, ha elég sűrűn olvassuk.Az RMT-t is végigpróbálgattam. Nem a kész könyvtárakat - bár azt is megnéztem persze - hanem közvetlenül az egyes regisztereket. Így azokat is sikerült azonosítanom, ami - akkor legalábbis - dokumentálatlan volt.
link
Ha nem -
Janos250
őstag
Leírom a saját tapasztalatomat, bár az eléggé különbözik az ESP32 miatt.
Ha a jel hosszát elég jól lőttem be, akkor rövid szalaggal símán ment. Ha növeltem a ledek számát, akkor a tiédhez hasonló jelenséget tapasztaltam. Digitális analizátorral derült ki az ok:
Az ESP32 1 ms-enként megszakít, akkor adja át a vezérlést - ha szükséges - másik tasknek. Amíg a kevés led miatt a magot megkapott processz 1 ms-en belül el tudta végezni a dolgát, addig minden símán ment. Ha ezt meghaladta a ledre "feltöltési" idő, akkor ha közben megszakított egy jel közben, akkor a rövig jel helyett hosszú lett véletlenszerűen, és bolondságokat csinált. Ha éppen egy alacsony helyiértékű bit lett hibás, akkor éppen nagy gond nem volt, de ha egy magasabb helyiértékű bit szaladt túl, akkor az galibát okozott. Nem azt akarom mondani, hogy nálad is ez a gond, hanem csak azt, hogy nálam ez volt, vedd esetlegesen számításba az időzítési hibát is. Egy digitális analizátorral kéne megnézni.(Ja, még mielőtt az ESP32-t használók felkapják a fejüket, ez annál a verziónál volt, amikor nem hardverből vezéreltem a ledeket, hanem símán C++ programból. Az ESP32 ugyanis elég gyors ahhoz, hogy ezt meg lehessen csinálni. Az interruptok megfelelő tiltásával kezelhetővé vált a probléma. A hardveres vezérlésnél ilyen gond nem volt, mert ott van elég idő az egyik pufferbe töltéshez, amíg a másik puffert nyomja kifelé a hardver)
-
Janos250
őstag
Nekem gyanús ez a 3.3V ügy! Tudtommal az első led már "feldolgozva" adja tovább a következőnek, tehát az első kivételével - gyanítom - nem villoghatnának emiatt. Én egy éve körül sokat játszottam ezzel a leddel és ESP32-vel. Az volt a tapasztalatom, hogy az általad is leírt hibajelenség időzítési hiba volt. Ha túl rövid, vagy túl hosszú volt a jel, vagy a két pixel közötti idő túl nagy volt (8 us, vagy több) interrupt miatt, és elölről kezdte.
Persze lehet, hogy nálad egész más a gond. -
kbhuinfo
tag
Tud valaki segíteni ESP32 SPIFFS használatában?
-
XP NINJA
őstag
válasz
Janos250 #9916 üzenetére
Amit linkeltél 5Voltos, nem is találtam 3.3-ast. Ahogy olvasgatok akkor ahoz hogy egy ESP32-vel használhassam, kell egy Logic Level Converter?
-
Janos250
őstag
válasz
XP NINJA #9914 üzenetére
Arduino választás:
A korszerűbbek 3.3 voltosak (STM32, ESP), de sok szenzor meg 5 voltos. A régi lapok 5 voltosak, de SOKKAL kevésbé hatékonyak. Én korábban mindenkinek az STM32-t ajánlottam, az ESP32 megjelenése, és a támogatás felfutása óta meg ESP32-t. De lehet régit is használni. Pap/papné. -
ecaddsell
aktív tag
Ne viccelj ilyen könnyen feladod?
Pl. megnézted, hogy kompatibilis a jeladód szintje a kontrollerével? Az, hogy a jeladón villog a LED semmit sem mond arra vonatkozólag, hogy tényleg megtörténik-e az interrupt.
Pl. a loop-ból kiírathatnád a számlálót ha az változik. stb.Emlékszem rád a Fedorás topikból, olyan dolgokban tudtál segíteni nekem (meg kb. mindenki másnak) amit már rég feladtam(unk), itt meg hozzá sem kezdtél a debughoz... Ki kell íratni dolgokat a soros porton.
ESP32-vel még az interruptból is kiírattam, pedig elvileg azt nem szabad (lehet itt nem is menne) mert mi történhet alapon, max újra fel kell töltenem a módosított kódot.
Ha nincs soros portra lehetőség akkor rá teszel valamelyik pinre egy ellenálláson keresztül 1 LED-et amit ki be kapcsol az interrupt stb.Kevesebből mint az általad írt összeg tervezek 10digit/s-es frekvenciamérőt csinálni, Arduino környezetben ebből a pénzből már egy egész hobbi labort lehet építeni. Persze, ha eléggé motivált vagy...
-
mprrpm
tag
Sziasztok!
Szerintem DS3231-el jössz ki a legjobban.
Hozzáteszem csináltam DCF77-el templomtorony harangvezérlőt. Előny: pontos ha tökéletes a vétel nem kell vacakolni téli/nyári átállással. Hátrány: csak Conrádnál fogsz kapni vevőt aranyárba 4000Ft környéke.
Valamint készült melóhelyre ESP32 NTP-vel óra is.
NTP is jó de ahol nincsen használható WIFI ott nem jöhet számításba.DS3231 és NTP kombó már elég jó páros tud lenni (előny: elég egyszer egy hónapban szinkronizálni WIFI-ről és viszonylag pontos időt kapsz olcsón sokáig. Hátrány hogy ha nem LIR32 aksit használsz hanem CR2032-t elemet a DS3231-hez akkor kicsit át kell alakítani a töltőáramköri részt (pukkanás elkerülése végett).
És a téli nyári átállás progiba 4sor.
Tapasztalat 4 éve megy DS3231 CR2032-vel évi +2 sec csúszással egy nehezen hozzáférhető helyen fényreklámban, nem kell óraátállításkor vacakolni. -
ngabor2
nagyúr
Köszi a válaszokat. Az a baj, hogy az Arduino egy elég nehezen hozzáférhető, eldugott helyen van, a reseteléshez is szét kell szedni a dobozát. Bár van ESP8266 és ESP32 mcu is a háznál, de eddig még nem sikerült egy szabad délutánt kerítenem, amikor neki tudok állni az egész, Arduino köré épített rendszert áttenni bármelyikre. Ráadásul akkor már kicsit upgradelve pakolnám össze, ami még több idő.
Itt a lényeg a hardverhez nem nyúlás lett volna, de akkor egyelőre marad a félévente egyszeri átírás, vagy az átállás beleírása a programba.
A GPS/DCF77 is érdekes megoldás, de a baj ezekkel is ugyan az: szét kell kapni az egészet és az amúgy is kábelrengetegtől zsúfolt dobozba további alkatrészeket gyömöszölni.
-
Janos250
őstag
"ESP-IDF kell hozzá"
És ha berakod Arduino IDE alá, lefordul? [vagy felfordul?]
Az Arduino IDE is IDF alapokon nyugszik, csak van saját, előre megírt main.cpp, és egy halom könyvtár, hogy meglegyenek az előre definiált dolgok, és passzoljanak az elnevezések az Arduino rendszerhez. Attól még az összes alatta lévő dolog is él, ugyanúgy, mint pl. a freeRTOS dolgai, vagy a méglentebbi driverek.
A C++ az C++ akár IDF, akár Arduino IDE. -
fpeter84
senior tag
válasz
Speeedfire #9848 üzenetére
Milyen autóval játszanál? Én kipróbáltam többek között ezt és más hasonló kódokat - bár úgy tűnt hogy mindnek kb ugyanazok a gyökerei - de egy 2002-es A6-on totál használhatatlan, megbízhatatlan volt: álló motornál még úgy ahogy csatlakozott de járó motornál szemét szemét hátán. A csatlakozó hardver biztosan jó - ez már kiderült egyéb tesztekkel - úgy tűnik hogy zéró hibakezelés van a fenti kódban, plussz lehet az enyém vezérlője is éppen érzékenyebb / zajosabb... Mindenesetre beleástam magam és végül csináltam egy saját lib-et hozzá ami nem soft serial-al megy hanem rendes hardveres sorosporttal. Működik MEGA, DUE és ESP32 platformon is - utóbbival használom végül...
A csatlakozó hardverről: első körben én is szétgányoltam egy VAGCOM 409 kompatibilis kábelt, de hamar rájöttem hogy egyszerűbben is lehet ezt: MCP2021, L9637D vagy bármilyen hasonló LIN driver megfelel a célra... Per pill az utóbbival megy és hibátlannak tűnik a kommunikáció több óra után is...
Ha mégis kész kábelt vágnál szét, akkor erősen a szerencsén múlik hogy jó e: láttam olyat is már amiben egy fekete paca volt csak a csipp a nyákon mint a kvarcórákban, számológépekben, és arra nem nagyon lehet rácsatlakozni... Ha rendes smd alkatrészekből áll akkor cirka bármelyik lehet jó akár tranzisztorokból, akár komparátorból, akár rendes LIN meghajtóból van összerakva, amennyiben be lehet azonosítani az alkatrészeket benne...
Ha érdekel akkor szivesen megosztom azt amire eddig jutottam...
(az lemaradt, hogy a measurement blocks lekérdezésre mentem rá mint a linkelt projekten is - hibakód olvasással nem szórakoztam mert arra van külön VCDS kábelem is) -
Sziasztok! Esp32 specialistákhoz szólnék: állítólag van már megoldás arra, hogy esp32-ből Bluetooth HID billentyűzetet tudjak építeni. De sajnos nem arduino alapokon, amit ismerek, hanem ESP-IDF kell hozzá. Erről viszont annyit sem tudok, hogy eszik-e vagy isszák. Igazából nem is akarok vele komolyabb ismeretséget kötni, mindössze egy firmware-t szeretnék rátölteni, hogy egy speciális beviteli eszközt tudjak csinálni belőle (BT pedál). Valaki ha el tudná magyarázni, hogy hogy fogjak hozzá, és milyen kódot fordítsak/töltsek fel a lapra, az nagy segítség lenne.
Ezt az oldalt találtam: [link], állítólag működik, de azt se találom benne, hogy hogy van bekötve, hogy vannak rákötve a billentyűk... -
fpeter84
senior tag
válasz
Tankblock #9842 üzenetére
A 6+2 az az eredeti SD szabvány 4 párhuzamos I/O lábbal plussz kontrol, a mikrokontrollerekkel viszont általában SPI módot szoktunk használni ami a 4+2 a MISO meg MOSI-val (vagy SDI, SDO stb)...
Kicsit gány, de én még úgy is csatlakoztattam MicroSD-t egyszer jobb híján hogy egy SD>MicroSD foglalat lábaira forrasztottam rá a vezetékeket. Végülis működik ha nem melegíti túl az ember a lábait... A hosszabbtávú 3.3V prototípusoláshoz meg érdemes venni egy marék ilyet. Az 5V kontrollerekhez viszont szigorúan csak ilyen jelszintillesztőset szabad használni!
De érdemes lehet az SPIFFS-t is kipróbálni, mert a több mega belső flash-be rengeteg log elfér és akkor nincsen függelék az eszközön! A fájlrendszer feltöltésére van plugin, letöltésre még sajnos nem találtam így az embernek a programba be kell építenie egy dump opciót is, vagy egy külön programmal intézni ezt. Szerencsére az SPIFFS tartalmát nem érinti, ha más arduino programot töltesz fel ideiglenesen a fájlkezelés idejére...
szerk: ESP32 esetén pullup sem kell, ahol kell ott elintézi a proci belső pullup funkciójával a library!
-
Tankblock
aktív tag
Sziasztok,
Van valakinek egy bevált módszere arra, hogy SD kártyát lehessen olvasni/írni ESP32 vel.
Saját projecten dolgozgatom egy ideje, és most jött el az idő, hogy struktúrákat elmentsem és visszaolvassam....
C++ használok, de bárminek örülök. A ESP-idf ben 1 példa van össz vissz.... Azt ma este elemzem...
-
fpeter84
senior tag
válasz
Janos250 #9828 üzenetére
Annyira nem csúcs ajánlat, ebayen meg alin ennél olcsóbb a picit nagyobb tudású LOLIN32...
@(#9829) csubuka: ESP-WROOM-32 modullal elvileg ugyanannak kell lennie, különbségek ott akadnak inkább hogy pl a LOLIN-en Li-Ion töltő is van, illetve léteznek olyan ESP32-k amelyek mellé több/kevesebb flash-t társítanak, de a WROOM-os elvileg mind 4MB-os
-
Janos250
őstag
Aki most akar ESP32-t venni, 5.24 Euro.
https://www.banggood.com/WeMos-ESP32-WiFi-Bluetooth-Development-Board-Ultra-Low-Power-Consumption-Dual-Core-ESP-32-ESP-32S-p-1175488.html?cur_warehouse=CN
Egy személynek max hármat enged. -
vargalex
félisten
Station mode-ban (gondolom úgy használod) az ESP8266 esetén automatikus Modem-sleep van, így ha éppen alszik a wifi modul, akkor szerintem teljesen normális a 100-500 ms válaszidő. Ilyenkor a router által megadott DTIM Beacon interval lejárta előtt ébreszti automatikusan a wifi-t. Ez kb. 100 ms általában.
A modem-sleep üzemmódot ki tudod kapcsolni awifi_set_sleep_type(NONE_SLEEP_T);
hívással. Itt is van a témáról egy kis olvasnivaló.
-
Janos250
őstag
Melót nem vállalok, de leírom, én hogyan csinálnám.
Nem PI, hanem egy ESP (32, vagy 8266) kezeli a reléket, és a gombot. Az ESP a lakásban lévő WiFi-re kapcsolódik, innentől kezdve egy újabb ESP, vagy telefon WEB-en, vagy bármi tudja kapcsolni. Olcsóbb, és homogénebb.
Ennek módosított változata:
A relé egy Switch ON OFF (SONOFF) basic relé. Ezen fut egy WEB szerver is. Ez a SONOFF kapcsolódik a WiFi-n keresztül a netre. A WEB szerver igen egyszerű: gombbal ki/be kapcs. Telefon, vagy akárhány egyéb eszköz pl. Arduino, PI, PC, stb. tudja kapcsolni.Ez utóbbi nekem a laborban egy készülék fűtésszabályozásán a SONOFF megjelenése óta működik. (Nekem ezen némileg bonyolultabb WEB lap fut, a több funkció miatt)
-
tvamos
nagyúr
Ertem. Koszonom!
Es van erre valami ismert megoldas?
Mukodhetne valami olyasmi, hogy par masodpercenkent megpingetem a kiszolgalot, vagy ilyesmi?Az ujabb kerdesem az lenne, miert van az, hogy az ugyan azon a halozaton levo RPi-t ha pingelem, akkor az valaszol 15-40ms-on belul, ez az ESP32 meg 100-500ms? (Es vica verza, ha az eszkoz pingeli a szamitogepem, ugyan ez a jelenseg.) Lehet ezen "tuningolni" valamit?
-
Ja, vagy úgy. Ilyenkor sajnos a forráskód a legjobb manual. Úgy tűnik, hogy
WL_CONNECTION_LOST
csak timeoutnál van:} else if(reason == WIFI_REASON_BEACON_TIMEOUT || reason == WIFI_REASON_HANDSHAKE_TIMEOUT) {
WiFiSTAClass::_setStatus(WL_CONNECTION_LOST);Utolsóra van nyitott ticket. Bár ESP8266, de gondolom a wifi része hasonló.
-
tvamos
nagyúr
Sziasztok!
ESP32 Arduino lenne a kerdes.
Hogy hasznalja a rendszere ezeket a statuszokat?WL_NO_SHIELD
WL_IDLE_STATUS
WL_NO_SSID_AVAIL
WL_SCAN_COMPLETED
WL_CONNECTED
WL_CONNECT_FAILED
WL_CONNECTION_LOST
WL_DISCONNECTED
Nekem ez homalyos. -
fpeter84
senior tag
válasz
fpeter84 #9812 üzenetére
okkk, rá is jöttem hogy hol néztem be a dolgot... A reset az RTC-t is nullázza, tehát reset után normális ha nincsen idő tárolva... Viszont a deep sleep-ből visszatérve van: összeollóztam a SimpleTime és ExternalWakeUp példákat, így egy külső triggerre ébredve már egyből rendelkezésre áll az idő - bár még valami bogár van, valószínűleg a timezone beállítást akkor is elveszti mert -2 órával éled, de a másodperc/perc egyértelműen mutatja hogy nagyvonalakban rendben van, működik az RTC hardver deep sleep módban...
szerk: ez is megvan... az esp32-hal-time.c-ből át kellett ollózni a setTimeZone-t a tesztprogramba és meghívni ahogy a configTime is teszi: setTimeZone(-gmtOffset_sec, daylightOffset_sec);
Failed to obtain time
Connecting to xxx .. CONNECTED
Tuesday, October 16 2018 00:16:35
Going to sleep now
ets Jun 8 2016 00:22:57
rst:0x5 (DEEPSLEEP_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:1
load:0x3fff0018,len:4
load:0x3fff001c,len:808
load:0x40078000,len:6084
load:0x40080000,len:6696
entry 0x400802e4
Tuesday, October 16 2018 00:16:42
Connecting to xxx .. CONNECTED
Tuesday, October 16 2018 00:16:43
Going to sleep nowugyan arra még nem jöttem rá hogy miért minusz a gmtOffset_sec miközben mi a GMT+1 időzónában vagyunk, de kicsire nem adunk, nagy meg nem számít
-
fpeter84
senior tag
Jól látom, hogy az ESP32-n még mindig nem sikerült a fejlesztőknek rendesen éleszteni az RTC részt? Időzített felébresztésre ugyan találtam valami szösszenetet, de nekem az idő múlását kellene nyomon követnem - azt kellene tudnom, hogy mennyi idő telt el az előző bekapcsolás óta... Marad a külső RTC hardver, vagy valaki talált már ezzel kapcsolatban valami használható próbálkozást?
-
Bazs87
tag
Sziasztok!
HW: sonoff basic R1
Cél: home assistant kompatibilis kapcsoló lehetőleg availability_topic lehetőségévelpróbálkoztam eddig ezekkel:
- tasmota ( úgy gyanítom nem kompatibilis, a listán csak az R2 szerepel)
- espeasy (az ap itt sem állt fel, valszeg ez sem kompatibilis)
- homie - szépen működik, de nem találok rendes példát rá - még ha egy egyszerű dologról is van szó (itt ugye a teljes alap funkcionalitást kellene megírni, továbbá valahogy az elérhetőség kérdését megoldani)a hw tesztelve, hibamentesen működik.
nincs esetleg vmi tippetek? -
tvamos
nagyúr
válasz
Janos250 #9781 üzenetére
Hello!
Ma egy olyan problemaba utkoztem, hogy ujra kellett telepitenem az Arduino frameworkot, es a ESP32 OLED V2.0 TTGO modulomon szetesett a kep. Ugy ertem, hogy eddig kiirtam a kijelzore az IP-t, meg hogy mit szereten a szamitogep tole, de most nincs kep rajta.
Nem tudja valaki a megoldast? Mit rontottam el? Minden lefordul hiba nelkul. -
Janos250
őstag
válasz
Pubszon #9780 üzenetére
Jó leírást nem tudok, de egy ESP8266-ra készült egyszerű nyomásmérő programot tettem fel mintának. A program ESP8266-on fut, mert hozzá az UNO már teljesen felesleges. Talán érthető a program, ha nem, akkor bocs, és sztorno.
http://arduinouser.hu/mintak_esp8266_ra/nyomasmero_minta_esp8266/nyomasmero_minta_esp8266.ino.txtTehát az UNO+ESP01 helyett javasolom egy ESP12 használatát. A feltett program is azon futott hajdanában, mikor használtam. (Kiírta telefonra a benzinnyomást - illetve egy kódolt értéket - hogy figyelni tudjam a benzinpumpa működését).
-
Pubszon
veterán
Üdv.
Arduino uno és ilyen ESP8266 modul, az 5V-os panellal.
Ezekkel szeretnék egy egyszerű HTML WEB lapot, amire kiíratok néhány egyszerű adatot.
Van egy jó és lehetőleg egyszerű leírás?
Köszi.
-
fpeter84
senior tag
vagy a nodemcu, vagy az arduino lábkiosztása ,vagy egyik sem azonos az esp eredeti gpio láb számozásával...
itt látszik is, hogy a Dn és GPIOn számozás elmászott valamilyen ostoba oknál fogva...
valamiért annó az uno mega korában kitalálták hogy nekik nem jó az hogy PORTA.1 meg PORTC.5, hanem D1, D2, Dn elnevezés kell, és valamiért ezen is hasonlóan átcímkézték a lábakat... Az ESP32 alapú LOLIN32-n már szerencsére nem...
(#9757) csubukaa 9600 a lua firmware baudja, de a bootloader amit az ide-ben kell állítani az eltérő, a videó szerint 115200
-
Bazs87
tag
válasz
fpeter84 #9756 üzenetére
elég hülye hibába futottam:
az esp8266 mintaprojekt blink mintaprogramjával próbálkoztam. A videón szereplő beállításokat használva.
A gond, h valamiért a lábkiosztás nem passzolt és nem villogott a led (mert hát mire is vár ilyenkor az ember)feltöltötte hiba nélkül, csak ugye nem villogott szerencsétlen
a videó után rámértem a lábra...persze, hogy megyköszönöm a felhomályosítást
-
-
Sziasztok!
Van valakinek bevált napelem? 5V/1.5 W lenne jó legalább, de talán az 1-1.5W között is elég. ESP32-höz kellene, hőmérséklet mérés, wifin adat küldés majd deep sleep, 10 percenkénti méréshez.
Sajnos ez olyan mint az aksi ha kínából jön, vagy valós amit megadnak érték vagy nem. Ezért is lenne jó, ha lenne valakinek bevált darabja. -
fpeter84
senior tag
válasz
csubuka #9724 üzenetére
Szimpla SMS küldésre teljesen alkalmas egy régi telefon - de itt tényleg a régiekről, a nem színes kijelzős őscuccokról beszélünk. Ezeknek az alaplapján / alsó csatlakozóján általában TTL/LVTTL sorosportot lehet elérni, és AT parancsokkal utasítani. A szépséghibájuk hogy SMS küldés / hívás indításon kívül nem igazán lehet továbblépni velük! Egyébként a komplett ipari / riasztó kiegészítő modulokkal is ez a baj: van pár ki/bemeneti lába, pár eseményt le tud kezelni, SMS-t küld és esetleg fogad, de okosabb funkciókra a jövőben képtelen, nem fejleszthető...
Az olyan modulok mint a SIM900, M590E, AiThinker A6/A7 stb modulok általában ennél sokkal többet tudnak: natív parancsok FTP, TCP, UDP, HTTP stb kezelésre, tehát sokkal összetettebb feladatok is könnyedén levezényelhetők vele. Sőt, pl a SIM5320E olyan okos, hogy ő maga ki tudja váltani a mikrokontrollert mert LUA nyelven írt programot lehet rá tölteni és automatikusan futtatni, ami eléri az összes funkcióját és perifériáját! Sajnos picit drága és a tokozása se túl praktikus, sajnálom hogy valami egyszerűbb kisebb olcsóbb verzióban nem készítették el ugyanezt...
Az OpenWrt kérdéshez leírhatnád hogy mid van - gyártó, típus, alverzió - hátha nem olyan nehéz feladat az... Az OpenWrt-s közösség is hasonló építő jellegű szerintem mint ez, szóval hátha. Ráadásul ha USB-s akkor mehet rá akár mobilmodem is, ha nem mindig jön a WAN felől net...
Annyira elhanyagolható áram folyhat a riasztó és a szirénája között, hogy szerintem azt aligha tudod megbízhatóan érzékelni az ACS712-vel! Ráadásul deaktiválni se tudod sehogy távolról az akkus szirénát hiszen annak pont az a lényege hogy szabotázs / vezetékszakadás esetén is megszólaljon! De a vezérlő szálra rá lehet párhuzamosan csatlakozni...
1-3-5e-ért komplett modulokat lehet kapni - olcsóbban még igényel némi kiegészítést, drágábban csak rádugod a tápot vagy rádugod a shieldet az arduino-ra, rácsatlakozol sorosporttal és kérdezgethetsz is tőle egyből AT parancsokkal. Fontos, hogy sok típus nem igazán tolerálja a klasszikus UNO/NANO/MEGA stb 5V I/O feszültségét, ézért vagy felezett órajelű 3.3V-os típust kell keresni ezekből, vagy egyből olyannal indulni ami megfelel az elvárásoknak: Due, STM32, ESP család, stb stb. A shieldek általában lekezelik a jelszintillesztés kérdését...
-
fpeter84
senior tag
válasz
csubuka #9714 üzenetére
Neked nem hiszem hogy szükséged volna ilyesmire, max valami arduino "kompatibilis" GSM/GRPS modul elég, nem atomreaktort akarsz kapcsolgatni róla
Egyébként kell a mobilnet egyáltalán? Wifin nem lehet csatlakozni az otthoni hálózatra? Mert akkor egy ESP8266/ESP32 is elég lehet, vagy ha valami OpenWrt-képes routered van akár azzal is levezényelhető a feladat! Sőt, akár egy ESP8266 alapú SonOff kapcsolós hálózati aljzattal, okostelefonos app-al magad is vezényelheted távolról a dolgot... Persze abból kimarad akkor az alkotás öröme, de kevesebb a szívás is
(#9715) Teasüti
Ezek millis-el mért szintidők egyes feladatsorok végrehajtása során, tehát minél kisebb annál gyorsabb volt és ezredmásodpercben értendők. Az overall összehasonlítás emiatt nem igazán helytálló, inkább a részeredményeket érdemes összevetni az alapján, hogy a projektedben leginkább milyen feladatok várhatóak!
-
fpeter84
senior tag
Említettem már, hogy imádom a vadászatot a bugtengerben?
Ugye a Due-n a serial.begin nem volt képes visszavenni a hatalmat egy pinMode/digitalWrite művelet után. A változatosság kedvéért az ESP32-n pedig egy serial.begin/serial.end után a pinMode nem képes rendesen bekonfigurálni a GPIO lábakat...
Az illetékes regiszterek amiket kézzel kell beállítani:
GPIO_FUNCx_IN_SEL_CFG_REG
GPIO_FUNCx_OUT_SEL_CFG_REGAz ESP32-n LCD meghajtással pedig végül eddig jutottam:
Kíváncsi volnék, hogy a szimpla vonalhúzás miért ennyivel gyorsabb náluk? Lehet az ott használt ILI9341-nek valami hardveres gyorsítása / trükkje van rá? Bár akkor valószínűleg a screen fill is sokkal gyorsabb lenne, szóval inkább sejtek valamiféle mérési bugot mögötte... Mindenesetre a többi területen észrevehetően gyorsabb parallel módban...
-
Tankblock
aktív tag
válasz
adatfalo #9706 üzenetére
Hello,
Ha van wifi akkor ESP8266 re van One Task osztály: [link]
Azt mindenképpen tisztáznod kellene, hogy a pumpát is erről a tápegységről szeretnéd-e meghajtani. Én MOSFET tel mennék neki egy step up converterrel, aminek a tápjára tenném a FET et. A napelem cellát meg illene túlmértezin, ahogy az akksit is.
Sima arduino ha 8MHz belső clockal megy és 3V3 van használva is tud alacsony áramfelvételt, vagy akár még valamelyik AtTiny core is. Attiny13A van nekem sikerült lemenni 5,4 uA re a fogyasztással deepsleepre. Kérdés mennyire kell, hogy pontos legyen az az időzités.
Ha jó sacc / köblábra is akkor nem vesződnék semmilyen RTC vel, csak deep sleep és wakeupokkal számolgatnék mennyi van még hátra a 24 órából. Ha csak arra kell, hogy pl 2 hetet elmenjen amig nem vagy otthon és fontos, hogy battery + napelem kombó legyen. A TP4056 pl 1 cellának jó választás lehet. Az másik hogy az az egy cella mennyi ideig is fogja meghajtani azt a pumpát.
-
adatfalo
senior tag
Köszi!
Abban van tapasztalatod, hogy hogyan lenne érdemes ezt a napi 1x-i bekapcsolást elvégezni? Találtam már időzítős reléket, illetve gondolkoztam már RTC modulon is, de nem tudom, hogy mi lenne a legjobb megoldás, sajnos az arduinonak nem olyan jó az energiagazdálkodása, mint mondjuk egy ESP-nek.
-
csubuka
addikt
válasz
fpeter84 #9689 üzenetére
Köszönöm szépen az elemzést!
Mélyebben beleásom magam majd a rendszer működésébe, hogy mi is a valós tényállás. De ez alapján legalább tudok majd keresni, hogy hogyan kéne mégis.
(#9695) Janos250: Köszönöm szépen Neked is! Eddig ott vagyok, hogy megállapítottam a típust. A vezérlő egy DSC PC1616H. Azt kéne, hogy ha eldönti, hogy riaszt, akkor SMS-t küldeni. De mondjuk, ha a beltérinek meghal az akksija (és áramszünet van), akkor is riasztás van amúgy, ami miatt meg begerjednek a szomszédok, ha pl nyaral az ember. És ilyenkor is jó lenne erről tudni, hogy egy segítő embert beszervezhessünk ennek elhárítására. Így lehetséges a legjobb lenne a sziréna megszólalására triggereltetni az SMS-küldést.
Belenéztem ugyan a dokumentációjába egyelőre a vezérlőnek, de elég hosszú
Egyelőre erre nem biztos, hogy lesz időm, hogy átrágódjak rajta és kiderítsem hogy a legcélszerűbb sima "digital input"-ra valamilyen módon bevinni azt, amikor megszólal a sziréna.
*Kicsit okosodnom kell még, hogy a vezérlő panelon mi történik azért, mert ahogy fpeter84 írta a 12V-os szirénához több hardveres építés kell, hogy az Arduino/(ESP vagy akármi más) oda kapcsolódhasson.
-
csubuka
addikt
Kedves tibi-d!
Én is éppen egy riasztó (DSC márka, egy ingatlanon van épp, nem egy autón) GSM modulos kibővítésébe fognék mostanság. Lapozgattam a riasztó topikot meg itt a mikrokontrollereset, hogy egy gazdaságos megoldáshoz tudjak ötletet meríteni és úgy akadtam ezen korábbi hozzászólásodra.
.Sikerre vitted ezt a projektet végül vagy túl sok buktató volt?
Hamar megoldható, ha csak a GSM modult kell elkészíteni, a riasztó már adott? Nagyon alapra gondolok, hogy adott három számra küldjön egy SMS-t, ha a sziréna beindul. Ennyi. A gyáriak relatíve drágák és túl sokat tudnak, ahhoz képest ami nekem kell.
-Szerinted ez mennyire kivitelezhető? Illetve tapasztalatod alapján hogyan kötnéd a riasztóhoz?
Van a riasztónak olyan kimenete, ami közvetlenül beköthető lehet egy Arduino vagy ESP digital inputjára? Azonos föld esetén gondolnám, hogy riasztási esetben akár egy digital HIGH történet lehetne. Persze lehet nem ilyen egyszerű ez sajnos. De pl. akár figyelhetném a sziréna feszültségét, ha az egyszerűbb.Tényleg egy viszonylag alap dologra gondolok, amit hamar össze lehet rakni.
Köszönöm előre is
-
fpeter84
senior tag
Első eredményeim 320x240 felbontásban (ez csak a kijelzőm fele), lehet még tudok rajta itt ott faragni, gyorsítani...
Közben rájöttem, hogy az mcufriend_kbv-ben is van ESP32 támogatás, de elég primitív lassú megvalósítással, a szétszórt lábakat egyesével írja. Én a 12-19-es lábakat sorban vettem D0-D7-nek és csak 12-t kell balra bitshift-elni az adat byte-on és már lehet is írni a set/clear-t...
@ecaddsell: ezek megvoltak, az első hsz-ben is már ott volt, de azért végigpróbáltam a 3 féle lehetőséget amit eddig működőképesnek találtam:
*((volatile uint32_t *) (GPIO_OUT_W1TC_REG)) = x
ESP_REG(GPIO_OUT_W1TC_REG) = x
GPIO.out_wltc = xÉrdekes módon a 3dik észrevehetően, legalább 20%-al gyorsabb mint a másik 2 regiszter elérés, de továbbra is az az érzésem hogy ez messze nem közvetlen elérés hanem csak virtuális, valami köztes rétegen keresztül levezényelve...
szerk: kipróbáltam az mcufriend_kbv ESP32 8bit támogatását is, és tényleg irtó lassú az enyémhez képest: 4 421 642 overall
-
fpeter84
senior tag
Köszönöm a tippeket az ESP32 regisztereivel kapcsolatban - úgytűnik valóban az RTOS keverhet be... Egyetlen butuska tesztprojektet leszámítva - ahol a csipp se stimmelt, az enyémen RM68410 van - nem találtam rendes lib-et a parallel 8bit ESP32-re, ezért nekiestem hogy átfaragjak egy idegen projektet...
Fogtam ezt az STM32_TFT_8bit lib-et ami az Adafruit GFX csomaggal működik együtt, és első körben minden hardverközeli műveletet átírtam pinMode, digitalWrite és digitalRead alapú lassú, de mindennel kompatibilis univerzális megoldásokra és miután meggyőződtem róla hogy ez így nagy lassulással de még mindig működik az STM32-vel, a lábak átcímkézésével lefordítottam az ESP32-re is és működött első pöccre a Lolin32-n is! Nem vagyok hozzászokva, hogy ilyen gördülékenyen menjenek a dolgok, lesz még itt valahol szívás tuti
Az eredmények a graphictest_kbv.ino-t futtatva:
MEGA2560 az MCUFRIEND_kbv lib-el: 37.24 sec
DUE az MCUFRIEND_kbv lib-el: 8.36 sec
STM32F103C az STM32_TFT_8bit lib-el direkt PORTA hívásokkal: 19 sec
STM32F103C a fentiből hekkelt dummy lib-el: 93.6 sec
ESP32 a fentiből hekkelt dummy lib-el: 17.4 secNyilván a 240 vs 72MHz ad némi előnyt az ESP32-nek az STM-el szemben, de a 3.33x órajel mellett 5.38x tempót hoz már így is, bár a DUE-től még messze jár... Ráadásul az STM lib-el se eredeti, se széthekkelt módban nem akar menni a hardveres scroll a demóban, a szoftveres scroll meg halálosan lassú - ennek az okára még jó lenne majd rájönni, feltehetően valahol bizonyos regiszter visszaolvasásoknál lesz a bug...
A következő lépés az lesz, hogy a dummy hívásokat megpróbálom a lehető leggyorsabb direkt ESP32 regiszter hívásokra lecserélni - remélem úgy simán beelőzi majd a DUE-t is...
-
válasz
fagylalt #9641 üzenetére
Az a baj, ha sok minden van használva annak nagy lesz a fogyasztása.
Még az is fontos lenne, hogy mennyi ideig üzemelnek az egyes egységek, Arduino Mega elmegy-e alvó módba, folyamatosan mérnek az egységek vagy mondjuk 10 percenként mérnek 1-et a kettő között pedig csak várakozó módban vannak, esetleg alvó módba elmennek.
Ha az időt már tudod, hogy mennyi ideig üzemelnek az egyes egységek, meg kellene nézni mennyit fogyasztanak alvó (ha van ilyen állapotuk) és üzemi állapotban külön-külön. Ha meg van a fogyasztás és az, hogy mennyi ideig fogyasztanak, akkor amit belinkeltem kalkulátorba beütöd az értékeket és kidobja, hány óráig, napig, esetleg hónapig tudna adott aksiról üzemelni.
Számolás és idők nélkül látatlanba azt mondanám, hogy nem fog sokáig működni a rendszer, jó ha 1 napig bírja vagy annyi se.
Konkrét példa, nekem van egy ESP32 ami folyamatosan működik, wifi-t használ, van egy hőmérő és egy kijelző. Ez durván 400mA-t fogyaszt, így kb 6.5 óráig bírná egy 3000mAh-s aksiról.
-
-
fagylalt
senior tag
Mindenképpen akkumulátoros megoldásra van szükségem, mert ahol a "rendszer" lesz használva, ott nem lesz vezetékes hálózati áram. Az alábbi egységeket kellene meghajtani:
- Arduino Mega 2560
- 1db szervómotor (MG996R)
- 1db WiFi modul (ESP8266 ESP-01)
- 1db GPS modul (uBLOX NEO-6M)
- 1db gyorsulásmérő (MPU-6050)
- 1db hőmérő (DS18B20)
Esetleg még pár ultrahangos szenzor (JSN-SR04T) lesz rajta.(#9635) gyapo11 és (#9636) quint: Viszonylag sürgős lenne, így a külföldi rendelést kizárnám. 18650-es akkumulátoraim szint úgy nincsenek.
Itthon lehet valahol ilyet vásárolni?
-
Tankblock
aktív tag
A többi board mind 1 magos ha jól sejtem, az ESP32 meg 2 core. Mivel mind a 2ről el lehet érni igy gondolom van restriction. Az ESP-IDF alatt is structúrán keresztül lehetett definálni ha jól emlékszem.
Bőven megfelelő a sebessége. Nézegesd inkább a példaprogramokat amit az ESP-IDF mellé kapsz. Az sokat fog segiteni. Az arduino erre a layerre húz rá még egyet.
-
fpeter84
senior tag
Miközben keresem az ideális alap hardvert a projektemhez, most az ESP32-höz érkeztem (azt keresem hogy egy adott LCD-t mivel tudnék a létező leggyorsabban meghajtani)...
AVR-en, STM32-n, ATSAM-en működött simán, hogy egy regiszter aliasra hivatlkozva átírtam az adott regiszter értékét, például:
REG_PIOD_PDR = (REG_PIOD_PSR & 0x00000030);
Az ESP32-n viszont mintha ez körülményesebb lenne. A közvetlen elérésre ezt a hibát dobta:
C:\Arduino\ESP32\projects\GPIO_test\GPIO_test.ino: In function 'void set_databits_input()':
GPIO_test:7: error: lvalue required as left operand of assignment
GPIO_ENABLE_W1TC_REG = 0x000FF000;
^
exit status 1
lvalue required as left operand of assignmentA hw könytárban lévő kódokat túrva 2 azonosan működő megoldást találtam eddig:
ESP_REG(GPIO_ENABLE_W1TC_REG) = 0x000FF000;
vagy
GPIO.enable_w1tc = 0x000FF000;Ami viszont nem igazán normális, hogy nem történik meg azonnal a regiszter állítása! Ha abban a pillanatban visszaolvasom a GPIO_ENABLE_REG értékét akkor még az előzőt találom benne, ha berakok 1ms várakozást akkor már azt aminek lennie kell! Mi a fene okozhatja ezt a jelenséget? Így nem igazán lehet kimaxolni a GPIO írás olvasás sebességét közvetlen eléréssel...
-
Janos250
őstag
Erről jut eszembe:
Ezt használta már valaki? Használható?
ifttt.com/maker_webhooks
Belebotlottam egy tűrhető ESP8266 könyv linkjébe, és olvasgatva találtam -
válasz
ecaddsell #9605 üzenetére
Igen deep sleep-ben fog menni. Nem számoltam ki de abban bízom, hogy a konverterrel kapott nagyobb feszültség tartomány talán ad annyit, hogy a konverter ~50uA-es fogyasztását is megérje.
Konverter nélkül 2AA elemmel mondjuk 0.5V-ot tudok használni talán, ha úgy veszem hogy 2.5V-al elemgy minden gond nélkül az ESP32.Kicsit elbizonytalanodtam. Eddig az itt javasolt megoldást követtem, de most ez meg ellent mond
50uA fogyasztás esetén óránként 90 mA-es fogyasztással kell számolni a konverternél? Az nem kevés
-
ecaddsell
aktív tag
válasz
gyapo11 #9603 üzenetére
A NiZn felejtős, nagyon hamar tönkre megy (még hideg sem kell hozzá) és a kapacitása is gyatra (mindig a teljesítménnyel marketingelik). Próbáltam (szerencsére az őrült drága töltő jó a NiMH-hez is, azaz legalább azt nem buktam).
Szóval vonzó a nagyobb feszültség, de nem 1 hosszú távú megoldás...Szerk: A NIZn-nek nagyon gyors az önkisülése is...
xboy89
Ezek a boost konverterek ha még deep sleep-be teszed az ESP32-öt, akkor is fognak fogyasztani. -
Ha eleve boost konverter van a készülékben, akkor semmit nem kell áttervezni, 2db AA elem és kész.
Nem tudom mennyire toleráns az esp32 lefelé a tápfeszültség terén, de 2db AA elemről közvetlenül is lehetne hajtani, megspórolva a konverter fogyasztását.Ha ennek lehet hinni, 2,3V-ig merült elemekkel még elvileg működőképes az esp. Egy próbát megér.
-
ecaddsell
aktív tag
válasz
MrChris #9576 üzenetére
Az UNO-t nem ismerem, de vsz. pont ugyanolyan quartz kristály van benne mint a többibe, pl. ESP32-be amit jobban ismerek. Szóval ezek simán kell hozzák az 5 digitet ami nemhogy 30 percre, hanem akár 1 napra is elég jó esetben (1 másodperces eltéréshez). Ami esetleg gáz lehet az az alapból meglévő offset, az hogy nem pontosan annyi mint kellene legyen a kontroller órajele (kifogsz egy ilyen szempontból gyengébb példányt). Ezt is simán lehet kompenzálni, de itt már timer-t kell használni (timer interrupt).
A drift, az hogy hőmérséklettel változik az órajel frekvenciája kevésbé zavaró, ez még relatíve nagy változások esetén is tudja hozni az 5 digitet.
Viszont az nem kérdés, hogy a GPS 1pps (pulse per second) kimeneténél házi barkács szinten aligha van olcsóbb megoldás, mert ez alapból kb. 7-8 digit és stabilan tartja (sőt mivel alapvetően a jitter rontja, a hosszútávú átlag még jobb is).
Pont ezért tervezem, hogy a frekvenciamérés pontosságomat erre a szintre emelem (most ha megvárom a bekapcsolás utáni bemelegedést kb. 2*10 exp -7 et tudtam elérni, de ezzel az a gond, hogy az aktuális hőmérséklethez kell kompenzálni, mármint kontroller quartz kristály hőmérsékletéhez...)
-
válasz
MrChris #9576 üzenetére
Egy nyomógombot mindenképp pergésmentesíteni kell, erről nagyon sok szó esett már a topikban.
Itt azt írja valaki, hogy 40 perc alatt 1mp-es csúszást tud uno-val, kísérleti úton beállított késleltetéssel. Ha ez nem elég, akkor kell RTC modul, de abból sem mindegy milyen, mert az olcsóbbak simán rosszabb pontosságot fognak produkálni.
30 perc alatt 1mp csúszás szerintem nem sok, de figyelembe kell venni a hőmérsékletváltozások miatti driftet is, amit ha jól tudok, a drágább RTC modulok hőmérővel kompenzálnak.A kolléga által említett Esp + wifi + NTP ami még nagyobb pontosságot tud(hat).
Elárulod, hogy mihez szeretnél ilyen vezérlést?
Új hozzászólás Aktív témák
Hirdetés
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- Kerékpárosok, bringások ide!
- Battlefield 6
- 3D nyomtatás
- Motorolaj, hajtóműolaj, hűtőfolyadék, adalékok és szűrők topikja
- Az Arctic belép a házak piacára
- Vezeték nélküli fülhallgatók
- Motorola Edge 50 Neo - az egyensúly gyengesége
- Airsoft
- Háztartási gépek
- További aktív témák...
- T16 Gen2 16" FHD+ IPS i7-1365U 16GB 1TB NVMe magyar vbill ujjlolv IR kam gar
- Apple iPhone 13 Mini 128GB, Kártyafüggetlen, 1 Év Garanciával
- Eladó szép állapotban levő Apple iPhone 8 Plus 64GB / 12 hó jótállással
- Apple iPhone 14 Pro 128GB, Kártyafüggetlen, 1 Év Garanciával
- Ideapad 3 15IMH05 15.6" FHD IPS i5-10300H GTX 1650Ti 16GB 512GB NVMe magyar vbill gar
- Lenovo magyar laptop billentyűzetre van szükséged? Akármelyik verzióban segítünk!
- MacBook, Apple M1 / M2 kompatibilis dokkolók, DisplayLink 4K, USB-C, Type-C
- Konzol felvásárlás!! Xbox Series S, Xbox Series X
- Huawei P30 Lite 128GB, Kártyafüggetlen, 1 Év Garanciával
- BESZÁMÍTÁS! MSI MAG 325CQRXF QHD VA 240Hz 1ms monitor garanciával hibátlan működéssel
Állásajánlatok
Cég: FOTC
Város: Budapest