Hirdetés

Keresés

Új hozzászólás Aktív témák

  • Janos250

    őstag

    válasz Aryes #23856 üzenetére

    Tudtommal nem.
    Kipróbálni most sem tudom, de holnap, vagy azután, írok egy kis tutorialt UART, és SD kártya használati módjairól, ami eszembe jut hirtelenjében.
    Egyre inkább azt látom, hogy az Espressiv is elmegy abba az irányba, hogy egy csomó-féle lap, SOIC, és egymással nem mindig kompatibilisek.
    Ezért én mostanság azt az elvet követem, hogy a lehető leggyorsabban a speciális ESP Arduino helyett a szabványos C, C++ -ban írom a dolgokat.
    Pont ilyen pl. az SD kártya is. A montulás az spéci Espressiv ( .begin) , de utána már, ha fel van mountolva, akkor már a GCC fordító minden szabványos C, C++ utasítást jól fordít, mert a mountolás során minden szükséges infó megadatik. Pl. hogyan kell végrehajtani a read, a write utasításokat az adott eszközre.

  • Janos250

    őstag

    válasz Reset Elek #23842 üzenetére

    Nem tudom most kipróbálni S3-on, de a szabványos C, illetve C++ fájlkezeléssel mennie kellene. Sima ESP32-n biztosan megy

    std::ofstream myfile;
      

      myfile.open ("/dev/uart/0");
      myfile << "Writing this to a file /dev/uart/0\n\n";
      myfile.close();




    A 0 helyett a megfelelő írandó.

  • rednifegnar

    senior tag

    válasz Wolfram #23838 üzenetére

    lehet veszek sd olvaso cuccot aztan kuzdom vele kicsit.
    ez a simple ftp is kicsit izgat mert ha az esp-n fut akkor milyen tarhelyet lehet ott latni? az esp-n lat egy fajlrendszert? neki kene futnom ezenek, csak most meg a tobbi resszel birkozom de biztos hogy valami ilyesmire szukseg lesz. ez egy kijelzo szeruseg es arra a szovegeket fel kell varazsolni es jo volna nem programkodban tarolni (most tombokben tartom de ez csak probakhoz elegendo).

  • Reset Elek

    aktív tag

    válasz ViZion #23850 üzenetére

    Köszönöm, ezt olvastam, félig ez alapján állítottam talpra a programot ESP32-n.
    Ezért használom én is az UART2-t, mert itt írja, hogy az 1-es default pinjein osztozik az spi flash.

  • Reset Elek

    aktív tag

    válasz Gergosz2 #23846 üzenetére

    Nem változót definiál, hanem létrehoz egy uart blokkot, méghozzá az uart2-t, ezt jelenti (2), és elnevezi StepSerial-nak, innentől kezdve ezen a néven lehet rá hivatkozni.
    Az esp-hal-t meg a harwareserial-t nem annyira látom át, de arduino környezetben ez standard metódus.
    NodeMCU ESP32 boardon működik hibátlanul, netes példák kb. 90%-a is ezt hozza, csak az S3-as boardon van valami.
    A sima StepSerial biztos nem jo, nem fogja tudni, melyik uart blokkot rendelje hozzá.
    A tömb definiálása.... Hááááát, ez is elég vad ötletnek hangzik. Mi lenne a tömb két eleme?

  • Reset Elek

    aktív tag

    válasz Wolfram #23847 üzenetére

    A board hasán van, a két tüskesor között, elég kevés a hely, egy fotó alapján nem hiszem, hogy átlátod. De nyugi, a forrasztások jok, jo helyről jo helyre mennek a madzagok, az oldszkúl ólmos forraszanyag is teszi a dolgát.
    Valahogy szoftveresen van megmakkanva a dolog, méghozzá valami ESP32 - ESP32S3 vonalon.

  • Reset Elek

    aktív tag

    válasz Wolfram #23841 üzenetére

    Bedugós próbanyákon kezdte a karrierjét a projekt, de a kontakthibákat kiszűrendő az uart és a földelés külön forrasztott vezetékezést kapott.
    Azért kell kettő mert az ESP32 uart0-ja fixen be van drótozva egy usb konverterbe, amivel a pc-vel tud kommunikálni és flash-elésnél is ezt használja. Ha valami külső eszközzel akarsz kommunikálni ahhoz az uart1-et és az uart2-t érdemes használni.

  • Reset Elek

    aktív tag

    válasz Postas99 #23840 üzenetére

    Ez lenne qz init, vagyis egy része, pár dolgot már kiszedtem belőle, így is hosszú

    #include <TMC2209.h>
    #include <HardwareSerial.h>
    #include <ESP_FlexyStepper.h>

    #define SER_BUFF_SIZE 1024

    HardwareSerial StepSerial(2);

    #define RX_PIN 18
    #define TX_PIN 17

    const long SERIAL_BAUD_RATE = 115200;
    const long SERIAL_BAUD_RATE_2 = 640000;

    TMC2209 stepper_driver_0;
    const TMC2209::SerialAddress SERIAL_ADDRESS_0 = TMC2209::SERIAL_ADDRESS_0;
    TMC2209 stepper_driver_1;
    const TMC2209::SerialAddress SERIAL_ADDRESS_1 = TMC2209::SERIAL_ADDRESS_1;
    const uint8_t REPLY_DELAY_0 = 2;
    const uint8_t REPLY_DELAY_1 = 2;

    ESP_FlexyStepper stepper_0;

    void setup()
    {
    Serial.begin(SERIAL_BAUD_RATE);

    StepSerial.setRxBufferSize(SER_BUFF_SIZE);
    StepSerial.begin(SERIAL_BAUD_RATE_2, SERIAL_8N1, RX_PIN, TX_PIN);

    stepper_driver_0.setup(StepSerial, SERIAL_BAUD_RATE_2, SERIAL_ADDRESS_0);
    stepper_driver_0.setReplyDelay(REPLY_DELAY_0);

    stepper_driver_1.setup(StepSerial, SERIAL_BAUD_RATE_2, SERIAL_ADDRESS_1);
    stepper_driver_1.setReplyDelay(REPLY_DELAY_1);

    delay(100);

    if (stepper_driver_0.isSetupAndCommunicating())
    {
    Serial.println("Stepper driver _0 setup and communicating!");
    }
    else
    {
    Serial.println("Stepper driver _0 NOT setup and communicating!");
    }

    Hardware serialt használok, de az esp valamiért nem szereti, ha Serial2-nek van elnevezve.
    Ez a kód működik kifogástalanul NodeMCU ESP32-n, de meg sem nyikkan S3-on. Különbség meg csak az RX pinben van.
    Próbáltam uart1-et meg uart2-it, semmi eredmény.
    StepSerial baud rate-je 9600 és 960000 között bármi lehetne TMC2209-en, ESP32-n megy is bármi, S3-on meg semmi, se 9600, se 115200, se 800000.

  • rednifegnar

    senior tag

    válasz bagarol #23834 üzenetére

    hat ehhez nem sokat konyitok, ez a simpleftp hol fut? az esp-n? vagy az csatlakozik egy ilyen ftp szerverre?

    ja most olvasom hogy fat. marmint fat file rendszer? mert nekem az boven jo lenne. azt el lehet erni az esp-rol az esp-re kotott sd kartyan?

  • Reset Elek

    aktív tag

    Kedves Fórumtarsak!
    Van köztetek olyan, aki egy ESP32-S3 második-harmadik UART portját hasznalta már?
    Van egy projektem, eddig egy ESP32 NodeMCU darabon futott, egy TMC2209 motorvezérlőt kezel.
    A TMC2209-et egy one-wire-UART megoldással össze lehet kötni a mikrokontrollerrel, amit ugyan kínszenvedés volt kitalalni, de azóta stabilan működik.
    Most valtanák ESP32-S3-ra, konkrétan egy Zero darabra, de az UART látszólag nem megy.
    A lapok forrasztva vannak összeföldelve, forrasztva van az UART madzagozása is.
    Arduino IDE 2.3.2 a környezet, ESP IDF 2.1.7 asszem az esp verziója.
    Az S3 Zero amúgy működik, Serial0 kommunikál a laptoppal soros porton, van rajta egy WS2812 led, az is működik, a program pedig csak pár száz soros.
    Valakinek valami ötlet esetleg, merre érdemes indulni?

  • rednifegnar

    senior tag

    hi, teljesen verszemet kaptam.
    adott: esp32-s3 r8n16, kisebb 2kbyteos bitterkepeket kellene tarolnom, sokat.
    eddig azt csinaltam hogy beleforditottam a kodba tombokbe. bizonyara nem szep megoldas, de mukodik.

    van e lehetoseg masra igy esp kartyan belul? pl valahogy tarhelykent elerni a rajta levo flasht? fajlrendszerkent vagy nem tudom. mikrochipnel volt ilyen de pc-rol azt nem tudtam irogatni, foleg nem fajlrendszerkent.

    masik amire gondoltam, hogy valami sd kartyan tartani es akkor kb vegtelen mennyiseget lehetne tarolni.
    probalt mar valaki sd kartyas olvasast csinalni? a tartalmat pc-rol irnam ra, csak olvasni kellene a fajlokat az esp-nek. nem tudom mire erdemes figyelni, milyen sd modult erdemes venni (vagy mindegy?), milyen kartyat, mekkorat es mire kell formazni?
    talaltam leirast a neten de hatha van valakinek gyakorlati tapasztalta vele. :R

  • Undoroid

    őstag

    válasz ViZion #23819 üzenetére

    Igen, már úton is van egy teljesen üres, ESP01S, ami vélhetően pontosan olyan lesz! Volt itthon egy másik, de azt már piszkáltam, úgyhogy azt nem másolgatom tovább! Aryes linkjét fogom követni, ha megérkezik az új lapka!

    Köszönöm, hogy foglalkoztatok a problémámmal! :R

    * * *

    Postas99:

    Mindkét végálláshoz kelleni fog hall generátor és mágnes! Mindkét helyzetben kelleni fog egy pici lassulás, mert ha csak egy helyre teszed, akkor még furábban fog kinézni!

  • ViZion

    félisten

    válasz ekkold #23821 üzenetére

    NodeMCU flasher és más módokkal, sebességgel próbálni esetleg?
    Másik PC, hátha valami driver dolog csak?
    Javítani sztem nem érdemes, mire leforrasztod az annyiba kerül, mint egy modul. Szerettem a D1 miniket, de már csak ESP32 veszek, nagyon jók.

  • ekkold

    Topikgazda

    Sziasztok. Van itthon 5db wemos d1 mini (esp8266) modulom. Sajnos az 5-db közül, 4db-ot nem tudok programozni, olyasmi üzenetet küld, hogy nem sikerült a soros port beállítása. Mindegyiken CH340 az USB illesztő, és mindegyiknél meg is jelenik az eszközkezelőben a CH340 mint soros port.
    Nem tudom eldönteni, hogy vajon a CH340-el nem stimmel valami, vagy az ESP modulok hibásak, esetleg szoftveres hiba lehet? Találkozott már valaki ilyen hibával?

    Ha pl. biztosan a CH340-el lenne a gond, akkor esetleg leszedném a panelról, és a lábait kivezetve, talán lehetne usb-soros átalakítóra kötve programozni a modult. Bár amilyen olcsók ezek a modulok, lehet, hogy nem éri meg időt pazarolni rá, és egyszerűbb másikat venni...?




  • Undoroid

    őstag

    Sziasztok Szakik!

    Egy furcsaságba futottam bele és szeretném kijavítani! Tudom, hogy nem egy nagy pénz egy új ára, de már csak kíváncsiságból is szeretnék magyarázatot találni erre...

    Szóval kísérletezgettem egy ESP01S-es lapkával és végül egy teljesen más programot töltöttem fel rá és mivel nem működött rendesen, ránéztem a programozóval a soros porton keresztül! Az a lapka továbbra is a régi projektben szereplő szonda hiányát jelezte, miközben már egészen más feladatra van programozva! Mielőtt még jönne a kérdés: igen! Tudom, hogy programozáskor adni kell neki egy rövidzárat a megfelelő helyre, hogy át tudjon lépni programozási módba! Többször is próbáltam újraprogramozni, de nem volt változás! A legutóbb feltöltött kód valószínűleg felülírta benne a FW-t, ezért lehet ez a zűrzavar?

    Kérdés: hogyan lehet 'viszatenni' rá az eredeti FW-t? Remélem nem kérdeztem túl nagy marhaságot? :B

    A programozó szerintem biztosan működik, ha olvasni tudta a lapka kimeneti jeleit!

    * * *

    Postas99!

    Ügyes, jól néz ki! Szerintem arra azért figyelj, hogy a végleges hintázásnál a két véghelyzetnél kicsit lassuljon le a mozgás! Így nagyon "mű" hatása van a mozgásnak! Tudom, hogy ez csak egy próba, de inkább jeleztem! :B

    Kíváncsian várom a végeredményt, amin hang is van...valami jó, 'száraz' nyikorgás! :R

  • Postas99

    őstag

    válasz ekkold #23813 üzenetére

    Kerestem BluePill-t

    Elkészült a demo hintaszék. Ez még csak egy egyszerű pwm vezérelt bizbasz, nem ESP-s cucc hanggal együtt.
    Még nyáron vettem kemény 4000 Ft-ért jól le van harcolva de nekem pont ilyen kellett.
    Még le lesz fröcskölve valamilyen vérrel és uv fénnyel lesz megvilágítva, azt is kaptam fillérekért az aliról szerencsére.

  • Wolfram

    aktív tag

    válasz ViZion #23814 üzenetére

    Nem látom a projectet, de ha nagyon kényes a dolog (a setup-ban már "késő" beállítani), akkor még mindig bevethetsz egy analóg kapcsolót: [link]
    (esp start -> pin konfig -> eszköz indítása)

  • Postas99

    őstag

    válasz ViZion #23805 üzenetére

    Ennek a vételérzékenysége csapnivaló 2m távolságból Rssi -80 dBi!!

    WeAct vs Másik, érdemes a szitanyomatot is megnézni, feliratozások és pinek száma.

    Nekem ez az etalon.
    Ok néha elcsábulok és veszek akciós Esp32-S3-at a 2100Ft-os choice akcióban az ehhez a panelhez képest batárnagy.

  • Postas99

    őstag

    válasz ViZion #23805 üzenetére

    Szerintem már írtam WeAct Studio - mindegyik boardjuk saját tervezés.

    A bolt értékelése 4.9, de elég ha a termékeiket megnézed. Egyszerűen üditő ránézni.
    Az általuk készített boardok legtöbbje még GitHub-os linket is kap.
    Ha STM chipekben gondolkodsz, ők nem használnak fake chipeket és erre büszkék is, hogy minden eredeti STM chip, és felhívják a vevők figyelmét is, hogy ha máshol látnak másolt design-t akkor a vevők jelezzék nekik, mert erre is kényesek.

    Én már csak Esp32-D0WD-V3 -ot használok ezt szoktam venni, mert nem csak 4Mbit flash hanem 8Mbit flash-el is árulják. Abba már sok minden belefér. Progmemnek kiváló.
    TYPE-C CH340K és a vételi érzékenysége hitetlelen jó. Mellesleg a sárga tüskék jól mutatnak a panelen.

    Nyáron volt egy projektem, egy halom vas közé kellett beszerelni 40db ESP32-t távolság 60m mindegyik egy wifin lógott. WLED vezérlés volt a feladat. Azok amik máshonnan lettek beszerezve a fő műsor előtt néhány órával kidöltek. Gyenge vételérzékenység végett. Mindegyik fém lámpabúrába lett beszerelve. Azonnal cserélni kellett őket.

  • ViZion

    félisten

    válasz Postas99 #23804 üzenetére

    Hááát, nekem kínai ESP32 c3 és s3 van, érdekes jószágok...
    S3-nál ott a halom láb, majd mikor kötözgetném és nézem, h bootstrap, legyen boot alat low/high, ne használd erre vagy arra, ha van wifi, vagy használod az ADC-t, stb... mi a bánatos ehh... :U
    Szal. bolondbiztos pin alig van. c3 onewire, 3-4 pinre írta, h csökkentsem a pull-up értékét, mert így túl lassú... Kicsi probléma, h nem volt pull-up, internal se kapcsoltam be és nem is modul, hanem csak a szenzor volt. :D
    Szal. a minőség az hullámzó. Tenstar robot vagy ilyesmi az ali bolt, onnan szoktam venni. Ha van jobb helyed, akkor megoszthatnád. :R

  • Postas99

    őstag

    válasz jippa #23803 üzenetére

    Az nem lenne "megoldás", hogy egy példát megnyitsz és megnézed, hogy mit művel? Esetleg ha van spare device-od, megnézheted azzal is.

    Most szívtam azzal, hogy egy ESP32-nek mondott board rohadul nem akart kommunikálni i2c-n. Board kidob, másikra kód feltölt, jé működik. A két board töb másképp néz ki de ugyanazt a board-ot kell kiválasztani mindekettőhöz. Az egyik hestore cucc volt - ami nem működött a másik a kedvenc alis boltomból - ők saját maguk csináltak hozzá layout-ot, és nem drágább mint a többi bolt.

  • ViZion

    félisten

    ESP C3 Supermini boardon a vörös LED-et nem lehet kilőni?
    A kékre GPIO 8-at ír, a vörösre semmit nem találtam, majd egy helyen azt,h ez a power led... de nem igénylem... :(((
    S3-on barbár módon leforrasztottam. Ezek bolondok komolyan, ultra low power meg minden "ap***sza", de az onboard led-nek a kikapcsolására nem maradt pin? :O
    ...és a wifit is lekapcsolnám amúgy. ;]

  • Aryes

    nagyúr

    Nincs valakinek véletlenül Debrecen környékén egy felesleges ESP32-C3-SUPERMINI board-ja? Rámjött az építés és pont nem maradt egy se itthon. :))

  • Postas99

    őstag

    válasz Aryes #23755 üzenetére

    Most, hogy így kiderült mennyit bénáztam. További segítség kellene.

    2 db SG90s szervo
    1db esp32
    1 db QIACHIP RX480E 4 ch rádiós vevő
    1 db DFPlayer Pro - eredeti DFRobot cucc
    1 db 4 Ohm-os hangszóró lesz az összes fogyasztó.
    Van még egy DC-DC konverterem Fix 5V a kimenete 5A-t tud.
    Milyen occó akkut tegyek mellé amivel legalább 3-4 órán keresztül működőképes lesz?

    Elvileg nem gondolkodom automata működésben ezért lesz a rádiós vevő benne. Ha mozgatni akarom a szemeket akkor vagy kacsintok valamelyik szemmel vagy lecsukom valamelyik szemet vagy mindkettőt lecsukom vagy pislantok. A 4 csatornás vevőre ki lesz osztva, a bal szem - inp1 jobb szem - inp2 , mindkét szem- inp3, kacsintás vagy pislantás-inp4 (Toggle mod csak inp 4 esetén) . A hang vagy pislantás előtt vagy utána fog megszólalni. Nem randomozok a hangoknál mert sok lehet az ismétlés ugyanabból a hangmintából kb 10 hangmintám lesz. A nagy fogyasztó a hangszóró és azért a szervók is. De mivel 1mp alatt bőven elvégzik a feladatot reményeim szerint nem ez lesz a legnagyobb fogyasztó.

  • Postas99

    őstag

    válasz Aryes #23750 üzenetére

    1, Tegnap kib@sztam a hóra az eddigi szervó motorokat majd tettem bele máshonnan számazó 180 fokos Mg90s típusokat.
    2, Minden szervo libet töröltem a fenébe. Frissítettem a legújabbra az ESP32Servo-t,
    3, Megtápláltam Fix 5V-al a szervokat.
    4, Beízzitottam egy másik kódot, és láss csodát nem driftel. Minden tökéletesen megy...
    :W :W :W :W :W :W :W

    Köszönöm a SEGÍTSÉGET!!

    Ez azért mégis könnyebbség.

  • Postas99

    őstag

    válasz Aryes #23750 üzenetére

    A legtöbb szervo 360-as amin van a maradék 180-as. Itt a kód:

    #include <Arduino.h>
    #include "driver/gpio.h"
    #include "esp_timer.h"

    // ---- SZERVÓ
    static const int SERVO_L_PIN = 18; // bal
    static const int SERVO_R_PIN = 19; // jobb

    // ---- TRIGGER
    static const int TRIG_L = 32; // 1x bal: előre->stop->vissza->stop
    static const int TRIG_R = 33; // 1x jobb: hátra->stop->előre->stop
    static const int TRIG_BOTH = 25; // 1x mindkettő (bal előre, jobb hátra) - belső PULLUP!


    static const uint32_t FRAME_US = 20000; // 20 ms, 50 Hz

    // ---- BAL/JOBB PULSE (µs) + állapot ----
    volatile uint32_t pulse_us_L = 1500; // 1000..2000
    volatile uint32_t pulse_us_R = 1500;
    volatile bool highPhase_L = false;
    volatile bool highPhase_R = false;
    portMUX_TYPE muxServo = portMUX_INITIALIZER_UNLOCKED;

    // ---- TIMER HANDLE-K ----
    esp_timer_handle_t tmrL;
    esp_timer_handle_t tmrR;


    inline void setLeftPulseUs(uint32_t us) {
    if (us < 1000) us = 1000; if (us > 2000) us = 2000;
    portENTER_CRITICAL(&muxServo); pulse_us_L = us; portEXIT_CRITICAL(&muxServo);
    }
    inline void setRightPulseUs(uint32_t us) {
    if (us < 1000) us = 1000; if (us > 2000) us = 2000;
    portENTER_CRITICAL(&muxServo); pulse_us_R = us; portEXIT_CRITICAL(&muxServo);
    }

    // ---- PWM
    void IRAM_ATTR cbLeft(void*) {
    uint32_t p; portENTER_CRITICAL_ISR(&muxServo); p = pulse_us_L; portEXIT_CRITICAL_ISR(&muxServo);
    if (!highPhase_L) { gpio_set_level((gpio_num_t)SERVO_L_PIN, 1); highPhase_L = true; esp_timer_start_once(tmrL, p); }
    else { gpio_set_level((gpio_num_t)SERVO_L_PIN, 0); highPhase_L = false; esp_timer_start_once(tmrL, (p<FRAME_US)?(FRAME_US-p):1000); }
    }
    void IRAM_ATTR cbRight(void*) {
    uint32_t p; portENTER_CRITICAL_ISR(&muxServo); p = pulse_us_R; portEXIT_CRITICAL_ISR(&muxServo);
    if (!highPhase_R) { gpio_set_level((gpio_num_t)SERVO_R_PIN, 1); highPhase_R = true; esp_timer_start_once(tmrR, p); }
    else { gpio_set_level((gpio_num_t)SERVO_R_PIN, 0); highPhase_R = false; esp_timer_start_once(tmrR, (p<FRAME_US)?(FRAME_US-p):1000); }
    }

    // ---------- MOZGÁS
    const int NEUTRAL_L = 1500, NEUTRAL_R = 1500;
    const int L_FWD_US = 1600, L_BACK_US = 1400;
    const int R_FWD_US = 1600, R_BACK_US = 1400;

    const unsigned long L_FWD_MS = 190;
    const unsigned long L_BACK_MS = 186;
    const unsigned long R_FWD_MS = 205;
    const unsigned long R_BACK_MS = 181;
    const unsigned long STOP1_MS = 1000;
    const unsigned long STOP2_MS = 1000;


    enum SPhase { S_IDLE, S_FWD, S_STOP1, S_BACK, S_STOP2 };
    SPhase L_phase = S_IDLE, R_phase = S_IDLE;
    unsigned long L_nextUs = 0, R_nextUs = 0;

    // Indítások (csak ha IDLE)
    void startLeftCycle() {
    if (L_phase != S_IDLE) return;
    setLeftPulseUs(L_FWD_US);
    L_phase = S_FWD;
    L_nextUs = micros() + L_FWD_MS * 1000UL;
    }
    void startRightCycle_BackThenFwd() {
    if (R_phase != S_IDLE) return;
    setRightPulseUs(R_BACK_US);
    R_phase = S_BACK;
    R_nextUs = micros() + R_BACK_MS * 1000UL;
    }
    void startBothCycleMirrored() {
    if (L_phase != S_IDLE || R_phase != S_IDLE) return; // egyszerre csak ha mindkettő szabad
    unsigned long now = micros();
    setLeftPulseUs(L_FWD_US); L_phase = S_FWD; L_nextUs = now + L_FWD_MS * 1000UL;
    setRightPulseUs(R_BACK_US); R_phase = S_BACK; R_nextUs = now + R_BACK_MS * 1000UL;
    }


    inline void serviceLeft() {
    if (L_phase == S_IDLE) return;
    unsigned long now = micros();
    if ((long)(now - L_nextUs) < 0) return;

    switch (L_phase) {
    case S_FWD: setLeftPulseUs(NEUTRAL_L); L_phase = S_STOP1; L_nextUs = now + STOP1_MS * 1000UL; break;
    case S_STOP1: setLeftPulseUs(L_BACK_US); L_phase = S_BACK; L_nextUs = now + L_BACK_MS * 1000UL; break;
    case S_BACK: setLeftPulseUs(NEUTRAL_L); L_phase = S_STOP2; L_nextUs = now + STOP2_MS * 1000UL; break;
    case S_STOP2: setLeftPulseUs(NEUTRAL_L); L_phase = S_IDLE; break;
    default: break;
    }
    }
    inline void serviceRight() {
    if (R_phase == S_IDLE) return;
    unsigned long now = micros();
    if ((long)(now - R_nextUs) < 0) return;

    switch (R_phase) {
    case S_BACK: setRightPulseUs(NEUTRAL_R); R_phase = S_STOP1; R_nextUs = now + STOP1_MS * 1000UL; break;
    case S_STOP1: setRightPulseUs(R_FWD_US); R_phase = S_FWD; R_nextUs = now + R_FWD_MS * 1000UL; break;
    case S_FWD: setRightPulseUs(NEUTRAL_R); R_phase = S_STOP2; R_nextUs = now + STOP2_MS * 1000UL; break;
    case S_STOP2: setRightPulseUs(NEUTRAL_R); R_phase = S_IDLE; break;
    default: break;
    }
    }

    // ---- GOMBOLVASÁS
    const unsigned long DEBOUNCE_MS = 30;
    int prevL = HIGH, prevR = HIGH, prevB = HIGH;
    unsigned long lastEdgeL = 0, lastEdgeR = 0, lastEdgeB = 0;

    void setup() {
    // Szervó kimenetek
    gpio_set_direction((gpio_num_t)SERVO_L_PIN, GPIO_MODE_OUTPUT);
    gpio_set_direction((gpio_num_t)SERVO_R_PIN, GPIO_MODE_OUTPUT);
    gpio_set_level((gpio_num_t)SERVO_L_PIN, 0);
    gpio_set_level((gpio_num_t)SERVO_R_PIN, 0);

    // Két független esp_timer
    esp_timer_create_args_t aL = {}; aL.callback = &cbLeft; aL.name = "servoL";
    esp_timer_create_args_t aR = {}; aR.callback = &cbRight; aR.name = "servoR";
    ESP_ERROR_CHECK(esp_timer_create(&aL, &tmrL));
    ESP_ERROR_CHECK(esp_timer_create(&aR, &tmrR));
    ESP_ERROR_CHECK(esp_timer_start_once(tmrL, 100));
    ESP_ERROR_CHECK(esp_timer_start_once(tmrR, 100));

    // Kezdő állás (IDLE, tartó jel 1500 µs)
    setLeftPulseUs(NEUTRAL_L);
    setRightPulseUs(NEUTRAL_R);


    pinMode(TRIG_L, INPUT_PULLUP);
    pinMode(TRIG_R, INPUT_PULLUP);
    pinMode(TRIG_BOTH, INPUT_PULLUP); // 25-ön VAN belső PULLUP

    prevL = digitalRead(TRIG_L);
    prevR = digitalRead(TRIG_R);
    prevB = digitalRead(TRIG_BOTH);
    }

    void loop() {
    unsigned long nowMs = millis();

    // 32: bal
    int rl = digitalRead(TRIG_L);
    if (rl != prevL) { prevL = rl; lastEdgeL = nowMs; }
    if (rl == LOW && (nowMs - lastEdgeL) > DEBOUNCE_MS) {
    startLeftCycle();
    lastEdgeL = nowMs + 300; // primitív ismétlésgátló
    }

    // 33: jobb
    int rr = digitalRead(TRIG_R);
    if (rr != prevR) { prevR = rr; lastEdgeR = nowMs; }
    if (rr == LOW && (nowMs - lastEdgeR) > DEBOUNCE_MS) {
    startRightCycle_BackThenFwd();
    lastEdgeR = nowMs + 300;
    }

    // 25: egyszerre mindkettő
    int rb = digitalRead(TRIG_BOTH);
    if (rb != prevB) { prevB = rb; lastEdgeB = nowMs; }
    if (rb == LOW && (nowMs - lastEdgeB) > DEBOUNCE_MS) {
    startBothCycleMirrored();
    lastEdgeB = nowMs + 300;
    }


    serviceLeft();
    serviceRight();

    delay(1); // kis yield
    }[/M][/M]

  • Ton-ton

    tag

    válasz Postas99 #23722 üzenetére

    Este megnéztem, esp wroom32 amire írtam régebben.
    Illetve, azt rosszul írtam, hogy hardveres időzítőt kell használni. (ahogy már valaki írta is).
    De még arduno mikrovezérlőn is van két hardveres időzítő...
    A szoftveres megoldások okozhatnak gondot. Amikor a proci foglalt, akkor egyszerűen nincs idő a megfelelő időzítésre, így "elmászik" a servo. (Bár elméletben vissza kellene állnia amikor ismét megfelelő vezérlést kap).
    Persze ha két processzormag van, akkor az egyikre rá lehet bízni csak a szervók vezérlését, de ahogy elnéztem az sem túl egyszerű arduino-s szoftverkörnyezetben... (tudom, nem csak ez létezik, és nem is a legjobb esp-hez)

    Holnap megnézem.

  • Janos250

    őstag

    válasz Postas99 #23722 üzenetére

    Sajnos az ESP32-k esetében is belefutottunk a libraryk problémájába.
    A libraryk természetszerűleg a kontroller regisztereit írják, olvassák.
    Viszont sajnos az ESP32 esetén is bekövetkezett, hogy ezek változnak. Például egy C3 periféria vezérlő regiszterei másként működnek, mint a klasszikus ESP32 esetén.
    Én ebbe akkor futottam bele először, amikor egy ESP32-re megírt hardveres SHA-t tartalmazó program nem ment más ESP32-n. Vissza is álltam a szoftveres SHA-ra.
    Sajnos előjön a libraryk különbözősége miatti probléma az ESP32-k esetén is.
    Ugyanezt tapasztaltam az RMT esetén is.
    Az ESP32 RMT-je nagyon jó, nagyon kényelmesen lehet vele hardveres, fix értéket valóban tartó, nagy felbontású PWM-et csinálni, több csatornán.
    Sajnos az újabbakon ezt felborították.

  • Postas99

    őstag

    válasz Ton-ton #23721 üzenetére

    Szia!
    Köszönöm ha foglalkozol vele.
    A gyakorlat nálam az, hogy ESP32-D0WD3 (ESP32 Developer board) de van itthon C3, S3, és még vagy 3 fajta ESP32 modulom, mindegyiken több azonos kódot kirpóbálva a fentebb írt jelenség fordult elő nálam, ami lehet pusztán a nem megfelelő library használata is.
    Mindenesetre már itt van az asztalomon a 28BYJ-48 meg a vezérlő board hozzá. Holnap kapom kezembe a nyomtatott tartót amit be tudok tenni a baba fejébe.
    Majd arról is csinálok videót.
    Most elsősorban kellene egy nagyobb méretű akksi amit belegyömöszölök a baba testébe, vagy marad a 12V-os táp és hozzá egy fix DC-DC konverter.
    2 db léptető motorral van az új tervezve - régi 2 darab szervó
    1 db MP3 hangmodul babánként - hangszóró.
    Ez is megér egy misét, mert a kiskínai legalább 7 különböző vezérlővel gyártotta már a DFPlayer mini klónt is a legtöbbnél nem kell CHKSum mert behal a lejátszás. 2 modulom vna itthon ebből és az egyik egy kukkot nem szól a másik random lehal bizonyos időközönként, ezért rendeltem az új fejlesztésű jobbminőségű kínai modellből amin van 8MByte flash és 20W-os erősítő, és rendeltem eredeti DFPlayer Pro-t is amin van 128MByte flash, majd elválik melyiket hova fogom felhasználni.

    Szóval ezek így energia vámpírok. Tehát kell valami jófajta táplálás is részére.

    Az idei 2 új projekt halloweenre amúgy is eltér a többitől.

    1, hintaszék vezérlés távolságtól függően random szövegek és egyre gyorsabb mozgatás, ebben ül majd egy mackó aki füstölögni fog.. Vape cucc hozzávaló kismotorral ami nyomja a füstöt majd.

    2, 2 db Creepy baba mozgó szemekkel és énekléssel gyerek hanggal.
    A baba már 2 éve a fejemben van, csak nem volt aki legyártsa részemre a megfelelő mechanikát.

    3, Még lenne egy koponya ami beszél mozgó állkapoccsal. Ez nem túl eredeti csak megfogott az ötlet.

    A sokdaik öltlet a rángatózó hullazsákos hullák, amihez a solenoidos megoldás a legjobb.

    Közben megjött az új beteg ötlet a fejemben, műhó fújó előállító gép.. ez most 16e HUF aliról rendelve... de nem sima fehér havat akarok előállítani hanem pirosat. Ehhez reményeim szerint elegendő piros ételfestéket keverni az anyagba. Csak ötlet de nem ismerek olyat aki ellenőrizné nekem a feltevést hogy lehet piros "havat" előállítani vele.

    Az eddig elkészült cuccok is teljesen mások voltak mint az átlag joe félék

  • Ton-ton

    tag

    válasz Postas99 #23709 üzenetére

    Ha jól emlékszem a típusra, akkor az esp32 s3-ba két hardveres pwm csatorna is van. Tehát mondjuk arduinoból beállítod a frekvenciát és a kitöltést, és azt tartja, nem kell vele foglalkozni.
    Ha gondolod hétvégén meg tudom nézni ezt a pontosságot, bár nekem csak műanyag fogaskerekes sg90-em van itthon.

    Egyébként rosszul írtad. A léptetőmotor ha lépést téveszt (megszorult, vagy túl gyors vezérlés), akkor ezt a hibát viszi tovább. Tehát ha plusz irányba "elment" két lépéssel, akkor minden további pozícióba álláskor két lépéssel odébb lesz.
    A szervok viszont valamiféle visszacsatolást használnak, így ha megszorul, akkor is a következő pozíció pontos lesz. Cserébe drágábbak, és macerásabb a vezérlésük.
    Mindez persze csak az elmélet.

  • Postas99

    őstag

    válasz Wolfram #23692 üzenetére

    Ha arra gondolsz, hogy ESP32 ->TTS - azt a google is tudja. Megkeresem a kódot amivel játszottam. Ez előre betáplált szövegeket szólaltat meg magyarul.

    Ha az érdekel, hogy hogyan klónoztam (Bordogi Gyula hangját hogy általam írt szöveget olvasson fel, akkor nézd meg EZT a videót. IME a végeredmény) Pintyo javasolta a mesterséges intelligencia topikban. A videó szájbarágós, én a pinokio féle megoldásnál maradtam, a telepítés egyszerű és ugyanúgy a program és a kiegészítők hozzá pakolása és a program használata is. Arra figyelni kell, hogy a komponensek bizony frissülnek és azokat is frissíteni kell alatta mert nem lesz a végeredményből generált hang. Ez a magyar kiegészítőre vonatkozik. Ha elakadsz vagyo ott a topikban jelezed vagy a videok alatti hozzászólásokban vannak frissített infók, vagy megnézem, hogy nálam mi lett feltéve a magyar hanghoz.

  • ViZion

    félisten

    válasz ekkold #23688 üzenetére

    igen? :U
    Nézegettem még az elején, de a Home Assistant miatt az ESPHome és a Yaml lett a többsége, így nem is ástam bele magam. Kényelmes, h nem nekem kell az alap dolgokat összelegózni, hanem a program alapján behúzza magának, kész.
    Ilyen bonyolultságú vezérlőt még nem építettem, a fűtésvezérlő (ezt is részben HA koordinálja) rules kb. 2000 karakter, ez meg majdnem 8000... a hardver is telebiggyesztve biztonsági dolgokkal.
    Háát, ha azt mondod, hogy a Basic, Pascal, Python, Yaml, HTML/CSS, ESPEasy után menni fog az arduino... igazad lehet. :R

  • ViZion

    félisten

    ehh, tudtok tippet adni, h honnan szerezzek egy kis segítséget? :B
    Chatgpt elvérzett...
    espeasy, pittyegések kellenek passzív buzzerral...
    hiba vagy esemény jelzésre, ilyesmik:
    tone,40,1300,200
    tone,GPIO,Hz,milis a formátum. Több hang is időzíthető timerrel, de a f.kivan, h csak próbálgatom és semmi nem az igazi... :(((
    :R

  • Wolfram

    aktív tag

    válasz daninet #23606 üzenetére

    Egy ESP32-S3 N16R8 + OV5640 5MP kamera inkább 13 usd mint 3. 🤠
    Megpróbálkozhatsz egy külső USB kamera rákötésével. Itt van hozzá UVC driver: [link]

  • JulianSinulf

    őstag

    válasz daninet #23606 üzenetére

    A Prusa 3Dbuddy kamerája 10-15 másodpercenként küldi a képet.
    Valami ilyesmit esetleg beleprogramozhatsz.
    A másik megoldás, hogy csak akkor kapcsolod be a stream-et, amikor nézni akaraod.

    Nekem a másik fajta ESP-Cam modulom van, amin van SD kártya foglalat és még régi mini(micro?) USB csati van rajta. Megtáplálni szigorúan erős forrásról kell, mert a gép 500mA-e nem sokáig viszi el. Ezen is melegszik a kamera rendesen, bár azért fogdosható.
    Jobb képet ad, mint a pusa kamerája, úgyhogy gondolkodom ennek a felszerelésén, illetve van ebből kettő, ami a 350-es ágyat jobban átláthatóvá tenné. De egyelőre nem sürget a dolog. Jó a nyomtató, nem nagyon kell félnem, hogy feljönne a tárgy az asztalról.

    A lényeg, amit ki akartam hozni, hogy az ESP-n lévő szoftver létrehoz egy weboldalt, amire IP cím alapján rácsatlakozhatok böngészőből. Itt indíthatom, leállíthatom a stream-et, így a kamera kímélve van, amikor nem használom. Vannak egyéb beállítási lehetőségek is, mint fényerő, felbontás, stb.
    Már kísérleteztem azzal is, hogy a vezérlő elemek nélkül, csak a képet beépítem egy egyszerű html-be. Ez is megoldható, így 1 oldalra akár több kamera képe is kirakható. Mondjuk ilyenkor egy stop stream parancsos gomb lehet, hogy nem árt.
    De arra is van lehetőség, hogy a képet a vezérlőgombokkal együtt betegye az oldalra. Ebbe már nem mentem bele.
    Az ESP-n futó kód valami alap cucc a netről vagy az arduino-ból, miután hozzáadtam a library-t. De az is lehet, hogy eleve az ESP-n volt. Már egy ideje megvan, nem emlékszem pontosan.
    A html kódos részhez segítségül hívtam a chatgpt-t, de a pontos parancsért az ESP-n futó weboldal forrását is nézegetnem kellett, hogy tényleg működjön.

  • daninet

    veterán

    válasz coco2 #23605 üzenetére

    Igen, de egy ilyen dev board-on tiszta szívás ezt kivitelezni. Az egyik gond ha 1.8V feszültséggel táplálom meg ahogyan a fenti manual írja, a kamera nem tud adatot előállítani az ESP-nek mert 2.4V alatt már LOW a jel. Oda akkor kell level shifter minden egyes trace-re.
    Szóval majdnemhogy egy saját devboardot építeni egyszerűbb.

    De valszeg rakok rá egy nagy darab alut és 1 fps-el videózok aztán megy amíg el nem halálozik :U Kb 3 dollár volt nem nagy veszteség. 3D nyomtatóhoz kell, hogy lássam spagetti van vagy működik.

  • daninet

    veterán

    válasz daninet #23603 üzenetére

    mire leírtam megtaláltam. Lényegében arról van szó, hogy babi néni átbacott a kakassal :D
    Az OV5640-ben egy olyan fesz stabilizátor van ami 1.8V-ot vár. Mivel 3.3V-ot kap az ESP-től elfűti a maradékot és 80 fokig melegszik.
    Vagy meg kell oldani a külső 2.8V betáplálást (fogalmam sincs egy ilyen integrált lapon ez hogy működik), vagy csak fotókat szabad vele csinálni, streamelni nem szabad. :U

  • daninet

    veterán

    Sziasztok!
    Van egy ilyenem: ESP32-S3 kamerás lap és OV5640 kamera modul.

    A kamera tűzforróra melegszik miközben képet ad. Nem mértem, de nagyon meleg, nem lehet megfogni. Valami nem oké. De ugye itt drótozás elb@cni nem nagyon lehet. Képet is ad, szóval a konfig jó.
    Elvileg 1.8V és 12.8V közötti fesz tartományt támogat.
    Nem tudom a hő honnan jön. Lehet, hogy hibás?

  • dew28

    aktív tag

    válasz coco2 #23574 üzenetére

    Ha ugyis van "bumpszli pisztoly pakad", es mar nem kell a led kesobbiek folyaman sem, akkor melegitsd le teliben a "feher morzsat", kvazi egesd szet.

    De ha mar irtam, egy kerdes a tobbiek fele:
    Adott egy ESP12F lap, aminek a GPIO5 pinjere van kotve a lentebbi R11 ellenallas kotve, amin keresztul meghuzza a relet. Ezen kivul egy SPI buszon levo ETHernet shield van meg rakotve, ha a relet meghuzom minden ok, amikor elenged, akkor viszont meghal az Ethernet. SPI resettel megjavul, de az egyeb problemakat hoz magaval, szoval elkerulnem.

    a relen NC -re van kotve 4db finder miniatur rele, ennyi a terhelese osszen.
    van valakinek otlete a stabil mukodesre?

  • Postas99

    őstag

    válasz Aryes #23560 üzenetére

    Köszönöm mindannyiotoknak!

    ViZion: Már be is dobtam a kosárba a kicsikét.
    Aryes: Ezt is meglesem. Minden jöhet.

    Ti már próbáltátok az ESP NOW funkciót?

  • rednifegnar

    senior tag

    válasz Postas99 #23558 üzenetére

    igen a db9 panelon van ugye tx es rx tuske. az esp32-bol jovo tx-et mindegy melyikre kotom, megjelenik a db9-en a jel es mukodik.

    raadasul a jelszint is jo, nem ttl hanem az rs232-nek megfelelo 10-en egyket volt.

    sok abrat atneztem mar, abban is van keveredes, hogy az esp tx-et a max3232 tx-ere kotik vagy az rx-re. ez is olyan hogy honnan nezem. az esp-nek tx a transmit kimeno, a max panel szempontjabol ez lehetne az rx hiszen o meg veszi amit az esp kuld,

  • Postas99

    őstag

    válasz rednifegnar #23557 üzenetére

    Szia! Átfogalmaznád, mert nem értem.
    Tehát működik, de a gond az hogy a DB9-es panel lévő tüskesor RX,TX lábát mindegy hogy kötöd be, a DB9-es csatin megjelenik a jel és a PC-n is bejön a kommunikáció? Esetleg valamit rosszul értelmezek?

    Lenne nekem is mindenkifelé kérdésem:
    Hol kapok olyan ESP32-es board-ot amin RMA csati van és tudok rá tenni egy külső antennát, vagy van is hozzá?
    Olvasgattam, hogy nrf24l01 modulból a powermodul kellene az 100 méterig nem hibázik.

    A cél az lenne, hogy max 50 méter távolságra küldjek ESP.NOW-val jeleket mondjuk egy RGB körgyűrű rainbowwheel meghajtáshoz.
    A jelenlegi konfig kb 15-17 méterig jó hiba nélkül - nem open air környezetben- , az adó és a vevő is ACK nélkül megy és egyik ESP board-on sincs jelenleg külső antenna.
    Adafruit NeoPixel - az include fájl
    Ami adat kimegy: LED száma és az R,G,B érték.
    Mivel annyira kényelmes ez az ESP.NOW mondjuk nem szívesen váltanék róla, de ha másképp nem megy akkor lesz helyette valami más.
    Vevő oldalon a bejövő adatoknak megfelelően csak meghajtom a WS2812-t.

  • rednifegnar

    senior tag

    hi,
    max3232-ben van itt valaki otthon? esp32 c3 super minivel kuldok es pc-n olvasom ki az adatokat.
    amugy kb ilyen ami itt latszik:
    https://esp32io.com/tutorials/esp32-rs232

    az a bajom hogy mukodik, sot tul jol.
    ezen a kis db9-es panelon mindegy hogy melyik labon kuldom be a jelet (tx vagy rx lab) megis jol jon ki a db9-es csatin.
    osszesen 3 kanocot kotottem be: vcc, gnd es tx az esp-bol.

    nem teljesen ertem, hogy ez miert mukodik igy, olvasgattam az adatlapokat meg bekoteseket de nem jottem ra :F

  • Janos250

    őstag

    Nem értem, miért csak a
    Use cout 1! -et
    írja ki, a
    Use cout 2!-t
    meg nem ESP32-n?
    Nem az a kérdés, hogy hogyan kerüljem meg, hanem szeretném megfejteni a titkot, hogy ott miért nem használható cout, ha korábban igen?

    using namespace std;
    #include <iostream>
    #include <fstream>  //  ofstream
    // ESP32
    void setup() {
      Serial.begin(115200);  // set baudrate

      Serial.printf("\nUse Serial.printf\n");

      cout << "\nUse cout 1! \n" ;

      FILE* filePointer ;
      filePointer = fopen ("/dev/console","w"); 
      fprintf (filePointer, "\nfprintf /dev/console Hello ESP32!\n") ;
      fclose(filePointer);

      filePointer = fopen ("/dev/uart/0","w"); 
      fprintf (filePointer, "fprintf /dev/uart/0 Hello ESP32!\n") ;
      fclose(filePointer);

      cout << "\nUse cout 2! \n" ;

      std::ofstream myfile;
      
      myfile.open ("/dev/console");
      myfile << "\nWriting this to a file /dev/console.\n";
      myfile.close();

      myfile.open ("/dev/uart/0");
      myfile << "Writing this to a file /dev/uart/0\n\n";
      myfile.close();

    } ; // end setup

    void loop() {

      delay(1000);

    } ; //end loop

  • its_grandpa

    tag

    válasz Undoroid #23538 üzenetére

    ESP01-el szerintem csak így [link] , az INA219 ~ 1.000.-
    Lehet egy ESP8266-al - aminek már van ADC bemenete -jobban járnál.

  • Undoroid

    őstag

    válasz Aryes #23537 üzenetére

    Nekem anno amikor találkoztam vele, szénlemezes biztosítékok egyik anyaga volt ez! A csillámlemezzel elválasztott (csak távtartónak volt használva) két szénlemezben volt egy-egy wood-fém pogácsa, amit ha nagyobb feszültséglökés ért, akkor ív keletkezett és ennek a hőhatása megolvasztotta a fémet, ami rövidre zárta a két pólust és így védte meg a további túlfeszültségtől.
    Ennek volt egy másik változata is: ott a biztosítékot megfeszítve tartotta egy erős rugó és a biztosítékon túl nagy áram folyása közben hő alakult ki, ami megolvasztotta a reteszként szolgáló fémet és a rugó összenyomta a biztosítékot (mechanikusan lerövidült) és így működésbe tudott lépni a riasztásra szolgáló áramkör és egyben le is kapcsolta a betápot! Egyik megoldás sem volt autómatikusan visszaálló! Ott bizony kézzel ki kellett keresni a meghibásodott biztosítékokat!

    " Érdekes lehet akkor ezzel összeforrasztani valami vezetéket mondjuk egy autó motorterében " A videót nem láttam, amit említettél! :N Magát ezt a Wood-fémes keveréket / ötvözetet vegyileg lehet szennyezni, amivel eltolódik az olvadási hő (is)! Nem kell feltétlenül használni a legalacsonyabb olvadási pontot! ...már megint hosszan offolok, de már vége is!

    Viszont egy kérdésem is lenne a többiekhez, ha már itt vagyok: ESP01

    Megoldható ennek használatával a tápfeszültség mérése is a szokásos ellenállásos - feszültségosztó használatával és a kód megfelelő módosításával kiíratni a többi adat alá? Elvileg erre a célra analóg bemenetre van szükség (ennél nem látok olyat), de hátha van valami más, egyszerű megoldás is másik alkatrész beépítése nélkül!

    (Szerk.)

  • norbert1998

    nagyúr

    Halihó.
    Tegnap próbálkoztam a korábbi projektem bővítésén egy másik vezérlővel, egy ESP32C3 SuperMini-vel. Az SDA/SCL-es elven működő cuccok hibátlanul mennek rajta - egyelőre csak egyesével néztem őket, viszont a UART-ot nem bírom működésre. Amire jutottam, hogy nem megy úgy, ha a PC-vel fennáll a Serial Monitor kapcsolat meg az USB CDC izé, ezt írja a leírása is.

    Elvileg működhetne SoftwareSerial-lal is, de azt még nem sikerült próbálni igazából. Van rá esély? Egy NEOM6V2 GPS-t szeretnék rákötni...

  • Undoroid

    őstag

    válasz its_grandpa #23518 üzenetére

    Köszönöm, hogy foglalkoztál a kérdésemmel! :R

    " Ez a programozó nem szerencsés választás és nincs kép a hátáról sem. " A tudatlanságom tükrözi a választásomat! Akkor, amikor ezt megvettem, akkor ezt ajánlotta hozzá a rendszer, így megvettem. Képek róla: 1, 2

    Viszont megtúrtam a cuccaimat és találtam egy ilyet is: 1, 2 Szerintem ez már egy szinttel jobb lehet, de ezzel sem lehet módosítások nélkül megoldani az ESP01-es feladatot! A másik példányt jól megkendácsolom és menni fog a dolog! :K

    " Az akkus/elemes tápláláshoz meg deepsleep kell,ami az ESP01-nél egy nem egyszerű forrasztás. [link] + némi kód módosítás. " Igen, ezzel tisztában vagyok, de jelen esetben nem tervezem a DeepSleep használatát, mert a két mérés közötti időben nem lesz elérhető a mérési eredmény, ezért a tápellátás egy 18650-ről (és kiegészítőivel + napelemmel) lesz megoldva, ami regenerálni fogja az akkut! Kicsit rafinált lesz így, de szerintem működőképes!

  • its_grandpa

    tag

    válasz Undoroid #23517 üzenetére

    >>Pontosan hogyan lehet azt az ESP01-et programozni?
    Pontosabban a lefordított binárist feltölteni, mert programozni több nyelven és IDE-vel lehet.
    Az ESP01 GPIO0 lábát kell a GND-re kötni boot előtt.
    Ez a programozó nem szerencsés választás és nincs kép a hátáról sem.
    Ezen a típuson egy anya-anya Dupont kábellel rövidre lehet zárni a lábakat mielőtt
    az usb-be dugod a programozót (én rövid usb kábelt is használok).
    Ezt kell megoldanod valahogy.
    Az akkus/elemes tápláláshoz meg deepsleep kell,ami az ESP01-nél egy nem egyszerű forrasztás. [link] + némi kód módosítás.

  • Undoroid

    őstag

    Sziasztok Szakik!

    Két kérdéssel készültem ma estére:

    Első - Az ESP01-el szeretném EZT a programot / alkalmazási példát használni! Ahogyan ott a példa is mutatja, simán - ugyanazzal a működtető programmal használható lenne azzal is (természetesen a megfelelő bemenet átírásával?) ITT láttam egy eléggé kezdetleges összehasonlítást, amiben azt mutatja (?) hogy csak kis különbségek vannak a modulokban! Nekem erre a célra pont elég lenne az ESP01 és még kevesebb energiával is megelégedne (akkuról menne) és még a LED-et is leforrasztanám róla az energiamegtakarítás miatt!

    Második - Emiatt nem tudtam magam is kipróbálni az elsőt: Pontosan hogyan lehet azt az ESP01-et programozni? :B Azt tudom, hogy kell egy gombóc és át kell kötni valamit...maga a programozó eszköz megvan, de azon nincs semmi gomb...csak egy USB illesztő az egész! Ott láttam valamit erről (véleményezésként) , de inkább kérdezek előbb, mielőtt elrontanám!

    A sebezhetőség témában...az egy dolog, hogy a projekteink nagy része igényli a hely Wi-Fi jelszavát - és nevét (ahogy ez a hőmérő is) de számtalan más is betekintést ad a külföldi gyártóknak! Legutóbb a robotporszívókról olvastam egy cikket, ahol "véletlenül" kiderült az, hogy a lakásban navigálásra használatos pici kamerájának felvételeivel és a belső mikrofonjával (!!!) kinyert adatokkal buktak meg! ...és azt sem hiszem el, hogy például a biztonsági kamerák beltéri egysége nem képes máshová is felvételeket küldeni, ha hálózati kapcsolata van! Akkor se, ha telepítéskor már letiltottad azt a lehetőséget...és mára már miben nincs olyan mikrovezérlő, amivel meg lehetne ezt a megfigyelést csinálni? Láttunk itt már hűtőpultot, elektromos fűtőtestet, okosTV-t, sűrített levegős (pneumatikus) nyomásszabályozót, stb...amik a lokációs információn kívül más adatokkal is szolgálhatnak a gyártójuk felé a 'szolgáltatás javítása érdekében' -hivatalos fedődumával takarózva...vagy ott van a nagy klasszikus: a szép, új notebook a leragasztott fedélzeti kamerával és mikrofonnal! :D Annyi minden van (?) még, hogy inkább be is fejezem az offolást!

  • ViZion

    félisten

    válasz ekkold #23509 üzenetére

    Ismerem ezeket a sztorikat, WhatsUp is ilyen történet (nem térül meg, de mégis milyen sikersztori, h megvették, eredeti fejlesztőknek kb. eladás volt opció, vagy a fekete autó jön értük...). A routerben backdoor dolog sem kamu, a Tenda-ban a konfigot ha módosítottad, akkor "hibás" lett, nem töltötte fel. Érdekes, h adott volt a módosítás lehetősége, de mégsem. Kínai szervereken nézte az időt is, meg volt egy halom ismeretlen oldal, amikhez csatlakozott. De az egy router, van tárhely, kraft, a hálózaton forgalmazás még csak nem is gyanús, hiszen ez a dolga...
    Xiaomi, Lenovo dettó... még a windowsnál is rosszabbak, folyamatosan az anyahajót keresik. A TV okosító dobozokon is volt olyan fájl/mappa, amiről senki nem tudta, h mit csinál, valószínűleg csak ez szerezte be a tényleges kártevőt, vagy akármit.

    A cikkből a konkrétabb dolgokat hiányolom, mert az ESP-ben alap esetben szűkösen van erre potenciál. Sok ESP bigyuszkám van, eddig furát nem produkáltak a hálózaton.
    Nem mondom, h nincs bennük ilyesmi "tuning", de ennyi infó arra se elég, h merre keresgéljünk.

    Nem bízok semmiben, talán az opnsense-ben és az AGH-ban kicsit, meg a 300k host tiltólistában.

  • ekkold

    Topikgazda

    válasz ViZion #23507 üzenetére

    Nem tartom lehetetlennek, hogy a ESP-n keresztül meghekkeljenek valakit. Egyrészt a wifi csatlakozáshoz el tudok képzelni "univerzális kulcsot ill. jelszót" amivel mindenképpen rá lehet csatlakozni. A benne megvalósított TCP protokoll (amit csak használni kell) is tartalmazhat extrákat (gépi kódban akár néhány bájton is!), és pl. gyűjthet kisebb adatokat, pl. egy-egy kódolatlanul küldött jelszó a LAN-on...
    Persze nyilván nem egyszerű, de sose becsüld le a távolkeleti fejlesztőket (és a többieket se)...

  • ViZion

    félisten

    válasz Aryes #23506 üzenetére

    Nem szarkazmus volt, gondolom, h nem hagynak ki ilyen backdoor lehetőségeket (ahogy a többi kormány sem). De az ESP erre nem megfelelő szerintem, akkor sem, ha hozzáférhető. Ezért lennének érdekesek a részletek, de a cikkben is -amennyire átfutottam- kb. a szokásos: majd felébredtek, de már késő lesz szöveg van csak.

  • ViZion

    félisten

    válasz Aryes #23504 üzenetére

    előfordulhat olyan kormányzati igény, hogy mindenhez legyen pótkulcs
    Igen, biztosan. A routereknél érthető is, androidos TV okosítóknál szintén, de ezeknél? :U
    Továbbra sem értem, ha ez a támadó, akkor hol fér el benne a kód, ha ez csak az ajtó, akkor pl. feltörik a wifit hozzá... és akkor ESP-t fogja keresni a hacker, nem a PC-t, ahol bankolnak a népek? :U Ha esetleg Bt backdoor, akkor meg a lakásba is be kell engednem a hackert, h törni tudja. Szal. nem áll össze, de látványos a cím, kattintható a cikk... :D

  • Aryes

    nagyúr

    Az Espressif kínai cég, nem? Legyen nyugodt mindenki, egész biztosan van benne backdoor. ;]

  • ViZion

    félisten

    válasz Postas99 #23500 üzenetére

    amikor wifi kb. már minden lakásban van és törhető, akkor mi a f-ért szopkodna valaki, h sebezhető ESP-ket keres, amik esetleg vlan-on vannak? :U
    Ha meg az ESP válik agresszív hacker kiber AI-vá, akkor azt hogy? Mitől? Hova fér el ehhez a kód? Miért alszik még ez a rengeteg csillió hacker ESP és nem láttunk még ilyen "a villanykapcsolóm meghackelte a számlámat" híreket? :F

    Ez kb. olyan lehet, mint anno volt, h a ramban tárolt adatok lophatók, ha lehűtik és X percen belül egy spéci gépen kiolvassák. :D

  • Gergosz2

    veterán

    [link]

    Már egy ideje hiányoltam egy ilyen jellegű cikket, és úgy látom más aktívan foglalkozott q témával , hogy mennyire hekkelhező az ESP.

  • Janos250

    őstag

    válasz Janos250 #23495 üzenetére

    Aztán rátennék két fesz szabályzót, az egyik tápolná az ESP32-t (5V, vagy 3.3 V) a másik meg "töltené" a 18650-et pl. 4V-ra.Több helyen írják, hogy a SIM800L elbírja az 5V-ot, de azt is több helyen, hogy könnyen kinyírja. Tudja a fene.

  • Janos250

    őstag

    válasz Cheesy #23488 üzenetére

    Próbáld ki ezt, mit ír ki.
    Ez csak egy próba, vannak benne tök fölösleges részek, de most nem gyomlálom.

    #define RXD2 16 // kell Ezek az ESP32-n az RX2, TX2 feliratuak
    #define TXD2 17
    const uint16_t delaytime = 300 ;
    char ctrlz = 26; 
    void setup()  
    {
      Serial.begin(115200);
      while(!Serial); // Wait for Serial ready
      
      Serial2.begin(115200, SERIAL_8N1, RXD2, TXD2); // kell
    /*
    void HardwareSerial::begin(
      unsigned long baud, 
      uint32_t config, 
      int8_t rxPin, 
      int8_t txPin, 
      bool invert, 
      unsigned long timeout_ms, 
      uint8_t rxfifo_full_thrhd) {
    Az ESP32 ESP-IDF-ben az UART2 alapértelmezetten GPIO 17 (TX) és GPIO 16 (RX), de az Arduino ESP32 framework ezt nem állítja be automatikusan.
    Az Arduino HardwareSerial osztályban a Serial2 nincs GPIO-hoz kötve az indításkor.
    Ha azt akarod, hogy a Serial2 működjön, manuálisan meg kell adnod a pineket:
    Serial2.begin(115200, SERIAL_8N1, 16, 17);
    */  
      while(!Serial2); // Wait for Serial ready
      delay(5000);
      Serial.println("setup elindult");
      Serial2.print("AT\r") ;  
      olvasKiir();
      delay(delaytime);
      Serial2.print("AT\r") ; 
      olvasKiir();
      delay(delaytime);
      Serial2.print("AT\r") ; 
      olvasKiir();
      delay(delaytime);
      Serial2.print("ATI\r") ; 
      Serial.println("kuldve:ATI gyarto kiiras:"); 
      olvasKiir();
      delay(delaytime);
    //("AT+CSQ"); //Signal quality test, value range is 0-31 , 31 is the best
      Serial2.print("AT+CSQ\r") ; 
      Serial.println("kuldve:AT+CSQ:the first # is dB strength(0-31):"); 
      olvasKiir();
      delay(delaytime);
    //("AT+CCID");
      Serial2.print("AT+CCID\r") ; 
      Serial.println("kuldve:AT+CCID read SIN info");
      // sim card number that is written on the 
      // backside of the sim card 
      olvasKiir();
      delay(delaytime);
      Serial2.print("AT+GSN\r") ;  //????????
       Serial.println("AT+GSN r elkuldve IMEI kiiras\r  valasz:") ; 
    // IMEI kiiras A modul IMEI szama
      delay(delaytime);
      olvasKiir();   
      Serial2.print("AT+CREG=?\r") ; 
      Serial.println("AT+CREG=? r elkuldve\r") ; 
      Serial.println("registered on the network\r") ; 
      Serial.println("The second # should be 1 or 5:\r") ; 
      delay(delaytime);
      olvasKiir();  
      Serial2.print("ATI\r") ; 
      Serial.println("ATI r elkuldve\r") ; 
      Serial.println("module's name and number.\r") ; 
       delay(delaytime);
      olvasKiir();  
      Serial2.print("AT+COPS\r") ; 
       Serial.println("AT+COPS r elkuldve Check which network:\r  valasz:") ; 
    // Check which network
      delay(delaytime);
      olvasKiir();   
      Serial2.print("AT+CBC\r") ; 
       Serial.println("AT+COPS r elkuldve battery percentage:\r  valasz:") ; 
    // battery percentage
      delay(delaytime);
      olvasKiir();   
      Serial2.print("AT+CMGF=1\r") ;  
              //Because we want to send the SMS in text mode
      Serial.println("AT+CMGF=1 r elkuldve\r  valasz:") ; 
      delay(delaytime);
      olvasKiir();      
          //to be sent to the number specified.
       Serial2.println("AT+CMGS=\"+36303900970\"") ; 
          //Start accepting the text for the message
      Serial.println(
              "AT+CMGS= +36303900970 elkuldve\rvalasz:") ; 
      delay(delaytime);
    olvasKiir(); 
          
      Serial2.println("SIM SMS ") ;  
          //The text for the message
      Serial.println("Elkuldve: SIM SMS\rvalasz: ") ;      
      delay(delaytime);
    olvasKiir();
    /*
    String  response = Serial2.readString();
     Serial.println(response);  
    */
      Serial2.write(ctrlz) ;
      delay(100); 
      Serial2.write(0x00) ;
      delay(100); 
      Serial.println("ctrlz kiirva") ;
      delay(5000); 
      Serial.println("setup vege") ;                                 
    } ; // end setup
    void loop()                   
    {
      if (Serial2.available())
        Serial.write(Serial2.read());
      delay(10) ;
    } ; // end loop
    void olvasKiir(){
      do { 
        while (Serial2.available()){
          Serial.write(Serial2.read());
        } ; 
        delay(100);
      } while (Serial2.available());    
      Serial.println(); 
    };

    Nem teszem fel sehova, mert a szövegek nem sok helyet foglalnak,
    nem hiszem, hogy ez nagyon terhelné a szervert.

  • Janos250

    őstag

    válasz Cheesy #23484 üzenetére

    "Hogyan másképp oldanád meg a tápellátás problémáját?"
    próbára így, aztán majd lehet fejleszteni
    https://circuitdigest.com/sites/default/files/inlineimages/u5/SIM800L-Module-with-ESP32.png
    Az ESP32 tápját pedig az USB-ről.

  • Postas99

    őstag

    válasz its_grandpa #23493 üzenetére

    :) Siemens C25 nyertem, sajnos az is csak már csak 2g.

    Adroidra sajna nem ilyen egyszerű a dolog.
    Az USB-s megoldást el kell engedni, ugyanis ahhoz kell egy saját fejlesztésű APK amit meg tudsz szólítani USB-n keresztül amihez kell az USB debugging, mert e nélkül nem fog menni.

    Jó héhány évvel ezelőtt tömeges SMS-t használtunk a kiértesítésekre.
    Több megoldást is végig vettünk amíg nem lett végül sms gateway a szolgáltatótól, addig volt dedikált eszköz ami a helyi lan porton lógott és azt kellett megszólítani, megfelelő formátumban beküldeni az adatokat telszam,smsszoveg,exp.time,retrycount.
    Lassú volt mert 600 munkavállalót fél napon keresztül értesített ki. Az eszközön meg egy local py script futott.

    Aztán lett egy windows app + mobil app kombó ami rohadt jó volt, csak idővel az android egyre nagyobb verziójával már 10 sms küldése után approve-olni kellett, hogy igenis ki akarom küldeni az SMS-t.

    Szóval régóta csak smsgateway, az is saját kóddal --> local webszerver SSL cert, dedikált IP, és ez csak SMS, semmi net.

    HA nem csak sms-t szeretnél küldeni hanem valami IP alapú cuccot akkor marad mit2 saját app fejlesztése logicblock-ban össze kell rakni és wifi vagy ble kapcsolaton az ESP-hez kapcsolódni és onnantól már akármit is tudsz küldeni.

  • Aryes

    nagyúr

    válasz Cheesy #23488 üzenetére

    Arduino UNO-nál működik az a trükk, hogy ha a reset lábát folyamatosan földre kötöd (nem engeded elindulni/működni az ATMEGA chipet) akkor az onboard usb-ttl chipet tudod használni más célra, a tx-rx lábakra kötheted a modemet. Ez nem tudom működne-e ESP32-vel. Ha van rajta külön usb-ttl chip és nem valamelyik újabb fajta ESP32, ami már saját maga kezeli az usb-t, akkor esetleg igen.

  • Cheesy

    őstag

    válasz its_grandpa #23487 üzenetére

    Sajnos nincs (még) serial-USB átalakítóm, ezért az ESP-n keresztül tudtam csak kommunikálni a SIM800L-el. Lehet rendelek egyet a jövőre nézve...
    Az 5.0V-ot azért adtam neki, mert ez van neki megadva az adatlapján és a Vin pin-nél is (5V/4V) és hátha azért nem működött, mert kevés volt neki a kakaó.

    A teljes kódot inkább így küldöm: https://pastebin.com/b3PSBi3J

    Soha nem vagyok biztos abban, hogy a kód hibátlan :) Inkább több, mint kevesebb PRINT parancsot használok, hogy lássam melyik résznél akad el.

  • its_grandpa

    tag

    válasz Cheesy #23486 üzenetére

    >>Az ESP32-vel próbáltam a tanácsaid alapján tesztelni a SIM800L-t ...
    Én a SIM800L tesztelésére csak sima soros porti megoldást javasoltam, ESP nélkül.
    Végig zongorázhatnál egy rakat AT parancsot, hátha kiderül a baj.
    Nem értem miért adtál neki 5.0V-t amikor a max. 4.2V.
    Az Arduinos kód feltöltés rész világos, így is kell.
    Teljesen biztos vagy abban,hogy a kód hibátlan ?
    A #23479-ben csak egy részlet látszik.

    Én csak kipróbálnám a "How To Test A GSM Modem Manually"-t (2. link a #23485-ben).

  • Cheesy

    őstag

    válasz its_grandpa #23485 üzenetére

    Az ESP8266-tal kezdtem az egészet, jelenleg arra vannak kötve a szenzorok és a GPS. Ezzel próbáltam a SIM800L-t is, de a fentiek után nem erőltetem.

    Az ESP32-vel próbáltam a tanácsaid alapján tesztelni a SIM800L-t, az alábbi módon:
    6.0V/12Ah akksi --> LM2596 DC konverter (output max 3A) 5.0V-ra állítva --> SIM800L
    ugyanaz a 6.0V/12Ah akksi --> LM2596 DC konverter (output max 3A) 3.3V-ra állítva --> ESP8266

    Arduino IDE-val készítem a kódot és amikor feltöltöm, USB-C-vel csatlakozok a PC-hez. Amikor kódot töltök az ESP8266-ra, akkor a neki szánt külön tápellátást lekötöm róla, mert nem tudja egyszerre kezelni a bejövő külső 3.3V-t és az USB-C-n érkező 5.0V-ot.

  • its_grandpa

    tag

    válasz Cheesy #23479 üzenetére

    Nem írtad honnan tápolod a SIM800-at, 3.7 - 4.2 volt kell neki és néha 2A !
    >> Based on my experience, the module is a bit power-hungry and the current consumption can be up to 2 A in peaks.

    ESP32-t írtál emiatt feltételezem,hogy van usb uart adaptered a kód feltöltéséhez.
    Ha össze tudod vezetékelni + rendes táp, putty-al tudnád tesztelni a modult.

    wiring [link]
    putty [link]

  • Cheesy

    őstag

    válasz Janos250 #23483 üzenetére

    Elektronikában nincs még számottevő tapasztalatom, én ez alapján indultam el:

    Adott egy 6V/12Ah akkumulátor
    Ez a napelem kontrolleren (6V/3A) keresztül ad áramot
    Ennek a kimenetét szétosztom az ESP8266 és a SIM modul között, 3.3V-ra és 5.0V-ra egy-egy LM2596 DC konverterrel (output max 3A)
    Tehát elvileg az adatforgalomnál legéhesebb SIM800L is kap elég áramot, mert akkor 2A-t is elkér.

    Hogyan másképp oldanád meg a tápellátás problémáját?
    A legegyszerűbb az lenne, ha a központi egység igényelne csak áramot és ő osztaná szét a modulok között.

  • Cheesy

    őstag

    válasz Postas99 #23480 üzenetére

    Köszi a linket, bogarásztam az oldalukon, tetszenek, de min. +5,8 USD shipping + ha vámolják, így 13450 HUF minimum.

    Janos250
    Az alis adatlapja alapján szerepel a SMS/TEXT, ebből gondoltam, hogy tudja...

    Ez az első Arduinos projektem, egy olyan mobil kütyüt szeretnék összerakni, ami mér súlyt, hőmérsékletet, GPS jeladó van rajta és mobilhálózaton tud adatot küldeni. Abszolút az elejéről kezdem, most forrasztottam komolyabban először IO pineket, de sikerült belejönni.

    Jelenleg itt tartok:
    HX711 szenzor + CZL-601 mérőblokk
    BMP280 hőmérséklet és légnyomás mérő
    GPS NEO-8M modul
    összehangoltan működnek, mysql adatbázis kész, php script kiolvassa és megjelenítem grafikonon chart.js-el. GPS még kakukktojás, mert nem sikerült még műholdat találni vele, de a LED villogása azt jelzi online. Tegnap eljutottam oda, hogy egy 6V/12Ah AGM akksiról LM2596 DC konverterrel 3.3V-ra korlátoztam a rendszerbe érkező feszültséget (multiméterrel kimértem, 3.30V) és rá kellett jönnöm, hogy az addig a PC-ről USB-C-n keresztül meghajtott ESP8266 nem képes ellátni elég árammal a rá kötött GPS modult, ugyanis ha USB-C-n kap feszültséget, akkor az így kapott 5V-ot le tudja magának szabályozni és képes 3.3V-ot adni a GPS-nek, de ha a bejövő áram a konverternek hála pontosan 3.3V, akkor abból nem jut a GPS-nek. Így egy kínai WAGO-val ketté osztottam a konverterből érkező 3.3V-ot az ESP8266 és a GPS modulnak, így már elég áramot kap mindkettő, a wifin keresztüli logolás alapján működik. Bár műholdat még nem sikerült találni, de ez a "szörny" egyelőre egy lezárható műanyag tortásdobozban volt az eresz alá rakva tegnap délután pár órára. Egyelőre súly, hőmérséklet és légnyomás adatokat tudott rögzíteni.
    Jelenleg szép színes jumper kábelekkel vannak összekötve, nem szép látvány, de átlátható. :DDD

    A kiindulási alapom ESP8266 modul (CP2102 TYPE-C) de véletlen rendeltem egy ESP32 WROOM modult is, az erősebb és több rajta a GPIO port, így az lesz végül hadba állítva.
    A rendszer egy 6V/12Ah AGM akksiról fogja kapni a tápot, ehhez van egy 6V/10W napelemem is. Egy napelem kontrollerrel fogom összefűzni a rendszer tápellátását.
    Mivel tudtam, hogy a SIM800L 3.7-5.0V, de általában 4.0V-ot igényel, így az egy külön LM2596 konverterrel (ami 4.4V-ra van állítva) van meghajtva. Nagy áramigénye csak az adatküldésnél van, de valamiből gazdálkodnia kell. A konverter modul 3A-ig jó, így megkapja amit kér. Már ha működött volna, de így nem fog működni a fentiek tudatában.

    Kap még a rendszer egy DS18B20 szondát is, de ezt az ESP8266/ESP32 le tudja kezelni.

    És most pedig ott tartok, hogy megfelelő SIM modult keresek és korholom magam, hogy miért nem találtam rá előbb a T-A7670SA-ra, mert akkor azzal kellett volna kezdenem az egészet :U

  • Cheesy

    őstag

    Sziasztok!
    SIM800L v2.0 modul + frissen érkezett Telekomos domino fix SIM = :W

    Segítsetek ötletelni, mi lehet még a hiba oka.
    Kártyát már telefonban kipróbáltam, illetve töltöttem rá pénzt.

    AT+CGMI
    SIMCOM_Ltd
    OK
    AT+CGMM
    SIMCOM_SIM800L
    OK
    AT+CGMR
    Revision:1418B05SIM800L24
    OK
    Tehát a modul működik, olvasható az ESP32 által.
    AT+CSQ
    +CSQ: 22,0
    OK
    Tehát az antenna jelerőssége jó.
    AT+CPIN?
    ERROR
    PIN kódot előtte telefonon már deaktiváltam, de itt már látszik, hogy nem fér hozzá a SIM kártyához.

    AT+CSTT="internet.telekom"
    ERROR
    AT+COPS=0
    ERROR
    AT+CREG?
    +CREG: 0,0
    OK
    AT+COPS?
    +COPS: 0
    OK
    AT+COPS=1,2,"21601"
    ERROR

    Azon kívül, hogy a modul valahol hibás (pl. egy döglött dióda, de azt nem tudom hogy mérjem ki), mi lehet még az oka, hogy nem fér hozzá a SIM kártyához? Mintha nem érzékelné. Igen, jól van bele csúsztatva az olvasó részbe :U

  • Postas99

    őstag

    válasz george61 #23471 üzenetére

    Először is router tápbe-tápki a kettő között legyen 30mp szünet.
    Én legalábbis ezzel kezdenem. Volt egy routerem ami qrva gagyi volt, az elején még tök jól elment 2 év után már egyre többször állt meg és az esp-k sem tudtak felcsatlakozni rá vagy leestek róla. A többi otthoni eszköz is egyre nyűgösebben ment vele. Egy próbát megér

  • ViZion

    félisten

    válasz george61 #23471 üzenetére

    esphome konfigod érdekelne, mac address alapján routerben fix IP-t adni neki és a konfigba is beírkálni mindent. 2,4 GHz amire tud csatlakozni.

  • george61

    tag

    Tisztelt Fórumtársak!
    Az alábbi problémával fordulok hozzátok. Adott egy ESP D1 mini V3.0 Wemos - ESP8266 mikrokontroller, amit Homa Assistant alól ( Rasberry Pi 4 -hez kábellel csatolva ) flashaltem.
    A software azt írja , hogy jól lett flashelve, de amikor hozzá szeretném csatolni asaját Wifi hálózatomhoz akkor megtalálja ugyan a 2 db Wifi csatornámat a routeremen, de nem csatlakozik ezek közül egyikhez sem (. Jelszint mindkettőn megfelelő) és kiírja hogy nem csatlakozik.A routerben nem hoz létre IP címet sem, de
    létrehoz egy AP -t a wifi SSD -k között, de ha ebbe beírom a megfelelő jelszót, azt írja nem tud csatlakozni erre, igy további műveleteket nem tudok csinálni aq hálózatban.
    Az az érdekes , hogy egy ua.ilyen mikrocontrollerel minden simán ment. Mit csinálhattam rosszul? Resetelni kellene talán mini V3 -at. Ezt hogy kell csinálni? Elegendő a panel oldalán a mikrokapcsolót hosszabban megnyomni?
    Köszönöm a válaszokat előre is.

  • kemcso

    Ármester

    válasz ViZion #23416 üzenetére

    ESP32 S3 van már,. 20W-os izzókat kapcsolgat. SSR-t olvastam én is valahol, hogy az esetleg jó lehet. Felveszem a listára, ez jó lehet? [link] Vagy miért jobb ennél a Fotek-klón? (azért lett a kattógos modul, mert opto-s, és gondoltam nem hozzáértő fejemmel, hogy ott nincs kapcsolat a 230V és a kisfeszültség között)

    A 230V nincs közvetlenül a többi alkatrész mellett, de persze bármi is lehet, ehhez sem értek. Viszont ferritből perpill 1db van itthon, de ha rendelésre kerül a sor azt is beledobok

    Én írtam a progit, megnézem az EspEasy-t, hátha, bár amíg nincs a relén 230V gyönyörűen, hiba nélkül megy minden, de amint megkapja rögtön halálozik, nekem ez inkább vmi hardveres gondnak tűnik.

    Nem próbáltam kézzel kapcsolgatni a reléket, kipróbálom azt is.

  • ViZion

    félisten

    válasz kemcso #23415 üzenetére

    Visszaolvastam... Android Uno-t használsz? Próbáltad lecserélni vmi újabb cuccra?
    Ha jól emléXem nem nagy amperokat kapcsolsz... kattogós relék cserélni SSR-re? Elég az is, ha csak a modulon, de új kapcsolást is csinálhatsz. Fotek-klón SSR 1000 Ft alatt van aliról és legalább olyan jó, mint a kattogós kínai.

    Kérdeztem már azt is, h a progit Te írtad, vagy valami keretrendszerben van? Mert érdemes lenne egy EspEasy-t feldobni és megnézni, h ott is van-e ez a jelenség.

    Ferrit gyűrű/henger a 230 V-re: szintén segíthet, ha vmi olyan frekin keletkezik zaj kapcsoláskor. Nekem egy Wemos D1 mini GPIO ment tönkre, mert a bemenő adatkanóc 1 m-en a 230 V vezeték mellett futott. Szal. ezek az elektromágneses terek mindenre IS képesek.

    Azt is jó lenne megtudni, h a zaj hol jut vissza az MCU-ra. Próbáltad úgy, hogy a relé panelt nem az MCU kapcsolja (azt kikötöd) és ott a táp vagy a GND-vel adod a high vagy low-t a kapcsoláshoz? Akkor is berottyol a kijelző?

  • Janos250

    őstag

    válasz kemcso #23413 üzenetére

    Ha már ennyire bonyolulttá vált, akkor már tényleg egyszerűbb lenne ez a másfajta megoldás:
    ESP32 valahol, ahol gyűjti az adatokat birizgálja a reléket, stb. Rajta egy WiFi szerver.

    BÁRHOL máshol egy régi, kiszuperált Androidos telefon, vagy egy tablet.
    Semmi nem kell, hogy menjen rajta - mert a régi Androidon már szinte semmi se megy - mint egy böngésző. A Chrome az az ősökön is elmegy, megjeleníti a honlapot. A WiFit is be lehet állítani, hogy belépjen az ESP32-re.
    Böngészőben - egyszer - megnyitod az ESP32 WEB lapját, és az megy amíg áram van.
    Arra írhatod a dolgokat. Ha tabletet használsz, elég nagy is lesz, jól olvasható.
    Jobb, és olcsóbb minden egyéb megoldásnál. Semmi nem kell neki, csak áram.
    Amik csak 3G-t tudnak, azok 1, max 5 ezerért megvehetők, mert a telefon 4G hiánya miatt szinte eladhatatlanok.
    Én mostanában ezekkel próbálkozom. Olcsó, és jó.

  • bagarol

    tag

    válasz kemcso #23400 üzenetére

    esp in-ek + Vcc, relé táplálása gnd + rövidzár helyett az ottani Vcc2.

  • kemcso

    Ármester

    válasz Janos250 #23385 üzenetére

    Megvan úgy néz ki és igazad volt :) :
    Ha a relé-modul nem kap 240V-t akkor tökéletesen működik delay nélkül az egész. Amint megkapja a 240-et rögtön fehéredik a kijelző delay nélkül, ha egyszerre kapcsolnak.

    Most úgy van tápolva, hogy a kijelző, rtc, multiplexer saját tápról megy, a relé-modul és az esp32 egy másikról, a cél, hogy 1 táp elég legyen de ha nem megoldható kettőről is tudom intézni. A gnd közös, anélkül nem megy se a kijelző se a relé.

    Mi lehet a megoldás? :R :R :R

  • kemcso

    Ármester

    válasz ViZion #23383 üzenetére

    Végigpróbálom az összes ötletet ma, köszönöm a tippeket. Van másik, ugyanilyen ESP, megnézem azzal is.

    #23382Undoroid elvileg opto-s: [link]

  • ViZion

    félisten

    válasz kemcso #23379 üzenetére

    Fordítsuk meg a dolgot...
    A hibázó HW-re tölts fel egy EspEasy-t, állítsd be a kijelzőt, relét, stb. majd kapcsolgasd.
    Ha ott nem jön elő a hiba, akkor a program résznél lehet valami.
    De másik MCU-t is kipróbálnék, mert ennyire nem lehet ez bánatos. :(((

  • kemcso

    Ármester

    válasz Janos250 #23377 üzenetére

    Relé-panel nem megy közös föld nélkül, próbáltam teljesen leválasztani, de úgy nem csinált semmit. Ettől eltekintve próbáltam a teljes leválasztást: saját 5V-3A táp, az ESP -kijelző-stb pedig egy másik tápról ment. Uaz az eredmény így.

    Távolság változott, amikor 25cm-s kábel volt, nem volt jelentősége.
    Kapott a kijelző már 5V-t is, uaz (igaz, akkor közös tápról a relével, ezt még megpróbálom holnap).

    Tehát ezeket próbálom holnap ki:
    - kijelző 5V, külön táp a relétől
    - ".. reset lábát a kijelzőnek valamilyen (pl. 10k) ellenálláson keresztül a passzív állapotra (VCC?) kötném" ->ez azt jelenti, hogy RST kábel végére 10k amit az tápra kössek?
    - "tennék a kijelző VCC-GND közé egy 1 k-s ellenállást. Nem sorosan az adatvonalra, hanem a GND-VCC közé." -> ahogy a kondik voltak? Két láb közé kötve?

    Én is a tápra tippeltem, de kvázi-leválasztva is uaz :O Nem értem...

    #23378bagarol:
    tft.begin(8000000);
    volt ez 2000000 is, uaz sajna...

  • Janos250

    őstag

    válasz kemcso #23376 üzenetére

    Köszi!
    Sajnos nem lett tőle szenzációs ihletem :W
    Megpróbáltam utánanézni ennek a relés panelnak, de ezen a néven ez - úgy tűnik - csak Magyarországon szerepel. :((
    Arra lettem volna kíváncsi, hogy a relé panel hogyan van leválasztva? Teljesen, vagy a föld közös?
    "fogynak a libák", és jó ötletem nincs, csak azt tudom mondani, én hogyan próbálkoznék:
    - Megpróbálnám a relé panelt próbára akkuról megtáplálni. Nekem ez korábban egy megoldhatatlannak tűnő zavarnál kiderítette a gubancot.
    - Azt továbbra is fenntartom, hogy a reset lábát a kijelzőnek valamilyen (pl. 10k) ellenálláson keresztül a passzív állapotra (VCC?) kötném.
    - Ha ez egyszerre több eszköz (relé) működésével függ össze, én gyanakodnék arra, hogy az ESP32 tápja nem elég stabil. Ha több relé kapcsol, az nagyon megrántja a tápot, és az ESP32 ettől még ugyan elmegy, de a kijelzőre jutó adatvonalakon a kijelzőhöz amúgy is viszonylag gyenge adatvonalakon hirtelen még kisebb feszültség lesz, és resetel. Mert a kijelző - úgy tudom - elvileg 5V TTL szint, de megy kisebbel is.
    - Mégis megpróbálnám jobban megterhelni a tápot, azaz tennék a kijelző VCC-GND közé egy 1 k-s ellenállást. Nem sorosan az adatvonalra, hanem a GND-VCC közé.

    További kérdés:
    - Ha a kijelző, és a relé modul fizikai távolságát változtatod, változik-e valami?

    Én hasonló problémáknál azt szoktam tenni, hogy előkapom a már itt is régebben többször linkelt 2000 Ft-os digitális analizátort, és megnézem, hogy a vonalakon TÉNYLEGESEN mi megy ki, de ez itt nem lenne eredményes, mert itt a szintekkel lehet valami baj.
    Az, hogy ha két relé kapcsolás között nincs delay, akkor hibázik, abból mindenképpen azt gyanítanám, hogy a hirtelen nagyobb terhelés miatt feszültségszint probléma van valahol, de nem tudom, hol!

  • Janos250

    őstag

    válasz kemcso #23371 üzenetére

    Bennem felmerült pár kérdés, amire nem láttam a választ, de lehet, hogy csak elkerülte a figyelmem:
    - Ha ESP32, akkor ugye hardver, és nem szoftver SPI-t használsz? A delay() miatt gyanús!
    - Ha UTP kábelt használsz (duplán) akkor ugye úgy, hogy egy jelhez választasz egy vezeték PÁRt (!), és az egyik vezeték lesz a jel, a másik pedig a GND? És csak az egyik végén megy a GND-re ugye?
    - Ha próbára "megnöveled a fogyasztást", azaz közvetlen a kijelzőnél a GND, és a VCC közé teszel egy nem túl nagy ellenállást, akkor is hibázik?
    - Ha a jelvezetékeket egy ellenállással (10k, 1k, 100k amivel még megy ) a GND-hez kötöd, akkor is hiba?
    - Ha a relé modul nincs rajta, akkor is hiba?
    - A két kábel nem egyforma. Esetleg kipróbálni rövidebb UTP-vel, vagy hosszabb egyébbel (pl Dupont)?

  • vargalex

    félisten

    válasz Tankblock #23360 üzenetére

    OK, de arról volt szó, hogy neked kell-e, vagy nem. Márpedig külön láthatóan nem kell vele foglalkozni. Én 8 éve használok ESP8266-okat Arduino könyvtárakkal és akkor sem kellett soha használnom...

  • Tankblock

    aktív tag

    válasz vargalex #23343 üzenetére

    Arduino könyvtárak igaz? Szerintem nézz körül a includált forrásokban is...
    lesz ott yield(),

    [link] ez a templatje a ESP8266WebServer.h hoz és van benne....

    azóta eltelt még 6+ év is.
    Ha jól látom annyi minden nem változott, de ki tudja....

    Nem állítom hogy nem lehet sokmindent megoldani, mert sokan megoldottak vele sokmindent [link] , ha tudod hogy mit csinálsz. Wifinél ha nem hagyod időnként lefutni a dolgait szétfagy...

    Egy ideje nem használok Arduino könyvtárakat, csak akkor ha valami nagyon gyorsan kell.

  • bagarol

    tag

    válasz norbert1998 #23334 üzenetére

    Mondom, hardveres pwm kell.
    Összedobtam egyet, van I2C,delay, ki kell próbálni.
    Késik 8 usecet, valszeg a kiíratás miatt. Serial.print(usec())
    Később törölni kell.


    /****************************************************************************************************************************

    ISR_16_PWMs_Array.ino

    For ESP8266 boards

    Written by Khoi Hoang


    Built by Khoi Hoang https://github.com/khoih-prog/ESP8266_PWM

    Licensed under MIT license


    The ESP8266 timers are badly designed, using only 23-bit counter along with maximum 256 prescaler. They're only better than UNO / Mega.

    The ESP8266 has two hardware timers, but timer0 has been used for WiFi and it's not advisable to use. Only timer1 is available.

    The timer1's 23-bit counter terribly can count only up to 8,388,607. So the timer1 maximum interval is very short.

    Using 256 prescaler, maximum timer1 interval is only 26.843542 seconds !!!


    Now with these new 16 ISR-based timers, the maximum interval is practically unlimited (limited only by unsigned long miliseconds)

    The accuracy is nearly perfect compared to software timers. The most important feature is they're ISR-based timers

    Therefore, their executions are not blocked by bad-behaving functions / tasks.

    This important feature is absolutely necessary for mission-critical tasks.

    *****************************************************************************************************************************/


    #if !defined(ESP8266)

    #error This code is designed to run on ESP8266 and ESP8266-based boards! Please check your Tools->Board setting.

    #endif


    // These define's must be placed at the beginning before #include "ESP8266_PWM.h"

    // _PWM_LOGLEVEL_ from 0 to 4

    // Don't define _PWM_LOGLEVEL_ > 0. Only for special ISR debugging only. Can hang the system.

    #define _PWM_LOGLEVEL_ 3


    #define USING_MICROS_RESOLUTION true //false


    // Default is true, uncomment to false

    //#define CHANGING_PWM_END_OF_CYCLE false


    // Select a Timer Clock

    #define USING_TIM_DIV1 true // for shortest and most accurate timer

    #define USING_TIM_DIV16 false // for medium time and medium accurate timer

    #define USING_TIM_DIV256 false // for longest timer but least accurate. Default


    // To be included only in main(), .ino with setup() to avoid `Multiple Definitions` Linker Error

    #include "ESP8266_PWM.h"

    #include <Wire.h>

    #include <Adafruit_GFX.h>

    #include <Adafruit_SSD1306.h>


    #define SCREEN_WIDTH 128 // OLED display width, in pixels

    #define SCREEN_HEIGHT 64 // OLED display height, in pixels

    #define OLED_RESET -1 // Reset pin # (or -1 if sharing Arduino reset pin)

    #define SCREEN_ADDRESS 0x3D ///< See datasheet for Address; 0x3D for 128x64, 0x3C for 128x32

    Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);


    #ifndef LED_BUILTIN

    #define LED_BUILTIN 2

    #endif


    #define HW_TIMER_INTERVAL_US 20L


    uint32_t startMicros = 0;


    // Init ESP8266Timer

    ESP8266Timer ITimer;


    // Init ESP8266_ISR_PWM

    ESP8266_PWM ISR_PWM;


    void IRAM_ATTR TimerHandler()

    {

    ISR_PWM.run();

    }


    /////////////////////////////////////////////////


    #define NUMBER_ISR_PWMS 1


    //PIN_D0 can't be used for PWM/I2C

    #define PIN_D0 16 // Pin D0 mapped to pin GPIO16/USER/WAKE of ESP8266. This pin is also used for Onboard-Blue LED. PIN_D0 = 0 => LED ON

    #define PIN_D1 5 // Pin D1 mapped to pin GPIO5 of ESP8266

    #define PIN_D2 4 // Pin D2 mapped to pin GPIO4 of ESP8266

    #define PIN_D3 0 // Pin D3 mapped to pin GPIO0/FLASH of ESP8266

    #define PIN_D4 2 // Pin D4 mapped to pin GPIO2/TXD1 of ESP8266

    //#define PIN_LED 2 // Pin D4 mapped to pin GPIO2/TXD1 of ESP8266, NodeMCU and WeMoS, control on-board LED

    #define PIN_D5 14 // Pin D5 mapped to pin GPIO14/HSCLK of ESP8266

    #define PIN_D6 12 // Pin D6 mapped to pin GPIO12/HMISO of ESP8266

    #define PIN_D7 13 // Pin D7 mapped to pin GPIO13/RXD2/HMOSI of ESP8266

    #define PIN_D8 15 // Pin D8 mapped to pin GPIO15/TXD2/HCS of ESP8266

    #define PIN_D9 3 // Pin D9 /RX mapped to pin GPIO3/RXD0 of ESP8266

    #define PIN_D10 1 // Pin D10/TX mapped to pin GPIO1/TXD0 of ESP8266


    //Don't use pins GPIO6 to GPIO11 as already connected to flash, etc. Use them can crash the program

    //GPIO9(D11/SD2) and GPIO11 can be used only if flash in DIO mode ( not the default QIO mode)

    #define PIN_D11 9 // Pin D11/SD2 mapped to pin GPIO9/SDD2 of ESP8266

    #define PIN_D12 10 // Pin D12/SD3 mapped to pin GPIO10/SDD3 of ESP8266


    //////////////////////////////////////////////////////


    #define USING_PWM_FREQUENCY true


    //////////////////////////////////////////////////////


    // You can assign pins here. Be carefull to select good pin to use or crash

    uint32_t PWM_Pin[] = {PIN_D1};


    // You can assign any interval for any timer here, in microseconds

    uint32_t PWM_Period[] = {28650};


    // You can assign any interval for any timer here, in Hz

    float PWM_Freq[] =

    {

    34.90401396160558

    };


    // You can assign any interval for any timer here, in Microseconds

    float PWM_DutyCycle[] = {50};


    typedef void (*irqCallback) ();


    // In ESP8266, avoid doing something fancy in ISR, for example complex Serial.print with String() argument

    // The pure simple Serial.prints here are just for demonstration and testing. Must be eliminate in working environment

    // Or you can get this run-time error / crash

    void doingSomething0()

    {

    Serial.println(micros());

    }

    /*

    void doingSomething1()

    {

    }


    void doingSomething2()

    {

    }


    void doingSomething3()

    {

    }


    void doingSomething4()

    {

    }


    void doingSomething5()

    {

    }


    void doingSomething6()

    {

    }


    void doingSomething7()

    {

    }

    */


    irqCallback irqCallbackStartFunc[] =

    {

    doingSomething0

    };


    ////////////////////////////////////////////////


    void setup()

    {

    pinMode(PIN_D1, OUTPUT);


    Serial.begin(115200);

    while (!Serial);


    if(!display.begin(SSD1306_SWITCHCAPVCC, SCREEN_ADDRESS)) {

    Serial.println(F("SSD1306 allocation failed"));

    for(;;); // Don't proceed, loop forever

    }


    delay(2000);


    Serial.print(F("\nStarting ISR_16_PWMs_Array on ")); Serial.println(ARDUINO_BOARD);

    Serial.println(ESP8266_PWM_VERSION);

    Serial.print(F("CPU Frequency = ")); Serial.print(F_CPU / 1000000); Serial.println(F(" MHz"));


    // Interval in microsecs

    if (ITimer.attachInterruptInterval(HW_TIMER_INTERVAL_US, TimerHandler))

    {

    startMicros = micros();

    Serial.print(F("Starting ITimer OK, micros() = ")); Serial.println(startMicros);

    }

    else

    Serial.println(F("Can't set ITimer. Select another freq. or timer"));


    // Just to demonstrate, don't use too many ISR Timers if not absolutely necessary

    // You can use up to 16 timer for each ISR_PWM

    for (uint16_t i = 0; i < NUMBER_ISR_PWMS; i++)

    {

    //void setPWM(uint32_t pin, float frequency, float dutycycle

    // , timer_callback_p StartCallback = nullptr, timer_callback_p StopCallback = nullptr)


    #if USING_PWM_FREQUENCY


    // You can use this with PWM_Freq in Hz

    ISR_PWM.setPWM(PWM_Pin[i], PWM_Freq[i], PWM_DutyCycle[i], irqCallbackStartFunc[i]);


    #else


    #if USING_MICROS_RESOLUTION

    // Or using period in microsecs resolution

    ISR_PWM.setPWM_Period(PWM_Pin[i], PWM_Period[i], PWM_DutyCycle[i], irqCallbackStartFunc[i]);

    #else

    // Or using period in millisecs resolution

    ISR_PWM.setPWM_Period(PWM_Pin[i], PWM_Period[i] / 1000, PWM_DutyCycle[i], irqCallbackStartFunc[i]);

    #endif

    #endif

    }


    }


    void loop()

    {

    display.clearDisplay();

    display.setTextSize(1); // Draw 2X-scale text

    display.setTextColor(SSD1306_WHITE);

    display.setCursor(0,1);

    display.println(F(" ESP8266 PWM"));

    delay(1000);

    }

  • ViZion

    félisten

    válasz kemcso #23344 üzenetére

    I2C kijelző?
    ESPEasy-ben van lehetőség a reset stuck I2C-re, ilyesmi kellene akkor szerintem.

  • Tankblock

    aktív tag

    válasz vargalex #23335 üzenetére

    ugye delay() fv van benne?
    próbáld meg terhelni picit terhelni paralel MQTT vel és érintő gomb gesture vezérlés figyelés delay nélkül.....

    teljes threadek vannak tele esp8266 vagy ESP8285 panic error al, ahol valahogy a megoldás a legtöbbször a delay() v yield() volt. Erre emlékszem, van még itthon 2-3 marék nem használt ESP12 őm... lehet már nem is lesznek soha se elhasználva....

    A Tasmota project egy megváltás volt bár anno nem tudta a long presst és double press funkciót, nekem meg kellettek....

  • vargalex

    félisten

    válasz Tankblock #23330 üzenetére

    Vannak esp8266 eszközeim hőmérésre, többek között a kazán előremenő csövénél is. Wifi-n csatlakozik az itthoni IOT hálózathoz, percenként mér, a hőmérséklet függvényében kapcsol egy relét. Mindeközben weben elérhető felülete van, plusz percenként hív be a szerverem rest API-n (szintén http egy másik végpont), ami json-ban adja vissza az aktuális adatokat. Sehol nem volt szükségem a yield-re, soha nem fagyott.

  • kemcso

    Ármester

    Sziasztok,

    adott egy ILI9341 2,8-as kijelző, ESP32_S3, 3.3v tápfeszültséggel, opto-reléket vezérelve többek között. 20cm-es kábellel minden ok, de ha a végleges 50cm-esre váltok (23AWG, CAT6 utp kábel, 0,5mm réz, szálanként duplán használva) időnként meghal (fehér lesz minden). Mi tudok tenni, hogy ne halljon meg? Felhúzó ellenállás (mekkora, melyik lábakra?)?

    :R

  • Tankblock

    aktív tag

    válasz norbert1998 #23329 üzenetére

    Anno az egész lakás kapcsolói ESP826X uC alapultak SonoFFtól, amiről a gyári FirmWare-t kiírtottam.

    Amit nem szerettem benne, hogy yield() kellett sűrűn mert random tudott fagyni is ha a Wifi vezérlő nem kapta meg a tokent és ez random tudott jelentkezni.

    A weblapot hogy oldottad meg? Abban lévő kommunikáció is okozhat.

  • Janos250

    őstag

    válasz norbert1998 #23325 üzenetére

    Ha esetleg úgy döntesz, hogy átállsz ESP32-re, mert ma már gyakorlatilag az sem drágább, és vannak mini boardok is, akkor:

    RMT: 12.5 ns felbontású, és elég pontos, mivel hardver.

    Például az alap ESP32, az S2, S3, C3 verziókban van RMT, H2-ben nincs, a P4-et nem tudni, mert még kevés róla az info.

    Ha nem, hanem maradsz a 8266-nál, akkor megpróbálnám a váltás környékén a megszakításokat letiltani.

    Vagy megpróbálnám a TMC programot külön szálra tenni, és delay a szálon.

  • norbert1998

    nagyúr

    Sziasztok!

    Van egy projektem, ahol egy TMC2209-et hajtanék egy ESP8266-tal. A szokásos, olcsó, egyszerű, WiFi board-os verzió.

    Van egy HTML kód mellé, telefonról tudom indítani és megállítani a motort.
    28650 us időtartamonként kap egy impulzust a TMC, ezzel a kívánt átlagos 1,3089 ford/perc sebességet elvileg tartja - mondjuk olyan ~1,3-at biztos, az átlagos sebességgel nincs bajom. Csakhogy ezt átlagosan tartja, egyébkétn viszont inog! Nekem viszont nagyon kéne a stabil sebesség.

    Ugye jelenleg csak STEP/DIR/EN módban hajtom, valami nanoméretű SMD-t kell arrébb forrasszak, hogy megegye az UART-ot. Van értelme arra átállni? Vagy az alábbi kódnak működnie kéne?

    Ami jelenleg van (munkahelyről, emlékezetből írom):
    loop(){
    if(firstLoop) then {
    firstloop = FALSE;
    startTime = micros();
    }
    if (micros()> ( startTime + delay) THEN {
    digitalWrite(STEP, HIGH);
    difitalWrite(STEP, LOW);
    startTime = micros();
    }
    }
    Nincs delay a STEP hi-lo váltása között, de nincs lépéskihagyás, így kihagytam. Nincs egyetlen delay sem a kódban, pörög körbe folyton, mint egy PLC.

  • biker

    nagyúr

    válasz Postas99 #23319 üzenetére

    én jlc-t használok, és easyeda custom libraryben (amit a userek hízlalnak) vannak arduino meg esp meg mindenféle egyedi modulok mérettel lábkiosztással, aminek segítségével leteheted a pcb-re a fogadó tüskesorokat

  • Postas99

    őstag

    Segítséget szeretnék kérni!

    Melyik PCB-s oldalt ajánljátok proto nyák készítéséhez?
    jlcpcb vagy pcbway?
    A másik, hogy még soha nem terveztem PCB-t az easyEDA-val, most letöltöttem.
    Itt meglehet adni, hogy egy már kész arduino modult mint kapcsolási rajzot használjon a saját tervezett áramkörömben úgy, hogy azt bele építi, vagy nekem kell mindent újra rajzolni a teljes kapcsoláshoz?
    A feladat egyszerű lenne, egy 4 modulos relé modul, egy LN298-as modul hozzá és egy ESP32-DOWD-V3 (Esp developer board) bedugós cuccra gondoltam + 1 db 2 sorkapcsos csati + 1 db HLK-5M05, +1db HLK-PM12 Ezeket szeretném egy nyákra összehordani, néhány forrszem a további eszközök bekötéséhez. Mindez kis méretben, vagy legalábbis akkorában amit egy ilyen modulokból össze lehet legózni egy kis területre.
    :R

  • ViZion

    félisten

    válasz Aryes #23307 üzenetére

    jah, ESP-re nem tudom, de van ilyen AI board hangvezérlésre.

  • Aryes

    nagyúr

    válasz ViZion #23306 üzenetére

    Már úgy érted, hogy kell hozzá Home Assistant. Én viszont pusztán az ESP-vel gondoltam, ahogy audio-t generál írott szövegből, openai-al.

  • Postas99

    őstag

    válasz Aryes #23286 üzenetére

    Ohh... most látom hogy nem kerültél közelebb a megoldáshoz, mert nesze semmi fogd meg jól módon válaszoltam.

    [ESP32-audioI2S]
    Github-on ott a library az arduniohoz.


    Ezt a library-t kell használni hozzá.

  • Postas99

    őstag

    válasz Undoroid #23281 üzenetére

    Szia!
    Először is elnézést nem akartalak elzavarni a másik Topicba.
    Az első ilyen cuccom ezzel a board-al készült.

    Mivel ez egy sima ESP32 DEV Modulnak minősül itt TE tudod megadni hogy melyik lábra kerüljön i2S kimenet Dout,LRC,BCK

    /*
    * Seeed_esp32-radio
    * esp32-c3 is too slow - chops up output - reduce sample rate?
    * esp32-s3 ???
    *VCC > 3.3v
    *3.3V > 3.3v
    *GND > GND
    *FLT > GND
    *DMP > GND
    *SCL > GND
    *BCK > D1
    *DIN > D2
    *LCK > D0
    *FMT > GND
    *XMT > 3.3v
    * SerialCDC --- Ezt kell használni az USB porton való kommunkációhoz mert több SERIAL portja van az eszköznek
    */
    #include "Arduino.h"
    #include "WiFi.h"
    #include "Audio.h"

    #define I2S_DOUT 26
    #define I2S_BCLK 27
    #define I2S_LRC 25

    Audio audio;

    const char* ssid = "*******";
    const char* password = "******";

    void setup() {
    Serial.begin(115200);
    WiFi.begin(ssid, password);
    while (WiFi.status() != WL_CONNECTED) {
    Serial.println("Várakozás a hálózatra ...");
    delay(1500);
    }
    Serial.println("Kapcsolódva.");

    audio.setPinout(I2S_BCLK, I2S_LRC, I2S_DOUT);
    //audio.connecttohost("http://s1.knixx.fm/dein_webradio_64.aac"); // 64 kbp/s aac+ Ez nagyon jó német adó
    //audio.connecttohost("http://stream.ca.morow.com:8003/morow_med.mp3"); // 64 kbp/s aac+
    //audio.connecttohost("https://icast.connectmedia.hu/5001/live.mp3");
    //audio.connecttohost("http://vis.media-ice.musicradio.com/CapitalMP3");
    //audio.connecttohost("https://stream.laut.fm/dresden1-fm");
    //audio.connecttohost("http://stream.radioparadise.com/aac-320");
    audio.connecttohost("http://0n-jukebox.radionetz.de/0n-jukebox.aac");
    //audio.connecttospeech("Kismalac kismalac engedj be", "hu");

    }

    void loop() {
    audio.loop();
    }

    Ha megnézed, még szöveget is meg tudsz szólalatani ezzel az egyszerű kóddal.

  • Janos250

    őstag

    válasz Undoroid #23281 üzenetére

    ESP32 valamelyik pici verziója?
    https://www.aliexpress.com/ssr/300000512/BundleDeals2
    Vagy a supermini?
    Ezekben elvileg van hardver I2S, de én még soha nem próbáltam.
    Van köztük 1000 Ft alatti is, de max 2000.

Új hozzászólás Aktív témák