- Samsung Galaxy Watch (Tizen és Wear OS) ingyenes számlapok, kupon kódok
- CMF Phone 2 Pro - a százezer forintos kérdés
- Nem túl penge, viszont olcsó az új ZTE Blade
- iPhone topik
- Samsung Galaxy A54 - türelemjáték
- Okosóra és okoskiegészítő topik
- Android alkalmazások - szoftver kibeszélő topik
- 6 év biztonsági támogatást ígér a Motorola
- Fotók, videók mobillal
- Poco F6 5G - Turbó Rudi
-
Mobilarena
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
-
Teasüti
nagyúr
válasz
Janos250 #9144 üzenetére
Létezik ilyen?
Miért fűrészelnéd mikor elég elcsípni fogóval?! Még le se kell reszelni a végét, ha nem okoz gondot az éle.Amúgy breakable a szó, amit keresel.
Én csak kerek lyukast látok. -
_q
addikt
válasz
Janos250 #9139 üzenetére
Magasabb szintű WEB kezelés mit jelent?
(#9141) Janos250
Én is ezen az úton indultam el, viszont ha nem akarom a weblapot folyamatosan frissíteni az adatok lekérdezésére, akkor már egy fokkal nehezebb, hogy frissüljön egy grafikon vagy egy változó értéke, de persze járható út mintakódok alapján. -
nope
tag
válasz
Janos250 #9137 üzenetére
Igen, csak nálam egy fiókban lesz az összes elektronika - gyakorlatilag egyetlen nyákon. Nem akartam még egy lehetséges gyenge láncszemet beépíteni a rendszerbe, szóval ha valamit be tudok kábelezni, akkor nem rádiózok.
A wifinek is lesz szerepe, egyrészt OTA frissítés (8266-on működik, ESP32-n még nem tudtam kipróbálni), NTP lekérdezés (DST megoldást is kell keresnem), majd később egy websocket is tervben van.
-
AcCEsS
senior tag
válasz
Janos250 #9123 üzenetére
Linuxos vagyok, simán a terminált, vagy az Arduino IDE soros monitorát használom. Terminálban a "screen /dev/ttyUSB0 115200" paranccsal sasolom meg a kiírásokat. A csatlakozás közvetlenül történik a számítógéphez egy jó minőségű USB kábellel. Csak az RST és a D0 van összekötve. Ilyen a nodeMCU.
Mellékelek egy képet egy 3 menetből álló folyamatról 115200-ra állítva a terminált.
1. Csatlakozik a Wifi-hez, 10mp deep sleep, majd ébredéskor krixkrax és fagyás. Az egyik (kék) led folyamatosan világít.
(Utána nyomtam egy reset-et (LED kialudt), elindult, és azt írja, hogy az ok "Deep-Sleep Wake". Ez érdekes...)
2. Itt nem sikerült csatlakoznia a Wifi-hez (direkt leárnyékoltam meg a jelerősség is szar) és 15mp próbálkozás után ESP.restart();
3. Ugyanaz mint az 1.
Ugyanez a helyzet "screen /dev/ttyUSB0 74880"-al is, csak minden olvashatatlan krixkrax. Próbáltam külső tápot és másik kábelt is használni, szerintem a végkimenet ugyanez lehetett, mert egyszer sem tudtam pingelni és pár mp múlva a kék LED folyamatosan világított.
-
_q
addikt
válasz
Janos250 #9095 üzenetére
Sajnálom, ha nem voltam követhető
Lényeg, hogy működik ESPnow + wifin keresztül routerre csatlakozás, onnan adat lekérés. A megoldás az volt, hogy nem elég a két ESP-t 1-es csatornára tenni, hanem még a routert is 1-es csatornára kellett állítani. Más kombinációval sajnos nem működött.
Jó a webserver-kliens is, ha nem kellene fix IP címmel dolgozni, ahol már UDP is szóba jön, legalább is NTP adat lekérésnél kell UDP is. Onnantól, hogy fix IP cím van és UDP függvényeknél is megjelenik az
IPAddress
osztály, onnantól nem működik sajnos az NTP. Legalább is nekem nem sikerült megoldani. -
_q
addikt
válasz
Janos250 #9064 üzenetére
Megpróbálom majd a delay-t magasabbra tenni. Nem AP módban hozom létre a szervert, hanem fix ip és router beállításokat használva (socket server kiegészítve fix IP-vel), így szerintem a linkelt függvényt nem tudom használni. Ha jól sejtem, akkor wifi socket szerver-kliens esetben a routeren tudom átállítani a csatornát, mivel jelen esetben az az AP.
"Nálam az egyik projekt egy erősen "zajos" wifi környezetben gyakran hibázik, de kisebb forgalmú helyeken hibátlan. "
A zajos környezet jelentheti azt, hogy kb. 9-10 elérhető wifi hálózat van körülöttem? Megnézem majd hogyan alakulnak a wifi csatornák, lehet az ESP pont egy sokak által használt csatornán kommunikál és ebből adódik időközönként a kommunikációs probléma. -
_q
addikt
válasz
Janos250 #9062 üzenetére
0-ás magra raktam a wifi kliens fogadás taskot 0-ás prioritással. Semmi más nem fut rajta, legalább is általam nem, max a háttérben amiről korábban írtál 6-7 task a rendszer által futhat esetleg. A kód elkészültével a végén csak 5-10 percenként akarom hogy hőmérséklet adatot küldjön a kliens (jelenleg 2-10 másodpercekkel teszteltem), de elkerülve, hogy pont akkor történjen más művelet, mikor pont jönne a klienstől adat, minden mást a core 1-re tettem. Az hogy leterhelném a cpu-t nem gondolnám, a fogadáson kívül 1-2 konverziót csinálok csak, de azért bemásolom ide is:
void wificlientTask( void * parameter)
{
unsigned long CLIENT_TIMEOUT = 0;
int idxBatLevel = 0;
int idxTemp = 0;
int i = 0;
while(1)
{
WiFiClient client = wifiServer.available();
if (client) {
CLIENT_TIMEOUT = millis();
while (client.available() == 0) { //itt jon a hiba, timeout-al valtozo idokozonkent
if((millis() - CLIENT_TIMEOUT) > 10000) {
Serial.println(">>> Client Timeout !");
client.stop();
break;
}
}
if (client.available()) { // if there's bytes to read from the client,
String clientData = client.readStringUntil('W');
clientData = clientData + 'W';
Serial.println(clientData);
client.stop();
idxTemp = clientData.indexOf('Y'); //get the index of Y separator (25.47Y)
idxBatLevel = clientData.indexOf('W'); //get the index of W separator (3.12W)
clientTemp = clientData.substring(0, idxTemp); //25.47
clientBatLevel = clientData.substring(idxTemp+1, idxBatLevel); //3.12
Serial.print("temp: "); Serial.println(clientTemp);
Serial.print("bat: "); Serial.println(clientBatLevel);
delay(10);
}
else{
Serial.print("temp: "); Serial.println("-");
Serial.print("bat: "); Serial.println("-");
Serial.println("");
}
}
delay(10);
}
}A javasoltak alapján átraktam a változó deklarálást az elejére, hogy csak 1x történjen meg, ne minden ciklusban, illetve a client.read-et lecseréltem, hát ha az okoz gondot, de nem. (Egyébként érdekes mert én 11 karaktert küldök, még is 12-re kellett a tömböt létrehozzam a client.read-né még. client.print küldésnél a végére betesz valamilyen jelző bitet, \r, \n vagy valamit?)
"A wifi vétel elvileg pufferelt, és a 0-ás magon fut. "
Ezt úgy érted, hogy mindegy hogy én a bemásolt task-ot core 0 vagy core 1-re teszem, a wifi fogadása mindenképpen a core 0-án, a háttérben történik? Tehát ha én egy client.read vagy client.readStringUntil meghívást csinálok, akkor már nem a klienstől fog olvasni, hanem egy már háttérben beolvasott bufferből szedi ki az adatot? Tegyük fel működik, hogy átteszem core 1-re a kiolvasást. Akkor a core 0-ra nem tehetek semmit? A core 1-en van ntp lekérdezés, hőmérséklet olvasás, kijelző és még a wifi kliens olvasás is ide kerülne, nem lesz ez sok a core 1-en? A 4 taskból a wifi lekérdezést ezért akartam core 0-ra tenni, hogy még is zökkenőmentesen menjen, mert a core 1 ami igaz nem időkritikus de már így is 3 taskot futtat. -
_q
addikt
válasz
Janos250 #9058 üzenetére
Köszi. A küldés monitorozást megcsináltam és ott minden rendben volt, valami a szerver oldalon van. Arra jutottam hogy a
while(client.available())
{
....
}okozza. Nem jól programoztam le a fogadott adat kiíratását. Így mikor küld a kliens, de a szerver nem tudja fogadni, akkor egy W bentmaradt és azt írja ki illetve üres sort, hogy nincs adat. Így már csak az maradt kérdés, vajon miért nem sikerült továbbítani a kliensnek az adatot. 10 db wifi hálózat érhető el , lehet bezavarnak egymásnak és teljesen normális az, hogy nem mindig sikerül a kliensnek wifi routeren kersztül a szervernek elküldeni az adatot?
-
-
tvamos
nagyúr
válasz
Janos250 #9002 üzenetére
Sajnos pont a relevans reszbe (high side p-chanel mosfet) csuszott egy kis bibi. Igy mar helyes is:
(No, elsore nekem sem sikerult...)(#9001) aryes válasza xboy89 (#8997) üzenetére
Nagyon egyszeru. Az n-csatornas novekmenyes mosfetnek ahoz, hogy kinyisd, a gate-re a source-nal nagyobb feszultseget kell adni. Ha a high-side-ra kotod, akkor a source feszultsege valtozik a kimenettel egyutt, es raadasul a teljes kinyitashoz a tapnal nagyobb feszultseget kell raadni, ami nem mindig egyszeru. -
_q
addikt
válasz
Janos250 #9002 üzenetére
Köszi a linket. Elég hasznos és tök jó leírás.
(#9000) Teasüti
Már nem emlékszek sajnos a linkre, de volt egy feszültség monitorozós projekt, ott
a következőt használták: 2N7000. Itt 0.3-3V között kapcsolható a FET. Ez ha jól értem akkor egy GPIO ki-be kapcsolással vezérelhető, így nem kell a plusz tranzisztoros kapcsolás. Ha más FET van használva, aminél nem kapcsolható a FET direkt módon, ott lehet kell plusz tranzisztor. -
AcCEsS
senior tag
válasz
Janos250 #8987 üzenetére
Nem jutottam előbbre, de többen írnak hasonló problémáról. Tuti a BH1750 lib lehet a ludas, mert ha a nem működő cuccra feltöltök egy ESPEasy firmware-t, rögtön életre kel a BH1750, azonnal érkeznek a lux értékek. De ha visszarakom a BH1750 example fordítását, nem éled fel a szenzor.
Az összes lehetőséget végigjátszottam...
-
AcCEsS
senior tag
válasz
Janos250 #8982 üzenetére
A Wemos Mini sorozat tagjai esetében egyező a lábkiosztás, ráadásul az I2C scanner pozitív eredménye és a végleges sketch futtatása között nem távolítom el a boardot. Emiatt gondolom hogy a bekötés ok, ráadásul a működő lap ugyanoda van dugványozva., Viszont a LED villogtatását megpróbálom, hátha rájövök valamire, köszi a tippet!
-
Teasüti
nagyúr
válasz
Janos250 #8982 üzenetére
Tudnál mutatni egy képernyőmentést egy ilyen logic analyzer kimenetről? Kíváncsi volnék miben más, mint egy oszcilloszkóp.
Köszi!Amúgy jól értem, h ezzel a fogadó eszközt helyettesíted? Ugye szkópnál csak belehallgatsz a csatornába nagy impedanciás bemenetekkel, de a dupoint arra enged következtetni, h ezt meg direktbe kell kötni a portra. Milyen bemenetek vannak ezen? Open-drain, open-collector?
-
_q
addikt
válasz
Janos250 #8968 üzenetére
Na ez az amit el akarok kerülni, hogy a router egyéb paramétereit is meg kelljen adni. Sajnos korábban se sikerült rájönnöm arra, hogy mi a gateway és subnet szám. Ha a router beállításaiban megnézem, ott ezt látom.
Ha viszont ESP-vel lekérem, a következővel:Serial.print("IP: "); Serial.println(WiFi.localIP());
Serial.print("Subnet: "); Serial.println(WiFi.subnetMask());
Serial.print("Gateway: "); Serial.println(WiFi.gatewayIP());akkor meg 192.168.2.1-et kapok IP-nek, amivel a router beállításait is elérem, illetve 255.255.255.0 subnet címet.
Ha összehasonlítjuk az ESP-vel lekért és a router beállításai alatt látható címeket, látható hogy különbözik. Na most melyik a jó és miért látok teljesen mást?(#8967) vargalex
Köszi, megpróbálok keresni ilyen beállítást a routeren. -
Teasüti
nagyúr
válasz
Janos250 #8891 üzenetére
EasyEDA.
Jobban mondva a JLCPCB, mivel hogy azóta külön váltak. Már a második csokor NYÁK-ot rendeltem tőlük, az igényeim 99%-ához tökéletes választás. A maradék 1% az a thermal via volna, amit nem tudnak elkészíteni. (Ezt én hővezető pasztával orvosoltam.) Illetve az alapértelmezett NYÁK opciókkal kedvező az ára, ha van vmi extra igényed, mint mondjuk 2 oz vezetőréteg vastagság, vagy 1,6 mm-től eltérő PCB vastagság, esetleg a zöldön kívül másik színben, vagy egyéb spéci dolgok, akkor már nem annyira kedvező.
Az első 5-10 db-os tételt kis méretű PCB-k esetén gyakorta megcsinálják 2 $-ért. De teljes áron sem vészes, a féklámpámat ami 168x56 mm-es egyedi formával, megcsinálták 12 $-ért /5db. A szállítás 6 $ légi postával és 24 $ DHL Express-szel (nekem).
Batch order esetén érdemes játszadozni melyik tételt rakod be először a kosárba, arra jár a 2$-os spéci ár. -
Teasüti
nagyúr
válasz
Janos250 #8873 üzenetére
Nem egészen. Hanem, hogy a flash memóriának fixen le vannak fogva azok a portok, amin pl az UART2 is van. AZ UART3 használata adott, csak azt hittem a feladathoz kettő UART port fog kelleni külön a GPS-nek és külön a SIM-nek, plusz a programozó port ugye. De ez a 2in1 modulokkal nem játszik szerencsére.
Apropó, kinyírtam az egyik vezérlőmet fordított usb polaritással, így felmerül a kérdés ki honnan veszi az ESP32-ket? Ali-n a legolcsóbb rev1-es lap amit eddig találtam 7 font.
Mindenképp ez a WROOM32 DevKitC-vel megegyező lábkiosztás kell, vagyis a kevesebb lábú NodeMCU jellegű ESP32S lapok nem jók.
(Hmm vagyis hát már van kész nyák tervem és legyártott nyákom a DevKitC-hez, de nagyon szemezek a Wemos Lolin32-vel is, amin van Lipo akku töltő és keskenyebb is.)
Köszi! -
RAiN91
őstag
válasz
Janos250 #8877 üzenetére
Ezeknek utána nézek. Arra én is gondoltam, hogy már bootnál érzékel. Ezért lehúztam a csatlakozóját a mozgásérzékelőnek, de így is indul a program.
De már javul a helyzet. A kék LED bootnál mindig LOW (világító) állapotba kerül. Ha a program azt látja, hogy világít, akkor 10 másodperc késleltetés, majd kikapcsolja a LED-et. Else esetben pedig fut a fő program. De még tesztelem.
-
Teasüti
nagyúr
válasz
Janos250 #8861 üzenetére
Táp szűrő kondikként is szoktak rá hivatkozni. Igen, a Vcc és GND közé rakott kondik a chip Vcc lába előtt.
Ha ezt nézem, akkor e szerint tele van bypass/táp kondikkal a devkit az LDO előtt és után, az usb-uart chip-nél és az esp modulnál.
Viszont ránézésre a kéznél lévő modulomon és a rajzon nem egyenlő számú kondit vélek felfedezni.
És be se tudom azonosítani a Vdd33-on lévő kondikat. -
_q
addikt
-
_q
addikt
válasz
Janos250 #8827 üzenetére
Köszi a részletes kifejtést.
Azt nem tudod esetleg, hogy a 2 mag egyben 240 MHz-e, tehát külön 120-120 MHz-en fog menni?
Én is olvastam, hogy 32 kHz-es kristályt 2 GPIO feláldozásával hozzá lehet kötni az ESP32-höz. Viszont fórumon azt írták, hogy kicsit bugos, illetve annyira jó minta kód erre sincs. Úgy érzem el kell engednem ezt a részt
Egyébként amit meg szeretnék valósítani, annak egyik részét az óra kiíratása képezné. Mivel nekem nem kell semmilyen dátum, csak egyedül az óra, perc, másodperc kiíratás, ezért nem szeretnék külső RTC modult használni. ESP32 időzítővel generálok másodpercenként egy megszakítást és ebből számolom a percet, órát. Na és itt jön a kérdés ami miatt keresgéltem honnan veszi a CPU az órajelet és az mennyire lehet pontos (erre még mindig nem találtam sajnos választ a neten, órajel pontosságról nincs információd?
), mert a timer a CPU órajelet osztja le és generál megszakítást. Eddigi 1 napos teszt alapján másodperc alapon úgy látom, hogy pontos és nem késik. Persze 1 nap az kevés, ha mikrosec vagy kisebb késés van akkor ahhoz jóval több nap/hónap kell hogy kiderüljön.
Bizonyos részeket egyszerűbb volt STM32-vel megvalósítani, de igazad van ott is kell azért sokszor adatlapozni. Jó lenne ha fejlesztenék a kevésbé használt részeket is ESP32-nél. Vagy ha másként nem, akkor STM-el kell megvalósítani, az általánosabb dolgoknál mehet ESP32. -
_q
addikt
válasz
Janos250 #8820 üzenetére
Adatlap szerint: "7-stage pipeline to support the clock frequency of up to 240 MHz (160 MHz for ESP32-S0WD and ESP32-D2WD)" Nem tudom ESP32S az melyikhez tartozik, mert így lehet 160 MHz is, illetve egyenként 160 vagy 240, esetleg a kettő együtt adja ki. Utóbbira gondolok amiből jön a következő kérdés.
Ha nem RTOS-t használok, akkor nem lehet tudni melyik cpu-t használja a program futtatására? Lehet csak egyik, de lehet akár mind a kettő is? Ezt jó lenne tudni, mert nem mindegy egy számításigényes program esetén.
DMA-val nem nagyon találtam mintákat sajnos, kíváncsiságból pedig jó lenne.Ezek közül jelenleg csak az órajel a kérdéses, illetve az, hogy azt honnan veszi. A többi csak érdekelne, mert ki tudja mikor jöhetne jól. Viszont kezd körvonalazódni, hogy a gyakori feladatokra van megírva az arduino IDE, egyébre mint a DMA vagy órajel változtatás már nehézkesebb egy STM32-höz képest. Mivel nem rég szóba került, hogy egy 2 éves hardver esetén még mindig nincs meg minden támogatottság szoftver oldalról, vagy teljesen vagy részben pl bluetotoh mesh, de most az órajel és a DMA is nekem úgy tűnik hasonló cipőmen jár, kicsit sajnálom, mert egyébként jó eszköz az ESP32.
(#8819) Tankblock
Köszi, ez így szimpatikus. Ha eljutok eddig a projektemben, akkor rá fogok nézni jobban és lehet akkor lesz majd még kérdésem. -
_q
addikt
válasz
Janos250 #8797 üzenetére
Ez lehet az?
Tehát esetemben:
uint8_t ServerIPlocal[4] {192,168,1,140} ; //Node static IP kinek mi
uint8_t gatewayIPlocal[4] {100,73,11,43} ; // ami neked
uint8_t subnetIPlocal[4] {255,255,255,255} ;Van egy olyan sor a router manual-ban, amivel be tudok böngészőből is lépni a router beállításaiba. Esetleg a gatewayIPlocal címe az lehet? Ez: 192.168.2.1
-
-
Teasüti
nagyúr
válasz
Janos250 #8754 üzenetére
Lehet az a parancs nem bonyolultabb, mint egy Serial.print().
De a wifi konfigurálása igen. Az adhoc hálózat telefonon meg körülményes ha közben nem akarsz lecsatlakozni a router-ről sem - nem is hiszem, h ez megoldható Android-on. Illetve a mobilnethez is konfigurálni kell a telefont, mert amúgy az ESP-n keresi a netet. Nem az ESP-n kényelmetlen, hanem a telefonon.
Amíg BT-t megkeresem csatlakozok és örülök (és párosítás után mindez az alkalmazásból történik pár pillanat alatt), addig a wifi nem ilyen felhasználóbarát. Wifi az csak úgy jó, ha router-re csatlakozik az eszköz. Peer-to-peer csatlakozásra szerintem nem való.
Ez majd a Wifi Direct-el változhat - az nem dob le a csatlakozott hálózatról sem a telefonon -, de addig is a BT az egyetlen kényelmes megoldás csatlakoztatott eszközökre*.*Wiki szerint az IOT is ebbe a kategóriába esik, de amit ezalatt én értek, az inkább a hordozható eszközök amik közvetlenül kapcsolódnak a vezérlő eszközhöz, nem hálózaton keresztül. Pl egy okosóra, az a legjobb példa a csatlakoztatott eszközre az én értelmezésemben.
A Classic BT Serial teljes mértékben implementálva lett tavaly óta, így már én sem a BLE könyvtárat erőszakolom meg erre a feladatra. Classic BT Serial-ra meg van egy rakás alkalmazás is Play-en, de én pl MIT App Inventor-ban kalapálok hozzá sajátot.
Van hozzá beépített példa is, tutorial se kell.
Ennyi az egész zanzásítva:#include "BluetoothSerial.h"
BluetoothSerial SerialBT;
SerialBT.begin("ESP32test"); //Bluetooth device name
SerialBT.write();
SerialBT.read();De valóban olyan egyszerű az egész, hogy be is másolom ide:
#include "BluetoothSerial.h"
//#if !defined(CONFIG_BT_ENABLED) || !defined(CONFIG_BLUEDROID_ENABLED)
//#error Bluetooth is not enabled! Please run `make menuconfig` to and enable it
//#endif
BluetoothSerial SerialBT;
void setup() {
Serial.begin(115200);
SerialBT.begin("ESP32test"); //Bluetooth device name
Serial.println("The device started, now you can pair it with bluetooth!");
}
void loop() {
if (Serial.available()) {
SerialBT.write(Serial.read());
}
if (SerialBT.available()) {
Serial.write(SerialBT.read());
}
delay(20);
} -
tvamos
nagyúr
válasz
Janos250 #8744 üzenetére
Csak annyi kene, hogy ha nem otthon vagyok, akkor a mobil hot-spothoz csatlakozzon, ha meg a masik otthon, akkor meg az ottani routerre. Valami ilyesmi.
(#8748) Tankblock válasza Janos250 (#8744)
Vagy viszgáljuk adott Wifi.begin() a csatlakozás sikerességét, és ahol nem sikerül akkor a listába menni a következőre.....
Ha nekem kell megirni, akor ez lesz. -
Tankblock
aktív tag
válasz
Janos250 #8744 üzenetére
Nekem elsőre két dolog ugrott be:
Vagy viszgáljuk adott Wifi.begin() a csatlakozás sikerességét, és ahol nem sikerül akkor a listába menni a következőre.....
Vagy AP csinálni és végig scannelni az elérhető hálózatokat, majd megnézni pl jelerősség alapján melyek elérhetőek és melyekhez van password is tárolva, Majd ezek alapjána a legjobbhoz csatlakozni.
-
Teasüti
nagyúr
válasz
Janos250 #8733 üzenetére
Mindkettőnek megvan a maga szerepe. IOT-re és önálló eszközökre egyértelműen wifi. A csatlakoztatott eszközökre viszont inkább a BT. Wifi nem igazán helyettesíti a BT-t (Wifi Direct-re meg még nem láttam példát ESP32-n, az még várat magára), az adhoc AP üzemmód meg a legkevésbé se ideális megoldás peer-to-peer használatra, az túl kényelmetlen és kompromisszumos a vezérlő eszközön, valamint bonyolultabb is a BT-nél: BT egyszerű mint az UART, wifihez meg kell először is egy konfig, aztán lehet tartalmat gyártani a webes letöltéshez - na inkább hagyjuk.
Ár/értékben meg lehet hogy a legjobb az ESP, de akárhogy is nézem annak az áráért egy maréknyi Atmel-t lehet venni. És nagyon sok feladathoz amúgy is overkill egy ESP32. -
válasz
Janos250 #8731 üzenetére
Ugye a hsz többi részét is olvastad?
Különben meg arra gondoltam, hogy annak idején, mikor én jöttem először ide tanácsért, és kérdeztem a wireless lehetőségekről, valamelyik kollégával hosszasan vitáztatok, hogy az esp mennyivel jobb a hc-06-nál, a wifi a Bluetooth-nál. Nem rosszindulatból írtam. -
válasz
Janos250 #8722 üzenetére
Te mindig mindenre azt ajánlasz
de jelen esetben nem lesz jó, mert az nem tud USB HID eszközt emulálni.
Ellenben az arduino pro micro igen, és nem is túl drága.
Van belőle 5V-os és 3,3V-os verzió, olyat érdemes választani, amilyen logikai szintén működik az a bizonyos Lenovo billentyűzet, is nem kell majd level converter. -
Sokimm
senior tag
válasz
Janos250 #8695 üzenetére
A this-t még majd igyekszem megérteni, mert zavar, hogy nem értem, de a hiba meglett!
Az osztálynak nem adhatok input paraméter igényt, mert az adott metódusa (nem csak egy lehet) majd igényli, hogy most két változós inputot adok, vagy többet (kevesebbet).Most szépen lefut, teszi a dolgát, csak nem tudom a szakzsargont, amiatt kérném a korrigálást tőletek!
(köszönöm a segítséget Tankblock neked is, már működik, cserje/tölgy ide vagy oda.)
pl: (ha nem jó szavakat használok, javítsatok ki bátran, nehogy itt zöldségeket beszéljek!
)
asd.h:
#ifndef ASD_H
#define ASD_H
#define PI 3.14
class SZAMOL {
private:
int A;
int B;
int C;
int D;
public:
int osszead (int C, int D); //ez az osszad egy metódusa a SZAMOL osztálynak?
int szorzas_pivel (int A);
};
#endifasd.cpp:
#include "asd.h"
int SZAMOL::osszead(int C, int D) {
return C + D;
}
int SZAMOL::szorzas_pivel (int A){
return A*PI;
}main:
SZAMOL szamolpeldany; //itt példányosítok ?
void Setup (){
Serial.print(szamolpeldany.osszead(C, D));//majd itt a példányak megadom az input paramétereit? (és kiiratom)
} -
Tankblock
aktív tag
válasz
Janos250 #8648 üzenetére
Lehet hogy van egyszerűbb magyarázat is, ha az ftdi adapterről táplálod meg akkor nem tud elegendő [mA] biztosítani, igy elveszti a kapcsolatot, vagy csak eldriftel a jel.
Sonoffot csakis alaplaptól elválasztva külsőleg megtápolva és földet közösítve szoktam letölteni. A vezetékek még így is összetudnak zajt szedni. 10 [cm] est használok jumper vezetékből és szoktam beforrasztani tüskesort is a pcbre.
-
_q
addikt
válasz
Janos250 #8638 üzenetére
Resetet nem VCC-re kell húzni? Nem tudom csak kérdezem.
Másik hogy az USB-TTL konverter az UNO lapon szerintem 5V-os, te pedig 3v3-ra kötötted a 8266-ot. Ezt is kérdezem hogy nem gond-e?
Így belegondolva nem is értem hogy tud működni UNO soros kommunikáción keresztül a 8266. Mert nem jön ki az azonos jelszint. Vagy mind a kettő 5 V-on vagy 3v3-on legyen. De a 8266 meg úgy tudom csak 3v3-ot tolerál. Ehhez keresek választ, mert hallottam mástól is már hogy UNO-t használt soros kommunikácóra FT232 hiányában, de nem értem hogyan lehet ez esetben. -
Teasüti
nagyúr
válasz
Janos250 #8598 üzenetére
Semmit nem kell csinálni vele. Én csak az usb-soros chipet használom róla.
Az Uno le van húzva reset-re, így fel se boot-ol. Ellenben a TX/RX lábak bypass mennek tovább az ESP-re.Ennyi az egész:
Uno - 8266
3V3 - Vcc
RX - TX (5V toleráns az I/O lábakon)
TX- RX
GND - GNDUno-n: Reset -> GND
Gyakorlatilag USB-Soros konverterként használod a lapot.
IDE-ben meg egyértelműen az Uno Com portjára csatlakozol és alaplapnak meg az ESP-t állítod be. -
válasz
Janos250 #8401 üzenetére
Kb ennyit értettem a hozzászólásod első kódrészletéből:
void loop() { //ez értem
taskDISABLE_INTERRUPTS(); //ez remélhetőleg egy beépítet függvény, este megnézem mire jó és miért kell
for ( uint8_t i = 0 ; i < ledNum ; i++) { //ciklus indul, a uint8_t lövésem sincs mi, gondolom egy közvetlen lenyúlás egy hardverközelibb szintre
transmitOnePixel(lightArray [lightArrayIndexPortWriting][i]) ; //ebből annyit értek, hogy egy tömbben defináltunk egy másik tömböt és elkezdtük az elemeit kiíratni
} ;
taskENABLE_INTERRUPTS(); //ez remélhetőleg egy beépítet függvény, este megnézem mire jó és miért kell
delay(1000) ; //ez értem
} ; // end loop //ez értemEzért írtam, hogy meg akarom érteni mit, miért, hogyan.
-
válasz
Janos250 #8399 üzenetére
Igen, de annyi időm még nem volt, hogy meg is tudjam fejteni, mi mit jelent és hogy kell használni.
Ezzel az egész projekttel kb heti 2 órát tudok foglalkozni, és soha nem tanultam kontrollert programozni. Nem véletlen, hogy még a saját kódomban is magyarul írom a változók neveit és szinte soronként kommentelem, különben lövésem se lenne, mit írtam a 3 héttel ezelőtt készült kódba. -
tvamos
nagyúr
válasz
Janos250 #8375 üzenetére
Tud ez a PID algoritmus valami automatikus betanualst is...
(Foiskolan is tanultunk ilyesmit... Fuzzy PID control, vagy valami ilyesmi neven, de mar nem emlekszem.Lehet, (biztos,) hogy rosszule emlekeztem, mert ezt a nem linearis rendszerekhez talaltak ki. Itt egy kis leiras: [link])Van itt rola iras, Autotune-nak hivjak ok: [link]
-
ngabor2
nagyúr
válasz
Janos250 #8304 üzenetére
Jó ötletek, próbáltam. A D2-re korábban oda-vissza kapcsoltattam a relét, az ment szépen. A D2-t kipróbálom.
Mondjuk azt nem értem, hogy miért kapcsolja be a relét, de miért nem kapcsolja ki?
Másik programban az egyéb dolgok nem zavartak be, ott a 2,3,4,5-ös pint is használatban van.
-
fagylalt
senior tag
válasz
Janos250 #8288 üzenetére
Kicsit böngésztem az ebay-en és ezt találtam: [link]
Még nem vagyok teljesen otthon a témában, úgyhogy nézzétek el, ha butaságot írok.
Az USB csatis U-blox7 az nekem nekem nem jó, mert azon nincs antenna kivezetés, így a vétel is gyengébb. Illetve, ahhoz kellene egy illesztőpanel is Ardu-hoz (Arduino MEGA panelem van (ATMEGA 2560)).
A másik kettő között mi a különbség? Tehát elnevezés szerint GPS modul vs GPS Flight controller?Esetleg válasszam azt amit utoljára küldtél? Az all-in-one megoldásnak tűnik.
-
válasz
Janos250 #8285 üzenetére
A telefonomban lévő gps+glonass legnagyobb pontossága nyílt terepen, tiszta időben (márpedig a nyílt víztükör eléggé optimális környezet ebből a szempontból) kb. 30cm. Miért ne lehetne egy 10e Ft-os gps modul is legalább ilyen pontos?
Mivel amúgy is wifiképes lesz az eszköz, akár egy mobiltelefont is lehetne használni. -
fagylalt
senior tag
válasz
Janos250 #8285 üzenetére
Ez csak egy hobbiszintű, RC modell méretű, vízi járműhöz kell, hogy nagyjából be lehessen lőni, hogy merre kolbászolt el. Tisztában vagyok az 5-10 méteres pontatlansággal, azonban jobb ötletem nincs a navigációs rendszerhez, mint egy GPS + IMU kombó. És igen, tudom, hogy az olcsó IMU-k szintén hasonlók, azonban rendelkezek akkora rászánható összeggel (sajnos).
Azért tettem fel a kérdésem, mert olvastam, hogy ezeknek a moduloknak is van kínai másolatának a másolata, ami kisebb teljesítményű,...stb. -
fagylalt
senior tag
válasz
Janos250 #8283 üzenetére
Én olyan 5eFt körül szánnék rá. Viszont az olcsóbb (3eFt-os) és drágább (nagyon max. 10eFt) változatra is kíváncsi vagyok (feltéve, hogy vannak ilyen opciók).
A budget vonal érdekelne elsősorban, bár gondolom szinte alig van különbség ebben az árkategóriában közöttük.Amúgy a GPS-szel egy önvezető járműnek a pozicióját szeretném begyűjteni, míg a WiFi segítségével a kapcsolatot tartanám vele okostelefon segítségével.
-
_q
addikt
válasz
Janos250 #8261 üzenetére
Nem nekem lenne. Ismerősöm szeretne minél kisebb méretű eszközt. Ehhez próbálok megoldást keresni. Én ESP32-t használok és maradok is ezen a vonalon. Próbálom meggyőzni róla, hogy ezzel valósítsa meg a projektjét, de eddig a 04 mellett szólt a méret. Amit ma linkeltél ESP32 modul az nekem megfelelne, de a mérete miatt az ismerősömnek annyira nem. Mivel érveljek neki?
-
AcCEsS
senior tag
válasz
Janos250 #8257 üzenetére
Nálam minden Sonoff cucc (Basic, POW) ezzel (5.12.0 verzió) működik, hibátlanul. A POW MQTT-n küldi az aktuális volt, amper, watt adatokat a Domoticz felé. Könnyen konfigurálható és totál stabil. Az első USB-soros flash után már OTA frissíthető. Ja, és a POW esetében a mért értékek is kalibrálhatóak.
-
_q
addikt
válasz
Janos250 #8253 üzenetére
Igen cm-re gondoltam. Ahogy látom a D1 az tartalmazza a soros kommunikációt viszont kisebb méretű mint a többi dev board, míg a másik verzióhoz külsőleg kell használni soros kommunikációhoz USB-TTL konvertert, illetve saját PCB gyártásnál hasznos a még kisebb méret miatt. Köszi.
-
Janos250
őstag
válasz
Janos250 #8229 üzenetére
Egy mondat magyarázat hozzá:
minden használat során kiolvassuk a 32 bites számlálót, de csinálunk egy "felső", magasabb helyiértékű 32 bitet is, ami induláskor 0 lesz. Ha a kiolvasott számláló értéke kisebb, mint az előző kiolvasásnál, akkor növeljük eggyel a magasabb helyiértékű 32 bitest is, mert akkor a számláló átfordult.
Ez jól működik mindaddig, amíg legalább 17 másodpercenként használjuk.
Új hozzászólás Aktív témák
Hirdetés
- Horgász topik
- Anime filmek és sorozatok
- Székesfehérvár és környéke adok-veszek-beszélgetek
- Kertészet, mezőgazdaság topik
- Formula-1
- Milyen alaplapot vegyek?
- Torrent meghívó kunyeráló
- Milyen TV-t vegyek?
- Genshin Impact (PC, PS4, Android, iOS)
- One otthoni szolgáltatások (TV, internet, telefon)
- További aktív témák...
- BESZÁMÍTÁS! 4TB Toshiba P300 SATA HDD meghajtó garanciával hibátlan működéssel
- BESZÁMÍTÁS! ASUS TUF Z390-PRO GAMING alaplap garanciával hibátlan működéssel
- BESZÁMÍTÁS! 1TB Kingston KC3000 NVMe SSD meghajtó garanciával hibátlan működéssel
- iKing.Hu - Apple iPhone 16 Pro Max - Desert Titanium - Új, kipróbált
- AKCIÓ! MSI B450M R7 5700X 16GB DDR4 512GB SSD RX 5700 XT 8GB Rampage SHIVA Zalman 600W
Állásajánlatok
Cég: Liszt Ferenc Zeneművészeti Egyetem
Város: Budapest
Cég: CAMERA-PRO Hungary Kft
Város: Budapest