- Milyen monitort vegyek?
- Először égett le egy újságnál a GeForce RTX 5090
- Komolynak tűnő gamepadekkel gyarapította palettáját a Razer
- Milyen belső merevlemezt vegyek?
- Milyen HASZNÁLT notebookot vegyek?
- Hobby elektronika
- VGA hiba
- Androidos tablet topic
- Shield TV-t csinált a Shieldből az NVIDIA
- TCL LCD és LED TV-k
-
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
-
-
Teasüti
nagyúr
A jegyzőkönyv kedvéért: ESP8266 és az ESP32 is 5V toleráns a GPIO lábakon.
A mikrovezérlő mondjuk ha 8266-ot használsz és bírja az 5V-ot, akkor úgy leosztani hogy az AD konverterre max 5 V kerüljön de inkább kevesebb.
Erre írtam, hogy bírni bírja, de az AD konverter 3,3V felett nem mér. GPIO használatban nincs különbség a 8266 és 32 között.I2C kapcsán meg mérés nélkül nem lehet rá mondani semmi értelmeset. Amiben biztosak lehetünk, hogy abban a beállításban nem működik. Nekem úgy tűnt tényszerűen kezelted, ezért ugrottam rá.
Korábban is azt hiszem az én esetemben került szóba a dolog, azóta kellően utánajártam a dolognak. Főleg ha már 2 méteres buszt tervezek rajta 6 slave-vel. -
válasz
Teasüti #9038 üzenetére
Nem ismerem az ESP8266-ot. Itt azt írták többen, hogy 5 V-ot tolerál, ebből indultam ki. De megjegyeztem, az ESP32-nél hogy ott 3.3 V a max. Én ESP32-t használok, oda írtam példának, hogy én 2 V-ra állítanám be az ellenállásosztót. Vagy én írtam kétértelműen vagy neked volt az, de a lényeg, hogy én csak viszonyszámokat írtam, hogy a max tolerálható feszültséghez képest hogyan válassza meg az ellenállásosztó értékét.
Máskor az ESP8266-ot inkább kihagyom példa esetén, nehogy hasonló félreértés legyen.I2C: alapból 10k felhúzó ellenállások voltak, a plusz random ellenállás csak egy próba volt, mert nem értettem miért nem jó a mérés és gondoltam felhúzó ellenállás pluszban segíthetne. A konklúzió szó helyett úgy mondanám, hogy leírtam egy tapasztalatot, ahogy azt már te is többször tetted. Mivel korábban szóba került az I2C és annak hatótávja ezért most egy friss tapasztalat alapján gondoltam megosztom, hogy akárhogy is van én hatótáv korlátba ütköztem. Nem mértem semmit, így igaz hogy a probléma okát nem tudom biztosra. Örülök, ha neked 10 méter se okozott gondot.
-
Teasüti
nagyúr
Már ne haragudj, de honnan veszed ezeket a blődségeket?
ESP32 és ESP8266 portjai 5V toleránsak, ez igaz. De ez nem azt jelenti, hogy üzemszerűen rá kell küldeni az 5V-ot egy 3,3V-os logikára. Az meg hogy éppen egy ADC-re kötnél be 4V-ot, az meg külön vicces: ugye az tiszta, hogy 3,3V-ig tud csak mérni az ADC?I2C-hez visszatérve: I2C amúgy nem igazán plug&play protokoll, a buszt minden esetben méretezni kell egyrészt vezetékezés szempontjából, másrészt a buszon lógó eszközök szerint.
Az, hogy próbapanelen random összedugdosol vmit random felhúzókkal, random vezetékekkel az vagy működni fog, vagy nem. Az meg hogy mérés nélkül egyből konklúziót vonsz és olyan kijelentéseket teszel, hogy 10 cm felett nem működőképes az I2C, az még jóindulattal is megmosolyogtató.Mellékesen nekem sikerült értelmezhető jelet kicsikarnom egy SI1145-ös szenzorból 10 méter vezetéken keresztül.
A SCL-re kellett berakjak külső felhúzót, ami kb 3k-s eredővel rendelkezik. SDA-ra nem is kellett külső felhúzó, illetve inkább csak rontott a jelen, mint javított volna.
Ami viszont fura, hogy 1k-s felhúzóval meg se mukkant a busz.Ha vki hozzáértő megnézi az alábbi képet, akkor a sárga jelnél mi az a két lépcsős emelkedés? Ha erősebb felhúzót rakok rá, akkor magasabb feszültségre fut ki a feltölés. Aztán vmiért meredeken ugrik fel a tetejére. Ezt a hirtelen ugrást nem értem. Lehetséges vmi áthallás a két csatorna közt? Mintha az SCL húzná magával az SDA-t, úgy tűnik.
-
Én ebayről vagy aliexpress-ről rendelném. Esetleg lehet keresni hasonló paraméterekkel alternatívát. ID, VGS, VGS(th), rDS(on) ezeket figyelve.
A feszültség osztót úgy értettem, hogy ha mondjuk laptop aksikat használsz akkor lehet lesz 6 V-od is akár. A mikrovezérlő mondjuk ha 8266-ot használsz és bírja az 5V-ot, akkor úgy leosztani hogy az AD konverterre max 5 V kerüljön de inkább kevesebb. Ha ESP32-t akkor meg max 3 V körül. Ellenállásosztó képlettel kiszámolható, hogy Ube = 6 V esetén, pl. Uki = 4 V, hogy véletlen se érjük el a GPIO-ra kapcsolható max feszültséget, marad R1 és R2, R1-et tetszőlegesen megválasztva mondjuk 10k, akkor R2 kiszámolható a belinkelt képlet átrendezésével.Az, hogy a max GPIO-ra kapcsolható feszültséghez képest mennyit választasz nem számít szerintem most, mivel nem uV az amit mérni szeretnél (persze 0.5 V-ot nem biztos érdemes). Lényeg hogy a végén a feszültség számításakor vedd majd figyelembe. Tehát ha számolod a feszültséget alapból úgy kellene, hogy (6V-os aksi esetén) 6*mért érék/4095 (12 bites AD-nél). Viszont az AD nem fog 6 V-ot mérni mert az ESP tegyük fel 5 V toleráns, le lesz osztva feszültség osztóval. Ezért az előbbi számításban a 6 V helyett 4 V-al kell számolni (vagy amit szeretnél), mivel ez lett beállítva az osztón, majd arányosítani a 6 V-hoz, azaz 6/4 V -os viszonyszámmal vissza kell szorozni, így a mért értéket a 6 V-hoz képest kapod meg, tehát 4*6/4*mért érték/4095. Ez viszont ugyan azt adja vissza, mint ha 6 V-nak vennénk az AD által max mérhető feszültséget így ezt külön nem kell leprogramozni. Max könnyebb megérteni vagy jobban összezavar
Ha valakinek van kedve végigkövetni a logikát és nem jól írtam javítson ki
-
válasz
Teasüti #9015 üzenetére
& Janos250:
Mivel esp8266-ot fog vezérelni, aminek a kimenetei 5V toleránsak, a védődióda helyett beépített snapback áramkör pedig csak 6V-nál nyit ki, ezért jó eséllyel meglesz a gate-en az aktuális akkufeszültség, tehát tökéletesen fog zárni.
Vagy tévedek, és esp32 lesz a páciens? Mert akkor nem mondtam semmit...
-
Hát akkor elég rosszul értelmezted.
Az a két ellenállás nem feszültségosztó, ráadásul nincs rajta az ábrán az analóg bemenet bekötési pontja. Ha a [Load] helyére gondoltad a bemenet bekötését, akkor az szépen rákapcsolná a teljes akkufeszültséget a bemenetre, amiből szépen kijönne a füst. Bár az esp8266 i/o lábai 5v toleránsak, ha jól tudom az adc-re ez nem vonatkozik.
-
Én úgy értelmeztem, hogy az ábrán látható 2 ellenállás adja magát a feszültség osztót nem kell plusz ellenállás. A FET feszültségre nem gondoltam, de akkor csak annyi hogy a max 2 V helyett mondjuk 2.6 V lesz amit arányosítani kell az aksi max feszültségéhez (ha 0.6 V esik a FET-en). De cáfoljatok meg ha nem így van.
Viszont mivel asszem 2.8 V lehet a minimum feszültség amin még biztonsággal működik az ESP32, így az aksit nincs értelme teljesen lemeríteni. Lényeg hogy meg kell nézni mekkora feszültség esik a FET-en, azt pedig hozzáadni az ADC mért feszültségéből, így meg van a tényleges aksi feszültség. Vdd ahogy írod az aksi.Deepsleep módban 10 uA a fogyasztása az ESP32-nek, egy AMS1117 3v3 LDO 5-10mA körül van terhelés nélkül.
-
válasz
vargalex #8993 üzenetére
Azért írta xboy89 a fettel vezérelt feszültségmérést, mert így csak a mérés ideje alatt fogyasztanak az ellenállások.
Mondjuk ha jól számolok, 3,6V névleges akkufeszültség mellett 2db 10k ellenálláson 0,2mA folyik el, kapcsolgatás nélkül. Az esp deep sleep alatt mennyit fogyaszt? És a boost-buck konverter? -
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...
-
-
Attix70
aktív tag
Szeretnék majd csinálni egy villanyos bicikli monitorozó egységet ami Bluetooth-on kommunikál egy androidos eszközzel és ezzel kapcsolatosan az lenne a kérdésem, hogy ESP32-vel lenne ez a legegyszerűbb (vagy nano+HC-05) ?
Áram, gázkarállás, feszültség, sebesség lenne monitorozva. -
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. -
válasz
Tankblock #8962 üzenetére
Jól tippelted, mert ismeretlen eszköznek látja a 2. csatlakoztatott ESP32-es modult. Megpróbálom felrakni a drivert újra.
A MAC címes megoldás hogyan működne. Ha meg van a MAC cím, akkor az mindig fix, mert hardverhez van rendelve, tehát sose változik, így ezt kell megadnom a kliens eszköznek? Azaz MAC cím alapján csatlakozna a kliens a szerverhez hasonlóan mint ha IP-t adnék meg?
(#8964) Janos250
Köszi(#8965) tvamos
Nem szeretném mindig újra megadni a kliensnek, hogy melyik IP-re csatlakozzon. Az lenen a jó, ha bekapcsolom akkor az ismert cím alapján a szervert egyből felismerje mindenféle plusz felhasználói beavatkozás nélkül. -
Teasüti
nagyúr
Megérkezett ez a Sim808-as modulom, azzal játszogatok most.
Azt kell mondjam nagyon király kis cucc ez!
Egy UART kell hozzá, meg egy-egy gpio port a be-/kikapcsoláshoz, valamint az alvó üzemmódhoz (ezeket fel/le kell húzni és tartani egy kis ideig, kvázi gombnyomást szimulálva).
Powerkey gombbal kézzel is lehet kapcsolni. De ha fixen földre húzzuk ezt a lábat (vagy áthidaljuk a gombot), akkor automatikusan boot-ol amint tápot kap és parancsra le is lehet kapcsolni. Megspórolva egy portot. Akkus üzemhez ez szerintem nem ajánlott, hisz Vbat-ról húzza fel ezt nem tudom mekkora ellenállással. De akkus üzemnél e nélkül is boot-ol magától, ha az akkufesz elég magas. CV/CC töltőáramkör integrálva a modulba.
BT3.0-át tud a modul, külső antenna kell hozzá.
És mindent AT parancsokkal lehet elérni, a BT SPP profilnál van transzparens kapcsolati mód is, amikor nem kellenek az AT parancsok, hanem egyszerűen fogad és küld UART portra mindent, mint egy sima HC-06 modul.
Előnye az ESP32-vel szemben, hogy beállítható pin kód a csatlakozáshoz és ugye sima UART, vagyis nem kell betölteni 800 KB-nyi library-t programozáskor. Valamint az erősebb antenna.
GPS-t rém egyszerű használni, igazából van rá kb kettő AT parancs ami sűrűn kell (bekapcs, pozíció lekérdez), NMEA mondatokkal próbáltam, de többféle protokoll szerint tud kommunikálni. Tökéletesen működik, még az USB portról is az ESP32 mellett (elvileg 2A-es táp kéne neki). GSM részét nem próbáltam még, kéne vennem egy feltöltős kártyát bele.
Valamint kéne szerválnom hozzá egy mikrofont és egy hangszórót.AT parancsfeldolgozásra tudtok vmi könnyű módszert? Sima text parsing jut csak eszembe.
Jah és Janos250 köszi a hardware serial tippet, valóban odatehető a port arra a lábra, amelyikre tetszik.
-
válasz
Tankblock #8959 üzenetére
Lehet majd erre is sort kerítek, szerencsére jelenleg nem kell még ennyire elmélyednem.
Sikerült socket szerverrel megcsinálni, hogy routeren keresztül küld egymásnak a két ESP32 egy egyszerű "hello word" stringet.
Az a gond, hogy egyszerre ha bedugom a 2 ESP32-es dev board-ot akkor hiába külön USB porton van, még se ismeri be két külön COM portnak. Régebben TI mikrovezérlőknél nem volt ilyen gondom ott ment 2 panel is külön USB portról. ESP32 dev board (DOIT board ha minden igaz) esetén nem lehet megoldani? Elég rossz így egyesével mindig lehúzni cserélni cilust játszanom.Még egy kérdés, hogy ESP32-nek fix IP címet lehet adni úgy is, hogy a router gateway, subnet dolgait nem keverem bele, ne kérje? Amit találtam kódot, ott a router paraméterekkel együtt állította be a szerver ESP32 fix IP címét. Másik megoldás, hogy megnéztem serial monitoron az IP címét a szervernek, és manuálisan ezt megadtam a kliensnek. Azt nem tudom viszont, hogy idővel ez az IP vajon változhat-e, azt sejtem igen, attól függően a router milyen IP-t oszt ki.
-
gyulank
addikt
Szeretnék (főleg) NET nélkül, Wi-Fi-n át weblapon keresztül jelszó beírása után ki-be kapcsolni 1 relét.
Esetleg másodpercben megadható beállítható négyszögjellel. Esetleg időzíteni automatikus visszakapcsolását.
Van hozzá: Arduino Nano V3; Arduino Pro Mini; ESP-07; NRF24L01
Konkrétan 1 mozgásérzékelő által kapcsolt riasztó autókürtöt akarok kikapcsolni, mielőtt engem dudálna, úgy, hogy akárki ne tudja állítgatni. Melyikkel lehet megcsinálni, és hogy? -
Janos250
őstag
MQTT szerver része - tudtommal - nincs megfelelően kidolgozva ESP-re, csak linux alá, pl. Pi-re.
Küldés:
Én a következőt csinálom:
Van egy ESP32 szerver, amire neten (akár helyi WiFi-ről, akár az ország másik feléből) lehet küldeni adatokat, és minden bejelentkezett kliensnek továbbküldi, azok meg értelmezik, hogy kell-e ez nekik. Nem azt mondom, hogy ez Neked jó, ez csak egy példa, amit én használok. A bejelentkezettek küldhetnek is, és elküldésre kerül a bárki által megosztott adat (Pl. másik ESP32-ről, windows alól putty-al, stb) -
válasz
Tankblock #8946 üzenetére
MQTT értelemzésnek többzör nekifutottam már, de kicsit bonyolult volt nekem. Esetleg egy jó leírást tudsz javasolni hozzá?
Alternatív megoldásnak esp32 socket server ami még jó. Ettől független annyi helyen olvasni MQTT-ről hogy érdekelne az a verzió is, hogy mi ez, mire jó, miért érdemes használni stb.
-
válasz
vargalex #8944 üzenetére
Elhiszem én is, de nem látom hogy tényleg jól írtam-e meg a kódot addig, amíg aksiról nem megy hosszabb ideig.
Másik kérdés mindenki felé.
ESPnow tényleg nem megy WIFI-re csatlakozással együtt? Adott 2 db ESP, egyik mér, küld adatot a másiknak, aki netről fogad/küld adatot. Ha nem ESPnow, akkor mivel lenne érdemes a két eszköz közötti küldést megoldani, hogy WIFI-re is tudjon az egyik csatlakozni? -
AcCEsS
senior tag
Ha az ESP8266 WAKE_RF_DISABLED beállítással lett deepsleep-be altatva, akkor a következő feléledési ciklusban van bármiféle lehetőség az RF modul bekapcsolására? Vagy csak a WAKE_RF_DEFAULT paraméterrel történő altatás utáni ébredés során fog működni ismét?
-
Teasüti
nagyúr
De, ugyanaz a kiosztás. Csak nyilván olyan panelt nem használhatsz külső modulhoz, amin már rajta van egy.
Az UART busz hülyét kap, ha két modult kötsz rá.(#8934) Janos250
A linkelt programozón nincs rajta az a két tranyó, ami kell az invertált logikához. Így az auto letöltés bukta.
Valamint ránézésre a 3,3 voltot valszeg feszültségosztóval állítja elő egyéb hijján, ami meg hááát...
Azok a 0603-as ellenállások nem úgy néznek ki, amire szívesen rákötnék akár csak 100 mA-t.
Az 1/10W-os korlátjukba legfeljebb 68 mA fér bele 1,7V-os drop-nál, ezzel meg nem biztos, hogy meg lehet hajtani egy ESP32-t. (Nem jártam utána.)
Szóval az UART kommunikáción kívül konkrétan semmire nem jó.
A devkit panelje meg semmivel nem kerül többe, vagy talán még olcsóbb is mint egy tisztességes FTDI programozó. És szerintem bekötni is ugyanannyi, mint egy FTDI programozót: usb az egyik végén, dupoint a másik végén. -
válasz
Teasüti #8922 üzenetére
ESP32 WROOM32 adatlap 14. oldal 7-es fejezet, oldal közepe:
"Note:
Soldering Pad 39 to the Ground of the base board is not necessary for a satisfactory thermal performance. If users do want to solder it, they need to ensure that the correct quantity of soldering paste is applied"Solder pad alatt szerintem arra gondol, amiről mi is beszéltünk. Ha megnézed az adatlap 14. oldalán a schematic-ot, akkor látszik hogy jobb oldalon a GND3 fölött van a P_GND. Ha ezt összehasonlítod a PCB-vel, akkor látszik, hogy a P_GND nincs a GND3 fölött. Tehát ezek szerint a P_GND, ami a 39-es láb, illetve a megjegyzés az adatlapban engedményt ad arra, hogy nem muszáj beforrasztani, habár a schematic úgy mutatja még is. Tehát a felhasználótól függ be akarja-e forrasztani. Én szerintem hagyni fogom.
-
válasz
Teasüti #8926 üzenetére
Tényleg már látom. A reset gomb mindig jól jöhet mondjuk a panelen szerintem, ha nem akarsz aksit/elemet vagy hálózati resetet.
Ezen a devkit panelen ahogy nézem ki van hagyva a forrasztási helye az ESP32 wroom modulnak. Ha nem akarod ráforrasztani akkor nem látom még hogyan lehetne programozni.
(#8927) DopeBob
ESP32 Gateway. Ezen van ethernet. -
DopeBob
addikt
Sziasztok,
tudja esetleg valaki ESP8266 létezik LAN csatis kivitelben? Vagy bármilyen hasonló kis méretű dev board amin van ethernet és Arduino kompatibilis?
-
Teasüti
nagyúr
Nem tudom ez a programozó mennyivel jobb mint egy FTDI
Ha megfigyeled az ESP32 programozót, akkor azon rajta van az auto letöltéshez szükséges két tranyó is, ami lehúzza az EN és IO0 lábakat. Gyakorlatilag a Devkit áramköre egy az egyben CH340g-vel. Így mint írtam volt megspórolható még a két gomb is a NYÁK-ról.
Ezzel konkrétan nem kell semmi kiegészítő a modul mellé az EN felhúzó ellenállásán kívül. Kivezeted 6 tüskére a Vcc, GND, RX, TX, EN, OI0 lábakat, rá erre a programozóra és uccu neki!
Mondjuk a CP2102-es programozó szimpatikusabb lenne, ilyen van a devkit-en is, de az mellé kell egy auto-program áramkör még pluszban vagy a NYÁK-ra, vagy vhova (vagy hát különben nyomogatod a gombokat).
Talán az volna a legideálisabb, ha gyorsan összeraknék magamnak egy ilyen programozót a fenti mintájára CP2102-vel.szerk: hmm ami azt illeti nem is kell saját, találtam hozzá "eredeti" devkit programozót!
(#8925) tvamos
Nem lehet, hogy a fura program nyelv miatt?
Állítólag nem rég jött hozzá ki egy C fordító.
8 független mag azért elgondolkodtató.
De tényleg nincs elterjedve egyáltalán. Teljesen véletlenül találtam rá. -
válasz
Teasüti #8922 üzenetére
Ja igazad van a gombokhoz ajánlott a 100nF, kicsit belekeveredtem már
. Nem tudom ez a programozó mennyivel jobb mint egy FTDI vagy CP2102-es USB-TTL konverter. Én az utóbbival tervezem használni. Ha jól tudom 8266-nál is soros vonalon lehet programozni. Így oda ez is szintén használható. RESET gombot érdemes használni, akkor már csak max a boot gomb-ellenállás-kondi 3-as a plusz alkatrész.
Sőt egy FTDI vagy CP2102 esetén csak RX, TX, VCC és GND kell. Bár ahogy nézem amit linkeltél is ugyan az lenne, csak kicsit drágább eszköz.
Egyébként arra a hűtőfelületre nem tudom tényleg mennyire lehet szükség. Persze ha melegszik akkor jó dolog, de egyébként nem vagyok biztos benne, hogy azt tovább muszáj forrasztani még, már mint az hűti alapból az ESP32-es IC-t. Az hogy ezt még egy további panel részhez forrasztod olyannak tűnik nekem, mint ha egy CPU-n lévő hűtőbordára még egy másik hűtőbordát tennénk, esetleg ventilátort. Az alap hűtőbordával is jó a többi már csak plusz lenne ami ha kivitelezhető jó, de nem biztos hogy kell is használni. -
Teasüti
nagyúr
válasz
Tankblock #8914 üzenetére
Nem, ez megdöglött. Piros Led folyamatosan villog rajta, kivéve USB-re kötve.
Se 3V3-ról, se 5V-ról nem megy. Az UART0 nem válaszol se boot-oláskor a Serial monitoron, se a program feltöltésnél nem kapcsolódik (EN és IO0 vagyis a Reset és Boot gombok lenyomva előtte). Jah és melegszik az ESP modul maga is USB-ről. Ez kuka.Amúgy nem értem miért, a DevkitC tervrajzán rajta van a védődióda a Vbus-on ( D3 1N5819), így elvileg nem kellett volna tönkremennie. Hacsak a kínai nem spórolta le róla. Nem igazán tudom visszakövetni a vezetősávokat a panelen. NYÁK tervet meg nem találok róla.
-
Teasüti
nagyúr
Igen, az MPU-6050 library példaprogramja ami a Process-nek küldi ki merre áll az 3 poligonból álló repülő, az éppen DMP-t használ.
-
válasz
Teasüti #8904 üzenetére
Igen, így van ez egy sokkal egyszerűbb megoldás amit én szeretnék. Órát nem akartam újra feltalálni még akkor se ha érdekes feladat lenne
. Mindenképpen kellene egy fali óra, ezért gondoltam, hogy vigyünk bele valami pluszt amitől kicsit egyedibb lesz. Igen ez inkább egy időjárás állomás lesz ESP oldalról, csak a körítés másabb.
Egyelőre még nagyon az elején vagyok az egésznek. Hobbinak és érdekességnek jó ilyennel foglalkozni ezért kezdtem ezt. Kicsit bele kevertem a külső hálózatról történő belső hálózat elérését. Tényleg jóval egyszerűbb kiküldeni szerverre. Ezt a részét még átgondolom, ha oda érek. Most minden funkciót beletenné legszívesebben, de annak meg nem sok értelme van -
válasz
Teasüti #8900 üzenetére
Sajnos nem sok rálátásom van a követelményekre, előírásokra amit elvártak, elektronika rész nem hozzám tartozik, én a mérés - kiértékeléssel foglalkoztam. Gyorsulás érzékelővel álló helyzetben tiltás körül 50-80 g körülieket mértünk Z irányban, de X és Y-ban is voltak azért nagy kimozdulások. A mértékére nem emlékszek mekkora volt, csak hogy van csavarodása a NYÁK-nak. Nem mondom hogy mm-es, de pont elég volt ami az elég érzékeny gyorsulás szenzort egy olyan frekvencián rázta, ahol érzékeny az érzékeny volt és ez a mérés miatt nem volt szerencsés. de csavarodása volt a panelnek ez biztos. Az se volt mindegy hogy a gyorsulás érzékelő hol helyezkedik el a panelen, milyen ragasztóval van beragasztva a NYÁK, mert nem csavarozva volt. Tehát minden apróság amit nem is gondolnánk számít. Egyébként ez céges projekt, szóval túl sok mindent nem is tudok mondani hivatalosan, lehet ez is több mint amit szabadna
ESP32 nem sokkal nagyobb mint egy ESP-01. ESP32-vel van tapasztalatom, illetve abból van is modul/development board, ezért ebben az irányban indultam el. Ez az egész projekt a tiédhez képest jóval egyszerűbb, maga az analóg óra részét nem is akartam túlbonyolítani, így ott egyszerűbb a helyzet. Lehet kapni kész mechanikát: [link]. Lesz egy fa lap abba bele lesz marva a mechanikának és a kijelzőnek + elektronikának a helye. ESP32 órában és egy kinti egységben, mind a kettő méri a hőmérsékletet, páratartalmat, Real time clock modul kiírja a dátumot. A két ESP32 kommunikál egymással, az órában lévő pedig még pluszban küldi egy honlapra az adatokat, ahol látszódna grafikonon az adat. Múltkor szóba került a kívülről való belső hálózat elérése, na most emiatt még nem tudom hogy belső hálózaton legyen az egész vagy külsőn. Esetleg thingspeak-re menjen az adat. De valami ilyen lenne az elképzelés.
Az se hülyeség amit írtál, léptetőmotor óra szerkezet, de oda akkor kellene áttétel a kismutató-nagymutató miatt, nem tudom a pontos mechanikai megvalósítás mennyire lenne komplikált, így ezt a részét inkább a profi "kínai mechanikára" bíznám -
Teasüti
nagyúr
LOL, kicsi a világ.
A hajlik résznél kicsit ráncoltam a homlokom. Mekkora nagyságrendekről beszélünk? Század, tized milliméter? Van ennek jelentősége? Tudnál mutatni ilyen automotive előírásokat? Én csak AS szabvány szerint készítem a dolgokat, de ha volna ilyen támpontom, az biztos javítana rajta.Amúgy ahogy nézem van egy rakat ilyen mini barebone ESP. Még válogatni is tudsz.
Úgy tűnik mindnek a 8266 az alapja.
Hogy oldod meg a mutatók működését? Jó nyilván léptető motorral, de honnan tudja majd hogy áll a mutató? Mi lesz a nullpont? -
válasz
Teasüti #8898 üzenetére
Foglalkozunk szimulációkkal, illetve motoron (főleg 3 hengeres) csináltunk csomó vibrációs mérést. Mi esetünkben a nyák mérete kb 5x5 cm mindenféle automotive előírásokkal. Meglepő milyen vibrációkra képes a nyák, sőt mindenféle megtámasztásokkal is próbálkoztunk. Rezonál, hajlik amit csak lehet. Persze ha csak a nyákot nézzük jobb az eredmény szemben ha a nyákot berakjuk egy házba. Na ott a ház tud csak igazán szép eredményeket mutatni (nálunk üvegszálas házban van a nyák), nagyon sokat hozzá ad a vibrációhoz. Sokkal rosszabb az eredmény mint ház nélkül. Legjobb eredmény akkor van, ha konkrétan rá lenne ragasztva a nyák motor vázra, de a gyakorlatban ez nem annyira kivitelezhető dolog a külső behatások miatt se. Mivel nálad nincs ekkora jelentősége, így valószínű minden rendben lesz. Ha még se, akkor érdemes visszatérni a vibrációra ismét.
Analóg (mutatós) óra lenne. Valami ilyen: [link]
Annyi módosítással, hogy dátumot és hőmérsékletet mutatna a kijelzőn, lenne egy kinti egység, így kinti-benti hőmérséklet látszódna. Ezt pedig valahogy feldolgoznám, hogy látszódjon minimum 1 évre visszamenőleg a hőmérséklet, esetleg valamilyen telefonos hozzáférést az adatokhoz lenne még.
ESP-01 kisebb mérete miatt lenne jobb szerinted? -
Teasüti
nagyúr
Az egy accelero + gyro szenzor. Egy gyorsulásérzékellő önmagában tényleg szar erre a felhasználásra. Eleinte a féklámpát szerettem volna működtetni vele, de megtapasztalva mennyire szarul működik más termékekben ez a koncepció éppen az általad felsorolt problémák miatt, így azt inkább a sebességszenzorból okoskodom ki. Ebben az accelero csak segéd szenzor lesz, a kettő adattal együtt már lehet érzékelni hiba nélkül az intenzív gyorsítást és lassítást. (Többek közt ezzel válik majd interaktívvá a ledszalagos világítás is.) Önmagában egyik sem ideális - előbbi a megcsúszó kerék miatt adhat fals adatot, utóbbi meg a zaj miatt.
Amúgy a nyers G erőt csak egy tengelyen olvasom, a rázkódás meg általában nem a motor hosszanti tengelyén keletkezik. Persze hatásosan lehet szűrni is a jelet.
Amúgy menet közben inkább a DMP-t fogom használni, a gyro-t meg nem zavarja a rázkódás a pontos szögelfordulásoknál. Ez wheeli és stoppie érzékeléshez, valamint dőlésszög monitorozáshoz lesz használva.
Álló helyzetben meg nincs rázkódás, ekkor a nyers szenzor adatok tökéletesek védelmi funkciókra, DIY riasztóként. Ezt megtámogatva a GPS+GSM modullal telefonra kapom majd az értesítést, ha vmi történik. Ekkor ez a szenzor megint csak fő szerepet fog játszani, hogy meg lehessen állapítani viszik-e a gépet vagy csak meglökte vki. A beavatkozás is ez alapján történik majd.Az meg hogy a nyák rezonálni fog... Azért egy tüskesor elég stabilan tud tartani. Az alaplap meg le lesz csavarozva. Ennek a merevsége meg nem is kérdéses. Főleg, hogy relatív kicsi méret és 1,6 mm vastag üvegszálas lap.
De ha nagyon megerőltetem magam, akkor olyan burkolatot nyomtatok neki, hogy a szenzor a fedlaphoz lesz hozzácsavarozva, ha muszáj.Az órához kapcsolódóan:
Gondolom NTP szerverről veszed majd a pontos időt. Ehhez nem volna célszerűbb egy ESP-01? -
Janos250
őstag
válasz
Teasüti #8890 üzenetére
"a flash memóriának fixen le vannak fogva azok a portok, amin pl az UART2 is van."
Az UART2 (más elnevezéssel UART1, ha 0-val kezdjük, ahogy a manual is teszi) mehet a default lábakra,
de Te is megadhatod, hogy hova menjen. Tehát az UART portok (is) azon a lábakon vannak, amelyiken akarod.
Ezt szoftverből tudod megadni, de a fkash memória külön IC, tehát az definiált, hogy a modulon belül melyik lábhoz van kötve.
A perifériák irányítgatásáról (GPIO matrix) is van egy félben lévő leírásom, majd ha kész lesz, felteszem a netre az egyéb ESP32-es szösszeneteim sorába."ki honnan veszi az ESP32-ket?"
Én is mindenkinek azt javasolom, hogy az ESP-WROOM32 alapút vegye!Apropó, nyák! Úgy alakult, hogy nekem is kell sajátot csinálnom. Te egyszer leírtad, hogy hol csináltatod, de nem találom. Küldenél egy linket újra,
Kösz. -
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! -
Teasüti
nagyúr
Viszont a minden periféria "erre" az mcu-ra lesz bekötve, így nem volna praktikus egy másik vezérlőre kötni a gps-t. Azon filózom kihagyom a külső akkut és inkább a jármű akkujáról oldom meg vmi programozható öntartó relével.
ESP8266 nem játszik, a wifi ide haszontalan.(#8869) Tankblock
Használatban; de nem lesz szükség a második UART portra végül. Így hogy vannak 2in1 modulok, így elég egy port is. -
Janos250
őstag
válasz
Teasüti #8865 üzenetére
Erre gondoltál?
/* ESP32 3 UARTs */
// HardwareSerial Serial(0); ez nem kell, mert a HardwareSerial,cpp fájlban benne van,
// automatikusan pédányosítódik
HardwareSerial Serial1(1);
HardwareSerial Serial2(2);
// Choose two free pins
void setup() {
Serial.begin(115200);
Serial1.begin(9600, SERIAL_8N1, SERIAL1_RXPIN, SERIAL1_TXPIN);
Serial2.begin(4800); // pin 16=RX, pin 17=TX
}A begin-ben lehet lábat megadni.
-
Teasüti
nagyúr
Jó reggelt! Szeretnék egy gps és gsm modult, viszont csak egy UART portom van szabad (minden egyes egyéb port felhasználva az ESP-n). Van ilyen 2in1 modul, ami képes egy csatornán kommunikálni mindkét egységgel?
Mondjuk esetleg ez?Illetve filózok még azon, hogy akkuval kéne megtámogatni a projektet éppen a tracking miatt (amúgy gyújtásról megy a táp), ebben tudnátok segíteni? Ez lenne az első akkus kísérletem, se hardver terén, se programozásban nem ismerem a feltételeket.
Köszönöm! -
Teasüti
nagyúr
ESP32-nél a flash-hez kapcsolódó lábak mindig minden esetben foglaltak a háttértár műveletek számára?
Az SD2, SD3 lábakon lévő UART portot nem lehet felszabadítani vhogy? Nincs vmi olyan üzemmód, amikor csak fele csatornán megy a flash memória? -
Janos250
őstag
válasz
Teasüti #8862 üzenetére
Elővettem egyet (doit , ESP32 devkit V1, mert ez van kéznél)
Van rajta egy sárga 107J tantál kondenzátor (https://www.ebay.com/itm/10PCS-6-3V-100UF-B-case-107J-10-SMD-Tantalum-Capacitors-3-5mm-2-8mm/391354380476?hash=item5b1e89f0bc:g:y5QAAOSw5dNWhitt)
Mellette két kisebb kondi felirat nélkül
Az USB csati kozelében látok egy kondit, egy fekete nemtudommit, egy csomó ellemállót, 2 db. J3Y tranyót, és két ledet.
A tokozott hibridben (ESP-WROOM-32) a kapcs. rajz alapján van több mint egy tucat kondi. -
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. -
Teasüti
nagyúr
ESP32 dev lapokon vannak bypass kondik, ugye?
-
tvamos
nagyúr
válasz
dangerzone #8854 üzenetére
Szerintem vedd meg, nagyon szep dolog tamogatni az alapitvanyt! En is vettem toluk nehany Uno-t, meg Leonardot.
Amugy meg kene neked par szervo, meg tobb motor, mint ami ebben van!
Ahogyan aryes is javasolja, erdemes ESP32 alapu vezerlot venni, szerintem azt a verziot, ami van kis LiIon tolto, meg OLED display is. Akkor minden megvan, ami kell, es meg a szunetmentes tap is megoldott.
-
válasz
dangerzone #8854 üzenetére
Ezt és ennyiért semmiképpen.
Vegyél egy esp32 alapú vezérlőt, ott rögtön wifi és bt vezérlési lehetőséget is kapsz külön eszközök nélkül, plusz kis méretű és pl a wemos lolin32 vagy annak klónjaiba az akkus táplálás is bele van építve töltő elektronikával. Hozzá lehetőleg i2c alapú motorvezérlő, és motorok. Ha érdekel, tudok adni pár linket azokról, amiket én rendeltem (AliExpressről). -
Teasüti
nagyúr
Ez egy 4 MB-os ESP8266 usb csatlakozóval és ch340 vezérlővel? Hmm, tetszik.
Nem találok infót, hogy miben különbözik a V2 és V3. Nem feltételezem, hogy más lenne a lábkiosztás, de azért ellenőrizd, hogy az adatbusz ugyanúgy van-e bekötve! Van másik eszköz is az adatbuszon, vagy csak a hőmérő? A felhúzó ellenállásokban talán lehet eltérés, meg kéne nézni szkóppal milyen minőségű jelet ad az egyik és a másik. Ha programozható, akkor kikapcsolnám és csak a külső felhúzókat használnám. Ha több eszköz is lóg a buszon, akkor ott lehet, hogy túl feszesek a felhúzók így együtt. Vagy pont ellenkezőleg. Mérés nélkül nem fog kiderülni.
Esetleg próbáld meg 100 kHz-en járatni a buszt! -
Janos250
őstag
Nem kell megijedni az IDF, freeRTOS függvények használatától arduino rendszerben, mert az is ezek felett dolgozik, általában használhatók a függvényei. (Általában, mert pl. a vTaskList() nem)
Pl.:
"The I2S peripheral supports DMA meaning it can stream sample data without requiring each sample to be read or written by the CPU."
https://espressif-docs.readthedocs-hosted.com/projects/esp-idf/en/latest/api-reference/peripherals/i2s.html -
Találkoztatok olyan ESP32 boarddal, amelyiken van USB /a könnyebb programozhatóság végett/, de le is lehet kapcsolni mindent az SoC-n kívül, ha valami low power cuccok akarok csinálni?
-
Tankblock
aktív tag
Hello
Tárolva hogy mekkora MHz működjön azt a sdkconfig-ban van.
MSYS32 ben / Linux alatt ha betallózod akkor
make menuconfig
paranccsal tudod editálni relatíve egyszerűen.Nem javaslom kezdőként hogy ehhez hozzányúljon bárki is, főleg ha 3rd party Arduino libeket futattok amik függnek az órajeltől.
DMA más kérdés Technikal reference és a példaprogramok mutatják az utat. Én az ESP-IDF drivereit használom mert ahhoz van dokumentáció, és működik a DMA is --> RTM jó példa.
-
Janos250
őstag
" a 2 mag egyben 240 MHz-e, tehát külön 120-120 MHz-en fog menni?"
Mindkettő külün-külön 240-en jár. Ez biztos, használtam.
"órajel pontosságról nincs információd?"
Sajnos nincs.
"Jó lenne ha fejlesztenék a kevésbé használt részeket is ESP32-nél."
Fejlesztegetik azt,
https://www.espressif.com/sites/default/files/documentation/esp32_technical_reference_manual_en.pdf
A legutóbbi májusi. Ez az ESP32-re a biblia.
RTC: 0x3FF4800C, 0x3FF48010 ? 634. oldaltól
A DMA-ról is van valami, a 115. oldaltól.
Ne feledd, hogy az AHB bus csak 80 Mhz-es! Mivel az összes periféria bármely pinhez kapcsolható, ezért egy - számomra - szokatlan megoldást használ, de ha beleéli magát az ember az ESP32 gondolkodásmódjába, elég jól használható.
Időzítésre én az órajel ciklusok számlálóját használtam, az a 240 Mhz miatt nagy felbontású. -
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. -
Janos250
őstag
"ESP32S az melyikhez tartozik,"
Egyikhez se! 240-en megy. Az ESP32S az ESP32WROOM hibrid leánykori neve, ami tartalmazza magát a procit, + memóriát, és pár egyéb alkatrészt.
https://c.76.my/Malaysia/ai-thinker-esp32-esp-32s-wifi-wlan-bluetooth-module-varsembedded-1703-21-varsembedded@9.jpg
https://pbs.twimg.com/media/Cuf9fLzVIAEdzo_.jpg"Ha nem RTOS-t használok"
Tudtommal bárhogy is használod - extrém alacsony szintet kivéve - mindenképpen RTOS felett dolgozol, legfeljebb nem látod, de használható a teljes apparátusa.
Ha Arduino alatt használod, akkor a WiFi a 0-n megy, a saját programjaid az 1-en, de megszabhatod, mi hol menjen. Hogy a loop hol menjen, azt a main.cpp-ben állíthatod.
"DMA-val nem nagyon találtam mintákat sajnos, kíváncsiságból pedig jó lenne." Én se, pedig én is kíváncsi ember vagyok :-)
"Ezek közül jelenleg csak az órajel a kérdéses, illetve az, hogy azt honnan veszi"
Nem tudom honnan veszi, de 240Mhz. Egyik módszerrel LED meghajtásnál én ebből számoltam az időzítést, és szkóp szerint is jó lett.
"nehézkesebb egy STM32-höz képest." Így igaz! :-(
Az RTC, azt hiszem tud használni külső 32kHz-es kristályt, de az KÜLÖN PROCESSZOR,SAJÁT UTASÍTÁS KÉSZLETTEL, SAJÁT MEMÓRIÁVAL! Azt assembly szinten programozni szintén macerás.
Egyébként az STM32-nél is muszáj megnézni a manuálban a regisztereket, ha érteni akarod, hogy mit csinálsz.
A hardver manualja már az ESP32-nek is elég jó, bár messze nem teljes, sőt, hibát is találtam benne. -
Nekem ESP32-nél volt hogy nem használtam 2-3 hetet. Most ismét elővettem és vagy eltűnt a drivere az USB-TTL chipnek vagy nem tudom mi történt, de újra kellett telepíteni. Igaz nálam nem volt ilyen hibaüzenet, de egy próbát megérhet az FTDI chip driver újratelepítése, ha van újabb verzió akkor azzal.
-
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. -
Janos250
őstag
CPU órajele 240 Mhz. Van valahol egy fájl - úgy emlékszem - ahol lehetne csökkenteni, de nem emlékszem mi, nem próbáltam.
A prifériák órajele 80 Mhz.
"Ha nem rtos-ban programozok". Tudtommal nincs kidolgozva az RTOS nélküli lehetőség ESP32-re magasabb szinten.
"DMA-t támogatja az ESP"
Úgy tudom, hogy az SPI, UART, I2S ezt használja, de mintha külön engedélyezni kellene, nem használtam.
A DMA mindenképpen csak az iRAM-ot tudja használni, tehát amit használni akarsz, oda kell helyezni.Minden, ami benne van használható, csak egyik-másik elég macerás. A Technical Refrence már elég jó, abból lehet kibogarászni, de munkás dolog regiszter szinten állítgatni az egyes biteket.
Én az RMT használatát bogarásztam ki, és tanultam meg, de bizony idő kellett hozzá. -
Nézegetem az órajeleket, timer-t. Kíváncsi voltam, hogy mit használ alapból a timer-hez. Adatlap szerint a cpu órajelét használja. Azt hogy a CPU mit használ elvileg be lehet állítani de arduino alatt nem találtam meg, hogyan lehet változtatni, hogy mit használjon a CPU. Ahogy néztem van egy 40 Mhz-es kristály a shield alatt. Tehát lehet belső 8 MHz, külső 40 MHz és ha külsőleg csatlakoztatni 32 kHz-es kristály.
Azt, hogy ezeket hogyan lehet beállítani, melyiket használja, ne menjen mondjuk 160 MHz-el, hanem csak 80 MHz-el a cpu arudino alatt hogyan lehet beállítani? Közben pedig még egy kérdés jutott eszembe. Ha nem rtos-ban programozok, akkor magától választja ki melyik mag dolgozza fel a kódot vagy csak egyiket használja? A 160 MHz ki van használva valahogyan?
Még egy dolog, a DMA-t támogatja az ESP, de arduinora szintén nem találtam kódot. Erre sincs példa?
Így hirtelen sok a kérdés, remélem sikerül mindre választ kapni. Egyre inkább előjön, hogy lehet még se mindenre a legjobb arduino-ban a programozás és korlátokba ütközök?
-
tvamos
nagyúr
Ebbol a LED-bol gondoltam rendelni otthoni projekthez: SK6812 RGBNW . Van pozitiv, vagy negativ tapasztalatotok? Eddig csak WS2812B-t hasznaltam. (Gond nelkul...)
Ja igen... ESP8266EX-szel hajtanam meg. -
-
Janos250
őstag
válasz
choco01 #8793 üzenetére
Így?
ESP8266WebServer WEBserver ( WEBport );
vagy ESP32WebServer WEBserver ( WEBport );
uint8_t ServerIPlocal[4] {192,168,1,140} ; //Node static IP kinek mi
uint8_t gatewayIPlocal[4] {192,168,1,1} ; // ami neked
uint8_t subnetIPlocal[4] {255,255,255,0} ;
const char* ssid = "mySSID";
const char* password = "1234567890";
void setup(void) {
WiFi.begin(ssid, password );
delay(1000); // min 1000
WiFi.config(ServerIPlocal, gatewayIPlocal, subnetIPlocal) ;
delay(1000);
WEBserver.on("/", handle_index);
WEBserver.begin();
} ;
void handle_index() {
String s = "<html>\r\n";
s += "<!DOCTYPE HTML>\r\n";
s += "<head>\r\n";
s += "<meta charset=\"UTF-8\">\r\n";
s += "<title>minta</title>\r\n" ;
s += "</head>\r\n";
s += "<body>\r\n";
.
.
.
.
.
s += "</body>\r\n";
s += "</html>\n";
WEBserver.send(200, "text/html", s);
} ; -
Janos250
őstag
válasz
choco01 #8790 üzenetére
"milyen lehetőségeim vannak"
Pl. a legegyszerűbb:
ESP32 AP, WEB szerver, és erre kapcsolódnak a szenzorok is.
Rálépsz az ő wifi hálójára telefonnal és látod.Ha kintről is akarod látni: Egy Wii routerhez kapcsolódik az ESP 32. WEB egy adott portra, amit a routerben átirányítasz az ESP-re. Így Ausztráliából is látod.
-
dew28
aktív tag
Arra mi lehet a megoldas, hogyha esp32 alol kiesik az AP, akkor legalabb probaljon meg ujracsatlakozni? se wifi.reconnectre nem reagal, se semmire se nagyon..
-
Teasüti
nagyúr
Na várjál az más téma! Én ott végfelhasználó voltam, én ott letojtam hogy milyen SDK-t ad kicsoda. De azért a játékfejlesztőknek már a kezükben kellett legyen a cucc előre, különben hogy érkeznek rá a címek? Mi itt kérem szépen "fejlesztők" vagyunk (muhahha).
Miért nincs teljes körű SDK-nk?
(Nem Arduino Core, hanem még az ESP IDF se támogat mindent, amit a hardver tudna.) -
choco01
addikt
Valaki foglalkozott már itt MQTT-s adatgyűjtéssel?
Most akkor ehhez ha jól értem egy script az esp-re és egy php-ban a webserveremen?
-
Tankblock
aktív tag
válasz
Teasüti #8775 üzenetére
A MESH egy hálózati topológia. A HW -nek elvileg képesnek kellene lennie rá. Az ESP32 egyértelműen a Wifire és a Bluetooth 4LE épített. Ezek számomra a használati értékét növelik. Simán el tudnám képelni, hogy a meglévő SonoFF Touch ba panelt cserélek ESP32 re és átugrok BLE-MESH networkre, vagy a mostanival Wifi MESH re. Még filózok rajta, mert a 8255 is képes Wifi-Mesh re. A Gateway modul a problémás ami összeköti a MESH hálózatot a saját Networkkel/felhővel/serverrel....
Arra még nem láttam - számomra - jó megoldást.
-
Tankblock
aktív tag
Most találtam GitHubon ütik az ESP fejlesztőit már vagy 2 éve a Bluetooth MESH-ért is. A Wifis épp csak megyeget, már látni Demokat.
Ha ez működik rendesen akkor majd lehet igazán jó projecteket csinálni ESP32-vel. -
Tankblock
aktív tag
válasz
vargalex #8764 üzenetére
én meg ESP-01 et ehhez a projecthez meg AtTiny13A-t.
A beépített linear DC-DC miatt - ezek sohasem lesznek jók másra, mint kipróbálni hogy működik e - ha azt lecserélnék egy sokkal hatékonyabbra akkor talán...
van 2 Wemos board de nem nyűgözött le, maradok a saját tervezésű boardoknál, igaz lassabban jutok el a project végére, mert több idő, több hibalehetőség, és több füst :-P
-
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:
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:
//#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);
} -
Janos250
őstag
Mindenkinek mondom, akik artista mutatványokkal akarnak ESP WiFi-n P2P küldeni egy karaktert - ahogy korábban én is - használjátok a WiFiClient osztályt!
-
Az A0 port analóg feszültséget mér, 0 és a tápfesz közt, az akkumulátor feszültségét is meg tudja mérni 3,3V-ig, de afölött tönkremegy. Ezért két ellenállásból csinálsz feszültségosztót, ami leosztja az akku feszültségét, és azt méred meg az analóg porton.
A bekötési vázlat alapján akár 4,2V-ot is kaphat az A0 port teljes töltöttségnél, ez nem túl egészséges szerintem. Mint ahogy az sem, hogy 3,0-4,2V tápot adsz neki az 5V lábon. A belső konverteren kb 0.6V esik, tehát 3,6V akkufeszültségnél az esp 3,0V körüli tápot kaphat. Nem tudom mennyi a minimum tápfeszültség, aminél elindul, de ez nekem határesetnek tűnik. Inkább egy 3,3V boost-buck konverter kéne, és a 3,3V lábon megtáplálni. -
Janos250
őstag
Lehet, rosszat mondok, akkor bocs:
az ESP8266WiFi.cpp fájl végén van aESP8266WiFiClass WiFi;
sor. Tehát az ESP8266WiFiClass típusú, WiFi nevű objektumot hozza létre, ezért használhatjuk a programban a WiFi,begin és hasonló metódusokat.
Nem tudom, soha nem próbáltam, enged-e több ESP8266WiFiClass objektumot létrehozni, de én ezt próbálnám ki:ESP8266WiFiClass WiFi2;
.
.
WiFi2.begin(ssid, password );Gőzöm nincs, hogy működik-e.
Ha csak időnként kellene az egyikre írni, időnként a másikra, akkor én ezt próbálnám:
Bezárnám WiFi.end()-el, és némi várakozás után megnyitnámWiFi.begin(ssid, password );
másik ssid, password párossal. -
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. -
Szerintem rendelhetsz nyugodtan többet, mert ha egyszer elkezdesz arduinozni, úgysem tudod abbahagyni.
Persze más (nem usb centrikus) feladatokra a fent említett ESP32 a legjobb ár-érték arányú lap most a piacon.
most látom, hogy Dell helyett Lenovo-t írtam az előbb, de a lényeg ugyanaz.
-
Janos250
őstag
Apránként jutnak eszembe a dolgok:
a Serial.print megfelelőjeként az ESP32-n a szokásos cout is használható, pl.:cout << " Hello World ! " << endl;
Ennek ugyan semmi előnye a Serial.print-hez képest, de van aki inkább ezt a C++ szokásost kedveli, van aki az Arduino jellegű Serial.print-et.
-
Tankblock
aktív tag
Lassan szervezhetnénk arduino nyári tábort
Tematika:
Elektronikai alapfogalmak
Programozás alapjai C, C++
Eszközök használata (Multimeter, oszcilloszkóp, tápegység)
Tervezés és Kivitelezés - azaz hogyan olvass manuállt Atmega328P v ESP8266 v ESP32
Tervezési minták
Project próbapanelon
Hibakeresés - honnan száll a füst....
forrasztásA probléma az hogy minegyik része több hetes lehetne......
-
válasz
choco01 #8681 üzenetére
Ha minden igaz ez a mintakód neked is meg van, az esp32-vel települ fel. Itt csak a wifi.h kell. Webserver, Webclient nem. Nem tudom ezek mennyire "official" fájlok, de próbáld meg csak a wifi.h-t használni többi wifi-s header fájlt kommentezd ki, lehet másikban is van hasonló és bezavar.
WebServer server ( 80 );
Ezt pedig ne így nevezd el hanem:WiFiServer server(80);
-
choco01
addikt
válasz
choco01 #8679 üzenetére
Most ilyen: De ugye hibát dob annál a sornál..
Lehet a WebServer server ( 80 );-vel van baj? WifiServer server(80) is létezik..
WebServer server ( 80 );
const char* ssid = "esp";
const char* password = "12345678";
Adafruit_BME280 bme(I2C_SDA, I2C_SCL);
SSD1306 display(0x3c, 21, 22);
double pt,lny,hp,hom;
/*double lny=1015.20;
double hp=-32.12;
double hom=-32.12;
double pt=62.07;*/
void idojaras(void);
void kijelzo(void);
void html(void);
void setup() {
Serial.begin(115200);
Serial.println("Program Start");
Serial.println();
Serial.println();
Serial.print("Connecting to ");
Serial.println(ssid);
WiFi.begin(ssid, password);
while(WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("");
Serial.println("WiFi connected");
Serial.println("IP address: ");
Serial.println(WiFi.localIP());
server.begin();
bme.begin();
idojaras();
delay(100);
kijelzo();
delay(100);
}
void loop()
{
idojaras();
delay(1000);
kijelzo();
delay(1000);
html();
delay(100);
}
void idojaras()
{
pt = bme.readHumidity();
hom = bme.readTemperature();
hp = hom - 0.36 * (100.0 - pt);
lny = bme.readPressure() / 100.0F ;
lny=lny+13;
delay(1000);
}
void kijelzo()
{
display.init();
display.drawString(0, 0, "Hömérséklet:");
display.drawString(62, 0,String(hom) );
display.drawString(90, 0, " °C");
display.drawString(0, 10, "Páratartalom:");
display.drawString(65, 10, String(pt));
display.drawString(90, 10, " %");
display.drawString(0, 20, "Harmatpont:");
display.drawString(62, 20, String(hp));
display.drawString(90, 20, " °C");
display.drawString(0, 30, "Légnyomás:");
display.drawString(60, 30, String(lny));
display.drawString(98, 30, " hPa");
display.drawString(0, 40, "Légszenny.:");
display.drawString(60, 40, "nA");
display.drawString(85, 40, " %");
display.drawString(0, 50, "UV sugárzás:");
display.drawString(65, 50, "nA");
display.display();
}
void html()
{
WiFiClient client = server.available();
while (client.connected())
{
if (client.available())
{
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html");
client.println("Connection: close");
client.println();
client.println("<!DOCTYPE HTML><html><head>");
client.println("<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"></head>");
client.println("<h1>ESP32 - Web Server</h1>");
client.println("</html>");
break;
client.println( "<body>");
client.println("<br><br>");
client.println("<body><h1>Időjárás adatok:</h1>");
client.println("<table border=\"2\" width=\"456\" cellpadding=\"10\"><tbody><tr><td>");
client.print("</td><td colspan=\"2\"><h2>Hőmérséklet = ");
client.println(hom);
client.print("<h2>Páratartalom = ");
client.println(pt);
client.print("%</h2></td></tr><tr>");
client.print("<h2>Harmatpont = ");
client.println(hp);
client.print("°C</h2></td>");
client.print(" <h2>Légnyomás = ");
client.println(lny);
client.print("hPa</h2></td></tr><tr>");
client.println("</h3>");
client.print("<br>");
client.print("</body>");
client.print("</html>");
delay(10);
client.stop();
Serial.println("client disconnected");
}
}
} -
choco01
addikt
Na most letöltöttem egy másikat a ami direkt esp32 és i2c és abban már át van írva alapból így már megy!
Elvileg mennie kéne mellette a webservernek is?Itt elindul kiírja serialra az IP-t de csak tölti az oldalt nem jön be..meg így mellette a kijelző sem frissül mint ha megakadna a net függvény..
8266-on ment simán, itt valamiért nem akar pedig lefutni lefut ez a kód:
void net()
{
WiFi.enableSTA(true);
delay(2000);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("");
Serial.println("WiFi connected");
Serial.println("IP address: ");
Serial.println(WiFi.localIP());
delay(300);
server.begin();
Serial.println ( "HTTP server started" );
WiFiClient client;
client.println( "<!DOCTYPE html>");
client.println( "<html>");
client.println( "<head><META HTTP-EQUIV=\"refresh\" CONTENT=\"15\"></head>");
client.println( "<meta http-equiv=\"content-type\" content=\"text/html; charset=UTF-8\" />");
client.println( "<body>");
client.println("<br><br>");
client.println("<body><h1>Időjárás adatok:</h1>");
client.println("<table border=\"2\" width=\"456\" cellpadding=\"10\"><tbody><tr><td>");
client.print("</td><td colspan=\"2\"><h2>Hőmérséklet = ");
client.println(hom);
client.print("<h2>Páratartalom = ");
client.println(pt);
client.print("%</h2></td></tr><tr>");
client.print("<h2>Harmatpont = ");
client.println(hp);
client.print("°C</h2></td>");
client.print(" <h2>Légnyomás = ");
client.println(lny);
client.print("hPa</h2></td></tr><tr>");
client.println("</h3>");
client.print("<br>");
client.print("</body>");
client.print("</html>");
delay(100);
client.stop();
Serial.println("Lecsatlakoztatva.");
}
Új hozzászólás Aktív témák
Hirdetés
- LG UltraGear 27GR93U-B 27 4K UHD Gaming Monitor garanciával
- Kingston Fury Beast 32GB 6000MHz DDR5 CL30 RAM (KF560C30BBE-32)
- Eladó iPhone 13 Blue 128Gb független Akku 100%
- Új Dell 13 Inspiron 5310 FHD+ IPS i5-11300H 4.4Ghz 8GB 256GB Intel Iris XE Graphics Win11 Garancia
- Dell 16 Inspiron 5625 FHD+ IPS Ryzen5 5625U 4.3Ghz 16GB 512GB SSD Radeon RX Vega7 Win11 Garancia
- BESZÁMÍTÁS! MSI MAG 255XF FHD IPS 300Hz 0,5ms monitor garanciával hibátlan működéssel
- Xiaomi Redmi Note 10 Pro 128GB, Kártyafüggetlen, 1 Év Garanciával
- DELL Precision 5540 Workstation i7-9850H Nvidia Quadro T1000 32GB 1000GB 15.6 új akksi 1év garancia
- Apple iPhone 13 Mini / 128GB / Gyárifüggetlen / 12Hó Garancia / 84% akku
- Bezámítás! HP Victus 16-D0655NG Gamer notebook - i5 10400H 16GB DDR4 512GB+1TB SSD RTX 3060 6GB W11
Állásajánlatok
Cég: FOTC
Város: Budapest