Hirdetés
- Lassacskán fenyőfát állítanak a hardverek
- Tudjuk, de nem tesszük: a magyarok többsége nem törődik adatai védelmével
- Mesébe illő csodakábelt tervezett a GeForce-ok leégése ellen a Segotep?
- Irodát kért, de gyárat kapott Elon Musk a Samsungtól
- Nyílt forráskódú lett a legegyszerűbben használható AI tartalomgeneráló
- Házimozi belépő szinten
- Milyen monitort vegyek?
- A fával keres kapcsolatot a Gigabyte új alaplapja
- Nikon Z MILC fényképezőgépcsalád
- Milyen alaplapot vegyek?
- Milyen asztali (teljes vagy fél-) gépet vegyek?
- Logitech szerviz
- TCL LCD és LED TV-k
- Hisense LCD és LED TV-k
- NVIDIA GeForce RTX 5070 / 5070 Ti (GB205 / 203)
-
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
-
ESPEasy cucc webes felületét megnyitod, tools, advanced és ott van, h rules enabled, ha ezt kattintod, akkor alatta az enable rules cache is bekapcsol, na ezt kapcsoltam ki, bódottság van, 14% körül a load, amikor nézegetem. 24+ óra uptime, másikkal ilyenkor már harcoltam bőven.

Ahogy írtam is, ez az ok szerintem, de alaposan nem jártam körbe, viszont alig változott a rules-ban vagy eszközökben.
-
-
ESPEasy-t használ valaki?
Az új verziónál (ESPEasy-mega-20221105) pár óra után felmászik a CPU használat, nincs webes kapcsolat. A dolgát teszi szépen. Restart is sokáig tart. Most egy Wemost töröltem, újra flasheltem, csak úgy natúrban is ez a jelenség, szal. nem hiszem, h a programom kavarja meg. Mintha a régi gyorsabb lett volna. Normal, 302 és VCC verziókat is próbáltam. Többi okosbizbasz csatlakozik a routerre, elérhetőek. Már kicsit a Wemos klónra gyanakszom. Mert ilyenem még nem volt:
Mondjuk a 4.0-ás verzióval is ez van...
Valaki más tapasztalt ilyesmit? -
Csak hogy biztos legyen, mert egyértelműen nem találtam ESPEasy-n... Wemos D1 mini gombbal GND-re reseteli a wemost. Ide kell vmi ellenállás, vagy mehet direktbe GND-re? A reset az nem factory reset, csak rebootol, ugye? Flash-t nem fogja piszkálni?
Táp megvonással néha hülyeségeket írnak a szenzorok, reboot után jók. Most kikapcsoltam az ECO módot, szerintem az okozta a bánatot, de azért pattintanék rá reset gombot is.

-
vegyszer
addikt
Sziasztok!
Gondoltam megosztom veletek első igazi, számomra átütő érzést hozó esp32 projektem örömét.
M5STACK Core2 ASW-sel egyszem infra érzékelő segedelmével egy kartonozó gép végére sikerült egy doboz számlálót kreálnom, ami az adatokat a felhőbe fel is tolja, hogy percenként hány tranzitot érzékelt, illetve (elvileg, mondjuk ezt épp nem teszteltem) logolja is egy SD kártyára ugyanezt. Felhő szolgáltatás gyanánt az io.adafruit.com szolgáltatásának az ingyenes verzióját használom. Nagyon tetszik, (a főnökömnek is) hogy az adatok valós idejű grafikonon szemlélhetőek.
A dolog hétfő óta teszi a dolgát. De érdekes módon délután kettő-három körül minden nap hálózati gondok lépnek fel. Ki-ki marad egy-egy pont(csoport) a grafikonon. Vagyis, mondjuk 9 percig nem jön semmi, majd 5 adat egyszerre egy másodpercen belül.
Sajnos az ingyenesség ára az, hogy a percenkénti MQTT üzenetek száma van korlátozva. Viszont mivel posztgraduális képzésen veszek részt, a Microsoft Azure education opcioja nekem is nyitva van. Viszont az még idegenebb, mint ez volt. Ebbe esetleg mélyedt el valaki?
Van esetleg olyan felhő, illetve MQTT szolgáltatás az ismeretekben, ami mondjuk két-három mondjuk pontosvesszővel tagolt string értékeket szét tud szedni, és berajzolni hasonló grafikonon? Pl így nézne ki a küldött üzenet:
ÉÉÉÉHHNNÓÓPPMM;donozperperc;ÖsszeElhaladtDoboz
Mert ha késik az adat csomagom, az nem gond (hisz ebben benne van az időbélyegző). És itt az idő az x tengely, a két másik adat meg egy egy külön függvény (vonaldiadram). Tudom, hogy QOS 2 lenne az igazi, de ezt se tudja az adafruit.Illetve nem kerek, de ha két külön feedet indítok, akkor nem jönnek az adatok stabilan. Ez az adafruit sajátja lehet, vagy más se szereti, ha egyszerre két moszkító feedet indítok egy eszközről. Mondjuk szerintem ennek nem kellene gondnak lennie.
-
válasz
ViZion
#18086
üzenetére
Nah, megtaláltam ESPEasy leírásában, ez szerint volt belőve:
"The function of the pull-up is to activate the internal pull-up Resistor of the ESP. A pull-up Resistor connects the GPIO to VCC(=3.3V) through a relativly high Resistor (ie 10KOhm). This makes sure the GPIO reads a stable 1 when not connected to GND (it could float).When using a normal switch or tactile switch, it should be activated. That should be all for a default switch."
Vagyis a belső pull-up ellenállást használta -egy ideig... utána nem volt stabil, ekkor váltottam active high-ra és kap 3,3 V-ot, ha a relé zárja az áramkört. Megpróbálom külső ellenállással, hátha jobb lesz. -
Sziasztok!
Ehhez kell pull-up ellenállás? [link]
Az oldalon is hibásak az adatok, lábakon nem ez van. Rengeteg helyen a modulhoz is raknak ellenállást, másik oldal azt írja, h nem kell. Egy helyen meg azt olvastam, h a frissített library-val egyáltalán nem kell. ESPEasy írja, h kell. Ha a modulon van, akkor viszont több modul párhuzamos kötésénél már változik az ellenállás, szal. szvsz nem lenne logikus rápattintani a modulra alapból. -
-
Gergosz2
veterán
Sziasztok!
Milyen ESP32 boardot ajánlatok? Stabil és minél egyszerűbb megoldás érdekelne.
-
válasz
ekkold
#18057
üzenetére
Hmmm... van egy régebbi, marha nagy "kockám", ami nyomtatóé volt talán. Eddig nem találtam a helyét, mert 19 V és 9V DC talán a kimenetei (meg kell keresnem, de vmi ilyen ma már nem járatos feszek voltak, meg fura csatlakozó).
Tankblock: a korábbi ESPEasy programra is ránéztél? Vélemény, javaslat?

-
Tankblock
aktív tag
válasz
ViZion
#18040
üzenetére
Szia
Őszintén ESPEasy vel sohasem foglalkoztam, szerintem egy csőtermosztáttal többre mész.
Az se biztos hogy csak 1 hőmérőre bíznám magam.
Ugye nem gázkazán?Ha sima kályha én az előremenő víz hőmérsékletét nézném és 50 fok felett keringetném, hogy ne hűtse le, mert akkor kátrányosodik gyorsan.
-
válasz
Tankblock
#18039
üzenetére
erre az ESPEasy programra is ránézhetnél. Kicsit azóta reszeltem még rajta, de nem a lényegi részen.
Már ez vezérli a keringetőt, meleg van, szal... egyelőre OK.
Következő a statisztika, ESP Home, meg ilyesmik. De egyelőre a csöveket kell szigetelnem, csak már az is hiánycikk.
Köszönöm a javaslatokat és Grandpa-nak is a segítséget.
-
válasz
its_grandpa
#18001
üzenetére
Szia!
Takarítottam a puffert, nem volt vészes, radiátor cserénél a régi meglepően tiszta volt.
Vegyes kazán, fával fűtve, annak meg 70°C alatt nem jó, mert kátrányosodik, ami savas és "megeszi" a lemezt.Köszönöm, rohanok most, káosz van. Csak az ESPEasy ami új a programozásban, mást már használtam, valahol a Basic-tól indulva, javascript, webes mindenfélék, kicsi ez, kicsi az. Villanyos részhez meg műszerész vagyok, a gyenge áram is olyan, mint a nagyobb, csak a fogása más...

-
válasz
ViZion
#17999
üzenetére
Alap probléma: keringető szivattyú 35-45W fogyasztás redukálása, mert sokat pörög feleslegesen. Nem nagy a ház, jól szigetelt, vegyestüzelés+puffer. De a csövezés, meg az egész rendszer nagy átfolyásra van tervezve (szándékosan), emeleten termofejek, lent meg kb szaladhat, amúgy is minden egyben van.
Elvileg okos keringető mehetne, de mint megtudtam, az az átfolyást nézi, tehát nálunk automatán visszavenné a teljesítményét (másnál is ez a tapasztalat, okos keringetőt manuálban használnak), nem jutna/sokára jutna meleg víz a távolabbi pontokra.Visszatérő mérése differenciál termosztátos megoldással: ez sem jó, mert a fürdő (szándékosan) külön kör, ahol gyorsan megfordul a víz, a visszatérő így meleg hamar. Megbontani nem akarom, lehetne mágnesszelep, vagy másik szivattyú... drága az ESP-hez képest.
Akkor mérjünk... időt. A legtávolabbi radiátor a kihűlt állapotból a forróra kevesebb, mint 5 perc alatt melegszik fel, ha megy a keringető. Itt a hőleadás sebessége és a kis légköbméter/radiátor miatt van egy durva túllövése a rendszernek, ha a keringetőt a belső termosztát kapcsolja. Erre is lett volna alternatív megoldás, különböző okok miatt elengedtem ezeket.
A programról: boot-nál idők és hőmérsékletek dummy változóba mentve, ha meghalok, akkor is tudják kezelni...
Min hőmérséklet: kazán/puffer a kimenőnél ha eléri, csak akkor keringethet.
mid hőmérséklet: átlagos üzeni alsó határa
max: 90°C-nél minden mindegy, valamit elkeféltem a kazánnál, túlfűtöttem, keringessen hamar.
rögtön indítja is a vége ciklust, ami 2 percenként nézi, h mi a szituáció a hőfokokkal.
A fűtés még az érdekes, ha a minimum-optimum közé esik, akkor hosszabb keringetés (mert a kazán vagy hűl, vagy melegszik), majd szünet. Utána ha még a termosztát "be" állapotban van, akkor ismételje meg, keringetés hosszan, szünet.
Ha az optimális felett van a hőfok, akkor fűtésnél elég, ha ~5 percig keringet, majd vár, ha termosztát még aktív, akkor újra.A lényeg, h sokkal kevesebbet megy a szivattyú, a "túllövések" is ritkábbak lesznek, ehhez az időket finomítani kell, tapasztalat szerint. 3 szenzor van, az egyik a külső hőre, a másik csak infó a pufferről. A külső hőmérséklet kód nincs még benne, ez annyi, hogy mint pl. ma, ha 18°C felett van kint, akkor ne fűtsön 23-ra, mert minek, tutira szellőztetünk is ilyenkor. Akkor az a meleg maradjon estére inkább.

-
ESPEasy kérdés, rules-ban mi a különbség ha event,csinádeztnév vagy ha csak simán csinádeztnév van megadva?
on akármi do
csinádeztnév
endon
-
Nah, kezdő gyakorlatként leprogramoztam egy gombot, ami bekapcsolja a kijelzőt. Ma már végleges(ebb) a HW, át kell írkálni GPIO-kat, stb. Akkor vettem észre, h a display-nál kérdezi, h melyik pinre kapcsoljon be... OK

Sok dolgot tud a progi, pl. változóknál agyaltam, h mi lesz a tizedesekkel (számolnia is kell velük kicsit), de az is beállítható, nem kell rules-t írni rá.Eddig nagyon tetszik,elkezdtem az alapokat összeírni, vázlatolni, h mikor mi legyen. Ezt meg már csak bele kell pötyögni, h értse is. Hihetetlen az ESPeasy, rules méret miatt aggódok, de majd kiderül.
...és a relémodulon van led.
-
its_grandpa
tag
válasz
ViZion
#17981
üzenetére
Nem teljesen jó de kiindulási alapnak....
Kell egy dummy device name=Rel_1, és State nevü változó.on System#Boot doMonitor GPIO,15 //Relay1_GPIO-jatimerSet,1,600 //Set Timer 1 for the next event in 600 secondsRel_1#State = 0endonOn Rules#Timer=1 do //When Timer1 expires, doRel_1#State = 1endonon GPIO#15=0 and Rel_1#State = 1 do //Relay1 lowRel_1#State = 0http://<espeasyip>/control?cmd=LongPulse,Relay2_GPIO,1,300 //Relay2 5 minute onendonA GPIO-kat és az IP-t konfigodnak megfelelően kell beállítani.
ESP nélkül írtam, nincs tesztelve. -
válasz
its_grandpa
#17978
üzenetére
Olvasgatom, meg a randomnerds-et és az espeasy.readthedocs.io-t is nézem.
A HW rész már majdnem kész, de ma megint nem lesz időm szenzorokat forrasztgatni. Finder relét is kaptam "olcsón", ami a neten 1100 Ft, itt egyik boltban csak tartóval van ~4900 Ft, másikban kaptam tok nélkül 2800 Ft-ért... Hát annyi, h ez itt van, de a postaköltséget "beépítették" az árba.
Kérdésem is lenne:
az egyik bemenetre active low switch-et állítok, ezt a relé (relé 1) zárja GND-re.
Ehhez a szabály, h ha low, akkor indítson egy másik relét (relé 2) egy időzítővel meghatározott időre (timerset mittomén 5 perc). A kérdés az, h ha letelik az 5 perc, de a relé 1 még low-on tartja a pin-t, akkor a timer újrakezdi?
Mert amit szeretnék az kb ez:
relé 1 low -> 5 percig relé 2 be -> 10 perc szünet -> relé1 újra figyel
-
its_grandpa
tag
válasz
ViZion
#17971
üzenetére
Rendben de előbb ezt a két oldalt nézd át.
https://www.letscontrolit.com/wiki/index.php/Tutorial_Rules
https://www.letscontrolit.com/wiki/index.php?title=ESPEasy_Command_ReferenceÉn ESPEasy-vel kezdtem a saját eszközök építését (kapcsoló,hőmérő).
Ma már vannak Tasmotás eszközeim is de talán az ESPEasy nekem jobban kézre áll.
Ha vége lesz a kerti szezonnak ismét neki látok. -
válasz
Dißnäëß
#17974
üzenetére
wat? Ez local (ESP saját weboldalába lépsz be, a belső hálón. Kifelé router nem is engedi, ahogy pl. nas vagy a nyomtató sem tud kifelé kapcsolatot létrehozni, mert nekik nincs net), nem tuya vagy ilyesmi, amitől az okosotthon topikban rettegnek. Magam is aggódom, h a kínaiak tudják, h valami fogyaszt a konnektorokban, meg kapcsolgatom a villanyt... veszélyes. És igen, működnek net nélkül is.
-
UP!
nah, ezt a topikot kerestem...
ESPeasy-vel valaki foglalkozott már? -
Tomika86
senior tag
Csináltam képeket, hogy mit is csinál, hátha észrevesz valaki valamit benne, pastebinre feltettem a kódot.
- ip cím/nextion beírásakor bejön az index oldal
- aktív lesz a feltöltés gomb is(kód szerint csak akkor ha az esp megkapja a fájl méretet)
- ha rányomok akkor megjelenik a fájl méret tehát belép a soros kiiratáshoz
- mivel nincs rákötve a kijelző, így a hibához lép a programban(statusmessage is megjelenik a soros monitoron), de a failure_html már nem töltődik be. 102. sor
- a weboldal elkezd gondolkodni és hibát ad egy idő után (soros monitoron pedig odalép ahol meghívná 105.sor soros kiiratás)Innét viszont a böngészővel hiába lépek az index oldalra, mindig az Error-t írja csak.
(csak .tft fájl hibaüzenet működik, de itt is megáll a server, hiába lépek a kezdőlapra)Köszönöm a segítséget!
Itt a pastebin:
teljes kód[hiba üzenet soros monitoron]
[gomb megnyomva]
[index és fájl kiválasztva]
[index kép] -
Tomika86
senior tag
Sziasztok!
Átírtam és kommenteztem a Nextion webserveres feltöltést. Az átalakítás oka, hogy a programkódban legyen a 3db html oldalkód, eredetileg SPIFFS-re volt feltöltve.
Lenne kérdésem ezzel kapcsolatban:
- Mi a különbség, hogy send vagy sendHeader (csak mert eredetileg a sendHeader küldte)
- Ez így jó e?
Eredetileg így volt://server.sendHeader(F("Location"),"/failure.html?reason=" + nextion.statusMessage);
Erre írtam át (itt is látni, eredetileg senHeader volt):nextion_update_server.send(200, "text/html", "failure_html?reason=" + nextion.statusMessage);
- Ez így a kiválasztott fájl méretét adja a programnak át, jó így?// Fogadjuk a fájl méretét egyszer, amikor kiválasztjuk a fájlt.
nextion_update_server.on("/fs", HTTP_POST, [](){ // Ez mit jelent? "/fs"
fileSize = nextion_update_server.arg(F("fileSize")).toInt(); // "fileSize" a weboldalról jön
nextion_update_server.send(200, F("text/plain"), "");
});Köszönöm a segítséget!
Itt a teljes kód, loop nélkül:
#include <WiFiClient.h>
#include <ESPmDNS.h>
#include <WebServer.h>
#include <ESPNexUpload.h>
/*
ESP32 használja a hardveres soros portot RX:16, TX:17
Soros port pinek ESPNexUpload.cpp fájlban vannak definiálva
*/
// Wifi adatok
const char *host = "ezaz"; // Host név beállítása
const char *ssid = "ESP"; // Hálózati azonosító név beállítása
const char *password = "xxx"; // Kapcsolódáshoz jelszó
IPAddress local_ip(192,168,10,150); // ESP32 IP cím beállítása
IPAddress local_mask(255,255,255,0); // Maszk cím beállítása
IPAddress gateway(192,168,10,150); // Átjáró cím beállítása
// used only internally
int fileSize = 0;
bool result = true;
// Nextion objektum létrehozása
ESPNexUpload nextion(115200);
// Webserver objektum létrehozása a megadott portszámmal
WebServer nextion_update_server(100);
// Hiba oldal
char failure_html[] = R"=====(
<!DOCTYPE html>
<html lang="en">
<head>
<title>Nextion kijelző frissítő</title>
<script>
function getUrlVars() { // Ez mit csinál?
var vars = {};
var parts = window.location.href.replace(/[?&]+([^=&]+)=([^&]*)/gi, function(m,key,value) {
vars[key] = value;
});
return vars;
}
function setReason() { // Ez adja át a reason értékét a weboldalra?
var reason = getUrlVars()["reason"];
document.getElementById("reason").innerHTML = decodeURIComponent(reason);
}
</script>
</head>
<body onLoad="setReason()">
<h2>Frissítés sikertelen!</h2>
Üzenet: <strong><span id="reason"></span></strong>
</body>
</html>
)=====";
// Index oldal
char index_html[] = R"=====(
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-type" content="text/html; charset=utf-8">
<title>Nextion kijelző frissítő</title>
</head>
<body>
<h3>Válaszd ki a .tft fájlt a feltöltéshez</h3>
<form method="post" enctype="multipart/form-data">
<input type="file" name="name" onchange="valSize(this)">
<input id="button" type="submit" value="Feltöltés és frissítés" disabled>
</form>
<script>
function valSize(file){ // megszerezzük a kiválasztott fájl méretét és elküldjük az ESP-nek
var fs = file.files[0].size;
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function(){
if(this.readyState == 4 && this.status == 200) { // Ha az ESP megkapta a fileSize-t akkor engedélyezzük a gombot(Feltöltés)
document.getElementById("button").disabled = false;
}
};
xhttp.open("POST", "/fs", true); // Ez a 3 sor mit csinál?
xhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xhttp.send("fileSize="+fs);
}
</script>
<p>A frissítés sokáig tarthat, ha nagy a .tft fájl. Ellenőrizd a feltöltés folyamatát a kijelzőn.</p>
</body>
</html>
)=====";
// Sikeres oldal
char success_html[] = R"=====(
<!DOCTYPE html>
<html lang="en">
<head>
<title>Nextion kijelző frissítő</title>
</head>
<body>
Frissítés sikeres!
</body>
</html>
)=====";
//--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
// Fájl feltöltés kezelés
bool handleFileUpload() {
HTTPUpload& upload = nextion_update_server.upload(); // HTTP alapú fájl feltöltés
if (!upload.filename.endsWith(F(".tft"))) { // Ellenőrizzük, hogy a fájl .tft végű-e
nextion_update_server.send(500, F("text/plain"), F("CSAK .TFT FÁJL ENGEDÉLYEZETT!\n")); // Ha nem akkor hibaüzenet kiiratása
return false; // Visszatérési érték flase
}
if (!result) { // Ha result értéke hamis
nextion_update_server.sendHeader("Connection", "close"); // Átirányítjuk a failure.html oldalra a klienst
nextion_update_server.send(200, "text/html", "failure_html?reason=" + nextion.statusMessage); // reason hogy megy innét át a html fájlba? Így jó?
//server.sendHeader(F("Location"),"/failure.html?reason=" + nextion.statusMessage); // Ezt hogy tudom a felső sorba beírni?
return false; // Visszatérési érték false
}
if (upload.status == UPLOAD_FILE_START) { // upload.status értékét vizsgáljuk, értéke 0
Serial.println(F("\nFajl fogadva. Nextion frissitese..."));
result = nextion.prepareUpload(fileSize); // Előkészítjük a Nextion kijelző soros küldéshez és elküldjük a fájl pontos méretét
if (result) { // Ha készen áll a Nextion kijelző a fogadásra
Serial.print(F("Feltoltes inditasa. A fajl merete: "));
Serial.print(fileSize); // Fájl méretének kiírása
Serial.println(F(" bytes"));
}
else {
Serial.println(nextion.statusMessage + "\n"); // Ha végzett akkor kiiratjuk a státusz üzenetet
return false; // Visszatérési érték false
}
}
else if (upload.status == UPLOAD_FILE_WRITE) { // upload.status értékét vizsgáljuk, értéke 1
result = nextion.upload(upload.buf, upload.currentSize); // Írjuk a fogadott byte-kat a Nextion kijelzőbe
if(result) {
Serial.print(F(".")); // Amíg a feltöltés tart, addig pontokat iratunk ki
}
else {
Serial.println(nextion.statusMessage + "\n"); // Ha végzett akkor kiiratjuk a státusz üzenetet
return false; // Visszatérési érték false
}
}
else if (upload.status == UPLOAD_FILE_END) { // upload.status értékét vizsgáljuk, értéke 2
nextion.end(); // Soros kapcsolat bontása és Nextion szoftveres újraindítása
Serial.println("");
Serial.println(nextion.statusMessage); // Kiratjuk a státusz üzenetet
return true; // Visszatérési érték true
}
}
//-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
void setup(void) {
Serial.begin(115200);
WiFi.mode(WIFI_AP); // WIFI Access Point módba állítása
WiFi.softAP(ssid, password, 1, 0, 1); // WIFI konfiguráció: SSID és Jelszó, csatorna, rejtett ssid, maximum csatlakozható eszközök
delay(500); // Késleltetés
WiFi.softAPConfig(local_ip,gateway,local_mask); // IP címek beállítása
Serial.print("AP neve ");
Serial.println(ssid); // SSID kiírása
Serial.print("IP cim: ");
Serial.println(WiFi.softAPIP()); // IP cím kiírása
if (!MDNS.begin(host)) {
while (1) {
delay(1000);
}
}
// Szerver inicializálás
nextion_update_server.on("/", HTTP_POST, [](){
Serial.println(F("Succesfully updated Nextion!\n")); // Sikeres Nextion frissítés kiiratása soros monitoron
nextion_update_server.sendHeader("Connection", "close");
nextion_update_server.send(200, "text/html", success_html); // Átirányítjuk a klienst a sikeres oldalra, miután kezeltük a fájl feltöltést
return true;
},
handleFileUpload // Fogadás és fájl mentése kijelzőre
);
// Fogadjuk a fájl méretét egyszer, amikor kiválasztjuk a fájlt.
nextion_update_server.on("/fs", HTTP_POST, [](){ // Ez mit jelent? "/fs"
fileSize = nextion_update_server.arg(F("fileSize")).toInt(); // "fileSize" a weboldalról jön
nextion_update_server.send(200, F("text/plain"), "");
});
nextion_update_server.begin();
Serial.println(F("\nHTTP szerver elinditva"));
} -
válasz
Krilehor
#17928
üzenetére
Ha jól gugliztam utána, nem túl komplikált/sok funkciós a távirányítója, esetleg meg lehetne próbálni a távirányítót szétszedni és a kontaktusokra egy-egy vezetéket forrasztva egy ESP32-ről közvetlenül vezérelni azt (emulálni a gombnyomásokat).
Tudsz esetleg szerezni hozzá egy másik távirányítót (hogy ne az eredetit tedd tönkre)?
-
Krilehor
tag
Sziasztok.
Kezdő vagyok és segítséget szeretnék kérni. Vagy egy 868.4MHz-en működő rádiós mélyládám (Canton Sub 1200R) amit egy Logitech Harmony Elite távirányítóval szeretnék vezérelni, ami csak infrát ismer. Értelmezésem szerint nekem egy IR-RF gatewayt kellene építenem. Amit kezdésnek gondoltam beszerezni:
- Arduino Uno (Rev3)
- WiFi Module: ESP8266
- Radio module: RFM69HCW vagy AR-LORA-868 vagy egyéb? (itt nekem elég max 10m-es hatótáv)
- valami IR LED és IR receiver
- ha kész akkor mondjuk egy Arduino Nano-ra ráforrasztani és valami házba betenni?WiFi modulet azért gondoltam, hogy weben keresztül is meg lehessen nézni az aktuális állapotot, esetleg még vezérelni is. Ahogy néztem cikkeket, ez evvel a modullal meg is oldható
Rádió modullal valahogy dekódolni is kellene majd a távirányító kódjait, remélem ezt valamilyen libbel meg lehet oldani, legvégső esetben olvastam manuálisan is kivitelezhető
Amiket kinéztem jó irány lenne? Főként a 868MHz-es rádió modulnál vagyok elég bizonytalan, mert mindenhol a 433MHz-ról vannak tutorialok.
-
Tomika86
senior tag
A 3 html fájlt belerakhatom Stringként a forráskódba, át kellene alakítani hozzá. Vagy így a jobb ha fájlként fel van töltve az esp32-re?
Esp32 ota programban benne vannak a forráskódban.
A szerveres dolgot átgondoltam

-
Tomika86
senior tag
válasz
Janos250
#17917
üzenetére
Már szerkeszteni nem tudtam
Szeretnék egyet kérdezni, ha tud valaki segíteni ebben.
Van ebben a könyvtárban webserveres példaprogram.Viszont én már az ESP32 ota feltöltéshez is azt használok, ebbe belezavar ha most a kijelzőét is beletenném a programba?
Ezek első blikkre mindkettőben ott vannak
MDNS.begin(host);
WebServer server(80);
server.begin();
server.handleClient();Nextion upload webserver
#include <FS.h>
#include <WiFi.h>
#include <WebServer.h>
#include <ESPmDNS.h>
#include <SPIFFS.h>
#include <ESPNexUpload.h>
/*
ESP32 uses Hardware serial RX:16, TX:17
Serial pins are defined in the ESPNexUpload.cpp file
*/
const char* ssid = "your_wlan_ssid";
const char* password = "your_wlan_password";
const char* host = "nextion";
// used only internally
int fileSize = 0;
bool result = true;
// init Nextion object
ESPNexUpload nextion(115200);
WebServer server(80);
String getContentType(String filename){
if(server.hasArg(F("download"))) return F("application/octet-stream");
else if(filename.endsWith(F(".htm"))) return F("text/html");
else if(filename.endsWith(".html")) return F("text/html");
else if(filename.endsWith(F(".css"))) return F("text/css");
else if(filename.endsWith(F(".js"))) return F("application/javascript");
else if(filename.endsWith(F(".png"))) return F("image/png");
else if(filename.endsWith(F(".gif"))) return F("image/gif");
else if(filename.endsWith(F(".jpg"))) return F("image/jpeg");
else if(filename.endsWith(F(".ico"))) return F("image/x-icon");
else if(filename.endsWith(F(".xml"))) return F("text/xml");
else if(filename.endsWith(F(".pdf"))) return F("application/x-pdf");
else if(filename.endsWith(F(".zip"))) return F("application/x-zip");
else if(filename.endsWith(F(".gz"))) return F("application/x-gzip");
return F("text/plain");
}
bool handleFileRead(String path) { // send the right file to the client (if it exists)
Serial.print("handleFileRead: " + path);
if (path.endsWith("/")) path += "index.html"; // If a folder is requested, send the index file
String contentType = getContentType(path); // Get the MIME type
String pathWithGz = path + ".gz";
if (SPIFFS.exists(pathWithGz) || SPIFFS.exists(path)) { // If the file exists, either as a compressed archive, or normal
if (SPIFFS.exists(pathWithGz)) // If there's a compressed version available
path += ".gz"; // Use the compressed verion
File file = SPIFFS.open(path, "r"); // Open the file
size_t sent = server.streamFile(file, contentType); // Send it to the client
file.close(); // Close the file again
Serial.println(String("\tSent file: ") + path);
return true;
}
Serial.println(String("\tFile Not Found: ") + path); // If the file doesn't exist, return false
return false;
}
// handle the file uploads
bool handleFileUpload(){
HTTPUpload& upload = server.upload();
// Check if file seems valid nextion tft file
if(!upload.filename.endsWith(F(".tft"))){
server.send(500, F("text/plain"), F("ONLY TFT FILES ALLOWED\n"));
return false;
}
if(!result){
// Redirect the client to the failure page
server.sendHeader(F("Location"),"/failure.html?reason=" + nextion.statusMessage);
server.send(303);
return false;
}
if(upload.status == UPLOAD_FILE_START){
Serial.println(F("\nFile received. Update Nextion..."));
// Prepare the Nextion display by seting up serial and telling it the file size to expect
result = nextion.prepareUpload(fileSize);
if(result){
Serial.print(F("Start upload. File size is: "));
Serial.print(fileSize);
Serial.println(F(" bytes"));
}else{
Serial.println(nextion.statusMessage + "\n");
return false;
}
}else if(upload.status == UPLOAD_FILE_WRITE){
// Write the received bytes to the nextion
result = nextion.upload(upload.buf, upload.currentSize);
if(result){
Serial.print(F("."));
}else{
Serial.println(nextion.statusMessage + "\n");
return false;
}
}else if(upload.status == UPLOAD_FILE_END){
// End the serial connection to the Nextion and softrest it
nextion.end();
Serial.println("");
//Serial.println(nextion.statusMessage);
return true;
}
}
void setup(void){
Serial.begin(115200);
Serial.println(F("\nRunning UploadServer Example\n"));
Serial.setDebugOutput(false);
if(!SPIFFS.begin()){
Serial.println(F("An Error has occurred while mounting SPIFFS"));
Serial.println(F("Did you upload the data directory that came with this example?"));
return;
}
//WIFI INIT
Serial.printf("Connecting to %s\n", ssid);
if (String(WiFi.SSID()) != String(ssid)) {
WiFi.begin(ssid, password);
}
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.print(F("\nConnected! IP address: "));
Serial.println(WiFi.localIP());
MDNS.begin(host);
Serial.print(F("http://"));
Serial.print(host);
Serial.println(F(".local"));
//SERVER INIT
server.on("/", HTTP_POST, [](){
Serial.println(F("Succesfully updated Nextion!\n"));
// Redirect the client to the success page after handeling the file upload
server.sendHeader(F("Location"),F("/success.html"));
server.send(303);
return true;
},
// Receive and save the file
handleFileUpload
);
// receive fileSize once a file is selected (Workaround as the file content-length is of by +/- 200 bytes. Known issue: https://github.com/esp8266/Arduino/issues/3787)
server.on("/fs", HTTP_POST, [](){
fileSize = server.arg(F("fileSize")).toInt();
server.send(200, F("text/plain"), "");
});
// called when the url is not defined here
// use it to load content from SPIFFS
server.onNotFound([](){
if(!handleFileRead(server.uri()))
server.send(404, F("text/plain"), F("FileNotFound"));
});
server.begin();
Serial.println(F("\nHTTP server started"));
}
void loop(void){
server.handleClient();
} -
Tomika86
senior tag
Sziasztok!
Ha valakinek kellene:
[link]Nextion kijelzőre .tft fájl feltöltése ESP32-n keresztül, WIFI kapcsolattal
-
Tomika86
senior tag
válasz
Tomika86
#17908
üzenetére
Na így jó:
#define Gyujtas 15
#define Led 2
unsigned long aktualis_millis;
unsigned long mentett_millis;
unsigned long ido = 20000;
unsigned long kulonbseg_millis;
byte ido_futott;
byte beleptunk;
void setup() {
pinMode(Gyujtas, INPUT);
pinMode(Led, OUTPUT);
Serial.begin(115200);
}
void loop() {
if ((digitalRead(Gyujtas) == 1) || beleptunk) {
kikapcsolas();
}
Serial.println("Fut a program");
delay(1000);
}
void kikapcsolas() {
beleptunk = 1;
if(ido_futott == 0) {
mentett_millis = millis();
ido_futott = 1;
}
kulonbseg_millis = millis() - mentett_millis;
if (kulonbseg_millis <= ido) {
if (digitalRead(Gyujtas) == 0) {
ido_futott = 0;
beleptunk = 0;
Serial.println("Kilepes");
return;
}
Serial.print("Ido kulonbseg: ");
Serial.println(kulonbseg_millis);
Serial.println("Idozitoben vagyunk");
}
else {
Serial.println("Esp leallas itt");
// deep_sleep();
digitalWrite(Led, HIGH);
}
} -
Tomika86
senior tag
Lehet az elején rosszul fogalmaztam, bocsi.
Ez lenne a lényege:
A gomb a gyújtás jel(itt a szimulátorban) . Most úgy van a kijelzőm hogy leveszem a gyújtást akkor átáll a kijelző a bejelentkező oldalra, elmentem az eepromba amit kell és kikapcsolom a kimeneteket.
Itt jön a delay, vár 20secet, majd altatom a kijelzőt és az esp32őt is.Minden jó vele, de ha leveszed a gyújtást, majd vissza egyből akkor a delaynél megáll, és meg kell várni. Utána ébred csak fel újra, ha elaludt.
Ha a kikapcsolas függvénybe belépek mindig kezdenie kellene a 20secnek, ha kilépek belőle akkor nullázódik.
A függvényből kilépés a returnal lenne -
Janos250
őstag
válasz
Tomika86
#17890
üzenetére
Hát, én külön task-be tenném a két külön feladatot, ami globális változókon keresztül tartaná egymással a kapcsolatot. Ha nincs tennivalója az adott task-nek, azonnal adja is tovább a vezérlést, így nem foglal le lényeges időt. Ha mellesleg még másik magra is teszed, akkor meg végképp nem!
Ha az ESP32 mellett döntöttél, érdemes megtanulni, amit nyújt a két mag, és a C++11 ! Vagy még a FreeRTOS, ha sok az időd, de ennek zöme a C++ -al megoldható. -
válasz
Tomika86
#17896
üzenetére
Ez eddig nem volt feladat

#define Gomb 15
#define Led 2
unsigned long aktualis_millis;
unsigned long mentett_millis;
unsigned long ido = 20000;
unsigned long kulonbseg_millis;
void setup() {
pinMode(Gomb, INPUT);
pinMode(Led, OUTPUT);
Serial.begin(115200);
}
void loop() {
if (!digitalRead(Gomb)) {
mentett_millis = millis();
kikapcsolas();
}
Serial.println("Fut a program");
delay(1000);
}
void kikapcsolas() {
kulonbseg_millis = millis() - mentett_millis;
if (kulonbseg_millis <= ido) {
if (digitalRead(Gomb)) {
Serial.println("Visszalep");
return;
}
Serial.println(kulonbseg_millis);
Serial.println("Leallas idozitoben");
}
else {
Serial.println("Esp leall itt");
// deep sleep
}
} -
Tomika86
senior tag
Eddig jutottam, de csak addig működik az időzítés amíg a 20sec le nem telik. Utána egyből jön a leállítás. (Wokwiban próbálom szimulálni, azért van így)
#define Gomb 15
#define Led 2
unsigned long aktualis_millis;
unsigned long mentett_millis;
unsigned long ido = 20000;
unsigned long kulonbseg_millis;
void setup() {
pinMode(Gomb, INPUT);
pinMode(Led, OUTPUT);
Serial.begin(115200);
mentett_millis = millis();
}
void loop() {
if (!digitalRead(Gomb)) {
kikapcsolas();
}
Serial.println("Fut a program");
delay(1000);
}
void kikapcsolas() {
kulonbseg_millis = millis() - mentett_millis;
if (kulonbseg_millis <= ido) {
if (digitalRead(Gomb)) {
Serial.println("Visszalep");
}
Serial.println(kulonbseg_millis);
Serial.println("Leallas idozitoben");
}
else {
Serial.println("Esp leall itt");
// deep sleep
}
} -
Tomika86
senior tag
Sziasztok
Szeretnék segítséget kérni hogy tudom megoldani a következőt:
1.Fut a programom
2. Kikapcsolok egy gpiot
3. Átváltok egy oldalra a kijelzőmön és elindul egy időzítő(10sec)
4. Ha letelt a 10sec akkor deep sleep az esp32Ez eddig 1db delayel megy, de a 10sec mindig eltelik.
Azt szeretném ha a 10sec alatt a gpio mégis bekapcsol, akkor lépjen vissza az 1.pontra, meg képernyőt is váltanom kell.
Ha újra kikapcsolom a gpiot, akkor ismét indul a 10sec.Nem jövök rá mivel tudnám megcsinálni ezt. Pedig tuti egyszerű
Köszönöm
-
Tomika86
senior tag
Sziasztok
P sorozatú intelligent nextion kijelzőt próbálta valaki 921600 bps sebességen? Ehhez a típushoz ezt írja a gyártó maxra, olcsóbbaknál 115200baudot.
Esp32 tudja ezt a 921600 bps sebességet, mi lehet a kitétel? Rövid 4-5cm a vezetékem csak.
Köszönöm
-
its_grandpa
tag
válasz
ekkold
#17853
üzenetére
És is játszottam ezzel a modullal de nekem nem volt szerencsém, a karadio nem szólal(t) meg. Az ok az első képen látható a modul alján, VS1003/VS1053, azaz AS tűréssel szerelnek (AS = ahogy sikerül). Kicsi belenyúltam az Adafruit 1053-as arduino lib-be, úgy tudtam hangot kicsikarni belőle mert "false" volt a v értéke.
uint8_t v = Adafruit_VS1053::begin();// return (v == 4); ez a 1053return (v > 2); ez ha a chip verzió minimum VS1003 =3
A lábak bekötésének publikációja az ESP-khez, végtelen örömmel töltene el
Lehet elővenném ismét a félrerakott projektet. -
ekkold
Topikgazda
válasz
vviktor1
#17855
üzenetére
Nekem 100%, hogy a kijelző miatt akadt, ugyanis ha nincs beállítva a kijelző akkor nincs akadás. A soros porton így is kitol minden adatot ami kell, erre ráakasztok majd egy Arduino nanot, vagy egy BluePill-t, és az kezelheti a kijelzőt akadás nélkül... Egyelőre csak az ESP8266-ra épülő van bedobozolva, az ESP32 verzió csak próbanyákon van kijelző, és gombok nélkül - de teljesen jól működik. Ehhez tervezek majd egy végfokot, külön MCU-t a kijelzőhöz (és a kezelőszervekhez is), és így akarom majd egybe dobozolni.Emlékeim szerint a programozó app képest törölni is a flash-t, utána biztosan lehet a nulláról kezdeni a programozást. Ha mégis megfrissíted akkor írd meg majd légyszíves, hogy jól működik-e, mert még én sem frissítettem.
-
vviktor1
aktív tag
válasz
ekkold
#17854
üzenetére
Esp32 és pcm5102 dac van, olyan kijelzővel mint alsó képeiden, működik is jól, csak néha nekem is megakad 1-1 mp-re, ezt kéne valahogy kinyomozni. A routerrel egy helyiségben van, ezért a wifit kizárnám hogy gyenge lenne neki. A mobilos appról tudok, használom is, tényleg jó. Szóval, a lényeg, 2.1 fw van fent de látom hogy van 2.3 már egy ideje, de nem merek rányomni az update-re mert valahol irták hogy valami nem kerek benne, valami kijelző bug van benne, és ha nem lesz jó nem tudom visszacsinálni, ezért kérdezem az alapra állást és onnan újra telepitést. Rádió lista természetesen elmentve. Köszi !
-
ekkold
Topikgazda
válasz
vviktor1
#17851
üzenetére
A karadiot kipróbáltam ESP8266-on, és az ESP32 változatot is. Az utóbbi kicsit gyorsabb, és nem csak az MP3 rádiók menek vele, hanem az AAC stream is. VS1053 modult még a vám mizéria előtt vettem ebay-en. Szerintem kimondottam jól szól.
Minden részletre nem emlékszem, letöltöttem hozzá mindent, felprogramoztam a leírás alapján és működött...

A karadióhoz van androidos app amivel lehet távirányítani mobilról, így akár kezelőszervek (gombok) és kijelző nélkül is működik.
A karadio32-höz próbáltam ILI9xxx kijelzőt illeszteni, működött is, csak a kijelző frissítése néha megakasztotta a hangot, így leszedtem róla, most nincs kijelzője, később majd illesztek hozzá (soros porton) egy külön MCU-val kijelzőt. Lehet, hogy csak egy sima 2x16-os LCD-t (mint az ESP32 esetében) úgy sem nézegetni, hanem hallgatni akarom.

-
Janos250
őstag
Már megint bajban vagyok ezzel az Arduino könyvtárakkal :-(
Ha ezt így mindenestül beírom:#include <C:\Arduino\arduino-1.8.19Proba01\portable\sketchbook\libraries\vfs\include\esp_vfs.h>
Akkor jó.
De nem akarom mindig a teljes elérési utat beírni. Mit írjak be, hogy megtalálja a vfs könyvtárat, annak az include könyvtárában az esp_vfs.h fájlt? -
Tankblock
aktív tag
Igen, ha csak 2*128 byte is bőven elfér UNOban is.
STM32 nem volt az eredeti felsorolásban :-)nem olyan vészes project ez....
Ha csak a fogyasztás érdekel akkor akár Sonoff POW WiFi is használhatsz, vagy bármit ami méri a dolgok fogyasztását, általában esp82XX va benne és akár TASMOTA is tudja monitorozni.....Az a kérdés hogy hol kell a segítség...
-
tibi-d
tag
Lenne egy feladat, hátha megmozgatja a fantáziátokat. Két analóg bemenet jelét kéne tárolni, és ha bármelyik értéke meghalad egy beállított szintet, vagy egy digit jel hatására el kéne menteni a trigger esemény előtti 100 és utáni 200 mintát. A mintavétel 10/s lenne. Az adatokkal együtt le kéne tárolni az esemény dátumát, időpontját, tárolás okát (szint, digit). Ha a tárolás a digit jel hatására történne, a további rögzítésre már nem lenne szükség. Ez lenne az utolsó letárolt csomag. A folyamat 24/7 üzemmódban működne. Minden elképzelést, ötletet szívesen fogadok. Jelenleg a következő modulokkal rendelkezem: Arduino UNO, Data logger shield v1.0, ESP13 shield. Köszi.
-
vegyszer
addikt
Szervusztok!
Az a kérdésem, hogy ESP32 (M5Stack) vonalon van lehetőség külső szerverre (EzData, MQTT) írni adatot, de ha egy ciklust csinálok, hogy 60 másodpercig gyűjtse az adott pin-en az on/off jeleket, majd írja ki, és olvassa vissza a szerverről a gyűjtött, akkor ez elég lassú.
Konkrétan azt nem látom, hogy hogyan kell úgy csinálni a dolgokat, hogy több ciklus is úgy menjen, hogy az egyik várakozása nem akadályozza a többit.
Pl az írás olvasás a szerverre ne akadályozza a pin olvasását.
Mert most, hogy egyben van, addig, míg vissza nem olvasta az adatot, addig nem számol... -
válasz
Dißnäëß
#17775
üzenetére
Ha már 6V trafó, ne 5V-ra konvertáld, mert 6V-ból stabilizált 5V-ot nem is igen lehet, hanem konvertáld rögtön 3,3V-ra és add neki direktben! A kettős konverzió miatt elfűtöd az összes teljesítményt. Arra vigyázz, hogy a 3,6V-ot semmilyen körülmények közt ne lépd át, mert megsül a flash chip az esp-n, használj zener diódát.
Azt sem értem, hogy bírtál belőle bármeddig is 5V-ot kivenni. Valószínűleg a trafó üresjárati feszültsége jóval 6V fölött lehet. 6V-ból a Graetz-híd maga levesz 1,2V-ot, marad 4,8V. A stab kockán is esik kb ugyanannyi, marad ~3,6V. Mire ez eljutott az ESP-ig, az jó, ha 2,4V-ot kapott. Azzal nem csoda, hogy nem indult el.

-
Dißnäëß
nagyúr
Igaz.. látszik, hogy a logikai (logikus) gondolkodás jobban Benned van. A rutin
Köszi az észrevételt, megfogadom.
- - - - - - - - - -- - - - -- - - - -- - - - -- - - - -- - - - -- - - - -Érdekeset tapasztaltam 10 perce.
Van a kis trafóm, HEStore-os Makrai nyák trafó, 6V szekunder, 4.5VA (750mA). Mögötte egy 6800-as kondi, amögött egy LM317T és a Texas Instruments szerinti bekötés, trim poti, satöbbi. Becsavarva jelenleg 5V-ra üresen. Úúú mondom de jóóó, a NodeMCU-mat ráaggatom, VIN lábán úgyis tud 4.x V-tól egészen 10V-ig fogadni (belső stabin megy át), hát ez kiváló.
Meg se moccan.
Ráakasztom a multimétert, hát úgy cibálja mint az állat a feszt.
Felcsavartam üresen maxra a potival a feszt, 8.7 körül vagy hol álltam meg (még a stabi fesz. ejtése is benne a szekunder után), ez üresen terheletlenül. Ráakasztom az ESP-t (azon meg az OLED kijelző, de ez nem osztott nem szorzott már), megint semmi. Lehúzom, várok pár mp-et pufferkondi teljen meg csurig
, oké, rákötöm, na beröffent. Szépen megy az animáció, de a multiméteren a számok csak úgy cikáznak
és csak úgy nulláról bekapcsolva nem indul. Egy szó mint száz, nagyon-nagyon-nagyon határértéken minden és meg nem álmodtam volna, hogy ez a picike nyák trafó max egy Arduino micro-hoz lesz elég (ő azonnal indul vele, 5V-ra betekerve a stabit), úgyhogy most néznem kell valami "vadabb" kistrafót
Szóval most ez van (csak Makrai 750mA-es) és azon filózok, hogy ezek közül melyiket szerezzem be: ESP8266 Wifivel, 256x64 OLED, 3 szilárdtest relé (ezek elhanyagolhatók áramban), RTC+EEPROM kombó, illetve 4-5 DS1822+ hőmérő, hát kb.
Arra gondoltam, mivel az ESP-nek van saját belső stabija, és nagyjából minden említett motyót meghajt, nemigen lesz külön áramkörre szükségem, ergo választhatok 6V szekunderest ismét, LM317T nem is kell, meg semmi.. az ebből előállított-simított DC-t úgyis lentebb veszi még a teljes csomag terhelése, a stabizást ő belül elvégzi.. de akkor lehetne mondjuk egy 1667 mA-es ?
Vagy lövök egy 12V-os rendes kis pici toroidot és abból tudom stabistul mindenestül etetni az ESP-t is, egyéb kis fogyasztókat is (3.3-on), mindent, amit akarok.
-
Janos250
őstag
válasz
gordonfreemN
#17756
üzenetére
Én a hasonló dolgokat úgy oldottam meg, hogy olyan kész mikrokontrolleres panelt tervezek rá az én panelomra, amin minden szükséges dolog rajta van. Mivel én csak ESP32-t használok praktikus ok miatt, nem teszek fel panel képet, de korábban párat már tettem fel. Ha megnézzük az Easyedán lévő megosztott panelokat, többnyire ott sincsenek a kontrollerek egyedileg ráforrasztva, hanem kész panel van beleillesztve a user panelbe.
-
válasz
Dißnäëß
#17740
üzenetére
Nézd meg, hogy mennyit tesz ki, ha egy teljesen üres sketch-et fordítasz le. Az ESP nem egészen úgy működik, mint az AVR-ek, ezen eleve elfoglal valamennyi helyet az oprendszer. Másrészt ha nem használsz filerendszert (FS), valamint úgy tudom az OTA részt is le lehet valahogy tiltani (legalábbis régebben le lehetett), akkor 4MByte felhasználható tárhellyel tudsz gazdálkodni, szemben az AVR-ek kbyte-jaival.

A lefordított program mérete nem csak a beírt sorok számától függ, hanem attól, hogy használsz-e olyan dolgot, amihez be kell fordítani valami standard (vagy 3rd party) library-t. -
Dißnäëß
nagyúr
Kedves Szakik !
Nézzétek el kezdő kérdésem, de egy igen hosszú, tényleg nagyon sok logikát, menürendszerben lépkedést szeretnék megvalósítani ESP8266-al a szobai erősítőmhöz.
Egyetlen gomb lesz előlapon, és ennek nyomkodásával fogok navigálni a menüben, illetve van hozzá egy 256x64 4-SPI OLED kijelzőcske is, amin a menüpontok, státusz, ilyesmik, mikor mi, megjelenik. Rövid nyomások, hosszú nyomások, két rövid, három rövid, ilyennel fogok operálgatni majd a menüben, meg lehet lesz egy visszaszámláló is minden egyes menüpontban a jobbfelső sarokban, ami kidobja az embert mentés és minden nélkül vissza az alapállapotba (vagy akár előző menübe, mindegy is most).
Elég lesz nekem a kódhoz - vélhetően - az ESP8266 ? Belefér vajon ?
Ugye a kis Arduino Leonardo-knál látom mindig, mennyi lett a program és néha elgondolkodom, hogy hűha, ez ilyen pici terület ?
Szóval amikor egy sima gyári Fade 15%-ot elvesz egy Micro-ból, akkor mire van esélyem egy ESP8266-al ? Itt 25%-ot eszik meg, oké, valszeg nagyobb az overhead, de úúúú
Sketch uses 263233 bytes (25%) of program storage space. Maximum is 1044464 bytes.
Global variables use 28004 bytes (34%) of dynamic memory, leaving 53916 bytes for local variables. Maximum is 81920 bytes.Arduino IDE-t használok (Debian Testing legfrissebbet, apt install -al feltoltam), szokásos ESP library, Board Manager-ben pedig Node MCU.. látjátok. (A kütyü is az, ESP-F-em van, de ez az ESP-E-től csak antenna formában tér el, azt olvastam neten, a NodeMCU pedig 1-2 plussz könnyítő elektronikával van ellátva egy sima pucér ESP-hez képest).
Beleférhetek ? Most lehet megmosolyogtok, de na.

Milyen beállításon érdemes Szerintetek dolgoznom vele ?
Most ez van, ezt kaptam, a LED-en kívül semmit nem kellett állítanom, teszi a dolgát. -
Janos250
őstag
válasz
Dißnäëß
#17712
üzenetére
Ha profi megoldást akarsz, akkor persze még a napot is dimmelhetővé kell tenned, de kérdés, akarsz-e ilyen profi, méregdrága megoldást, vagy maradsz az egyszerűbb, olcsóbb, de kevesebbet tudó megoldásnál. Ez utóbbi az Arduino! :-) Ezért (is) szeretjük! :-) Nagyon sokszor elegendő az, amit az Arduino tud! Én ennél maradnék.
Csatlakozásokra én azt csinálnám, hogy a szenzorokhoz valami kis panelka, ami vagy vezetéken, vagy WiFin kapcsolódik össze. A router hibája kiküszöbölhető az ESPNOW megoldással, mert ott nem igazi WiFi kapcsolat van, csak a WiFi hardverrel az egyes egységek MAC címmel tartják egymással a kapcsolatot, nincs pl. IP cím. (Ezt is csak elméletből tudom, még jutottam odáig, hogy kipróbáljam.) Ennél a megoldásnál az Espressif elég kevés információt tesz közzé, nem nagyon lehet vele variálni, csak azt lehet, és úgy, ahogy ők leírták. Például az ESP32-nél az egyes perifériakezelések regiszterei, és azok használata is elég jól le van írva, a WiFinél még azt sem tudjuk, melyik címtartományban van. -
Dißnäëß
nagyúr
Sziasztok Urak, szerintetek kell nekem egy mini üvegházas projektke automatizálásához a sok-sok szenzorhoz és ahhoz a pár víznyitó-záró szelephez egy marék Arduino (pl. pici Leonardo-kat tenni X kaspónként és őket szólítani meg wifin keresztül), vagy jobban járok 1db Mega-val, ami letudja mondjuk az 5V-os Arduino ökoszisztémát és egy ESP-vel vagy akár Pi-vel, amivel meg a 3.3V-os motyókat tudom vezérelgetni. Ezek nyilván összebeszélnének, ...
Ti hogy csinálnátok legegyszerűbben ? És bíznátok a wifiben amúgy ? Nyilván ha lehal, ugrott az egész, ezért gondolkodom valamiféle busz rendszeren, amiről minden cserépben lévő szenzor felrak adatot (vezetéken, vagy vezeték nélkül, de a wifivel az a gondom, hogy ha a router lehal, ugrott minden, esetleg több eszközből csinálok mesh-t, de minek bonyizzam + drága is).. szóval .. inkább valami 1-wire-re gondoltam és digitális címzésre, hogy egyetlen eszközön fizikailag csak kevés tüskét foglaljak el a vezetékes kapcsolattal és akkor erre meg mindegyik szenzort és/vagy kontroll eszközt fel tudom aggatni és digitálisan címezni, elérni.
Egyszerűre gondoljatok: pár kaspó ilyen növénynek, pár kaspó amolyannak, megint pár kaspó a harmadiknak, semmi különös. Mindegyikben lenne 1 talajnedvesség szenzor, meg kontrollálnám valami elektromosan vezérelhető szeleppel a vizet is nekik (csepegtetés valszeg, de nekem az is oké, ha kinyit, locsol X mp-ig, majd elzár).
Meg talán egy fénymérő még. Ennyi.
Nem akarom hülyére bonyizni, de jó kis önmenedzselő valamit vizionálok.
Van egy régi öreg Pi1B-m, befoghatnám, meg ilyenekre lövök (úristen... mikor legutoljára vettem, még $1.5 volt darabja, de apám 0.99-ért is kapott).
A vezeték híve vagyok, lehet nem wifiznék, de érdekelne a véleményetek.
A "mindent látó és intéző" központi agy ideája (Pi) és a kaspónkénti Arduino, némileg oda letolt logikák közt billegek. Ha a Pi összekakilja magát (megeshet, mint mindennel), mivel ide van hozva programba a vezérlés az utolsó mindenségig is, az egész kisház lehalna. Ha pedig a kaspónként elhelyezett kis Arduino-kba ki van ez téve, vagy legalábbis a vezérlési logika egy darabja, akkor viszonylag autonóm módon is elmennek ezek, akkor is, ha a központi agy, a Pi még létezik és irányítja őket.
Én arra gondoltam, hogy kaspónként egy ilyen kis Arduino, és a Pi arra lehetne jó, hogy egyetlen paraméter-változást, parancsot, akármit, egyszerre juttassak el mindegyik - önállóan autonóm - Arduino-hoz.
Túlbonyizom, lehet, de szeretnék egy optimális logikát/setup-ot kitalálni.
Ha van kedvetek - nem akarok untatni senkit ilyenekkel - szívesen látnék pár gondolatot, bármi jöhet, tapasztaltabbaktól.
-
fpeter84
senior tag
Sziasztok!
Arduino-ban van e elegánsabb megoldás a következő mértékegységváltás-kerekítés feladatra?float tmp = 2284.9;
Serial.println(String(tmp));
tmp = round(round(tmp)/10)/100;
Serial.println(String(tmp,2));
mbar-t szeretnék átváltani bar-ra és 2 tizedes jeggyel megjeleníteni egy kijelzőn... Egyrészt nem tökéletes a fenti, mert a példában szereplő 2284.9 mbar a kerekítés szabályai szerint 2.28 bar lenne, a kód meg 2.29-re hozza ki - ennyi hiba tulképp még beleférne nekem és ESP32-n fut úgyhogy pazarolni is van miből, de hátha tudtok rá jobb megoldást ajánlani...
-
Janos250
őstag
Nem tudom mennyire ismert, én most vettem csak észre, és egész jó leírás az ESP32-Arduino témában.
https://docs.espressif.com/_/downloads/arduino-esp32/en/latest/pdf/ -
vegyszer
addikt
válasz
Harcipocok84
#17644
üzenetére
Nekem "csak" két-két esp32, illetve esp8266, és egy uno pihen...
Más:
A minap az amazon oldalána leltem egy jó "kis" könyvet:
Arduino Cookbook: Recipes to Begin, Expand, and Enhance Your Projects 3rd EditionEsetleg az merült fel bennem, hogy magyar nyelvű könyv van egyáltalán a témában?
-
válasz
its_grandpa
#17627
üzenetére
Ha weben szövegként megjelenik valami, én simán lekérem az oldalt, és a forrásban regex-el megkeresem a számomra érdekes részt.
xbox360-hoz van ilyen ventillátoros bázis, USB-vel csatlakoztatható, de csak ki-be állás van rajta. Beletettem egy esp-t és az xbox IP-jéről az rgh dashről lekérem a hőmérsékleteket, az alapján pedig pwm-el hajtom a ventit. A feladat más, de a logkia ugyanaz (csak nálad a pwm görbe egy ugrás lesz 0-100 között)
-
vegyszer
addikt
Úgy alakult, hogy új hobbi projektet kell indítanom a meló helyen.
Egy soron lejövő dobozokat kellene megszámolni. Vagyis inkább a nem termelő időt kellene detektálni.
Valami olyan metódust szeretnék kreálni (esp32 alapon), ami ha megy el előtte termék, logol egy időt (amit valami net idő szervertől kér le előtte), ha nem megy, akkor is. Az adatokat meg valami felhőben menti ki.
Azaz csak a fázis váltások érdekelnek. Az, hogy 70 percig egyazon státusz van, nem érdekel. Csak az, hogy ha megy a gép, akkor mennyi a doboz/perc mutató, és az, hogy mikor megy, mikor nem a gép.Találtam egy infra közelségérzékelőt, ami megtetszett.
OMCH M12 Laser Diffuse Photoelectric Sensor 15cm Adjustable min spot 0.5mm detection range 20-300mm HG-J12-D15 PNP NPN 3-wireHa jól értem, akkor ez a kettő típus (NPN, PNP közül az NPN az, amihez nem kell szintilesztés, de az, hogy NO, vagy az NC jelölés mit jelent, nem sikerült elsőre megérteni.
Ennek a megfejtésében esetleg tudnátok segíteni?A működése ezeknek a kapcsolóknak jól értem, hogy kicsit olyan, mint az enkódereké. Csak itt egy csatornán jön ki egy O/I jel, és így nem is kell nézni, hogy merre forog, hisz csak egy jel van.
Volt esetleg hasonló már másnál?
-
Tomika86
senior tag
Sziasztok
Esp32-S3 valaki programozta?
Köszönöm
-
its_grandpa
tag
Egy gondolat kísérlet de az is lehet, hogy megtaláltam a piaci rést

Tegyük fel villannyal fűtök, nincs gázom. Idáig be volt állítva 21 C° de változott a világ.
Van napelem a tetőn, az inverter adatait azonban csak felhőben érem el.
A villany fűtő paneleket átállítom ~ 23-24 fokra - a ház jól szigetelt - de csak akkor működnének ha a napelemek termelése elegendő ehhez, nem akarok a XYZ művektől energiát venni.
Milyen fejlesztéssel lehetne ezt szerintetek egyszerűen, üzembiztosan megoldani ?
Már látom a válaszokat, ESP32 wifi a felhőhöz, Sonoff kapcsoló a fűtőpanelre, azonban a felhő elérése web-es programozást is igényel. PHP ?, JS ? ami (nekem) nem triviális.
Abba az irányba most ne menjünk el, hogy ha november 27.-én nem süt a nap akkor majd 16 C° -ra megyek haza, még mindig jobb min a 6 számjegyű villanyszámla.
(ebből lehet tényleg érdemes lenne terméket csinálni ? ) -
Janos250
őstag
Ezért írtam, hogy "Ha konvertálni kell, arra bármelyik "Arduino" megfelel, a legolcsóbb is."
De megírhatod assemblyben is, valami tinyre![;]](//cdn.rios.hu/dl/s/v1.gif)
Én mindenre ESP32-t használok, nem keverem :-)
Minden más a padláson, vidéken. :-)
Egyébként soha nem gyártottam HID-et, lehet sokkal egyszerűbben is megoldható, hátha van valakinek ötlete.
BT?
Na, én azt ne ismerem :-(
Ha ismered, írd le neki.
"Arduino pro micro" Hogy lesz belőle USB HID? -
Janos250
őstag
Az Ázsiacenteres ESP32 rendelés:
Május 10-én érkezett az email:******** referenciaszámú rendelésed kiszállításra átadtuk. Szállítási idő 7-50 munkanap a posta függvényében.
Írtam levelet, hogy mikor kapom meg:
Kedves Vásárló,
Levelét rendszerünk iktatta, Munkatársaink 1-9 munkanapon belül válaszolni fognak.
Szállítási idő 7-75 munkanap a nemzetközi posta függvényében.
Előfordulhat, hogy több termék rendelése esetén különböző raktárakból postázzuk, így több levélben érkezhetnek! A szállítási időt a szállításra adástól kell számolni.
Szíves türelmét kérjük.
Üdvözlettel
AzsiacenterHát............... !
-
Janos250
őstag
Mindenki más típust fog javasolni, én (természetesen
) az ESP32-t preferálom, bár ilyen célra még soha nem használtam.
Egyébként kaphatók USD HID panelkák, amik ezt csinálják, de még soha nem próbáltam.
http://wch-ic.com/products/CH9328.html
https://www.aliexpress.com/item/4000262510300.html
https://www.aliexpress.com/item/32894865422.html
Biztosan meg lehet persze szoftverből is oldani, hátha valaki azt is ismeri.Ha konvertálni kell, arra bármelyik "Arduino" megfelel, a legolcsóbb is.
-
válasz
Tomika86
#17594
üzenetére
ha bekapcsolom akkor 1 perc lesz maximum a belépésre és frissítésre, utána kikapcsolom a wifit az esp32-őn, a server handle pedig nem fog futni.
A wifire jelszóval lehet kapcsolódni.
Ez így elég lehet, senki se szeretné, ha egy autó egyszer csak furán kezdene viselkedni, mert vki OTA rátöltött valami random kódot.
A böngészőben is belépés van.
Na én erre írtam, hogy olyan, mintha nem is lenne. Akár ki is veheted, felesleges. Bárki megnézi a html forrást, benne van a jelszó.
-
válasz
Tomika86
#17592
üzenetére
azért írtad mert odaírtam a kommentben?
Nem tudom milyen komment, csak azt láttam a kódban, hogy a html forrásban benne van a jelszó, ez így nudli. Ha a wifi jelszavas, az OK lehet.
Ha soros portra csatlakoznak akkor letölthető a hexa kód az espről?
Visszafejthető bármivel a kód?Soros portról szinte biztos, hogy nem, de szerintem van mód a kód letöltésére. Nem értek annyira az ESP-hez.
-
Tomika86
senior tag
Vagy azért írtad mert odaírtam a kommentben?
Az autós kijelzőmre tettem a kódot, ha bekapcsolom akkor 1 perc lesz maximum a belépésre és frissítésre, utána kikapcsolom a wifit az esp32-őn, a server handle pedig nem fog futni.
A wifire jelszóval lehet kapcsolódni.
A böngészőben is belépés van.Ez így ehhez a feladathoz mennyire védett? Mit tudnak tenni ha valaki rákapcsolódik? Ha soros portra csatlakoznak akkor letölthető a hexa kód az espről?
Visszafejthető bármivel a kód? -
válasz
Tomika86
#17589
üzenetére
"Akkor az a kérdés hogy mi az a fájl? A js"
A jQuery-re gondolsz? Az egy internetes svájcibicska, megkönnyíti a webprogramozók munkáját.

Az eredeti kérdésedre válaszolva:
"Sikerült egy normálisan kinéző böngészős OTA-t találni, de soros porton dob egy hibát amikor böngészőben megnyílik a felület.
Ezt dobja: [E][WebServer.cpp:633] _handleRequest(): request handler not foundHogy tudom ezt megtalálni miért dobja?"
Próbáld meg azt, hogy egy "/" jelet teszel a cím végére, mikor lekéred az oldalt az esp-ről:
http://192.168.1.100/De ha jót akarsz, módosítás nélkül ne használd ezt a kódot, legalábbis fontos helyen ne, mert elég durva biztonsági hiba van benne (jelszó a forráskódban, kb mintha cellux-szal a bejárati ajtóra ragasztanád a kulcsot
). -
Tomika86
senior tag
Sziasztok!
Sikerült egy normálisan kinéző böngészős OTA-t találni, de soros porton dob egy hibát amikor böngészőben megnyílik a felület.
Ezt dobja: [E][WebServer.cpp:633] _handleRequest(): request handler not foundHogy tudom ezt megtalálni miért dobja?
String style =
"<style>#file-input,input{width:100%;height:44px;border-radius:4px;margin:10px auto;font-size:15px}"
"input{background:#f1f1f1;border:0;padding:0 15px}body{background:#3498db;font-family:sans-serif;font-size:14px;color:#777}"
"#file-input{padding:0;border:1px solid #ddd;line-height:44px;text-align:left;display:block;cursor:pointer}"
"#bar,#prgbar{background-color:#f1f1f1;border-radius:10px}#bar{background-color:#3498db;width:0%;height:10px}"
"form{background:#fff;max-width:258px;margin:75px auto;padding:30px;border-radius:5px;text-align:center}"
".btn{background:#3498db;color:#fff;cursor:pointer}</style>";
// Bejelentkező oldal Felhasználói név: admin Jelszó: esp32
String loginIndex =
"<form name=loginForm>"
"<h1>ESP32 Login</h1>"
"<input name=userid placeholder='User ID'> "
"<input name=pwd placeholder=Password type=Password> "
"<input type=submit onclick=check(this.form) class=btn value=Login></form>"
"<script>"
"function check(form) {"
"if(form.userid.value=='admin' && form.pwd.value=='esp32')" // webserveren bejelentkezés, Felhasználói név: admin Jelszó: esp32
"{window.open('/serverIndex')}"
"else"
"{alert('Error Password or Username')}"
"}"
"</script>" +
style;
// Server Index Page
String serverIndex =
"<script src='/jquery.min.js'></script>"
"<form method='POST' action='#' enctype='multipart/form-data' id='upload_form'>"
"<input type='file' name='update' id='file' onchange='sub(this)' style=display:none>"
"<label id='file-input' for='file'> Choose file...</label>"
"<input type='submit' class=btn value='Update'>"
"<br><br>"
"<div id='prg'></div>"
"<br><div id='prgbar'><div id='bar'></div></div><br></form>"
"<script>"
"function sub(obj){"
"var fileName = obj.value.split('\\\\');"
"document.getElementById('file-input').innerHTML = ' '+ fileName[fileName.length-1];"
"};"
"$('form').submit(function(e){"
"e.preventDefault();"
"var form = $('#upload_form')[0];"
"var data = new FormData(form);"
"$.ajax({"
"url: '/update',"
"type: 'POST',"
"data: data,"
"contentType: false,"
"processData:false,"
"xhr: function() {"
"var xhr = new window.XMLHttpRequest();"
"xhr.upload.addEventListener('progress', function(evt) {"
"if (evt.lengthComputable) {"
"var per = evt.loaded / evt.total;"
"$('#prg').html('progress: ' + Math.round(per*100) + '%');"
"$('#bar').css('width',Math.round(per*100) + '%');"
"}"
"}, false);"
"return xhr;"
"},"
"success:function(d, s) {"
"console.log('success!') "
"},"
"error: function (a, b, c) {"
"}"
"});"
"});"
"</script>" +
style;illetve setup:
// use mdns for host name resolution
if (!MDNS.begin(host)) { // http://esp32.local
Serial.println("Error setting up MDNS responder!");
while (1) {
delay(1000);
}
}
Serial.println("mDNS responder started");
// return javascript jquery
server.on("/jquery.min.js", HTTP_GET, onJavaScript);
// return index page which is stored in serverIndex
server.on("/", HTTP_GET, []()
{
server.sendHeader("Connection", "close");
server.send(200, "text/html", loginIndex); });
server.on("/serverIndex", HTTP_GET, []()
{
server.sendHeader("Connection", "close");
server.send(200, "text/html", serverIndex); });
// handling uploading firmware file
server.on(
"/update", HTTP_POST, []()
{
server.sendHeader("Connection", "close");
server.send(200, "text/plain", (Update.hasError()) ? "FAIL" : "OK");
ESP.restart(); },
[]()
{
HTTPUpload &upload = server.upload();
if (upload.status == UPLOAD_FILE_START) {
Serial.printf("Update: %s\n", upload.filename.c_str());
if (!Update.begin(UPDATE_SIZE_UNKNOWN)) { // start with max available size
Update.printError(Serial);
}
}
else if (upload.status == UPLOAD_FILE_WRITE) { // flashing firmware to ESP
if (Update.write(upload.buf, upload.currentSize) != upload.currentSize) {
Update.printError(Serial);
}
}
else if (upload.status == UPLOAD_FILE_END) {
if (Update.end(true)) { // true to set the size to the current progress
Serial.printf("Update Success: %u\nRebooting...\n", upload.totalSize);
}
else {
Update.printError(Serial);
}
}
});
server.begin();Köszönöm!
-
Tomika86
senior tag
válasz
Janos250
#17552
üzenetére
Szia!
Te nagy ESP32 fun vagy, tudsz OTA-ban segíteni?
Létezik olyan, hogy webserveren lehet feltölteni a legenerált bin fájlt és ugyan ez tudja azt is hogy pl VS Code platformio alol a felöltés is wifin megy, de nem kell kiválasztanom fájlt, hanem wifin megy a feltöltés.Köszönöm!
-
Janos250
őstag
válasz
polgcsabi
#17551
üzenetére
Ezt az ethernet csatit nem ismerem, nem is tudom kipróbálni, nem akarok hülyeséget írni.
Ha esetleg ESP32-n tennéd, akkor pontos választ tudnék adni.
A megoldás lényege:
A WEB szerverek - már amit én ismerek - megadják neked egy karakter tömbben, amit a 192.168.1.139/ után írtál, és úgy kezeled, ahogy akarod, ez már csak kézügyesség kérdése. De csinálhatsz űrlapot, vagy valami hasonló bevitelt is. -
vegyszer
addikt
Szervusztok!
Had osszak meg veletek némi tapasztalatot az M5stack kütyüivel való szopórorrelezésem kapcsán.
Kezdjük az elején, nincs saját PC-m, se laptopom, amit használni úgy tudnák, hogy a család többi tagját ne akasszam meg a normál életvitelében. Az asztali PC-men nincs monitor, csak a család egyetlen tévéje. Így a melóban holt időben a portable arduinoval "játszok".
A bosszantó az volt, hogy egy rakat kód lelkesen lefutott az únón, de az M5 kütyük az istenért se akartak kódot fogadni. sok kísérlet után találtam egy posztot, miszerint a portable arduinó ha túl hosszú nevű könyvtárban van, hajlamos fordítási hibával kifagyni. nekem is ez történt. az egész mappát a C:\TEMP mappába téve megtáltosodott az eszköz parkom. Mindenre is tudtam végre kódot tölteni nem csak az UiFlow-on keresztül.Viszont egy projekthez az elsődlegesen kiszemelt eszköz (M5Stamp-C3) hibára futott folyamatosan, míg a többi, (M5Atom, M5Sick C plus) gond nélkül magára töltötte ugyanazt a kódot. Ami kb annyiból állt, hogy a két enkóder elfordulás-adatait olvassa ki.
Kiderült, hogy azon túl, hogy nincs elegendő időm a dologra, egy fontos "alkatrész" hiányzik az ESP32 C3 processzorokból, ami a specifikáció szerint ugyan benne van, de mint kiderült, itt a speci a hibás, nem az eszköz.

Arduino: 1.8.16 (Windows 10), Alaplap:"STAMP-C3, Disabled, Huge APP (3MB No OTA/1MB SPIFFS), 160MHz (WiFi), QIO, 80MHz, 4MB (32Mb), 921600, None"
C:\TEMP\App\arduino-1.8.16\portable\sketchbook\libraries\ESP32Encoder\src\ESP32Encoder.cpp:9:10: fatal error: soc/pcnt_struct.h: No such file or directory
#include <soc/pcnt_struct.h>
...Ez a hibaüzenet azt magyarázza, hogy a Pulse Counter egység/modul/fícsör nem része a STAMP-C3-nak.

Most annak kell így utána néznem, hogy az első hirtelen felindulásból vásárolt M5stamp pico (amihez persze nem vettem programozót) hogyan programozható az úno segedelmével, mert egyszer láttam erről videót, de most, hogy kellene, persze nem lelem.

Addig megvan, hogy
GND->GND
3V3->3V3
TX->RX
RX->TX
EN->EN
G0->GND
De hogy ez így hogy fog fleshelődni, mit kell még beállítani, na az nincs meg...
Ahogy az sincs, hogy az únó agyát jelentő IC-t ki kell e eközben venni.Ebben tudtok valami támpontot adni? Más nak is kellett már usb csatlakozó nélküli eszközt így, "szélv módban" programoznia?
-
válasz
Tomika86
#17509
üzenetére
Szokás, igen. Az AVR automatikusan tiltja is a további megszakításokat (interrupt enabled bit törlése), talán az ESP is, de ennek utána kell járni. Azért kell a megszakítás rutinba a lehető legrövidebb kódot tenni, hogy minél kisebb valószínűséggel maradjon ki miatta egy másik megszakítás.
-
PeterPH
senior tag
válasz
Janos46
#17505
üzenetére
Gyárilag nem ismeri az ESP8266-ot, hozzá kell adni.
-
Janos46
tag
Sziasztok.
Hosszú idő után ismét felraktam az Arduino 1.8.17-et. Nem tudom az ESP-t indítani, a listában csak Arduinok vannak, pedig a További Alaplap-kezelő URL-ek be van rakva. Mi lehet a gond? -
vegyszer
addikt
Szervusztok!
Ebbe a hibába futottam bele
M5Stamp_C3 eszközöm van, de ami fura, hogy ugyanazon kód az M5StickCPlus-ra rendben fordulTöbbszörös könyvtárak találhatók ehhez: "WiFi.h"
Használt: C:\T\T\App\arduino-1.8.16\portable\packages\m5stack\hardware\esp32\2.0.3\libraries\WiFi
Nem használt: C:\T\T\App\arduino-1.8.16\libraries\WiFiEzt hogyan lehetne korrigállni?
-
X_C
tag
Sziasztok,
Nem tudom jó topikot választottam-e a kérdésemhez, de hátha valaki kapásból tudni fogja itt a megoldást.Adott ez a videó, amin egy esp32-t és egy MPU6050 modult és pár apróságot felhasználva készít a srác egy folyamatos sűrűségmérőt. A programozáshoz nem sok közöm van, viszont sört főzni szeretek szóval gondoltam megpróbálom elkészíteni ezt a kis kütyüt.
Aliexpressről érkeztek a következők:
lolin32
mpu6050A forrasztás szerintem gond nélkül ment.
Viszont amikor a leírásban szereplő drive linkről letöltött fájlokkal szerettem volna flash-elni az eszközt, a lenti képeken látható hibára futott a folyamat.
Próbáltam röbbféle adatkábellel, többféle usb portba dugva, kevés sikerrel. Elvileg a driverek is fent vannak a gépen amit a leírásban lévő cikkben találtam.Van valakinek esetleg ötlete, hogy mi lehet a probléma?
-
vegyszer
addikt
Szervusztok!
Valahogy nekem valami nem kerek.
Adott egy PC, amin az arduino uno-val használva a kódokat rendben feltudja tölteni az eszközre.
Jött a családba egy M5StackC Plus, és egy M5 Atom Lite is.
Érdekes módon az arduino IDE segedelmével nem sikerül semmilyen móson a legalapabb kódolat se feltölteni rájuk. Ellenben UiFlow alól igen jól kezelhetőek, akár neten keresztül is tudtam rájuk új kódot heggeszteni.Persze a https://m5stack.oss-cn-shenzhen.aliyuncs.com/resource/arduino/package_m5stack_index.json
sorral kiegészítettem az alaplak kezelőt, és fel is tettem az M5stack pakkot. Ennek ellenére mégis ilen hibaüzenetet dob a fordító:Arduino: 1.8.16 (Windows 10), Alaplap:"M5Stack-ATOM, Default, 240MHz (WiFi/BT), 1500000, None"
In file included from c:\users\user\documents\x\m\arduinoportable_2\app\arduino-1.8.16\portable\packages\m5stack\tools\xtensa-esp32-elf-gcc\gcc8_4_0-esp-2021r2-patch3\xtensa-esp32-elf\include\c++\8.4.0\stdlib.h:36,
from C:\Users\user\Documents\x\M\ArduinoPortable_2\App\arduino-1.8.16\portable\packages\m5stack\hardware\esp32\2.0.3/tools/sdk/esp32/include/newlib/platform_include/assert.h:21,
from c:\users\user\documents\x\m\arduinoportable_2\app\arduino-1.8.16\portable\packages\m5stack\tools\xtensa-esp32-elf-gcc\gcc8_4_0-esp-2021r2-patch3\xtensa-esp32-elf\sys-include\sys\reent.h:503,
from C:\Users\user\Documents\x\M\ArduinoPortable_2\App\arduino-1.8.16\portable\packages\m5stack\hardware\esp32\2.0.3/tools/sdk/esp32/include/newlib/platform_include/sys/reent.h:17,
from c:\users\user\documents\x\m\arduinoportable_2\app\arduino-1.8.16\portable\packages\m5stack\tools\xtensa-esp32-elf-gcc\gcc8_4_0-esp-2021r2-patch3\xtensa-esp32-elf\sys-include\stdio.h:60,
from C:\Users\user\Documents\x\M\ArduinoPortable_2\App\arduino-1.8.16\portable\packages\m5stack\hardware\esp32\2.0.3\cores\esp32/Arduino.h:27,
from sketch\BUTTON.ino.cpp:1:
c:\users\user\documents\x\m\arduinoportable_2\app\arduino-1.8.16\portable\packages\m5stack\tools\xtensa-esp32-elf-gcc\gcc8_4_0-esp-2021r2-patch3\xtensa-esp32-elf\include\c++\8.4.0\cstdlib:41:10: fatal error: bits/c++config.h: No such file or directory
#include <bits/c++config.h>
]^~~~~~~~~~~~~~~~~~
compilation terminated.
exit status 1
Hiba a(z) M5Stack-ATOM alaplapra fordításra.
Ennek a jelentésnek több információja lehetne
a "Bővebb kimenet mutatása fordításkor"
opció engedélyezésével a Fájl -> Beállítások-ban.Mit cseszek el? Mit kell(ene) modosítanom?
-
Béééla
őstag
válasz
tonermagus
#17428
üzenetére
Az ESP-k nem jönnek gyárilag flashhel (a panelokra tesznek, ez max akkor érint ha saját nyákot tervezel a nyers kontrollerrel).
Vagy az EEPROM-ot hiányolod, modern mikrokontrollerekben mar csak flash van, amit akár írhatsz is. Eszköztől függően akár el is különítenek ilyen perzisztens user adat számára szánt flasht, nehogy elcímezd és felülírd a progid.
Kell az StM-ekben is ilyen tár. -
Tankblock
aktív tag
válasz
tonermagus
#17418
üzenetére
Szia,
egyet tudok mondani, hogy chiphiány van így mindennek felfele megy az ára.
ESP meg egyre több okos kütyübe teszik, így a kereslet megy felfele....Vannak kisebb ESP32 devboardok amin csak max USB to Serial van meg 2x 2 sor tüske.
Ami nekem van belőle az 49*47 mm, de szerintem van kisebb is...[link] valami ilyesmi, sajna az oldalon nincs fennt a fizikai méretei. Ezen úgy is lehet olcsósítani, hogy magadnak tervezel egy boardot....
De találtam másikat is : [link] 31 x 39 mm
-
tonermagus
aktív tag
válasz
Janos250
#17420
üzenetére
STM32-ről ha jól emlékszem azt olvastam hogy nincs Flash memória benne. Legalábbis a Blue Pill-en. Nekem pedig szükségem van memóriára. Nem kell hatalmas nagy tárterület, de azért 15 db Float típusú változó értékét szeretném eltárolni.
Jelenleg a Mega 2560 Pro 7.000 Ft környékén mozog, míg egy ESP32 2.400 Ft körül. Ez már szignifikáns különbség, hiszen így majdnem a felére csökken az eszköz bekerülési költsége. -
Janos250
őstag
válasz
tonermagus
#17418
üzenetére
Helló!
Ha csak az anyagiak miatt akarsz átállni, nem biztos, hogy túl jó ötlet.
Ahogy írtam is, az 1000 Ft körüli ár irreálisan alacsony. Általában a legolcsóbb lehetőségek kettőezer+ néhány száz Ft. Ezek a reális árak. Hogy mi hogyan fog változni, arra én nem merek jósolni.
A nagy tömegben eladott verziók két méretűek. Van egy kisebb, és egy nagyobb. Mindkettőn rajta van az antenna is ebben a méretben.
A kisebb:
https://raw.githubusercontent.com/Nicholas3388/LuaNode/master/images/ESP32_dimension.pngA kívánalmaid szerint lehet jobban jársz egy STM32-vel:
https://www.aliexpress.com/item/1005003112693578.html
Én régebben, mikor használtam őket, még 100 Ft alatti áron vettem, talán most is van még olcsóbb.
Van Alin olcsóbbnak tűnő is:
https://www.aliexpress.com/item/1005003753891882.html
nem teljesen világos, mi a különbség az eladó által felsoroltak között, hogy kétszeres árkülönbözet is van.
Vagy például ez:
https://www.aliexpress.com/item/1005002950458460.htmlVagy megveszed csak az ESP32 SMD "kockát", és azt rakod fel, az árban elég jó.
-
tonermagus
aktív tag
Sziasztok!
Az elszálló Atmel chip árak miatt gondolkodom rajta, hogy kukázom az Arduino Mega 2560 Pro-t, és lecserélem egy ESP32-re, mert egy Arduino árából 3 ESP32 kijön.Azért az nem mindegy. Ezzel kapcsolatban lenne pár kérdésem:
- Elképzelhető hogy az ESP ára is emelkedni fog? Egyáltalán megéri váltásban gondolkodni? A jelenlegi Arduino tökéletesen megfelel (sőt eléggé ágyúval verébre kategória), és elég nagy macera lenne átállni, de így az előállítási költség a felére csökkenne az eszköznek.
- Tudnátok olyan ESP32 típus mondani, aminek a leghosszabb oldala is kisebb mint 5,4cm és van rajta legalább 3 UART port? Nem kell se Wifi, se bluetooth, az UART fontos csak és 1-2 PWM képes port...
Otthon van egy ESP32, a tüskéket sárga színű műanag lábak fogják össze. Na az pont hosszabb 2-3mm-el mint a mega, és nem fér be annak a helyére
-
Tomika86
senior tag
Sziasztok!
Megmértem a ciklusidőt és következőket tapasztaltam:
Főoldalon 20ms
Kapcsolós oldalon 9ms
Grafikonos oldalon 10ms
Adatbeviteli oldalon, egyiken 2ms
másikon 0,9msEzek jónak mondhatók? Vagy szerveznem kellene még a dolgokat
, mert ritka rossz.
Egy magon fut az ESP-n -
Janos250
őstag
Ismeri valaki az azsiacenter webáruházat, hogy nem fake-e?
Jelenleg elég olcsón (gyanúsan olcsón, 1051 Ft-ért) kapható náluk ESP32 fejlesztői panel. Buktam a pénzemet, vagy megkapom az árut? -
Tomika86
senior tag
Összeraktam egy módosított programot, a kijelzőt is módosítottam.
Ahol a kapcsolók alatti képek vannak, az oldalon létrehoztam va0, va1, va2 változókat. Ezeket esp32 programbetöltésnél meghatározom milyen értékűek, 0 vagy 1. Aztán elküldöm page1.va1.val=1 példáulA képernyő preinizcializálasába tettem azt hogy if(va0.val==1)
{ vis p19, 1}
Else {vis p19, 0}Csak hétfőn tudom kipróbálni.
Köszönöm a segítséget
-
Tomika86
senior tag
Szia
Jelenleg minden változó globális a kijelzőben, így csak egyszer csinálja amikor belépünk.
Igen az esp32 küldi az adatokat, úgy hogy amikor a főoldalon megnyomom a nyilat akkor már elkezdi küldeni az adatokat arra az oldal változóira amik azon az oldalon lesznek.(erre gondoltál az utolsó bekezdésben? ).
Vajon megoldható így is, hogy esp32 küldi az adatokat?Köszönöm
-
And
veterán
válasz
Tomika86
#17374
üzenetére
Már csak az a kérdés marad, hogy ezekhez ilyen célra minek egyáltalán bármilyen külső ellenállás? Az ESP32 adatlapja szerint a portok nagyobbik része fel- és lehúzásra is programozható (45 / 45 kΩ), az MCP23..-as sorozatnál pedig mind a 8 vagy 16 porton támogatott a belső pull-up (100 kΩ), ha az adatirány inputnak van állítva..
Új hozzászólás Aktív témák
- Házimozi belépő szinten
- Milyen monitort vegyek?
- Torrent meghívó kunyeráló
- Filmvilág
- A fával keres kapcsolatot a Gigabyte új alaplapja
- Napelem
- Elektromos autók - motorok
- Mobilinternet EU-n kívül, eSIM adatcsomagok használata
- Karácsonyi telefonajánló 2025
- Red Dead Redemption 2 (PC)
- További aktív témák...
- BESZÁMÍTÁS! Gigabyte B760M i3 12100F 16GB DDR4 512GB SSD RX 7600 8GB Zalman T4Plus CoolerMaster 650W
- BESZÁMÍTÁS! MSI B460M 10400F 16GB DDR4 512GB SSD RX 6600XT 8GB Rampage SHIVA Cooler Master 650W
- BESZÁMÍTÁS! MSI B450M R5 5500 16GB DDR4 512GB SSD RX 6600XT 8GB DeepCool CC560 Thermaltake 730W
- BESZÁMÍTÁS! ASUS H510M i5 11400F 16GB DDR4 512GB SSD RX 6600XT 8GB Zalman T4 Plus Cooler Master 650W
- BESZÁMÍTÁS! ASUS H510M i5 11400F 16GB DDR4 512GB SSD RX 6700 10GB Zalman T4 Plus Chieftec 650W
- Azonnali készpénzes INTEL CPU NVIDIA VGA számítógép felvásárlás személyesen / postával korrekt áron
- Kaspersky, BitDefender, Avast és egyéb vírusírtó licencek a legolcsóbban, egyenesen a gyártóktól!
- Bomba ár! HP ProBook 640 G5 - i3-8GEN I 16GB I 256GB SSD I 14" HD I Cam I W11 I Garancia!
- Konzol felvásárlás!! Xbox Series S, Xbox Series X
- GYÖNYÖRŰ iPhone 13 mini 128GB Midnight -1 ÉV GARANCIA - Kártyafüggetlen, MS3060
Állásajánlatok
Cég: BroadBit Hungary Kft.
Város: Budakeszi
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest






![;]](http://cdn.rios.hu/dl/s/v1.gif)






