-
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
-
válasz
zsolti_20 #11520 üzenetére
Igen, az Esp32 jelenleg az arduino szent grálja.
Az Esp8266 hasonló az Esp32-höz, csak (szerintem) egyszerűbb, kiforrottabb, és jobb az arduino kompatibilitása. Legalábbis amikor én Esp32-re írtam sqlite3 adatbázis kezelő programot, azt tapasztaltam, hogy az SPIFFS kezelő része még igencsak béta állapotú.
Neked pedig pont ennek a stabil működése (is) a lényeg. Amire neked kell, az Esp8266 (pl. Wemos D1 mini) is tökéletesen megfelel.
-
zsolti_20
senior tag
Most néztem utána, nagyon durva cucc ez az ESP32. Ahogy látom ez maga az arduino...
Csak luxusabb kivitelben. Elgondolkodtató, lehet erre alapozom az egészet.
És a legjobb hogy minden elérhető egy webes felületről.
-
zsolti_20
senior tag
Köszönöm szépen a válaszokat és tippeket, végig fogom nézni a lehetőségeket amiket ajánlottál. Érdekes alternatívák és ismeretlen eszközök így tudom bővíteni a tudásom.
Jobb választás lenne NFC olvasóval megoldani? Erre gondolok. NFC-nél több lehetőségem van módosítani?
ESP32 érdekes tűnik számomra. Még soha nem hallottam róla. Ez arduino kompatibilis eszköz? Vagy hogy képzeljem el?
-
Bocs, de leírom, hátha hasznát veszed.
Ha nekem kéne ezt megcsinálom, biztosan esp-t használnék (8266-ot vagy esp32-t). Egyrészt mert beépített flash van rajta, amit lehet pendrive helyett használni, másrészt mert van hozzá sqlite3 adatbázis lib, ami képes az SPIFFS-en létrehozott adatbázist írni-olvasni! (igazság szerint SD kártyára létrehozott adatbázist is támogat natívan, SPI kommunikációval) Plusz lehet hálózaton keresztül adminisztrálni, ami azt jelenti, hogy ha új szavazót kell új rfid kártyával regisztrálni, azt böngészőből meg lehet tenni, webes felületen. Ugyanígy az eredményeket is le lehet kérdezni. Lehet jelszóval védeni az egészet, míg egy pendrive bárki számára hozzáférhető (feltéve, hogy titkos/érzékeny adat a szavazás eredménye).
A txt fájl egyik hátulütője, hogy nehéz visszaolvasni belőle, hogy ki szavazott már és ki nem, míg adatbázissal ezt nagyon egyszerűen meg lehet oldani. -
gazso75
aktív tag
[link]
Sziasztok, van ötlet, hogy az Esp32-cam modul, miért ad ilyen képet? -
_q
addikt
A master az tápról megy, így lemerülni nem tud, max áramszünet esetén vagy ha én áramtalanítom akkor történhet valami. Már párszor újraflasheltem, változtatva a tömb méretével, de ugyan az történik. Ez a webszerveres dolog valamiért nem tetszik neki vagy a sok adat. Ezért gondoltam rá, lehet nem ESP-n kellene loggolnom.
-
Lehet, hogy a lemerüléskor sérült a SPIFFS fájlrendszer. Próbáld újraflashelni. Amúgy sem vmi megbízható az esp32 SPIFFS, én sqlite adatbázist próbálok rajta írni-olvasni, és mindig átmegy egy idő után read only-ba, az okát nem tudtam kideríteni, talán bugos a lib, de az is lehet, hogy a két jelenség valahogy összefügg.
-
_q
addikt
Sziasztok!
Megy már december óta 2db ESP32 ESPNow-al. A master meghajt egy kijelzőt, webszerver megy rajta amivel google chart-on látható 19-24 óra adat (10 percenkénti mérés van) és a saját belső memóriájába menti. Júniusban lemerült a kinti egység, illetve volt pár áramszünet, így nem tudom pontosan, hogy hány napig ment a leghosszabb ideig, de volt 1.5 hónap minimum.
Ennyi a bevezető. Most az a jelenség, hogy kb. 1-2 nap után hiába akarom megnézni a local ip címen a mért adatokat nem tölti be. Resetelem akkor megint jó, de szintén X nap múlva nem tudok ránézni és ahogy írtam néhány hónappal ezelőtt még akár több mint 1 hónap után se volt gond. Lehet hogy valami a memóriával van? Már csökkentettem a tárolt mennyiséget, de sajnos így is "kifagy" a webes rész, nem tudok ránézni. A kijelző működik, tehát maga az ESP nem fagy ki. Lenne ötletetek mi lehet a gond?
Másik amiben gondolkodom, lehet jobb lenne raspberry-n megoldani a webszerver részt. Ez vajon megoldható úgy, ha a raspberry-n menne mosquito vagy valami hasonló ajánlott loggoló + torrent + média szerver, később meg ki tudja még mi?
-
Janos250
őstag
válasz
Mexbacsi #11473 üzenetére
A led sorok 12V-al mennek, ehhez kell:
- ha nincs elektronikai gyakorlatod, akkor relé. Az UNO 5 V-al megy, tehát olyan relé, amit 5V meghúz. Később meg majd olyan, ami már 3.3 V-on, mert a korszerűbb lapok 3.3 V-al mennek.
- ha van, akkor FET. Valami alacsony gate feszültségű, pl. IRL sorozat.
Ha meg olyan szalagot akarsz később, amin az egyes ledek fényereje, színe egyenként változtatható (WS2812), akkor - szerintem, de nem mindenki szerint - az ESP32 lesz a legcélszerűbb UNO helyett. -
hermit
tag
Sziasztok,
van valakinek oled kijelzovel (0,96") tapasztalata (ESP8266 hajtja meg)?
Kiirok ra mindent amit akarok, viszont ha egy megadott poziciora uj erteket akarok kiirni, akkor az elozot nem torli le.
Probaltam azt, hogy a kurzor szinet a hatter szinere valtoztatom, kiirok valamit, utana vissza a kurzor szine feherre es uj ertek kiirasa, de nem lett jo.
Jelenleg ugy mukodik, hogy kepernyo torles es az egesz tartalmat kiiraom ujra. Mivel kicsi a kijelzo, keves az adat, ezert nem is latszik hogy letorli a kijelzot es ujra kiir mindent; de ha lenne ra kulturaltabb megoldas, akkor inkabb az hasznalnam.
-
válasz
Janos250 #11448 üzenetére
És csak két db. 1838 IR receiver és egy sima IR led kellett hozzá, semmi külső elektronika.
Egyelőre még csak tech demo, és sokat kell még csiszolni, hogy pontosabb legyen, össze kell majd válogatni érzékenység szerint a receiver-eket, mert kicsit félrehord.
Végül dobtam a saját protokollt, és írtam egy lib-et, ami a LEGO Power Function led remote protokollt implementálja (ha szeretne valaki Esp8266-tal LEGO Power Function-t távirányítani, szóljon). Az már annyira gyors és robusztus, hogy gyakorlatilag nincs hibás átvitel (két napig teszteltem, és egyetlen hibásan átvitt karakter volt csak). -
gazso75
aktív tag
válasz
Janos250 #11443 üzenetére
Hát, sajna bármit teszek, a végén ezt kapom
rst:0x3 (SW_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:1
load:0x3fff0018,len:4
load:0x3fff001c,len:1100
load:0x40078000,len:9232
load:0x40080400,len:6400
entry 0x400806a8
ets Jun 8 2016 00:22:57Bármit tolok rá az IDE-vel. Szépen felmegy, de mindig ez fogad a soros porton. A Példák közül bármit nézek.
esptool flah_id-ra:
esptool.py v2.6
Serial port /dev/ttyS4
Connecting.....
Detecting chip type... ESP32
Chip is ESP32D0WDQ6 (revision 1)
Features: WiFi, BT, Dual Core, 240MHz, VRef calibration in efuse, Coding Scheme None
MAC: 3c:71:bf:f1:a3:1c
Uploading stub...
Running stub...
Stub running...
Manufacturer: ef
Device: 4016
Detected flash size: 4MB
Hard resetting via RTS pin... -
Janos250
őstag
Vehetjük úgy, hogy az ESP-32S (Ai-Thinker) az ESP-WROOM-32 (Espressif) leánykori neve.
A mai boardokon elsöprő többségben ESP-WROOM-32 feliratú modul van, nem is érdemes olyat megvenni, amin nem ez van. Néha mégis ESP32S megnevezést írnak hozzá. Meg kell nézni a fényképet, mi van a modulra írva. A lábak száma eltérő lehet, de a használható lábak (meg néha a nem használhatók is) ki vannak vezetve, valamint különböznek aszerint is, hogy hány GND, és táp láb van rajtuk. Ezekből ugyanis soha nincs elég. -
Gyanítom, hogy az ESP-32S-en azért lehet több láb, mert azokat is kivezették, amik a beépített flash kezeléséért felelősek. Ha így van (nem néztem utána), azokat nem érdemes piszkálni, szóval nem nyersz vele semmit, ha azt rendeled.
Viszont ha már kísérletezés, én inkább egy lolin32-t javaslok, beépített li-ion csatlakozóval, akkumulátortöltő áramkörrel és konverterrel, mert azt egy akksit rákötve rögtön fogod is tudni használni valamire. -
Exom
tag
Sziasztok
Szeretnék egy kicsit kísérletezni ESP32 -vel.
A kérdésem az lenne melyik verziót érdemes megvenni. Aliexpressen láttam több verziót is.
- ESP32 DEVKIT V1 (30 láb)
- ESP-32S v1.1 (38 láb) -
gazso75
aktív tag
Vettem egy Esp32-cam wifi board-ot. Tudtok valami jó kis ino-t hozzá?
-
Így most megy véégre, baromi jó móka tankozni. Persze nem tökéletes, mert a két tök egyforma motor mégse az, így nehéz egyenesben tartani. Túl gyorsan se lehet vele csapatni, mert ledobhatja a lánctalpat. No, mindenesetre örülök, hogy megy egyáltalán.
ja, meg csúnya is szegény jármű.
Következik a teherautó... esp32-vel. -
Ha az összes kábelt lehúzom az esp32-ről, rádugok egy telefontöltőt, akkor meg elindul rajta a feltöltött program: megy a wifije, illetve ha laptopon van akkor meg a soros monitoron írja a kapott jeleket...
Lehet, valamelyik pin mégse szabad, és blokkolja az egészet ha be van kötve? Led villogtatós példával direkt végigpróbáltam az összes pinjét, és pin3-pin10 + másik sor pin5-pin15-ig mindegyikkel ment.
Azt még nem próbáltam, hogy mi van akkor, ha usb portról kapja az áramot a lap, és nem a VIN-en. -
Megérkezett a forrasztó pákám, ennek örömére vettem 1uF kondenzátort, és ráforrasztottam a rövid lábát az esp32 gnd-ra, másikat meg az en gomb széléhez. Semmit nem változott a helyzet, csak bőgeti maxon az egyik motort, a wifije se megy. Ha usb-re dugom, és újra rámásolom a progit utána kikapcsolásig jó...
-
válasz
Victoryus #11409 üzenetére
Közben találtam hasonló eseteket... Ez az esp-nek a balfaszsága, bentragad boot módban vagy valami ilyesmi... ráadásul hiába nyomja az ember az EN-t, akkor se indítja el a programot 10-ből 9x...
GitHubon azt írják kell egy ellenállás a föld meg az EN gomb közé. Ennyi szívást... biztos nem bíznék ilyen alaplapra komolyabb feladatot, még virágöntözést se. Gyárilag selejt tulajdonképpen.
Pedig már majdnem örültem, hogy kész. Én már kééész vagyok idegileg tőle.
-
válasz
Victoryus #11406 üzenetére
Jó lett volna látni az udp-s példakódot is, amelyik működik.
Elsőnek próbáld meg, hogy innen:
void loop() {
handleUDPServer();
//delay(1);
}kikommenteled a delay-t:
void loop() {
handleUDPServer();
delay(1);
}Régebben olvastam itt a topikban, hogy ha túl sokáig fut a loop, akkor az nem jó az esp-nek, bár a hiba logban nem látok wdt-hez kapcsolódó hibaüzenetet, de hátha bejön.
-
Ugyanabba futottam bele, mint a Wemosnál is, hogy az udp példáknál a router adatai kellettek volna, nem AP-ként üzemel a lap. Végül azt megoldottam, megy a korábbi kóddal. Sokkal jobb a wifije a DoIt-nak, mint a Wemosnak.
Utána újabb problémába ütköztem, ESP32-nél nincs analogWrite, de végül találtam pwm-es példát. A led fade ok, a motor vezérlése még folyamatban, nem teljesen értem a kódot. A resolution miért 8? Amit tippeltem azért?
L293d motorvezérlővel menne a 2 dc motor. Nekem kell az en1 meg en2, vagy menni fog a jumperrel? Tulajdonképpen a jumper ebben az esetben alapból engedélyezi a motorokat? Van másik fajta leírás, ott engedélyezést ír az ábra, ezen meg pwm-et. De a Wemos-szal mikor az analogWrite-tal teszteltem akkor simán az in1,in2-re adtam a pwm értéket.
Akkor ebben az esetben pl.: ledcWrite(0, 100); Nyilván a 100 helyett majd kap egy változót udp-n keresztül.
Éjjel valamit írtam még, de nem ment a motor, csak a ledek villogtak a vezérlőn. Nincs még összeforrasztva a motor a kábelekkel, lehet simán nem érintkezett. Nem a builtin leddel teszteltem, hanem a gpio 13,12-vel.// the number of the LED pin
const int ledPin = 2;
// setting PWM properties
const int freq = 5000;
const int ledChannel = 0;
const int resolution = 8; //Ez itt miért 8? Arra tippelek, hogy 2^8=256, és ennyi lesz a fordulatszám tartomány
void setup(){
// configure LED PWM functionalitites
ledcSetup(ledChannel, freq, resolution);
// attach the channel to the GPIO to be controlled
ledcAttachPin(ledPin, ledChannel);
}
void loop(){
// increase the LED brightness
for(int dutyCycle = 0; dutyCycle <= 255; dutyCycle++){
// changing the LED brightness with PWM
ledcWrite(ledChannel, dutyCycle);
delay(15);
}
// decrease the LED brightness
for(int dutyCycle = 255; dutyCycle >= 0; dutyCycle--){
// changing the LED brightness with PWM
ledcWrite(ledChannel, dutyCycle);
delay(15);
}
} -
#Aryes: ok, köszönöm! Hát igen, saját hibáiból tanul az ember.
Most megint bele is futottam... Előszedtem a DoIt Esp32-őt, ez menne a lánctalpas járművembe, 2 dc motort kéne csak neki meghajtani a mini motorvezérlővel, de nem megy rajta az udp. A wifis résszel kezdtem, még nincs rákötve semmi. Egyik udp példaprogram se megy, azokkal egyszerűen nincs wifi.
A sima wifi példák szépen mennek, tcp-vel például lehet kapcsolgatni a builtin ledjét, megy a wifi hálózatok scannelése is.
Amikor be van állítva egy alaplap az Arduinós programban, akkor annak a példáit mutatja nem? Az összes pinje megy, led villogtató programmal végigmentem mindegyiken egyesével, jó a kiosztás, a builtin is az, a wifije is jó. Mire nem gondoltam megint?
Olyan, mintha az udp-s osztály lenne rossz, hiába importálja. Hibát nem dob az arduino, simán feltölti rá bármelyik példát. -
Van egy ilyen esp32-es lapom. Ezt mivel lehet meghajtani?
1db 18650-es akku elég neki? Usb porton keresztül, vagy a Vin 5V pinről is jó? Per pillanat nincs feláldozható usb kábelem, így nagyon örülnék ha elég lenne neki a pin-en keresztül... -
Janos250
őstag
válasz
gazso75 #11318 üzenetére
Egy kis esp8266 Serial fejtágító, nem csak Neked:
(Manoj R. Takoj : NodeMCU ESP8266 Communication Methods and Protocols)
2.1 Serial Communication
ESP8266 Serial works the same way as on a regular Arduino. Apart from
hardware FIFO (128 bytes for TX and RX) Serial has additional 256-byte
TX and RX buffers. Both transmit and receive is interrupt-driven. Write
and read functions only block the sketch execution when the respective
FIFO/buffers are full.
Serial uses UART0, which is mapped to pins GPIO1 (TX) and GPIO3
(RX).
Example 1: Serial Data Transmission
Program to send “Hello World” message to serialvoid setup () {
Serial.begin(115200);
}
void loop(){
Serial.println("Hello World");
delay(500);
}Amint látható, a Serialt nem kell példányosítani, mert előre példányosítva van, csak meg kell nyitni, és használni.
"
Serial1
uses UART1, TX pin is GPIO2. UART1 cannot be used to receive
data because normally its RX pin is occupied for flash chip connection. To
use Serial1, call
Serial1.begin(baudrate)
.
Example 3: Using Serial-1 (Only TX)
After uploading program you will see blue led flashes due to data is
getting sent on GPIO2(TX)."
-
-
gazso75
aktív tag
Az Arduino nano-n jól futó gps+sd progit, át lehet valahogy konvertálni esp8266-ra ? próbálgatom, de valahogy nem akar sikerülni.
-
_q
addikt
Kb. 3-4 fok különbség lehet. Sikerült kizárnom az ESP-t. Ha az ESP folyamatosan üzemel, kijelző rajta, akkor egy idő után a kijelzőn a már említett hiba jön elő. ESP működik tovább, kijelzőt leveszem és várok mondjuk 5 percet, mire kihűl eléggé. Visszarakom és megint minden oké egy darabig.
Többször megismételtem ezt, mindig ugyan ez történik. Az is lehet, hogy nem teljesen a meleg, hanem valami hardveres hiba lehet, ami véletlen most jött elő. Esetleg kondenzátor vagy vezérlő IC lehet a gond? Rendelhetek másik kijelzőt, de nem lenne jó, ha az is elromlik és fél évente kijelzőt kellene cserélni. Vagy ami még a jobbik eset, egy hibás darabom van.Némi egybeesés simán lehet a te eseted és az enyém között. Kérdés, hogyan javítható?
-
_q
addikt
Igen, tavaly December óta, tehát durván fél éve. A legelején tapasztaltam még 1-2 alkalommal ilyet, de akkor a kábelezés után PCB-re építve az egész tök jól működött. Most meg 1 hete kezdte, hogy folyamatosan szinte darabos a megjelenítés. Az esp webserver jól működik, ezért vagy az SPI vagy maga a kijelző az ahol a gond lehet szerintem. Fura ha mondjuk fél év után a kijelző már nem bírná.
-
_q
addikt
Sziasztok!
Kb. fél éve megy minden gond nélkül ez a 3.5" kijelző. Kb 1 hete kezdődött, hogy furán jeleníti meg az információt a kijelző ahogy itt látható:[kép], [kép].
Nem tudom a meleg miatt-e vagy más miatt van, de hiába resetelem mindig ez történik. Ha újra rátöltöm a kódot akkor megy egy darabig, de utána ugyan ez a probléma jön elő. ESP32-t használok, a kijelző SPI-on keresztül csatlakozik rá.
Van valakinek ötlete mi lehet a gond?
-
válasz
kzsolt00 #11298 üzenetére
Szia!
Ha már az arduino topikba írtál, elmondanám, hogy az egész feladat az erre a feladatra enyhe túlzás rpi helyett egy kb. 1000Ft-os esp8266 alapú nodemcu-val tökéletesen kivitelezhető lenne, touchscreen-t és weblapot is beleértve! Feltéve, ha vezetékes net kapcsolat helyett megfelel, ha "csak" wifire van kötve az egész téma. Máris spóroltam neked 18e Ft-ot.A riasztót nem értem, hogy milyen célt szolgálna, szeretnéd, ha a sz.rt is kiijesztené belőled az éjszaka közepén, vagy elég, ha csak akkor hallod, ha éppen mellette állsz? Utóbbi feladatra egy 50Ft-os piezo csipogó tökéletesen megfelel, amit közvetlenül ráköthetsz az esp/rpi egyik tűjére. Az említett pc hangszóróhoz mindenképp vmilyen végfok kell, ami lehet akár egy egyszerű tranzisztor-ellenállás-kondi kapcsolás.
A breadboard-ot pedig mindenképp felejtsd el, bármilyen megoldás is lesz a vége, hacsak nem próbanyákra gondoltál a kifejezés alatt.
Bónusz kérdés: nem lenne megnyugtatóbb megjavíttatni/cserélni azt a kazánt?
-
válasz
Victoryus #11288 üzenetére
Azért kérdeztem, mert ha fordítva, a Vcc és a pin közé kötnéd a ledeket (alacsony jelszintre kapcsol), akkor úgy több áramot képes elviselni, asszem 26mA-ig rendben vagy. Mivel az esp8266 gpio-k hivatalosan 5V toleránsak, ha 5V-ra kötöd a ledeket, akár hármat is tudnál sorba kötve egy lábról üzemeltetni, külön driver nélkül (ellenállás persze ide is kell). De persze egy uln2003 lenne az igazán megnyugtató megoldás (arra is úgy kell kötni a ledeket, hogy a tápra megy a másik lábuk), ha tudsz neki helyet szorítani (külön tartót nyomtatni nemigen kell neki, hiszen egy chipről van szó, beforrasztod rá a ledeket stb aztán teszel rá egy zsugorcsövet és benyomod az egészet egy kevésbé látható résbe.
-
Egy pin akkor tuti nem bír 4 ledet... Egyik tutorialban írják, hogy arduinon egy pin maximum 40ma-t tud, de esp8266 csak 12ma-t. Az meg nagyon kevés. Ejj...
Akkor külön táp kéne a világításhoz is ezek szerint?
Mondjuk ha a motorvezérlőt csapolnám meg...? 3 dc motor hely úgyis üres még, és legalább programozható is. Ha jól gondolom akkor az 2db 18650-es cella esetén max ~8.4V. Most még 3db-ról megy, de a végleges kiépítésbe csak kettőt tervezek hely/súly miatt. -
válasz
Victoryus #11272 üzenetére
A hibakódra a gugliban rákeresve én is azt találtam, hogy resetel a board, mégpedig áramellátási gond miatt. Úgy néz ki egyszerű rövidzárlatot csináltál a két leddel az áramkorlátozó ellenállás nélkül.
Gondolom párhuzamosan kötötted őket.
Az esp8266 gpio max 17mA árammal terhelhető, ha a ledet a gpio és a gnd közé kötötted. Ha a Vcc és a gpio közé van kötve (alacsony jelszintre kapcsol), akkor nagyobb áramot is képes elnyelni, de mindkét megoldással kockáztatod, hogy túlterheled az adott gpio-t és tönkremegy.
Milyen ledet használsz, színeset vagy fehéret? Ha színeset, akkor a két ledet sorba kellene kötni, nem párhuzamosan, és egy áramkorlátozó ellenállást számolni hozzá. A fehér ledeket a nyitófeszültségük miatt nem lehet párhuzamosan kötni, de ellenállás akkor is kelleni fog, vagy egy darlington tranzisztor. -
Janos250
őstag
válasz
Victoryus #11238 üzenetére
programodból:
"myservo.attach(5,600,2300); //GPIO 5, meg min max, ezt nem értem, de ennyi volt a példában""Writes a value in microseconds (uS) to the servo, controlling the shaft accordingly. On a standard servo, this will set the angle of the shaft. On standard servos a parameter value of 1000 is fully counter-clockwise, 2000 is fully clockwise, and 1500 is in the middle.
Note that some manufactures do not follow this standard very closely so that servos often respond to values between 700 and 2300. "
https://www.arduino.cc/en/Reference/ServoWriteMicrosecondsEzért kellene tudni, milyen a servo. Mindenesetre én 1000 és 2000 közöttivel próbálnám, mert én még csak olyat láttam.
Már eléggé kavarodnak bennem az infók, de - úgy rémlik - Wemos D1-et használsz. Az viszont ESP8266, de:
libraries/Servo/src/Servo.h - ban ez van:
"This library only supports boards with an AVR, SAM, SAMD, NRF52 or STM32F4 processor."Lehet ez a gond? A servo.cpp interrupttal dolgozik, és az az ESP-nél más.
A servo ugyanis úgy működik, hogy folyamatosan adni kell neki az adott időszélességű impulzust, ami általában 1 és 2 millisec (1000, ill. 2000 microsec) között van. Ha az 1 msec-es inpulzusokat kapja folyamatosan, akkor az egyik végkitérésre áll, ha 2 msec-et, akkor a másikra, 1.5 msecnél meg középre. Olyan állapot undefinit, hogy adok neki egy impulzust, és nem ismételgetem.Más:
Az Arduino "nyelve" a C++, ami magában foglalja a C-t is. Ha tanultál PHP-t, az C++ némi extrákkal.
Tehát, ha a PHP-ból kihagyod a hálózatos dolgokat, akkor az C++, ami már megy az Arduino lapon is (illetve ez nem teljesen igaz, de majdnem). Tehát a C++ -al akarj ismerkedni. Ebben a PHP, Delphi jó alap, mert a filozófiájuk ugyanaz. A pascal is jó, bár abban még nincs objektum. -
Janos250
őstag
válasz
gazso75 #11215 üzenetére
A BN-250 egy jó modul, sokan dicsérik, és olcsó.
Nekem is van, de még nem próbáltam, mert kiderült, hogy amire nekem kell, arra csak nyögvenyelősen használható részlegesen.
A nano nem egy gyors, korszerű lap. Helyette jobb lenne valamelyik ESP, STM32.
Nem tudom, elég-e a 9600 baud ennyi adathoz. -
vargalex
félisten
válasz
Victoryus #11212 üzenetére
Nem jól értelmezed és ebből adódik a problémád is. A station mode az, amikor egy wifi Access pointhoz csatlakozik az ESP8266. Azaz a kód hibátlanul működik, csak nem tud csatlakozni a megadott SSID-vel rendelkező hálózathoz (mert ugye nincs is).
Az viszont továbbra is érvényes, hogy biztos, hogy nem csak pontokat ír a soros konzolra. Előtte ott kell lenni a Connecting szónak is. -
Janos250
őstag
"Én nemrég átírtam az esp8266 softwareserial lib-et paritásbitesre"
Én meg a GPS-ekhez ESP32-n hardwareserialt használok, mert nekem nem csak az NMEA adatok kellenek, így rengeteg adatot kell kezelni."Egyébként az lesz a hiba, amit DigitXT kolléga írt"
Láttam én is, azért nem is foglalkoztam ezzel a részével, hanem pár általános gondolatomat írtam le. A distanceBetween nem azon segít, hanem könnyebben kezelhetővé teszi a távolságot, mert közvetlenül méterben adja meg.Viszont, ha jönnek hibás adatok is, akkor esetleg annak az okát (hardware ?) is meg lehetne keresni.
-
válasz
Janos250 #11201 üzenetére
Én nemrég átírtam az esp8266 softwareserial lib-et paritásbitesre.
Egyébként az lesz a hiba, amit DigitXT kolléga írt, hogy akkor is menti a hibás adatot az előző értéknek fenntartott változóba, amikor hibás, ezért ha két hibás adat jön egymás után, az egyik át tud csúszni az ellenőrzésen. Ezen a distanceBetween sem segít, mert ahhoz is el kell tárolni a korábbi értéket. -
válasz
Victoryus #11166 üzenetére
Sajnos nem igazán van fogalmam róla, hogy mi is ez a motor shield, de a kép alapján egész biztosan rosszul van összekötve, mert a D1-D4 lábak mellett még minimum a gnd-t össze kell kötni a shield és a lap közt, és ha a shield-en nincs kimondottan konverter a L293d tápfeszültségének az előállításához (3,3V-5V) akkor még a Vcc bemenetet is össze kell kötni a lap megfelelő kimenetével (esp32-nél a 3,3V-tal!). Ez a L293d logikai tápja, nem a motoré! Ezek után ott van még egy-egy enable láb mindkét motorhoz, ha azokat nem húzod magas szintre, a D1-D4 lábakra hiába adsz jelet, a motorok nem fognak megmozdulni. Szóval összesen ha jól számolom 8db jumper kábel kell a két motorhoz. És persze minimum 9V táp a shield-nek (motorok tápja), mert az alatt a L293d nem nyit ki rendesen, csak melegszik meg sípol (pwm meghajtás esetén).
-
Volt egy kis időm így megpróbáltam összerakni egy esp32+NodeMcu ESP8266 Motor Shield Lua L293d -őt.
Háát, nem nagyon értem, hogy lehetne ezt működésre bírni. L298N-t használtam már, de annak több dolog is kellett a működéshez: pwm, motor a enable...
Ezen a L293d-n hova kéne bekötni egyáltalán az esp32-őt, meg hány pinnel? Alin annyit ír, hogy Control Port: D1, D3 (A motor); D2, D4 (B motor)
Ha feszültséget kap a D1, vagy D3 az ég világon semmi sem történik. Gondolom kéne még neki valami, csak ez nem nagyon derül ki sehonnan, hogy mi. -
válasz
Janos250 #11155 üzenetére
Nézegettem ezt az esp32-cam összeállítást, és azt látom, hogy 3 féle cam modult is lehet hozzá kapni. Na most a kérdés: szerinted mi a szűk keresztmetszet, a modul, vagy az esp32 teljesítménye, esetleg a wifi sebessége? Érdemes lehet másik modult próbálni az ov2640 helyett magasabb fps érdekében? Egy 15-30 fps / 640x480 mellett én már elégedett lennék.
A másik, jól látom, hogy ezen nincs usb, hanem külön programozó kell hozzá? -
Janos250
őstag
"Ehhez, amit linkeltél, nincs is kamera"
Bocs, csak rákerestem egyre a Bangoodon, ehhez tényleg nincs, rossz a link.
"Honnan vetted együtt a kettőt?"
Innen, ez a jó link:
https://www.banggood.com/Geekcreit-ESP32-CAM-WiFi-bluetooth-Camera-Module-Development-Board-ESP32-With-Camera-Module-OV2640-p-1394679.html?rmmds=myorder&cur_warehouse=CN
Ez most drágább, 8 $, én olcsóbban vettem.
"Erős fényben sem nő a framerate?"
Nem próbáltam.
"Mire jó ez tulajdonképpen fotózáson kívül? "
A kamera része csak érdekesség. Nekem az benne a lényeg, hogy rajta van az SD csatlakozó hely. És, hát ESP32, ami elég sok mindenre jó. -
Breaker
tag
A lolin32-vel vigyázz, mert ezen a shield-en ha jól tudom rajta vannak az i2c felhúzó ellenállások, amik 5V-ra húzzák a pineket, de amíg az esp8266 gpio-i 5V toleránsak, az esp32 kimenetei állítólag nem azok.
Nah akkor meg is kaptam a választ egy fel nem tett kérdésemre..
Igaz én Lolin D1 Mini-t hasznalok, de az is esp8266.. A minap méricskéltem, és a pineken 5Vot mértem, és vakartam a fejem hogy ez hogy a fenébe lehet, illetve hogyhogy nem purcantak ki?
-
Janos250
őstag
Megérkezett a 6.5 dolláros ESP32 CAM modulom:
https://www.banggood.com/Geekcreit-ESP32-CAM-WiFi-Bluetooth-Camera-Module-Development-Board-ESP32-p-1443851.html?rmmds=search&cur_warehouse=CNAzt nem mondanám, hogy szuper a kamerája, de kevesebb mint kettőezer Ft-ért mit vár az ember.
Az ESP32 modul teljesen OK. Azok a kivezetések, amik a camera modult kezelik, ki sincsenek vezetve, de nekem így is marad elegendő GPIO. A lap hátulján van egy SD kártya hely, azt még nem próbáltam, remélem az is működik.A kamera: hát.... gyengécske.
Nálam vízszintes csíkok is vannak benne, azt még nem tudom, hogy a kamera hibája, vagy más. A felbontásokhoz a mért fps-ek:
1600x1200 : 0.2 fps
800x600 : 1 ffps
320x240 : 3 fps
160x120 : 8-10 fpsÖsszességében kettőezer Ft-ért kaptam egy ESP32 lapot SD slottal, kamerával együtt. Ez azért ugye elég jó ár! Egy UNO is önmagában alig kerül kevesebbe.
Ha a kamerát nem akarjuk használni (eldobjuk), akkor is nagyon jó árért kaptunk egy ESP32 lapot, ráépített SD card slottal -
Használta már itt valaki a SPIFFS fájlrendszert esp32-n? Sqlite adatbázist próbálok használni rajta, az olvasás hibátlanul működik, de az írás nem. Ha írok az adatbázisba, hiba nélkül lefut a kód, de 3ból 2x a kiírt adat egyszerűen elveszik. Néha viszont sikerül írni az adatbázisba és az adat is megmarad.
Néhány írási próbálkozás után pedig néha lefagy az egész esp! Hiába túrom a netet, semmit sem találok a témában. Egyszerűen nem tudok rájönni, hogy hardverhiba, bug valamelyik lib-ben, vagy én rontok el valamit a programban. Talán vmi flush parancs kellene, hogy kírja a változásokat, de egyik példakódban sincs nyoma, hogy létezne, vagy hogy használni kellene... -
válasz
Victoryus #11142 üzenetére
Milyen library-vel próbálod ezt a shield-et használni a Wemos d1-el? Az uno-hoz való adafruit-ossal?
Az alsó sor jobb szélső két pin az SDA SCL, ugyanez duplázva a felső sor bal szélső két pin-en.
A lolin32-vel vigyázz, mert ezen a shield-en ha jól tudom rajta vannak az i2c felhúzó ellenállások, amik 5V-ra húzzák a pineket, de amíg az esp8266 gpio-i 5V toleránsak, az esp32 kimenetei állítólag nem azok. -
válasz
Victoryus #10432 üzenetére
Ott tartok, hogy nem tartok sehol... Fizikailag nem passzolnak össze az alkatrészek, túl szélesek a boardok a motorvezérlőhöz képest. Pedig egy típushoz valók elvileg...
Szóval most megint ugyanott vagyok, ahol 3 hónapja, hogy kéne valami motorvezérlő+lap ami kis helyen is elfér.Plusz rájöttem, hogy elég nekem két 18650-es akku is, nem kell 3, súly+helytakarékosság is szempont.
Aryes javasolta a lolin esp32-őt.
Abból is van már egy itthon. Akkor ehhez milyen motorvezérlőt rendeljek? (amit nem kell összerakni, forrasztani)Másik kérdés, ha már van ez a motor shieldem, azt hogy lehetne kideríteni, melyik lábaival lehet csatlakoztatni?
Ezt írtam korábban is, ha ráteszem a Wemos d1 r2-re akkor kb semmit nem csinál, és szabad pin is csak 2 marad... Lehet uno-val menne, de azzal még nem néztem. -
Kedves esp32 szakértők! Egy játékot készítek most lolin32-vel (végre találtam neki egy jó kis feladatot
), néhány gpio-t bemenetként akarok használni rajta internal pullup-al, okozhat-e gondot, ha ezek a boot alatt közvetlenül GND-ra vannak kötve?
Ennek az oldalnak a leírása alapján olyan lábakat néztem ki, amik állapota nem zavarja a boot-ot, nincs se fel, se lehúzva és nem ad ki rajta PWM jelet se boot közben (16,17,18,19,23). A kérdés inkább arra irányul, hogy boot közben ezek a lábak hi-z állapotban vannak-e, vagy nem, utóbbi esetben tegyek-e áramkorlátozó ellenállást a GND és a bemenetek közé. -
Janos250
őstag
Valaki próbálta már ezt?
8 dollárért ESP32 modul + 2 Mpixel kamerával eléggé ajándék árnak tűnik.
-
_q
addikt
válasz
alfa20 #11007 üzenetére
Nekem fura a kód amit próbáltál, szerintem azzal van a gond. Próbáld meg a következőt. Nekem hasonló megy ESP32-vel.
Ja meg még annyi, hogy SSD1306.h kell nem adafruit asszem. Ez ha jól emlékszek arduino library manager-en belül letölthető./*
* Random Nerd Tutorials - Rui Santos
* Complete Project Details https://randomnerdtutorials.com
*
* The MIT License (MIT)
* Copyright (c) 2016 by Daniel Eichhorn
*/
// Include the correct display library
// For a connection via I2C using Wire include
#include <Wire.h> // Only needed for Arduino 1.6.5 and earlier
#include "SSD1306.h" // alias for `#include "SSD1306Wire.h"`
// Initialize the OLED display using brzo_i2c
// D3 -> SDA
// D5 -> SCL
// SSD1306Brzo display(0x3c, D3, D5);
// or
// SH1106Brzo display(0x3c, D3, D5);
// Initialize the OLED display using Wire library
SSD1306 display(0x3c, D3, D5);
// SH1106 display(0x3c, D3, D5);
void setup(){
// Initialising the UI will init the display too.
display.init();
display.flipScreenVertically();
display.setFont(ArialMT_Plain_16);
display.setTextAlignment(TEXT_ALIGN_LEFT);
dht.begin(); // initialize dht
}
display.clear();
display.drawString(0, 16, "Hello Word!");
void loop(){
} -
DigitXT
félisten
Annyi jót írtok az ESP32-ről, hogy én is benevezek egyre.
Kíváncsi leszek!
-
Teasüti
nagyúr
MÁS
ESP32 guruktól kérhetnék egy kis segítséget a semaphore használatával?
Hogy kell létrehozni egy bináris semaphore-t?
Rtos oldalán kerestem ki a parancsokat és ott azxSemaphoreCreateBinary()
makróra azt írja, hogy mielőtt bárki "elvehetné a tokent", először "adni" kell.
Viszont vmiért nem fordul ez le:SemaphoreHandle_t xBeacon = xSemaphoreCreateBinary();
xSemaphoreGive(xBeacon);És olyan hibát dob, amit nem tudok értelmezni:
error: expected constructor, destructor, or type conversion before '(' token
#define xSemaphoreGive( xSemaphore ) xQueueGenericSend( ( QueueHandle_t ) ( xSemaphore ), NULL, semGIVE_BLOCK_TIME, queueSEND_TO_BACK )
^
sketch\brake.h:13:1: note: in expansion of macro 'xSemaphoreGive'
xSemaphoreGive(SemaphoreHandle_t xBeacon);Van erre vkinek ötlete?
-
Teasüti
nagyúr
válasz
DigitXT #10945 üzenetére
Uhh, sztem ezt nem akartad megkérdezni!
Tervben van egy logout-os cikk belőle, majd talán két év múlva lesz esedékes a fejlesztés üteméből következtetve.
Én "csak" hármat használok ebből, viszont a nyákot úgy terveztem és gyártattam le, hogy az egyik az ADC2-n van. Álmomban nem gondoltam volna, hogy ilyen alapvető funkció fog megszívatni.Gépjárművet okosítok, pontosabban a motoromat automatizálom kicsit.
Ehhez felhasználtam az ESP32 összes létező portját - beleértve a strapping pin-eket is -, valamint I2C csatornán még vagy 6 másik eszközt. Köztük szenzor modulok, egy numerikus kijelző, egy saját tervezésű gpio extender amin van még +16 db ki- és bemenet az ESP sajátjain felül.Dióhéjban csak - mert szerintem a többiek már unják:
1. Onnan indult az egész projekt, hogy ws2812b ledszalagokat raktam a motorra a karácsonyfa hatásért, és mert a Halálos Iramban, valamint az NFS Underground 1 és 2 nagy hatással volt a gyerekkoromra. Ez lefoglal 6 lábat, 6 csatornán 10 szalag van bekötve. Köztünk az egyik egy shift assistant feladatot lát majd el a műszerfalon. A többi csak eye candy.Aztán ha már mikrovezérlő, akkor elkezdtem azon filózni miket tudnék művelni vele.
Innen jöttek az alábbiak:2. Terveztem egy smart féklámpa panelt a gyári ledek helyett, amin pwm vezérléssel tudok előállítani nagyjából 2000 lument (úgy 45 wattnyi 5830-as piros ledekkel). Ennek redundáns vezérlése van health&safety megfontolásból, egy opcionális külső pwm jel és egy belső 555 vezérlés, amik közt automatikusan átkapcsol, ha külső pwm jelet kap. Ez a lámpa kapott még egy aktív hűtést és egy termisztoros hőérzékelést, ami a ventilátorokat kapcsolja. (Elvileg a normál féklámpa fényerőhöz tartozó ~20% kitöltési tényezőnél még nem annyira forrósodnak a ledek, de jobb a békesség.)
3. Beolvasom a motor sebességszenzorát és tacho szenzorát. A sebességjel a féklámpa algoritmusához kell. Hasonlóan mint mindenféle figyelemfelkeltő smart féklámpánál, amikben gyorsulásérzékelő van (aminek a zajos jele egy határ szar, össze-vissza villog az összes ilyen megoldás, ezért én csináltam egy jobbat). Meg az elektromos láncolajozóhoz - ugye álló helyzetben nem akarok olajat köpködni... (Ez utóbbit megfejelem még egy esőérzékelővel is az intenzívebb olajozáshoz).
Ezen felül saját sebességjelet fogok előállítani, mert úgy +8%-ot csal az órám. Ezt fogom kalibrálni GPS méréssel. Ez volna az ún. speed-o-healer funkció, ami általában nem olcsó külön megvenni.
Azok szoktak ilyet használni, akik a gyáritól eltérő gumiméretet raknak fel. Engem csak simán zavar a 8%, úgy gondolom eléggé felnőtt vagyok már ahhoz, hogy el tudjam dönteni mennyivel akarok menni.
A tacho szenzorból meg azt állapítom meg, hogy jár-e a motor. Illetve a led szalagok effektezéséhez fog még jól jönni. Jah meg a shift assistant-hoz és a fokozat jelzőhöz a numerikus kijelzőn.4. Egy-egy perifériát kapcsolok még relével; úgy, mint a hűtőventilátor (a gyári hőkapcsoló 106 foknál kapcsol, én kicsit lejjebb szeretnék - ehhez ugye be kell olvasnom a hőmérsékletet is), a tompított fényszóró (gyárilag mindig világít; én automatikusan szeretném kapcsolni a környezeti fényviszonyoknak megfelelően, mint némely modern autóknál), a duda (tetszik az ilyen vészfékezéses automatikus duda az autóknál, ezt implementálom a motoromra is; na meg riasztóként is működhet), a kill switch (csak egy bizonyára felesleges security funkció lesz, amivel meg tudom szakítani a gyújtást).
5. Monitorozom az összes vezérlőszervet a kormányon. Rákapcsolódok az indexekre, a fékkapcsolóra, a kuplungra, az Neutral jelzőre, stb. Ezek az inputok mindenféle dologra jók lesznek. Pl. tervben van saját index készítése/nyomtatása, amiket egy-egy Attiny85 fog vezérelni autonóm módon, opcionális külső vezérléssel mint a féklámpa esetén. A vezérelt indexek pedig spéci ws2813a ledek lesznek.
Ezeken kívül két ledes gombot teszek még a kormányra, amire közvetlenül programozhatok gyorsan elérhető funkciókat, hogy ne kelljen a telefont buzerálni menet közben (mert hogy ez az egész hóbelevanc BT-n keresztül lesz távvezérelve egy MIT App Inventoros alkalmazással).6. Egy kicsi 5v-os buzzer-rel emlékeztetőt szeretnék alkotni, illetve automatikus deaktiválás egy adott türelmi idő után ha fent felejteném az indexeket. Ez a giroszkópikus adatokra épülő automata index funkció is elég drágán megy a piacon... Vmint mindenféle hangjelzésre jó lesz az még.
7. Numerikus kijelző, amin mindenféle adatot fogok megjeleníteni. Pl. GPS sebesség, dőlésszög (a giro szenzorból), fokozat kijelzés, stb.
8. GPS modul csatlakoztatása UART-n, amivel egyrészt a speed-o-healer-t kalibrálom, másrészt sms-es távvezérlésre ad lehetőséget. Ezt védelmi funkcióra szánom, vagyis parkoláskor ha a gyorsulásérzéklő kapást jelez, akkor küld nekem egy üzenetet. Illetve egy-egy parancsszóra reagáljon is, pl. sms nyomkövetés kezdeményezése, gyújtás megszakítása, riasztó aktiválása, stb.
9. Akkufeszültség monitorozó (pont ez került az ADC2-re), ami kezdeményezhet egy automatikus áramtalanítást akár a vezérlőn (bistabil relé a főkapcsoló, amit egyik oldalról a gyújtás kapcsol, másik oldalról a mikrovezérlő), ha egy adott feszültség alá merülne.
Egyéb kérdés?
-
Teasüti
nagyúr
Tudtátok, hogy ESP32-n nem lehet használni az ADC2-t ha aktív az antenna? Nem tudom mit csesztek el tervezéskor, hogy de vmiért kell a wifihez/bt-hez a második ADC egység.
Erre most döbbentem rá, hogy a 95%-ban kész projektemben egy ilyen egyszerű f@szság nem működik.Jelen állás szerint akkor az ESP32-n kb az összes értelmes gyakorlati felhasználásra csupán 6 db analog bemenet áll rendelkezésre.
Esetleg nem lehet átmuxolni az ADC1 egység csatornáit a kettes egység GPIO lábaira?
-
vargalex
félisten
válasz
Janos250 #10885 üzenetére
Én is használom több helyen. Többek között zseblámpákban is (Convoy S2+) és ESP8266-okkal is. Előbbi villogással jelzi a merülést, utóbbiak a hőmérsékletek mellett a beérkező feszültséget is post-olják, amire szerver oldalon egy riasztást írtam. (Nyilván az alkalmazott HT7333 miatt csak azt érzékelem, ha 3.3V alá esik).
Csak notebook akkukból bontott, illetve 8 db, az említett eladótól beszerzett celláim vannak. -
fpeter84
senior tag
válasz
zsolti_20 #10793 üzenetére
A klasszikus arduino-k nem annyira alkalmasak az elemről/akkuról működtetésre, valamint ha vezetéknélküli kommunikációt is szeretnél, akkor lehetnek már arra is jobb megoldások! Akár az ESP8266 wifi-vel, akár az ESP32 wifi+bluetooth-al - mindkettőből létezik pár $-ért olyan kivitel amire közvetlenül is köthetsz li-ion akkut, tölteni is tudja, üzemelhet is róla... Milyen távolságra szeretnél milyen mennyiségű adatot küldeni, illetve elemről/akkuról mit kéne csinálnia, mi lenne üzemidőben az elvárás?
-
válasz
t72killer #10756 üzenetére
Az a baj, hogy egyszerre akarsz mindent is.
Amit most leírtál, azt valószínű legjobban tényleg raspberry-vel lehetne megoldani, de nem azért írom itt a raspberry-t, a raspberry topikban meg az arduino-t, hogy szivassalak.
Az attiny felesleges redundancia lenne a projektben, mert az esp simán tudná vezérelni a gombokat és wifi-n keresztül http parancsokat adni. Ahogy én csinálnám: egy routert beállítanék repeater módba, ami a környéken fogható free wifi-re csatlakozna, erre kapcsolódna a kamera és az esp is, így nem kéne két hálózatot kezelni. Az esp szerintem képes arra, hogy 4Mbyte-os jpeg-eket leszedjen a kameráról és továbbítson, ha tényleg http parancsokkal ezt meg lehet oldani (az esp szakértők majd kijavítanak, ha tévedek), ez esetben viszont nem világos, hogy ha már a kamera a netre van kötve, miért nem próbálod otthonról a neten keresztül letölteni a kameráról a képeket és az esetleges videó streamet?
A kamera vezérlésről http protokollon keresztül tudsz leírást adni? -
válasz
Janos250 #10734 üzenetére
Az esp8266-al kapcsolatban rögtön itt a mélyvíz
. Azaz, a távoli kamera projektemhez nem csak szimpla kikapcs-bekapcs megoldást, de komplett vezérlést és adattovábbítást (streaming vagy fájlfeltöltés) is szeretnék varázsolni.
Ezt különösebb programozási tudás nélkül le lehetne rendezni pl egy izmosabb Rock64+android+kameraapp segítségével, érdekelne, hogy tisztán arduinó alapon megoldható lenne-e a darabonként 3-4megás fotók, horribile dictu fullHD live streaming feltöltése? Azaz összedobható-e egy eszköz, ami az egyik oldalról a kamera AP kliense, a másik oldalról pedig az alkalmasint elérhető ingyenwifihez, vagy a backupként üzemeltetett LTE-hez kapcsolódik és az egyiken bejövő képi anyagot teljes tömegében át tudja tolni, azaz effektíve routerként/bridge-ként funkcionál?
-
Teasüti
nagyúr
válasz
fpeter84 #10736 üzenetére
Csak hangosan gondolkodom:
Működne vajon a futás közbeni Serial inicializáció? Egyes lapoknál lehet mux-olni a gpio lábakat (esp32), ott futás közben váltogatni melyikre írjon ugyanaz az UART periféria.
Arduino lapokon nincs Mux úgy tudom, ott Software Serial-lal lehet befogni más gpio lábakat erre. Nem tudom a könyvtár tud-e kezelni több virtuális portot is.
Esetleg külső hardver jöhetne még szóba vmilyen shift regiszteres módon, ami az SPI-hez hasonlóan váltogatja az eszközöket. -
Janos250
őstag
válasz
t72killer #10733 üzenetére
Ez kezdéshez jó választás. Ne vegyél hozzá WiFi-s lapkát! Ha WiFi-t akarsz próbálgatni/használni, akkor ESP8266 (Pl. Wemos), vagy ESP32. Az ESP8266 1000 Ft alatt van, az ESP32 meg 2000 körül.
Az ESP8266 előnye, hogy az okosotthon témába elég jól beillesztették. Számos Sonoff gyártmányú lap van hozzá viszonylag olcsón, amik célfeladatokat látnak el. Pl. WiFi-s fali villanykapcsoló, hőmérő, páratartalom mérő, miegymás. Ha az ESP8266-ot nagyjából megismered, akkor ezeket könnyedén tudod használni. Egy lelkes ember írt egy minden Sonoffra jó, paraméterezhető programot (Tasmota néven), ami egyből illeszkedik az okosotthonos dolgokhoz. Az ESP32 előnye meg az, hogy op. rendszert használ, és 2 mag van benne, tehát a párhuzamos programozáshoz jól jön. Mindenesetre kezd el a megrendeld UNO-val, aztán majd lépsz tovább! -
Janos250
őstag
válasz
t72killer #10731 üzenetére
Így, hogy elolvastam amiket írtál, pár privát megjegyzés:
1. Hajrá, mások is így kezdik, fog az menni. Ha elakadsz, szólj, és lökdösünk!
2. Nem vagyok meggyőződve, hogy ez az icuri-picuri lapocska túl jó választás volt kezdésnek.
Hogy mi a jó, arról megoszlanak a vélemények. A neten az "arduinos Hello World" az UNO.
Arra van rengeteg program, tutorial, miegymás. Igaz persze, hogy a többi lapokon is gyakorlatilag változtatás nélkül, vagy minimális változtatással futnak ugyanazok a programok, de kezdők számára előny, amikor fénykép-szerűen ott egy UNO, és látod, melyik lábhoz mit köss.
Vannak korszerűbb lapok, amik nem, vagy alig drágábbak, és mint már írtam, általában változtatás nélkül mennek rajta a más lapra írt programok.
A korszerűbbek: ARM alapú a DUE, de rokona az elég nagy tudású és olcsó STM32 sorozat. Aztán jött az ESP8266 ami WiFi-t is tud, majd ezt korszerűsítve az ESP32. Én mostanában ez utóbbit szoktam ajánlani, bár kaptam is már érte a fejemre.
3. Az Arduino lapokat C++ nyelven programozzuk, azzal a kiegészítéssel, hogy számos osztály és objektum van előre definiálva, amit minden lapnak tudnia kell, ha illesztik ebbe a rendszerbe. Példa erre a serial
osztály, és annak egy előre definiált példánya, a Serial(). Ha most kezded, ne mássz bele az objektumos örökléses részbe mélyen, használd ökölszabályszerűen őket, pl. a Serial()-t. Majd később megérted,
hogy pontosan mi is az, és miért úgy van. A C mutatóit meg egyelőre végképp ne! A fordítók a GNU C++
fordítók valamelyik verziója, ez biztosítja a szabványosságot. Majd később, ha valami hiányzik, nézd meg, hogy van az a C++-ban, és próbáld ki! Meg fogsz lepődni: megy, akkor is, ha az arduinos irodalom nem írja. Én - mint már mondtam - az ESP32-t használom, ami a C++11 szerinti fordítót használja, és valóban tudja is. (Pl. a szálak "szabványos" kezelése, stb).
4. Mégegyszer: Hajrá! -
gardener
senior tag
Szerettem volna beletölteni egy ino file-t.
A következő hibaüzenetet kaptam:
Arduino: 1.8.5 (Windows 10), Alaplap:"FireBeetle-ESP32, 80MHz, 115200"Vázlat használ 708166 bájt (54%) -ot a program tárhelyből. A maximum 1310720 bájt.
A globális változók 37464 bájt (11%)-ot használnak a dinamikus memóriából, 290216 bájtot hagyva a helyi változóknak. A maximum 327680 bájt.
C:\Users\Attila_Dell_N7710\AppData\Local\Arduino15\packages\esp32\tools\esptool_py\2.6.0/esptool.exe --chip esp32 --port COM6 --baud 115200 --before default_reset --after hard_reset write_flash -z --flash_mode dio --flash_freq 80m --flash_size detect 0xe000 C:\Users\Attila_Dell_N7710\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.1/tools/partitions/boot_app0.bin 0x1000 C:\Users\Attila_Dell_N7710\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.1/tools/sdk/bin/bootloader_dio_80m.bin 0x10000 C:\Users\ATTILA~1\AppData\Local\Temp\arduino_build_15388/mah_robot.ino.bin 0x8000 C:\Users\ATTILA~1\AppData\Local\Temp\arduino_build_15388/mah_robot.ino.partitions.bin
esptool.py v2.6-beta1
Serial port COM6
Connecting........____
Chip is ESP32D0WDQ6 (revision 0)
Features: WiFi, BT, Dual Core, Coding Scheme None
MAC: 24:0a:c4:82:f4:78
Uploading stub...
Running stub...
Stub running...
Configuring flash size...
Warning: Could not auto-detect Flash size (FlashID=0xffffff, SizeID=0xff), defaulting to 4MB
Compressed 8192 bytes to 47...A fatal error occurred: Timed out waiting for packet content
A fatal error occurred: Timed out waiting for packet contentEnnek a jelentésnek több információja lehetne
a "Bővebb kimenet mutatása fordításkor"
opció engedélyezésével a Fájl -> Beállítások-ban.Haver valami olyat mondott, hogy kevés a memória és az OTA-t ki kell hagyni-kapcsolni. És akkor belefér a progi. De ezt, hol hogyan kell? Kezdő vagyok még ... szájbarágósan kéretik szépen. köszi.
-
ESP32-őn Arduino IDE alatt próbált valaki posix thread mutexeket használni? Folyton lefagy az egész, pedig linuxon működik a kód.
-
válasz
Teasüti #10651 üzenetére
Te tényleg értesz.
"Az adó-vevő hókuszpókusz"
Ez sajnos kudarcba fulladt, mert nem bírok belőle analóg jelet kifacsarni. De maga a soros kommunikáció már egészen jól működik. Viszont távolságtól függetlenül néha egészen közelről is hibák jelentkeznek, amit képtelen vagyok visszafejteni, ehhez már vagy egy oszcilloszkóp kéne, amit linkeltél, vagy egy digitális jelanalizátor, amit Janos250 kolléga ajanlott régebben, de egyik sincs itthon sajnos. Gyanítom már nem a kommunikációban van a hiba, inkább valami esp specifikus dolog lehet, ami néha megzavarja a pontosan időzített küldést."38 Khz-es négyszögjel esetén - vagy ami átjön a bandpass filteren - húzza GND-re."
Analóg jel esetén ez úgy működne, hogy a jel mindig valahol 3.3V és 0V közt lenne, az adó távolságától és az adás teljesítményétől függően. A kettő közt félúton van egy választóvonal, ami alatt 0-nak, fölötte pedig 1-nek veszi a feszültségszintet, tehát bizonyos távolságból az adás egyszerűen csak el fog tűnni. Persze tudom, hogy van egy sáv, ahol határozatlan lesz a, mondjuk 1.8-2.5V közt, itt valószínűleg véletlenszerű adatokat fogok kapni. -
válasz
tvamos #10635 üzenetére
Meg mernék esküdni, hogy az utóbbi két napban legalább háromszor leírtam már (én ugyan high pass filtert írtam), de legyen:
Szükségem lenne egy bandpass filterre, ami egy ir tranzisztor jelét szűri olyan módon, hogy megfelelő amplitúdójú 38kHz-es négyszögjelre alacsony jelszintet hozzon létre egy esp8266 bemenetén.
Hiába van ez a tervező, ezzel a rajzzal nem tudok mit kezdeni:
Nem a számolás részével van problémám, nincs kész kapcsolási rajzom!
Hova kössem az ir tranzisztort? Hogy fog ez nekem alacsony jelet produkálni az arduino bemenetén? -
válasz
brickm #10632 üzenetére
Most az egész projektet nem érted, vagy azt sem, hogy kellene egy 32kHz vágási frekvenciával rendelkező high pass filtert tervezni ir tranzisztorhoz, ami egy esp8266 bemenetét vezérelné? Bemegy egy 38kHz négyszögjel, ennek az amplitúdóját szeretném megkapni analóg módon az esp bemenetére.
-
Janos250
őstag
"Emellett a küldő oldal jelerőssége alapján szeretnék hozzávetőleges távolságmérést csinálni"
De a jel erőssége nem csak a távolságtól függ, hanem pl. attól is, milyen szöget zár be a vevő és az adó.
Ha jól emlékszem, ESP-t használsz. Ott van a WiFi.RSSI(), ami a jel erősségét adja. Nem tudom, mennyire használható. Én nem használtam még semmire, csak passzióból íratom ki néha.
"árulnak arduino-hoz való ir távolságszenzort, ami egy egyszerű reflektív optokapuból + némi elektronikából áll, ahol az ir led fényét frekvenciamodulálják, hogy ne zavarja a környezeti fény."
Na, ahogy én tudom - lehet rosszul - ez azért ennél bonyolultabb. Az IR-rel a távolságmérést nem a jel erőssége, hanem a visszavert jel visszaérkezési idejéből számítják. Mivel a fény szeret elég gyorsan menni, ezért ilyen pici időt macerás mérni. Ezért találták ki azt az ötletet, hogy modulálják a kimenő fényt, majd a visszavertet is ugyanolyan erősségűre erősítik, aztán "összekeverik". A fáziskésésből adódóan a kevert jel erőssége függ a fáziskéséstől, azaz a futási időtől. -
válasz
tvamos #10620 üzenetére
Köszönöm az észrevételeket, ezekkel már tudok mit kezdeni.
"Tehat, ha a nap besut az ablakon, es a robotod azzal szembe megy, akkor nem lesz jeled."
Igen, ez egy kompromisszum, a smart car-ommal szerzett tapasztalatok alapján direkt napfényben nem hatékony a szimpla ir tranzisztor, nem akarom a fizika törvényeit megszegni, ha kell, lehúzom a redőnyt.
De ha a tsop képes direkt napfényben is működni, akkor valamilyen megoldásnak létezni kell."hogyan tudnad a tavolsagot merni, ha nem mashogy, mint egy masik tavmero szenzorral, vagy haromszogelessel."
Két ir szenzor + háromszögelés
"A terhelesed nincs impedancia illesztve. Ha a kimeneted feszultseg, akkor az R2 legalabb 100k kene legyen"
Ha jól értem az esp bemeneti impedancia számít, ami ez esetben ha jól tudom MΩ nagyságrendű. Az R2 azért ennyi, mert erre találtam példát az egyik fórumon.
"Ha mondjuk 200mVpp az AC, es 3.3V a a tap, akkor 3.2V es 3.4V kozott lesz a kimeno feszultseg. Ez kell neked?"
Igazából 0V és 3.3V közti értékeket szeretnék kapni. Hogy ezt milyen áramkörrel lehet elérni - na azt szeretném most megtudni... Gondolom kellene bele egy(-két?) dióda, ami nem engedi a jelet a tápfeszültség fölé menni.
-
Teasüti
nagyúr
válasz
Teasüti #10505 üzenetére
Na ez mekkora véletlen!
Most döbbentem rá, h 5V-on küldi a megszakítást az mpu6050 giro modul, esp32 meg annyira nem rajong ezért. Viszont belekukkantva az ellenállás utáni feszültségbe, kiderült éppen tökéletes magasságba fut fel a tüske és a program is csont nélkül működik az IO0 lábon és bootloop sincs.
Ennek mekkora esélye volt már??Ez ebben az egy esetben jobb megoldás, mint újratervezni a nyák-ot.
-
válasz
robohw #10593 üzenetére
"A másik, hogy kopasz diódákkal, tranyókkal kiépítesz egy saját rendszert."
Ezt is szeretném, mivel már kiderült, hogy egy ir receiver kimenetéről sehogy sem tudok analóg jelet levenni.
Egy erősítés (opamp) nélküli sima RC tagot kellene tenni a tranzisztor és a bemenet közé, csak nem tudom egyedül kiszámolni. Tud valaki segíteni egy kapcsolási rajzzal? Analóg áramkörökhöz nagyon láma vagyok"Amit itt kutyulsz, az véleményem szerint aligha fog eredményre vezetni."
Miért mondod ezt? Ez nekem hobbi. Máris volt eredménye a "kutyulásnak", szeretek tanulni, egy csomó mindent tanultam az esp8266-ról, amíg utána néztem a dolgoknak. Beleástam magam az ir és a serial (uart) protokollba, módosítottam egy library-t, kiegészítettem paritás ellenőrzéssel, meg frekvencia modulációval úgy, hogy működőképes maradt.
Bele fogom tenni a GCR kódolást is, mert azzal 1600baudos sebességet fogok tudni elérni, szemben pl a BI Phase Coding-gal, amivel elméleti szinten is legfeljebb csak 1000baud lehetséges (azzal a vevővel legalább is, amivel én próbálkozom).
Elnézést, ha zavarok a kérdéseimmel, sosem tanultam elektronikát, se programozást, csak autodidakta módon, és kizárólag azt kérdezem itt meg, amire hosszas kitartó guglizás és utánaolvasás után sem találok választ. -
szuszinho
őstag
Nodemcu-n easy esp és egy DHT11 (GPIO-2, D4), de nincsenek adatok (esp-01-gyel sem volt)
Arduino IDE alatt írt kóddal működik, tehát az eszközök jók.
Mi lehet a gond?
-
IR-kommunikáció témakörben előre léptem egyet. Átírtam az esp software serial lib-et, tettem bele paritás vizsgálatot és pwm modulációt, hogy 38kHz-es ir receivert tudjak használni.
A helyzet a következő: az analogWrite túl szép volt, hogy igaz legyen, valamiért használhatatlan, gondolom inkább hangfrekvenciára lett tervezve. Ezért kénytelen voltam a jó öreg "bit-bang" módszerrel (ha valaki tudja, hogy mondják ezt magyarul, megköszönöm, ha megírja) csinálni, elég durva, de működik.
Ezután egészen váratlan dologgal szembesültem: egyrészt túl jó az adatátvitel hatótávolsága (10mA árammal 2m-ről simán tudok adatot küldeni), másrészt a távolsággal csökken az átviteli sebesség.
Sem a duty cycle, se a hordozó frekvencia durva elállítása nincs különösebb hatással a vételre, 5%-os kitöltés és 20kHz esetén sem csökken drasztikusan a hatósugár, létezik, hogy ezekben a kis vevőkben automatikus gain szabályozás van?Viszont az átviteli sebesség csökken, zavarérzékeny lesz a kapcsolat, és nem eltűnik az adat, hanem kicserélődik garbage-ra... És sajnos 1200baud-nál gyorsabban nem igazán működik. Az eredeti terv 4800baud lett volna, de ennél a sebességnél egy másik rejtélyes dolog történik: túl érzékeny lesz a vevő!
Ha túl közel viszem az adót, megszűnik az adatforgalom és szemét jön csak helyette.
-
Janos250
őstag
válasz
Breaker #10567 üzenetére
Ha még a D1 is nagy, akkor rárakod egy "fehér panelra".
https://www.ebay.com/itm/PCB-Adapter-ESP-07-12-Board-fur-ESP8266-WIFI-Wlan-Serial-Modul-ESP-12E-E/252713824790?hash=item3ad6eaf216:g:0WQAAOSwXKtb5KtL:rk:9:pf:0
Van ESP32-höz is, bár annak a forrasztása elég macerás.
Ennél kisebbet nehéz lesz találni. -
ecaddsell
aktív tag
válasz
Gergosz2 #10562 üzenetére
Nem tudom az ESP-ből, hogy lehetne klónt használni
Persze már ma is vannak területek, ahol kínai másol kínait...
Egyébként érzésre az ESP mintha nyugati cég lenne, van rendes doksi, van rendes fórum ahol ha értelmesen kérdez az ember gyakran válaszolnak is. Szokatlan. -
szuszinho
őstag
Sziasztok,
Felteszem ESP-01-re az Easy ESP-t USB to TTL segítségével (GPIO0 GND-re rakva). Sikeresen felmegy, leveszem a tápról, majd vissza és nincs ott az AP. Mi lehet a gond?
-
tvamos
nagyúr
Ilyesmi modulja van már valakinek? [link]
Milyen ez az ESP32 PIco D4? -
brickm
őstag
válasz
Atamano #10543 üzenetére
Szia, a kondenzátor nem véd túlfeszültségtől! Más szerepe van az áramkörben.
Ha védelmet tervezel rá tenni, azt mindenképp a kiementre tedd, (vagy oda is) ugyanis (bár az IC pontos típusát nem látni) ezeknek a dc-dc konvertereket egy feszültégosztóval állítják be, a kiementről visszacsatolva, aminek ha az egyik tagja sérül(megnyúlik, vagy szakadáshoz közelít) felviszi a kiementi feszültséget, akár táp közelig.
Az ESP-k érzékenyek erre, 3.6-4V körüli csúcsfeszültséget képesek elviselni. -
Janos250
őstag
-
válasz
tvamos #10535 üzenetére
Lesz még jócskán annyi kihívás ebben a projekben, hogy nehezítsem a saját dolgomat.
Egyébként most, hogy így mondod, lehet, hogy tényleg érdemesebb lenne először megnéznem a softwareserial lib-et, hátha tudom úgy módosítani, hogy egy tranyóval is működjön az egész. Mert én forrasztani sem szeretek, viszont az esp-vel még nem kötöttem olyan szoros barátságot szoftveresen, mint az uno-mega lapokkal...Ha nem lenne jóval több ram-ja az esp-nek, és nem akarnám wifi-n keresztül programozni, inkább egy nano-val csinálnám az egészet.
Jó ide jönni, mindig kap az ember jó ötleteket!
-
Tankblock
aktív tag
Hello
Milyen ESP32 használsz?
Ha Devboardot akkor az nem lesz kevesebb,Ha egy sima ES32 használsz nyákra forrasztva az működhet sokkal kisebb felhasznált energiával is deepsleep mellett....
pl vannak időzítő aramkörök set / reset lábakkal amik vezérelhetnek sima lineár regulátort enabled pinjét, így [nA] tartományban is tartható az ESP32.
-
ESP32 mellé milyen 3,3 V-os regulátort ajánlotok, amelyik nem szívja le az akksit? Sajnálattal konstatáltam, hogy ami a lapon van, azzal 27 napot ment a projektem 4 db. 2000 mAh AA-ról, ami kb. 2,5 mA nyugalmi fogyasztás
Nézegettem Mouseren /csak mert jól lehet keresni/, de nem nagyon van semmi regulátor, ami low Iq, de tud 500 mA-t is /és kapható Pesten/. LiFePo4-et nem erőltetném, félek a lítiumtól, ha nem vagyok a közelben.
-
tvamos
nagyúr
Ti probaltatok mar az ESP32 DAC-ot DMA-val, Arduino framework alatt? Kene egy jo referencia sw, amit tudnek hasznalni.
Új hozzászólás Aktív témák
Hirdetés
- Új WiiM Ultra streamer & DAC Wi-Fi 6E, HDMI ARC, Hi-Res Audio 2 Év Garancia!
- MACBOOK PRO 2021 14.2" M1 PRO (8/14 mag 16GB 500GB, 14 ciklussal, Üzletből ,. garanciával
- Iphone 13 128GB Zöld Nagyon Szép Állapotban, Üzletből Garanciával
- Apple MacBook Pro Retina 13" 2020 i5-10.gen 16GB/512GB SSD, Nagyon jó akku, Garancia, üzletből
- ASUS DUAL GeForce RTX 4060 Ti O8G OC Edition
- Telefon felvásárlás!! Samsung Galaxy S25, Samsung Galaxy S25 Plus, Samsung Galaxy S25 Ultra
- Bomba ár! Dell Latitude 3550 - i5-5GEN I 4GB I 500GB I 15,6" HD I HDMI I Cam I W10 I Garancia!
- Lenovo Thinkpad P16 G2 - i9-13980HX, 64GB, 1TB SSD, 16" WQUXGA (3840 2400), RTX 4090 (ELKELT)
- Csere-Beszámítás! AMD Ryzen 8700G Processzor!
- Csere-Beszámítás! RGB Számítógép PC játékra! R5 5600X / RTX 3060Ti 8GB / 32GB DDR4 / 500GB SSD
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Cég: PC Trade Systems Kft.
Város: Szeged