Hirdetés
- 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ó
- Hazavághatja a MicroSD memóriakártyák piacát a Biwin-féle Mini SSD
- SSD kibeszélő
- Steam Deck
- Rogyásig pakolható a Cooler Master Cosmos szériás csúcsháza
- Milyen billentyűzetet vegyek?
- Milyen asztali (teljes vagy fél-) gépet vegyek?
- Azonnali alaplapos kérdések órája
- AMD Ryzen 9 / 7 / 5 9***(X) "Zen 5" (AM5)
- TCL LCD és LED TV-k
- Milyen scannert vegyek?
- Házimozi haladó szinten
-
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
-
Janos250
őstag
válasz
Tankblock
#16605
üzenetére
Igen, így van.
"előre meg nem határozott számú paramétert"
Rossz volt a megfogalmazás, mert valóban egy paramétert visz be.
A helyes megfogalmazás az lett volna, hogy "előre meg nem határozott számú adatot" . Ezalatt azt értettem, hogy a függvény írásakor nem tudjuk, hogy hány beviendő adat lesz. Persze, a ... a feladathoz jobban passzoló. Ezért is kerestem ki a neten először azt, mert már nagyon régen csináltam, gőzöm nem volt, hogyan is kell. Ezt tettem a 16600-ba.
"Amit csinász az standard C ben is egy láncolt listára is mutathatna.... akár egy pointer is". Teljesen igazad van, de én azok közé tartozom akiknek feláll a szőr a hátukon a standard C nagyon széles pointer használatától. Nem is foglalkoztam a C-vel, csak később a C++ -al. Igyekszem nem lemenni alacsonyabb szintekre, ha nem muszáj. Épp eleget programoztam assemblyben ahhoz, hogy kerüljem az alacsonyabb szinteket. Persze azért nem akarom a COBOL szószátyár szintjét sem, de a C++ az szimpatikus, szimpatikusabb, mint a pascal bővítések.
"ennyi erővel struct ba tehetnél". Igen az általánosabb, nem macerás.Én azért úgy gondoltam/lom, hogy nem káros emlékeztetni/megmutatni/memóriát frissíteni (ki hol tart a programozásban) azt, hogy a vektor, list, deque, és egyéb konténerekről se feledkezzünk meg, és hogy az iterátorok nem felesleges dolgok, meg az auto se, ezek néha egyszerűbbé teszik az életünket, mintha visszamennénk a standard C szintre. Ott nem kell se iterátor, se auto.
Mellesleg most muszáj a standard C-vel foglalkoznom, mert kíváncsiságból az ESP32 net kezelését bogarászom mélyebben, és az LWIP ugyebár a standard C-ben íródott.
Ez legalább emlékeztet arra, hogy minden külvilággal való kapcsolat "file". Tulajdonképpen nem is tudom, hogy a mikrokontrolleres világban a perifériákra miért nem a bevált file kezelést alkalmazzuk, ahelyett, hogy ezerféle könyvtárat használnánk, és összevissza hibákat okoz, hogy egy neten talált program nem megy, mert más könyvtárat használ.
Az SPI, stb. kényelmesen kezelhető file-ként is az ESP32-n is.
Hű, hosszú lett, bocs mindenkitől.
-
Tomika86
senior tag
válasz
Janos250
#16560
üzenetére
Most esp32-re készült el a kódom, amiben persze van library, és nagyon sok segítséget kaptam innét is. A library belvilágát nézegettem, azokat nem értettem meg, a többit már kapisgálom.
A fejlesztés alatt, a különböző részegységeket külön külön kipróbáltam az ESP32-őn. Átrágtam minden lépést. A tömbökkel még vannak gondjaim, aztán a bonyolultabbakkal osztályok, stb.
Így nagyon sokat tanultam mire ide jutottam a kijelzővel. Majd teszek fel videót róla, hogy sikerült.Köszönöm!
-
Janos250
őstag
válasz
Tomika86
#16559
üzenetére
Még pár megjegyzés:
A C++ tanulásához célszerű valamelyik korszerűbb fordító használata, mert abban minden benne van, ami a leírásokban szerepel. Az ESP32 ilyen, de bizonyára vannak mások is.
Futtasd a mintaprogramokat.
Ami a main()-ben van, az kerüljön a setupba, a return-t hagyd ki. A deklarációk a setup elé. A loop maradhat üresen.
Kiíráshoz, beolvasáshoz általában a cin, és cout szerepel, ezeket az ESP32 tudja.
Egy lehetséges indulás, ami nem a száraz "tudománnyal" kezd:Példának itt van a 3. lecke programja
https://www.webotlet.hu/?p=1726#include <iostream>
using namespace std;
int main()
{
int fokozat;
double sebesseg;
char szinkod;
bool metal;
cout << "Ez egy virtualis auto." << endl;
fokozat = 4;
sebesseg = 48.6;
szinkod = 'R';
metal = true;
cout << "Az auto sebessegfokozata: " << fokozat << endl;
cout << "Az auto pillanatnyi sebessege: " << sebesseg << endl;
cout << "Az auto szinkodja: " << szinkod << endl;
cout << "Az auto metalszinu: " << metal << endl;
return 0;
}Beírva/átírva az Arduino IDE-be:
Feltöltés előtt nyisd meg a soros monitort, mert oda fog írni.
#include <iostream>
using namespace std;
int fokozat;
double sebesseg;
char szinkod;
bool metal;
void setup() {
// ez kell, hogy a cout a soros monitorra irjon
Serial.begin(115200);
delay(2000);
cout << "Ez egy virtualis auto." << endl;
fokozat = 4;
sebesseg = 48.6;
szinkod = 'R';
metal = true;
cout << "Az auto sebessegfokozata: " << fokozat << endl;
cout << "Az auto pillanatnyi sebessege: " << sebesseg << endl;
cout << "Az auto szinkodja: " << szinkod << endl;
cout << "Az auto metalszinu: " << metal << endl;
// return 0;
// ezt ki kell hagyni, mert mikrokontrolleren egy progran nem ér véget,
// ez majd a loop-ban az idők végezetéig fut
} ;
void loop() {
} ;Ezt irja ki a soros monitorra:
Ez egy virtualis auto.
Az auto sebessegfokozata: 4
Az auto pillanatnyi sebessege: 48.6
Az auto szinkodja: R
Az auto metalszinu: 1Ez még alap lecke, de van itt minden a későbbiekben.
-
Janos250
őstag
A múltkori késő esti string és String kínlódásom után úgy döntöttem, hogy nincs értelme a brute force módszernek, inkább gondoljuk át logikusan. És tényleg! Ideírom a tapasztalataim, hátha valaha valakinek hasznos lesz a jövőben.
Kösz mindenkinek, aki segített!
Arduino String (nagybetűs), és a C++ string (kisbetűs) kapcsolata.
Az Arduino String nem írható be paraméterként olyan helyre, ahol C++ string az elvárás, és ez fordítva is igaz.
A kettő közötti átmenetet a .c_str() tagfüggvény teszi lehetővé.String ArduinoString_Hello = "Hello";
string Cpp_string_World = "World";
EzekkelString ArduinoString_Hello02 = Cpp_string_World.c_str();
String ArduinoString_Hello03 (Cpp_string_World.c_str());
string Cpp_string_World02 = ArduinoString_Hello.c_str();
string Cpp_string_World03 (ArduinoString_Hello.c_str());
Így új példányok jönnek létre.A szöveget mind a String, mind a string belül egy 0x0 terminált karakter tömbben tárolja, és a .c_str() konstans pointer mutat rá, ezért ha (char*) C típusú sztinget akarunk, akkor "const" miatt (char*) átdefiniálás szükséges.
Például:char* ArduinoString_Hello_c_str = (char*)ArduinoString_Hello.c_str() ;
char* Cpp_string_World_c_str = (char*)Cpp_string_World.c_str() ;
Ebben az esetben nem jön létre új példány, hanem a char* típusú karaktertömb pointere is az eredeti objektumban tárolt karaktertömb kezdetére mutat. Ha az egyikben megváltoztatjuk valamelyik karaktert, a másikban is megváltozik.Az ESP32-höz használt fordító ismeri az iterátor típust is. A C++ string rendelkezik .begin(), .end() iterátorral.
for ( std::string::iterator it=Cpp_string_World.begin(); it!=Cpp_string_World.end(); ++it)
std::cout << *it;
std::cout << '\n';
/*
Woyld
*/std::string::iterator it=Cpp_string_World.begin();
std::cout << "Cpp_string_World.begin() = :" << *it<< "\n"; // W
it=Cpp_string_World.end()-1; // mert a .end() a 0x0 terminátorra mutat
std::cout << "Cpp_string_World.end() = :" << *it<< "\n"; // dMintának egy teljes program:
#define __cplusplus 201103L
#include <iostream>
using namespace std;
void setup() {
Serial.begin(115200);
delay(2000);
Serial.println("Arduino String (nagybetus), es a C++ string (kisbetus) kapcsolata.");
String ArduinoString_Hello = "Hello";
string Cpp_string_World = "World";
String ArduinoString_Hello02 = Cpp_string_World.c_str();
String ArduinoString_Hello03 (Cpp_string_World.c_str());
Serial.printf("ArduinoString_Hello :%s\n",ArduinoString_Hello);
Serial.printf("ArduinoString_Hello02 :%s\n",ArduinoString_Hello02);
Serial.printf("ArduinoString_Hello03 :%s\n",ArduinoString_Hello03);
Serial.printf("ArduinoString_Hello[0]:%c\n",ArduinoString_Hello[0]);
Serial.printf("ArduinoString_Hello.c_str()[0]:%c\n\n",ArduinoString_Hello.c_str()[0]);
/*
ArduinoString_Hello :Hello
ArduinoString_Hello02 :World
ArduinoString_Hello03 :World
ArduinoString_Hello[0]:H
ArduinoString_Hello.c_str()[0]:H
*/
string Cpp_string_World02 = ArduinoString_Hello.c_str();
string Cpp_string_World03(ArduinoString_Hello.c_str());
std::cout << "Cpp_string_World :" << Cpp_string_World<< "\n";
std::cout << "Cpp_string_World02 :" << Cpp_string_World02 << "\n";
std::cout << "Cpp_string_World03 :" << Cpp_string_World03 << "\n";
/*
Cpp_string_World :World
Cpp_string_World02 :Hello
Cpp_string_World03 :Hello
*/
char* ArduinoString_Hello_c_str = (char*)ArduinoString_Hello.c_str() ;
char* Cpp_string_World_c_str = (char*)Cpp_string_World.c_str() ;
ArduinoString_Hello_c_str[2] = 'x';
Cpp_string_World[2]= 'y';
Serial.printf("ArduinoString_Hello is atirodik :%s\n",ArduinoString_Hello);
std::cout << "Cpp_string_World_c_str is atirodik :" << Cpp_string_World << "\n";
/*
ArduinoString_Hello is atirodik :Hexlo
Cpp_string_World_c_str is atirodik :Woyld
*/
// iterator:
std::cout << "Iterator:\n";
for ( std::string::iterator it=Cpp_string_World.begin(); it!=Cpp_string_World.end(); ++it)
std::cout << *it;
std::cout << '\n';
/*
Woyld
*/
std::string::iterator it=Cpp_string_World.begin();
std::cout << "Cpp_string_World.begin() = :" << *it<< "\n"; // W
it=Cpp_string_World.end()-1; // mert a .end() a 0x0 terminátorra mutat
std::cout << "Cpp_string_World.end() = :" << *it<< "\n"; // d
} ;
void loop() {} ; -
Janos250
őstag
válasz
JozsBiker
#16425
üzenetére
"Én az oldalamra ennek segítségével tettem be a kódot."
Én is
http://arduinouser.hu/esp32/wifisocket/index.htmRégebben itt ajánlottátok nekem a WEB-socketot, de fogalmam se volt mi az. Azt hittem, a klasszikus internet socket. Amikor rájöttem, hogy az egész más, elhatároztam, hogy írok egy hevenyészett leírást az ESP32-n az LWIP internet socket használatáról. Ez most történt meg. Majd egyszer a WEB-socketról is.
-
MPM
tag
1. Azért mert ez a 8 pin-es változat van nekem, és híján vagyok a pineknek, de most látom hogy a tx/rx-et is lehet használni, valószínűleg ez lesz a megoldás, mert működés közben nem kell kommunikálnom vele.
2. Nem tudtam, hogy lehet fordított logikával használni
Ezzel a részével nem én foglalkoztam, és rá se néztem, de valóban az enyémet is lehet így használni. Ilyen esetben, ha lebeg a relé jelbemenete, akkor mi történik? Csak azért kérdem, mert ha tönkremegy valahogy a pin, és nem ad jelet, akkor magas jel hiányában mindig kapcsolni fog, vagy mindenféleképpen le kell húzni a földre, hogy kapcsoljon? (Gondolom az utóbbi.) A biztonság miatt érdekel, mert nem lenne jó ha az ESP tápellátásának megszűnése, vagy pinjének rövidrezárása után, folyamatosan kapcsolna a relé. (Bocs, az amatőr kérdésekért
)
3. Aham, világos. -
MPM
tag
Helló!
ESP8266-tal szeretnék egy relét vezérelni, azonban ha minden igaz, e bejegyzés és az általa hivatkozott hivatalos dokumentum szerint, ha a 0-ás pint (amit használni szeretnék) ha lehúzom a földre boot-oláskor, akkor a kódfeltöltő üzemmódban indul el az ESP (mivel ilyenkor még csak inputként tudnak működni a pinek).
Ha a relét rákötöm a 0-ás pinre, akkor gyakorlatilag lehúzom a földre, és így minden indításkor feltöltő üzemmód indul el, és nem a korábban rátöltött projekt.
Ennek megoldásában tudnátok segíteni? A hivatkozott stack exchange-s válasz azt ajánlja, hogy FET-en keresztül hajtsam meg. Sajnos az elektronikai tudásom eléggé hiányos még, így azt kérdezném, miért csak ezzel oldható meg, és milyet kell használnom?
Próbáltam csak diódát használni a 0-s jelnél (hogy csak kimenetként működhessen), ez miért nem elég ahhoz, hogy megakadályozzam a lehúzást? -
Tomika86
senior tag
válasz
Janos250
#16395
üzenetére
Szia
Úgy döntöttem, hogy nem a fejlesztőpanelt teszem a panelemre, hanem magát az ESP32-WROOM-32 tokot.
Megrajzoltam a sprint layout makróját.
Egy olyan kérdésem van hogy ha veszek külön usb cp2101 panelt, ezen tx és rx van csak.
Kellenek nekem a dts, cts, dtr... lábak?Köszi
-
Janos250
őstag
válasz
wakula778
#16391
üzenetére
Itt egy minta a használatára az egyik nálam futó programból. ESP32-n.
Mivel két szenzor van, ezért kell kézzel állítani a CS-t.SPI.beginTransaction(SPISettings(100000, MSBFIRST, SPI_MODE1)); // Set the settings to work with SPI bus
digitalWrite(CSpinForralo, LOW); // Select slave
Hbyte = SPI.transfer(0);
Lbyte = SPI.transfer(0);
digitalWrite(CSpinForralo, HIGH); // Release slave again
SPI.endTransaction();
readed16bit = ((uint16_t)Hbyte)<<8 ;
readed16bit = readed16bit + Lbyte;
forraloHomerseklet = readed16bit >> 6 ;
printf("forralo homerseklet= %d \n ",forraloHomerseklet); -
Bolobi
tag
Sziasztok!
Segítségre lenne szükségem ESP32-n logfilera szeretnék timestamp-et, ami txtbe megy spiffsen.
Ez alapján próbáltam de iszonyat kiakasztotta az eszközt.
Hogyan lehetne egyszerűen megoldani ezt? -
Dißnäëß
nagyúr
Próbálok "igényeskedni", nem nagyon van rajta sehol műanyag burkolat, vagy bármi hasonló. A hátlapra tudnám elhelyezni, a tápcsati környékére-mellé például (belül), és mint az RCA csatiknak is, ennek is (az antennának) egy lyukat fúrva, oda felcsavarom az antennát, így kilát a kis kütyü a dobozból.
Ha az ESP-t kívülre tenném felragasztva, az olyan nagyon "kendács" lenne nekem. "Professzionális" kivitelezésű eszközt szeretnék alkotni.
-
Dißnäëß
nagyúr
Olvaslak Titeket, ez de jó tipp ... !!! Köszi én is
(Bocs mindkettőtöktől, jöttem a "lepattanóra")
---------------------------------------------------------------------
És akkor: Sziasztok

Van egy ESP 8266-om. Próbáltam már, kiválóan műxik. Beépíteném egy audio erősítőbe, vezérelni és "figyelni" pár paramétert. Ezeknek általában fém háza van, ami - ez is az elsődleges feladata - árnyékol. A WiFi-re lehet antennát tenni ? És ha igen, hogyan szokás ?
Arra gondoltam, hogy megfúrom a készülékházat a kontroller közelében, felteszek oda egy csinos-divatos 2.4GHz kisantennát, amolyan igazi IT-s, wifi-s antennát, aminek melegpontját egyszerűen ... ráforrasztom a kis WiFi szál végére óvatosan egy pöttyel ? Ennyi elég lenne ?
Ti hogyan oldanátok meg ?
Az eszközt amúgyis elszigetelném a többi belsőségtől acél válaszfalakkal is, ne szórjon oda semmit esetleg.. így mivel eléggé be van dobozolva, saját wifi használata esélytelen antenna nélkül.
-
Janos250
őstag
válasz
Tomika86
#16343
üzenetére
A témát kevésbé ismerők kedvéért:
AZ ESP32-ben van egy "mátrix", amiben minden sorhoz tartozik egy jelforrás, (például serial rx, serial tx, stb.) és minden oszlophoz az IC-nek egy lába.
Ahova beteszünk egy 1-est, (az össze van kötve) az a láb fog kapcsolódni az adott jelhez.
Viszont a programozónak ezt nem kell ilyen alapszinten kezelni, mert a könyvtárak az inicializáló részben ezt le szokták kezelni.
Lásd a Serial portot:void HardwareSerial::begin(unsigned long baud, uint32_t config, int8_t rxPin, int8_t txPin, bool invert, unsigned long timeout_ms)Úgy van megcsinálva, hogy ha a végéről lehagyod a megadást (pl. int8_t rxPin stb.), akkor a default érték lép életbe. Ezért elég pl. csak annyit írni, hogy
Serial.begin(9600) -
Tomika86
senior tag
Sziasztok!
ESP32 esetén, ha CAN buszt szeretnék használni autóhoz akkor ezt az IC-t kell használnom?
SN65HVD23x
CAN kommunikáció lábait meghatározhatom én? GPIO13, GPIO27Köszönöm!
-
Tankblock
aktív tag
-
nessh
tag
Sziasztok,
Mitől lehet hogy egy esp32 amire ráküldtem arduino ide-ből a wifi scan example-t, nem látja az itthoni upc/voda wifimet? (se 2,4ghz, se 5... Bár gondolom ezt nem is kéne neki) Ha telefonon csinálok AP-t, azt látja.
-
Janos250
őstag
És ha floating állapotban hagyod?
ESP32 GPIO pinjeinek az állapotai:
pinMode(pin, mode)
//mode:
INPUT //input is floating
INPUT_PULLUP
INPUT_PULLDOWNmode bitjeinek jelentése: (esp32-hal-gpio.h)
//GPIO FUNCTIONS
#define INPUT 0x01
#define OUTPUT 0x02
#define PULLUP 0x04
#define INPUT_PULLUP 0x05
#define PULLDOWN 0x08
#define INPUT_PULLDOWN 0x09
#define OPEN_DRAIN 0x10
#define OUTPUT_OPEN_DRAIN 0x12
#define SPECIAL 0xF0
#define FUNCTION_1 0x00
#define FUNCTION_2 0x20
#define FUNCTION_3 0x40
#define FUNCTION_4 0x60
#define FUNCTION_5 0x80
#define FUNCTION_6 0xA0
#define ANALOG 0xC0"GPIOs 34, 35, 36, 39 are input only pins"
"These pins don’t have internal pull-up or pull-down resistors." -
vegyszer
addikt
válasz
tonermagus
#16283
üzenetére
Kedvenc gazdasági blogom 3 éve írta, és mind a mai napig igaznak vélem: Glamour napi felárazás
Gondolom nem véletlen van egész évben Black Friday az Alzánál.A kínai barátok meg mindig tudnak egy nagyobb számot írni a termékre, és áthúzni, hogy jól érezzük magunkat. Csak ha követed, látod, mint én pl a M5Stack STAMP PICO ESP32 esetén. Eredetileg 5.99$ volt mot akciósan már majdnem 10€...
-
Janos250
őstag
válasz
tonermagus
#16274
üzenetére
Egy példa:
Most például 1750 Ft darabja az ESP32-nek tízes tételben, szállítással, ÁFÁ-val, ügyintézéssel együtt, de lehet, hogy pár óra múlva már sokkal több lesz.
https://www.banggood.com/10Pcs-ESP-32S-ESP32-Development-Board-Wireless-WiFi+Bluetooth-2-in-1-Dual-Core-CPU-Low-Power-Control-Board-ESP-32S-p-1896926.html -
Tomika86
senior tag
Sziasztok
Az ESP32 a hestoreban kapható NodeMcu-32S.
Amit aliexpressen lehet venni az miért kerül akár felénél is kevesebbe? 😀
Nem akarok spórolni ezen annyira, de érdekel.
Mondjuk áfa és vám ugyanott lesz kb. -
Janos250
őstag
válasz
ekkold
#16230
üzenetére
"Nem akartam saját könyvtárat írni erre"
Pedig szerintem az a legcélravezetőbb, nem egy bonyolult a bitek kivitele.
Én ESP32-re csináltam ugyanezt, mert akkor legalább tudom, hogy mit csinál.
Ha párszáz nano időzítési pontossággal tudsz kiírni, azzal már be lehet lőni.
Kíváncsiságból megcsináltam GPIO billegtetéssel (ESP32), és úgy is működött, bár az ESP32-n van erre célhardver (RMT) -
Azta, ez egy nagyon hasznos tanács! Hasonló módon más platformon reszeltem már kódot, eszembe sem jutott, hogy itt is lehet ilyen lehetőség.
Megnézem majd, és mindenképp visszajelzek (ha megtaláltam a bakit, ha nem).
ESP32 Cam témában:
https://www.instructables.com/Video-Capture-Using-the-ESP32-CAM-Board/Itt egy rögzítős tutorial, de ebből a network stream hiányzik. Bele kell nézni, hogy lehet e AVI helyett mp4-ben rögzíteni, és azt FTP-ről VLC-vel tudod streamelni.
Szerk: Talán mintha lenne is preview a http szerverben gyárilag is. -
Danielo
csendes tag
Igaz, hogy nem teljesen Arduino...de mégis...
ESP32 Cam modult szeretném úgy használni, hogy folyamatosan rögzítse a videót SD-re és az élő kép bármikor nézhető legyen mobilon wifi-n keresztül.
Az utóbbi megoldására ezer féle ötletet találtam, de a folyamatos rögzítésre nem találtam példát. (Lehet, hogy túlzott elvárás?) Csak álló kép rögzítésére van leírás..... (Természetesen 12 óra után felülírhatja az SD-t, hogy benne legyünk a 32GB-ban)
Van esetleg erre valakinek egy jó tippje, linkje?
Köszönettel
Üdv.. -
Tomika86
senior tag
Sziasztok
Mi okozhatja azt Esp32 esetén, hogy néha nem kell a boot gombot nyomni? Van hogy automatikusan csatlakozik, van hogy nyomni kell.
Illetve a GPIO2 láb, ezen van egy led alapból az esp panelen. Ez alapból piros, ha kapcsolok a 2es lábon akkor kéken világít. Tehát fizikálisan működik.
Programban megvan adva INPUTként.
Viszont ahol használom egy "if" feltételben, az nem akar jó lenni. Ha if (nyomogomb) ot írok akkor mindig végrehajtódik a feltétel. Ha !nyomogomb akkor soha.
Ha kapcsolom a bemenetet, ha nem. Programban végig true értékű.De akkor miért működik a lapon lévő led?
Le van húzva 0ra és akkor világít kéken a led ha 3,3vot adok rá.
#define nyomogomb 2, így van definiálva minden be/ki menet. Nodemcu 32s a panelKöszönöm
-
Tomika86
senior tag
Sziasztok
Mi a különbség ha a loop elött vagy után vannak deklarálva a függvények? Látom így is úgy is.Amúgy próbáltam a két magos programozást, de újraindul folyamatosan az esp32.
Köszönöm -
-
Tomika86
senior tag
Igen még mindig 🙂
Jelenleg már esp32-vel. Azért jött az i2c ad hogy ne használjak el lábat az esp32ből. Hosszú project lesz ez.
Tehát akkor vagy csökkentek az ad bemenetein lógó impedanciákon, vagy követő opampot rakok plusszba be, de akkor új panel kell.
Nem tudom, hogy kell e nekem ez a túlzott dupla szűrőtag. Mennyire kell szűrnöm a bemenetet. Milyen frekvenciára kell szűrnöm? Mert ez a 10kohm, 100nf 160hz törésponti frekvenciát ad. -
Janos250
őstag
Semmit nem ajánlok, csak elmondom, én hogyan csinálnám.
Nem csinálnék szintillesztést, hanem az eredetit mérném. Igaz ugyan, hogy akkor pontatlanabb lesz, de az illesztő áramkörrel is beviszek annyi pontatlanságot. Ha mégis pontosabb kell, akkor külső A/D konverter.
Leválasztás:
Én az én paneljaimon egyszerűen oldottam meg.
- egy kontroller (ESP8266 vagy ESP32) mér, vagy vezérel a nagyobb fesszel működő részen, és WiFi-n küldi/veszi a jelet a fő panelon lévő kontrollernek (ESP32). A WiFi-n keresztül általában nincs áramütés![;]](//cdn.rios.hu/dl/s/v1.gif)
- a központ, a lényegi panel méri azt, amit helyben kell és lehet, valamint WiFi-n begyűjti az adatokat (ESP32).
- A 0-ás mag a WiFi-n kívül azzal foglalkozik, hogy begyűjti és előfeldolgozza a külső adatokat, és lerakja globális változókba, és azt használja az 1-es magon futó fő program. Igaz, nekem az eddigi panelokon nem sok teendő volt, de az Arduino (ESP32) alig-alig volt terhelve.
- Az egyes "perifériák" kezelését a 0-ás magon külön-külön taskban oldom meg, mert ott a delay a vezérlés másik tasknak való átadására fordul. Így minden jól elkülönül, jól átlátható, nincs kölcsönhatás. -
vegyszer
addikt
Szia!
Egyébként ez milyen projekt?
Én eredetileg egy ESP32 alapú két enkóderrel megoldott előfordulás érzékelő rendszert szerettem volna lemásolni. Sikerült is, de a mechanikai rögzítés még várat magára.
Egy távcső két irányban való elmozdulását hivatott követni 8000 jel/360° felbontással.
Nekem kijelző nem kell. A vezérlést telón futó app látja el Bluetooth/WiFi kapcsolat segedelmével.Most egy ESP32 stamp jön. Valahogy nagyon tetszik a mérete, bár még nem látom, hogy a kódot magát hogyan tudom fellőni rá.
-
válasz
MC Pite
#15997
üzenetére
1. Ilyet még nem láttam, de tetszik.
2. Egyetlen mikrokontrollerre sem lehet tudtommal közvetlenül fogyasztót kötni, a kimenetek maximum egy LED-et képesek meghajtani (max. 10-20mA). Amire neked szükséged van, az egy relé (csak ki-be kapcsoláshoz), vagy egy egyszerű (?) FET meghajtó fokozat (ha PWM is kell): az ESP kimenete kapcsolgatja a FET-et, a FET pedig elbírja a 10V-ot. Az egyszerű abból a szempontból nem egyszerű, hogy olyan FET kell, ami 3,3V-on képes teljesen kinyitni, ilyet Janos250 szokott használni,korábban írta is a típusát,
majd mindjárt visszakeresem neked.IRLB4030.3. Hát miben szeretnéd, ha nem C-ben?
Nem kell mindent neked megírni, a komplikáltabb dolgokhoz van valamilyen library, amit csak be kell illeszteni a kódba. Ha szerencséd van, a library-hez lesz egy példa program, ami kisebb módosításokkal lehet, hogy pont megfelel a feladatra. -
Janos250
őstag
válasz
Tomika86
#15967
üzenetére
Nem látom a programod, de ha másról ültetted át ESP32-re, ez más programozási technikákat is lehetővé tesz. Például szenzorok olvasása szenzoronként mehet külön taskokba, külön magra. Pl. a szenzorok kezelése taskok a 0-ás magra, a főprogram meg az egyesre, mert a loop-ot automatikusan oda teszi. Egy taskban beolvasod egy szenzor értékét, beteszed egy globális változóba, majd delay, ami átadja a vezérlést a következő tasknak. Ha időzítésekben jó a körülbelüli, akkor milliszekundum olvasása, ha meg jóval pontosabbat akarsz, akkor a 80 Mhz-es busz órajel ciklusait számláló regiszter olvasása. (A chip órajele ugyan 240 Mhz, de azt nem tudod olvasni, csak a belőle képzett 80 Mhz-es busz órajelet.) Ez már elég pontos.
-
válasz
Tomika86
#15961
üzenetére
"Enable (EN)
Enable (EN) is the 3.3V regulator’s enable pin. It’s pulled up, so connect to ground to disable the 3.3V regulator. This means that you can use this pin connected to a pushbutton to restart your ESP32, for example."Ez alapján nem kell sehova kötni, ha nem akarod kézzel resetelni a lapot.
-
Tomika86
senior tag
Igen, tettem.
Most elöször használok esp32-t, de van pár furcsaság számomra.
- Amikor feltöltöm a programot akkor írja hogy connecting, van hogy meg kell nyomni a boot gombot, de legtöbbször nem kellett, ment magától.
- Amit lejebb írtam a hibát se mindig csinálta, volt hogy ugyanazt feltöltöttem és nem rebootolt.
- Nextion kijelzőn vannak mutatós műszerek, ezeknek van bekapcsoláskor egy felfut-lefut programrész a setupban. Ezt meg is csinálja, ahányszor nyomok resetet. De tovább nem megy. Ha a setupba írok egySerial.println("akarmi");
Ezt se írja ki soros monitorra.
Serial.begin(115200);
Serial2.begin(115200);
Megvannak
- megpróbáltam programrészeket kikommentezni, akkor se jó
- sima egyszerű sketch megy rajta. I2c scanner kiírja az ads7828 0x48 címét.
- ha lesz időm kipróbálom csak az i2c adc részt rátölteniBacktrace olyan sorokra mutat ami miatt szerintem nem kellene megállnia. pl. : serial2.begin(115200); és olvasas[tomb] = rpm; erre írja a cpu megállást.
Arduinon ment a program teljesen, egyedül az i2c az új.Esp32nél cpu sebességet kell megadni setupban?
En lábat nem kötöttem sehova, ez nem lehet gond?
Köszönöm a segítséget!
-
-
Tomika86
senior tag
Sziasztok
Esp32 nodemcu 3,3vot stab icvel állítom elő a panelemen, szabad így a számítógépet is rádugni usb kábellel? (prog feltöltés)
Köszönöm
-
Janos250
őstag
Használta már valaki ezt a 7 dolláros, azaz nagyjából 2500 Ft-os ESP32-t? Ebben a 2500Ft-ban már a szállítás, vámkezelés, ÁFA is benne van.
https://www.banggood.com/M5Stack-STAMP-PICO-ESP32-PICO-D4-ESP32-Plug-and-Play-Embedded-WIFI-and-Bluetooth-Dual-mode-IoT-Development-Board-Multi-IO-Pinout-p-1882248.html?cur_warehouse=CN&rmmds=search&DCC=HU
Igaz persze, nogy az ESP8266 meg csak 4 dollár.
https://www.banggood.com/Geekcreit-D1-Mini-V3_0_0-WIFI-Internet-Of-Things-Development-Board-Based-ESP8266-4MB-MicroPython-Nodemcu-p-1264245.html?cur_warehouse=CN&ID=522225&rmmds=search -
válasz
tonermagus
#15923
üzenetére
Nem valamiért, hanem az ESP bootoláskor bizonyos kimenetekre pwm jelet küld, bizonyos kimenetek pedig egyszerűen átváltanak alacsony vagy hi-z állapotról magasra, vagy fordítva (az AVR-ek kimenetei ezzel ellentétben boot alatt kiszámíthatóan hi-z állapotban vannak). Ezért kéne tudni a lábkiosztást, hogy melyik esettel állunk szemben, mert egy rövid impulzus vagy pwm jel ellen egy egyszerű kondenzátorral lehet védekezni. De az is lehet, hogy nincs a kimeneten külső fel/lehúzó ellenállás, ezért a kimenet lebeg, ezt pótolni kell.
-
tonermagus
aktív tag
válasz
UrbánK
#15921
üzenetére
Én ha relé vezérlést csinálnék biztos hogy jelhiány esetén NO helyzetben hagynám a relét, és a mikrovezérlőt beállítanám hogy már inicializálásnál a relé kimeneti pinje LOW legyen. Nálad valamiért átesik jelhiány esetén NC-ra. Elképzelhető hogy az ESP újraindulás után valami random jelet küld ki a relének, ami simán lehet HIGH-jel.
De én ezt csak laikusként gondolom... -
UrbánK
újonc
Sziasztok!
Egy kis segítségre lenne szükségem. Adott egy Wemos D1-es hardware rajta egy esp8266-os wifi modullal. Sikerült feltenni rá szépen a softwaret. Meg os találja a netet. Blynk alkalmazással szeretném használni. Ott ki is választom a Wemos D1-es lehetőséget. Van egy garázskapu, kapu+kiskapu, illetve egy lámpa. Megtörténik a beállítás. Szépen is működik egészen egy áramkimaradásig, mert akkor újraindul a rendszer és a reléken szépen felvillannak a ledek és minden kinyílik.
Hozzá tenném, hogy nem én csináltam a rendszert. De a tulaj elmondása szerint évekig nem volt baj vele, illetve áramszünet esetén csak a lámpakapcsolt fel. -
vegyszer
addikt
Sziasztok!
Ugyan az első projektem egyéb okok miatt parkoló pályára került, lett újabb igény.
Nevezetesen vettem egy Canon EOS M50 fényképezőgépet még karácsonyra.
Mivel az előző Canon EOS 450D esetén volt 2.5mm-es jack ajzat a távirányítóhoz, fel se merült bennem, hogy ehhez az új géphez ne lenne.
Ami viccesebb, hogy vezetékes programozható kioldó nem is létezik hozzá.
A célom, hogy beállítom, hogy egy exponálás mekkora időt vegyen igénybe (módjuk 90 másodperc), és hányszor készüljön el egymás után. Gépen persze B idő, Manual módban...Túrva a netet találtam egy érdekeset.
[link] ESP32 alapú vezérlő két gombbal.
És szinte zéró érdemi leírással
De a vezér hangya megindult.
Elvileg az ESP8266/ESP32 mellé lehet írni egy webes felületre kapcsolókat. Ami pont úgy működik, mintha fizikailag nyomkodnám a gombokat.
Márpedig nekem ennyi az igény: milyen hosszan, és hányszor, és két felvétel között mennyit várva indítsa újra a ciklust.Szerintetek az működhet, hogy az ESP32 WiFi-n telóról van információkkal ellátva, és a kért dolgokat Bluetoothon adja ki magából. Mert a fényképezőt felvértezték Bluetooth távirányítóval való együttműködésre. De a gyári távirányító 4 gombos. Exponálás, autófókusz, tele/széles látószög (ezt mondjuk nem hiszem, hogy sok objektív támogatná tükörreflexes/mirrorless vonalon.)
Kérdés:
Az ESP32 tényleg tud egyszerre Bluetooth és WiFi kapcsolaton különböző szintén kommunikálni az általam az előbb leírt módon?
Azaz a fenti vázlat működhet gyakorlatilag egy áram alá helyezett vezérlővel? (gyakorlatilag semmi nem kell hozzá) -
bzolika10
aktív tag
Sziasztok!
Egy pár napja próbálok egy Wemos D1 minit (esp8266) összeheftelni egy kc-40 forgó enkóderrel. Természetesen interrupttal, de sehogy se sikerül. Pollinggal nagyon pontos, de IT rutinnal folyamatosan csak össze vissza ugrál. Kipróbéltam már az összes Rotary encoder könyvtárat is, de azokkal se sikerült. Van erre valamilyen tippetek, hogy hogyan lehetne megoldani IT-vel? -
Tomika86
senior tag
-
Janos250
őstag
válasz
Tomika86
#15879
üzenetére
"Esp32 esetén is a láb számával adom meg hogy mi hova van bekötve?"
Igen, de vigyázz, mert a lapokon néha összevissza van jelölve.
"Illetve Tx1, Rx1 a Serial1 itt kell lábszámot megadni, vagy az alapértelmezett jó?
Tx2, Rx2 lábszámai hogy adhatóak meg? Vagy nem kell? Csak Serial2?"
Serial1-nél meg kell adni a beginben a lábszámokat, mert a default nem jó, mert azt a belső flash használja.
Ha Serial2-nél a default lábakra kötötted, akkor nem kell megadni.
I2C:
https://randomnerdtutorials.com/esp32-i2c-communication-arduino-ide/ -
Tomika86
senior tag
Sziasztok
Esp32 esetén is a láb számával adom meg hogy mi hova van bekötve?
int kapcsolo1 = 4; pl?
DS18B20 esetén most arduino esetén csak a lábszám van megadva, ez jó lesz nekem?
I2C esetén kell megadni valamit?
Illetve Tx1, Rx1 a Serial1 itt kell lábszámot megadni, vagy az alapértelmezett jó?
Tx2, Rx2 lábszámai hogy adhatóak meg? Vagy nem kell? Csak Serial2?Köszönöm
-
vargalex
félisten
válasz
agent_k
#15853
üzenetére
Ha jól olvastam, a többiek már írták: developer board-al (ilyen ugye a wemos s1 mini is) nagyon nagy lesz a deep sleep fogyasztás egy csupasz esp8266-hoz képest. Ha jól láttam, a kolléga az én kódomat (is) linkelte. Nálam percenként van ébresztés, 10 percenként wifivel (addig csak RTC memóriába tárolja a mért hőmérséklet és feszültség adatokat) és küldi a szervernek HTTP POST-al. Így 1 db 18650-es cellával átlag 4-5 hónapot elmegy. 3 V alatt a szerver oldal e-mail-ban riasztást küld, hogy cseréljem a cellát.
-
válasz
agent_k
#15855
üzenetére
Én egy ilyesmi 0.9V to 3.3V konvertert használok: [link] Ez azért is jó, mert ha 2.8V körülig használom az aksit, akkor még meg van a 3.3V, valamint 4.2V helyett is kisebb feszültséggel terheli.
#15852Tankblock
Nem mértem még meg soha, de ahhoz valami áramkör kellene, hogy monitorozza, addig meg nem mentem el. Gyári ESP32 adatlapot néztem csak. Közben most jut eszembe, ESP32 modult használok amihez terveztem egy egyszerűbb PCB-t, nem is a dev boardot, 2 éve csináltam, el is felejtettem már a részleteket
Viszont egyéb áramkörökhöz kínai kész paneleket vettem, azt már nem akartam magam megépíteni: TP4056, hőmérő modul, 0.9-3.3V konverter. -
Tankblock
aktív tag
Milyen board? Amúgy az ESPNow spórolsz egy csomót (időben a Wifi felcsatlakoztatáshoz képest töredéke ezáltal a felhasznált energia is az lesz), anno ez még nem volt elérhető.....
Mivel oldottad meg a sleepet? Még lehet játszani a ULP vel --> azon keresztül lekérdezni a szenzort aztán ha van változás csak akkor felkelteni a magokat.....az hogy 1 v 2 cella attól is függ mekkora a kapacitása... Nálam a 2 é szetintem nincs 2000 mAh, mivel használt laptop akksiból van. Simán lehet kapni 3000mAh új Lion akkumulátort normális gyártótól (nem kínai XD )
-
válasz
agent_k
#15795
üzenetére
Nekem 1db 18650 fél évig bírja kültéren erkélyen ESP32-vel. Alvó módban van, kb 10 percenként ébred, mér hőmérsékletet és párát majd egyből küldi wifi hálózaton ESPnow-al a benti ESP32-nek az adatokat. Gyári development boardot használok, nem forrasztottam le róla semmit. 2db aksival 1 évig is mennie kell. Ha kerül rá kijelző az csökkentheti az üzemidőt.
-
válasz
agent_k
#15797
üzenetére
ESP8266-01-hez ilyet csináltam
(És ez az, hogy ezzel mindig pöcre megy a feltöltés, futnak rajta a kódok...) -
válasz
agent_k
#15797
üzenetére
amateur
Rá se ránts, nem azért írtam
csak azt hittem vmi új kínai gyártó. 
erre is simán rátölthetem a kódot és működik
Annyira nem simán. A kódot egy külön beszerzendő USBAsp programozó segítségével fogod tudni feltölteni, de a működése azonos lesz, mivel ugyanaz a μC.
van tapasztalatod vagy googli a barátom?
Nincs sok saját tapasztalatom ESP-vel, de vannak többen a topikban, akik segíteni fognak!
Amit írtam, a korábban itt olvasottak alapján írtam. Használd a keresőt itt a topikban! -
agent_k
őstag
Arra gondoltam persze...
átnéztem többször, de richtig, hogy elírtam a fő komponens nevét... amateur
"csupasz ESP8266"
és erre is simán rátölthetem a kódot és működik ahogy a wemos, küldi az adatot és örülhetek? Energiafogyasztásban van tapasztalatod vagy googli a barátom? -
-
ekkold
Topikgazda
válasz
Undoroid
#15762
üzenetére
Ha a szoftver (és a processzor is) ugyanaz, akkor a harver egyéb részében lehet különbség ami miatt nem megy. A nano és az uno esetében pl. a lábak számozása miatt lehet kavarodás, az LCD rákötésében. Illetve lehet, hogy a nano-nak pont valamelyik LCD-hez használt lábával van gond. Szoktam én is 2x16-os vagy hasonló alfanumerikus LCD-t használni, mert könnyen használható, egyszerű, és olcsó - egyedül a sok vezeték zavar. Ez utóbbit úgy oldottam meg, hogy egy 74HCT595 léptetőregiszter IC-vel vezérlem, így mindössze 2db I/O láb kell hozzá. Persze így saját drájvert kellett írnom hozzá, viszont az egyszerűbb és gyorsabb lett mint a gyári. Azonban történetesen uno/nano-ra nem írtam meg a szoftvert, mert olyanon nincsen, csak BluePill-en, ESP8266-on, és arduino DUE panelen használtam eddig.
Erről egy kis cikket is írtam: [link] -
Drótszamár
őstag
Üdv!
Adott egy ESP32-es eszközhöz készült légnyomás szenzor. Van hozzá Arduino library.
Szenzor: QMP6988
Github library: [link]Arduino alatt össze-vissza hülyeségeket mér amikor nem esp32-es lapra fordítom.
Ha jól gondolom számábrázolási probléma lesz.Az elején a típus definíciót megpróbáltam áttenni ATmega 1284P procira.
Picit jobb az eredmény, de azért még nem a légnyomást kapom eredményül.
Elrontottam valamelyik típust?//kommentben az eredeti ami az esp32-őn rendben működik.#define QMP6988_U16_t unsigned int //unsigned short#define QMP6988_S16_t int //short#define QMP6988_U32_t unsigned long //unsigned int#define QMP6988_S32_t long //int#define QMP6988_U64_t unsigned long long // Ide mi kéne?#define QMP6988_S64_t long long //És ide?Ide mit kéne? Ez esp32-őn 128 bites ha jól tudom. ATmega 1284P procira van ilyen?
unsigned long longÉs ide?
long long -
Janos250
őstag
válasz
ekkold
#15749
üzenetére
Sokáig én is az STM32 alapúakat használtam, én is meg voltam velük elégedve. Az egyes perifériák regisztereinek cím alapján való elérése is kényelmes, jól dokumentált, így könnyen el tudtam intézni bármit, könyvtár használata nélkül.
Azért mindenre az ESP32-t használom, mert
1. a két mag más programozási logikát enged meg
2. a WiFi nálam gyakran kell, mert mindent úgy csinálok, hogy telefonról legyen vezérelhető IP alapon
3. ha már ezt használom, nem akarom keverni, mert abból csak káosz van.
4. igaz, hogy drágább, mint az STM32 (évekkel ezelőtt kb. 800 Ft-ért vettem az egyszerűbbeket STM32-ből, az ESP32 meg ma is 2000, vagy fölötte van, mióta az ÁFA bejött), de összességében nem ezen múlik a boldogság -
ekkold
Topikgazda
válasz
Janos250
#15748
üzenetére
Az ESP32 és az ESP8266 is jó processzor, mindkettő jóval erősebb mint egy sima arduino. Viszont drágábbak mint az STM, többet fogyasztanak, és nem kell mindenhez Wifi sem.
Az STM procit használva a program matekozós része (pl. a forrasztóállomásom esetében a PID) olyan gyorsan fut le, hogy szinte elhanyagolható az erre fordított idő. Az A/D konverterre várakozás, vagy pl. az opampok beállási idejét kivárni sokkal több idő. Még mindíg meg tudok lepődni, mekkora számítási teljesítménye van ennek a procinak. Van pl. arduino due panelem, ami szintén igen gyorsnak számít, de a BluePill annál is gyorsabbnak tűnik. -
Janos250
őstag
válasz
Tomika86
#15706
üzenetére
Lehet, hogy nagyon rossz megoldás, de én az egyik panelomon így csináltam:
Input feszből DC/DC konverter csinál kb 7 voltot.
A 7-ből LDO 5-öt, illetve 3.3-at.
Jumperezhető, hogy az ESP32 közvetlenül 3.3-at kapjon, vagy a Vin-re 5 V-ot.
Ez utóbbinak - elvileg stabilabbnak kéne lenni, mert közvetlenül a panelon van, nincsen hosszabb hozzávezetés. -
Tomika86
senior tag
Tanácstalan vagyok, hogy csináljam a tápellátását.
Kapcsolóüzeműt kizártam egyenlőre, vagyis biztosat nem találtam, pedig jobb lenne hatásfokot tekintve.
Ezek lesznek a kocsi 12v-ján:
Nextion 7" kijelző 5V, 430mA
Analóg 5V szenzorok ~ 50mA
ESP32 WROOM 32 3,3V, ~800mA
2db DS18B20 3,3V-on ~ 3mA
2db LM1815 áramkör, induktív szenzorral 3,3V-on ~ 15mAJelenleg 12von, biztosíték,sorban vele dióda, utána supressor dióda a föld közé 15Vos. Aztán sorban tekercs és 1000uF elektrolit kondenzátor.
Aztán 7805 a Nextion kijelzőnek
7805 az analóg szenzorokhoz és ebből az 5V-ból a 3,3V LM1117 stab ic-vel.
A gondom az hogy fűteni fog szerintem minden. Illetve az 5v-3,3v is necces.Köszönöm az eddigi segítségeket is!
-
Tomika86
senior tag
Köszönöm
A helyén a max 15Vból lenne 2db 7805 stab IC.
Egyik a Nextion kijelző.
Másik az arduino volt. De most esp32-re alakítottam át.
Ebből csinálnék TMS1117 stab icvel 3,3Vot.Lenne az SD kártya a 3,3V-on.
3db FET kimenet.
2db LM1815 ICs induktív érzékelős áramkör.
Illetve az ESP32
Nextion ha jól tudom tud 3,3Vos adatbusszal kommunikálni. -
Janos250
őstag
válasz
Tomika86
#15694
üzenetére
Csak úgy hirtelen ránézésre:
Micro SD 1/2 tippem szerint biztosan rossz, mert azokat a lábakat a belső flash használja.
Én micro SD-re a VSPI-t használom. (mert csak)
https://randomnerdtutorials.com/esp32-microsd-card-arduino/
"GPIO6 to GPIO11 are connected to the intagrated SPI flash integrated on ESP-WROOM-32"
A lapok nagy részén ki sincs vezetve lábhoz. -
Janos250
őstag
válasz
Tankblock
#15687
üzenetére
Igazad van, visszanéztem, tényleg csak C-t írt a srác. Én - lévén Arduino topic - automatikusan C++ -t gondoltam. Bár sose tudom, hogy az UNO, Mega, stb hol tart a C++ verziókban. Az ESP32-re tudom, hogy az a 2011-nél. Ha valaki tudja, leírhatná, hogy okosabb legyek! :-)
-
vegyszer
addikt
Sziasztok!
Olyat lehet csinálni ESP32 szintén, hogy mind Bluetooth, mind wifi csatornán keresztül próbáljon csatlakozni, de ha az egyik sikeres, akkor a másikat hanyagolja? Esetleg prioritást adni neki, hogy akkor keressen WiFi-t, hogyha mondjuk 20s alatt se all fel a Bluetooth kapcsolat, és akkor arra is azonos időt szánjon, majd vissza az elejére.
-
Janos46
tag
Sziasztok.
Egy BH1750-et próbálgatok változó sikerrel. Betöltöm, elindul rendesen és méri a fényerőt. Egy idő után leáll és:
[BH1750] ERROR: received NACK on transmit of address
Error initialising BH1750
BH1750 Test begin
[BH1750] Device is not configured!
Újra indítva is marad ez az állapot. Azonban ha másnap ismét elindítom mér, de újra kezdi az egészet. Gondoltam hátha melegszik, habár nem érezni, de azért beraktam a hűtőbe, próbáltam sztaniollal közös potenciára hozni, de semmi nem számít.
Mi lehet az oka ennek és az alábbinak is?
Ha bármilyen programot betöltök, akkor rövid idő után az alábbit írja ki:
Érvénytelen könyvtár található ebben: C:\Users\picur\Documents\Arduino\libraries\arduino-esp32-master: nem található fejfájl (.h) itt: C:\Users\picur\Documents\Arduino\libraries\arduino-esp32-master
Ettől függetlenül működnek a programok. Az érdekesség az, hogy ha csak az üres könyvtár van, akkor is ezt írja ki. -
Janos250
őstag
"nem üti-e egyik a másikat mert ugyan azon a belső áramkörön van és hiába van több helyre kivezetve, egyidejűleg nem lehet mindkettőt használni."
Nem. Mindnek külön, független belső hardvere van.
ESP32-n bármelyik eszköz (UART,SPI, I2C, stb) lába bármelyik lábra átdefiniálható, ez csak nanosec nagyságrendű lassulást jelent.
UART-ból van három.
Serial, Serial1, Serial2. Feltöltés, debug az elsőn (Serial) megy, az 1, és a 2 szabadon használható nem ütik egymást, de a Serial1 default lábait át kell címezni, mert azt memória kezelésre használja az ESP32. Jól használhatóak.
SPI-ből kettő hardware van (VSPI,HSPI), de akármelyikre rá lehet rakni egy csomó eszközt, csak akkor a chip selectet nem automatikusra kell állítani, mert akkor az mindig a D5 lesz, és összeakaszkodnak a készülékek. Minden eszközhöz el kell határozni egy CS lábat, és azt az eszköz megszólítása előtt aktiválni, majd deaktiválni. Én csak a VSPI-t használtam, de azt több eszközzel, azaz készülékenként külön CS lábbal.
Itt egy példa:uint16_t readVSPI_MAX6675(uint8_t chipSelect){
uint8_t Hbyte;
uint8_t Lbyte;
uint16_t readed16bit ;
SPI.beginTransaction(SPISettings(100000, MSBFIRST, SPI_MODE1)); // Set the settings to work with SPI bus
digitalWrite(chipSelect, LOW); // Select slave
Hbyte = SPI.transfer(0);
Lbyte = SPI.transfer(0);
digitalWrite(chipSelect, HIGH); // Release slave again
SPI.endTransaction();
readed16bit = ((uint16_t)Hbyte)<<8 ;
readed16bit = readed16bit + Lbyte;
return readed16bit >> 6 ;
} ; // end readVSPI_MAX6675Persze több bájtot is lehet egyszerre olvasni, de itt - már nem tudom miért - így oldottam meg.
SPI-nél vigyázni kell arra, hogy:
Ha több bájtot írsz/olvasol, akkor a CS-t nem lehet háborgatni amíg mindet be nem olvastad.
Ha a default CS-t használod, akkor - általában - nem lehet a bájtokat egyesével olvasni, mert a CS aktiválása ezt-azt indít a készüléken is, ezért default CS láb esetén a több bájt olvasó függvényeket kell használni.I2C-t még nem használtam, most fogom használni EEPROM kezelésre.
Mivel I2C-nél nem kell külön CS láb, ezért nem növeli a lábak számát, ha több I2C eszközt használsz, SPI-nél viszont igen, minden eszközhöz külön CS láb kell.
Ha nem használsz sok lábú párhuzamos adatátviteli eszközt, akkor azért eléggé iparkodnod kell, ha túl akarsz futni az ESP elérhető lábain, mert elég sok az.
Pontos ADC-re nem volt szükségem, így azt nem tudom."Nextion tx, rx kell uart.
Sd kártya spi
Giroskóp i2c
Vagy ugyanazokat használják lábon?"Nem. Külön lábakat használnak alapértelmezés szerint is. Ha SPI-n csak az SD kártyát használod, mehet a default D5 CS.
-
Dißnäëß
nagyúr
Kedves Urak, elektro szakik !
IT-s vagyok, nem villanyosmérnök. Tudnátok nekem kezdő hobbistaként egy egyszerű "képletet", támpontot ajánlani arra, hogy
- mekkora terhelés
- mennyivel csökkenti
- milyen stabilizátor esetén
- a stabilizátor és Graetz-híd előtt lévő, bemeneti AC-t ?Hogy életszerű legyek: rendeltem netről egy 60VA toroid trafót, mondván, 5V AC * 1.414 = ~7V DC, a stabilizátornak pedig bőven ez alá esik az input tartománya. (Stabi és egyenirányító egyben).
Nos, megjöttek a motyók, trim potival beállítottam az 5V DC-t a kis áramkörön, dörzsölöm kezeimet nagy boldogan.
Kötöm rá a Pi1-et, valami élet van, de nem boot-ol. Pi4 - szintén nem boot-ol. Arduino Leonardo - tökéletes. Hinnye.
Rámérek terhelve az áramkört is, hát a Pi-k 4.3 illetve 4.1 V-ig is le-le szopják a feszt, miközben indulgatnak, azaz indulgatnának, és ingadozik a feszültség masszívan. Ó mondom de jóó....
Nézem a stab eszköz adatlapját, 1V dropout, hmm, akkor még mindig van 6V-om DC-n utána, elméletileg (?).. de a bemenetre eleve >=6.5V -ot ír, akkor miért hirdeti a hirdető ezt a teljes board-ot úgy, hogy Input voltage: 2.5 to 27 V AC ?
Ennek szerintem ezek alapján nem 2.5V AC az indulója, hanem jóval felette valszeg.
A célom az lett volna, hogy 2db Pi-t elvigyen, 1 Arduino-val a trafó + stabi kombó, de valszeg a Pi-k nagyobb áramfelvétele annyit ejt a feszen, hogy róluk le kell mondanom, HACSAK nem nézek valami kisebb kieg. trafót, ami 5V-ot felvisz mondjuk 8V-ra, és utána kötöm. Vagy amit egy ismerősöm mondott, hogy még vagy 10 plussz szekunder menetet a trafóra rátekerhetek, hát ezt nem akarom szétszedni nyilván... VAGY csak 3.3V-ra használom, de arra meg overkill mind a méret, mind a teljesítmény-bírás (van egy ESP-m, ahhoz jó lehet amúgy)..
Ha esetleg ezt a trafót máshol szeretném használni, milyen - új - trafót nézzek ide ? Van egy csöves erősítőből származó másik toroidom, két szekunderrel, az egyik 6.3V-os (fűtés), azzal etetve említett stabi áramkört, gyönyörűen boot-ol a két Pi és 5V DC betonstabil.
Ehhez az új trafóhoz kellene nekem valamiféle képlet, hogy a jövőben elkerülhessek ilyeneket. Tudom, hogy 6-7-8V körüli már tökjó lenne a mostani célra, de ha még többet akasztanék rá (és bírják a szekunderek), csak tudjam, hova eshet a fesz adott terhelésre, és mi fog történni nagyjából.

Szóval egy pár perc "fizikaórára" lenne szükségem.
A gyökkettős ökölszabály csak terheletlen AC-DC konverzió esetén műxik, így jó lenne tudnom, X AC-ből mennyi DC-t remélhetek, milyen terhelések esetén. Gondolom nem csak stabi, hanem dióda függő is (?).. -
válasz
Tomika86
#15629
üzenetére
Én ilyet használok: [link]
Lehet legközelebb már nextiont vennék, bár ez se rossz ha működik. Betekintési szöge fentről és oldalról jó, másik 2 irányból nem az igazi. Elsőt amit rendeltem egy idő után csíkozni kezdett ha melegszik. Másodikat használom azóta, szerencsére azzal nincs gond. Egyedül az ára zavar a nextionnak. Ha kevés a pin esetleg, akkor egy plusz IC-t kell beiktatni ami többszörözi a pineket, most nem ugrik be a neve.ADS1115-re ha jól emlékszek 4 analog bemenet köthető. AZ ESP32 lábai azért lehet esetleg kevés, mert az AD1115-nek kell pár láp az I2C kommunikációhoz, nextionnak is kell pár, szinten SD-hez is.
-
válasz
Tomika86
#15627
üzenetére
Igen én is azt használom az időjárás állomásnál az aksi feszültség mérésére. Több, mint amire szükségem van, de mivel van hozzá minta kód és én is ezt találtam meg, ezért ezt választottam. Szerintem amihez találsz arduinos kódot az mind jó lehet.
Nekem az ADC az egyedüi hátrány. Ha valakinek sok pin kell akkor esetleg az még hátrány lehet. A jelszint alatt ha a 3.3V-ot érted az nekem például előny, többnyire ilyen alkatrészeket használtam, persze ez felhasználás függő.
A kíniai fejlesztői panelek egy részén megy az automatikus kód letöltés minden gomb megnyomása nélkül, másiknál meg csak akkor, ha lenyomom a flash gombot és lenyomva tartom. Ez nem ESP32 hiba, nem is értem mi az oka, van hogy egyik nap még jó másnaptól meg nem megy csak gombot lenyomva a letöltés.Wifi nagy előny, ESPnow-al kettő eszköz tud egymással kommunikálni wifin. Én rendeltem utóbb 2 db arduino mini-t ha esetleg kellene legyen, de ezen kívül csak ESP32-ből van 2 db. Ha vennem kellene maradnék az ESP32-nél.
-
Tomika86
senior tag
-
Tomika86
senior tag
Sziasztok!
Csak egy kérdés,
Amit mega2560ra megírtam, az működik ESP32-vel is?
Arra gondoltam, lehet inkább azzal mennék tovább, ami plussz kell, hogy 3,3Vról megy mindene.
ADC esetén a 0-5v ellenállásosztóval megoldható 3,3vra?Köszönöm
Új hozzászólás Aktív témák
- Fortnite - Battle Royale & Save the World (PC, XO, PS4, Switch, Mobil)
- SSD kibeszélő
- Steam Deck
- Rogyásig pakolható a Cooler Master Cosmos szériás csúcsháza
- Futás, futópályák
- Telekom otthoni szolgáltatások (TV, internet, telefon)
- Milyen billentyűzetet vegyek?
- Forza sorozat (Horizon/Motorsport)
- The Game Awards 2025 - Az összes bejelentés egy helyen!
- Nyaralás topik
- További aktív témák...
Állásajánlatok
Cég: BroadBit Hungary Kft.
Város: Budakeszi
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Mellesleg most muszáj a standard C-vel foglalkoznom, mert kíváncsiságból az ESP32 net kezelését bogarászom mélyebben, és az LWIP ugyebár a standard C-ben íródott.

Ezzel a részével nem én foglalkoztam, és rá se néztem, de valóban az enyémet is lehet így használni. Ilyen esetben, ha lebeg a relé jelbemenete, akkor mi történik? Csak azért kérdem, mert ha tönkremegy valahogy a pin, és nem ad jelet, akkor magas jel hiányában mindig kapcsolni fog, vagy mindenféleképpen le kell húzni a földre, hogy kapcsoljon? (Gondolom az utóbbi.) A biztonság miatt érdekel, mert nem lenne jó ha az ESP tápellátásának megszűnése, vagy pinjének rövidrezárása után, folyamatosan kapcsolna a relé. (Bocs, az amatőr kérdésekért
)
(Bocs mindkettőtöktől, jöttem a "lepattanóra")
![;]](http://cdn.rios.hu/dl/s/v1.gif)


Hozzá tenném, hogy nem én csináltam a rendszert. De a tulaj elmondása szerint évekig nem volt baj vele, illetve áramszünet esetén csak a lámpakapcsolt fel.
csak azt hittem vmi új kínai gyártó.
Amit írtam, a korábban itt olvasottak alapján írtam. Használd a keresőt itt a topikban!


