Keresés

Hirdetés

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

  • DeniL

    tag

    Sziasztok,

    a segítségeteket szeretném kérni. Problémába ütköztem, 2 napja agyalok rajta, egyszerűen kezdem feladni és a kukába dobni az egészet :D

    Adott egy feladat:

    Van 6 db NFC tag-em, elneveztem őket 1-6-ig, van egy nfc olvasó (kezdetben egy NFC shield, később a nagyobb hatótáv és teljesítmény miatt ID-12LA vagy ID-20 lesz).

    A 6 darab tag-et megfelelő sorrendben szeretném beolvastatni. Azaz deklaráltam 6 constanst a 6 tag UID-ja alapján és azt szeretném, hogy kezdjen el beolvasni, ha odarakok bármilyen tag-et nem az elsőt, akkor addig olvasson, amíg meg nem kapja az első tag-et, amjd ha megkapta, menjen beljebb és kérje a második tag-et, ha nem a másodikat kapja, addig olvasson, amíg azt nem adom neki....

    A mintakódomban amivel szenvedek az a hibajelenség, hogy kéri az első tag-et, ha nem azt adom neki, akkor olvas újra, ez idáig rendben is van. Ha odaadom neki a megfelelőt, akkor kéri a második tag-et, majd ha nem azt adom oda, 1x lefut az else ág, hogy "újra beolvasás történik", majd másodpercek múlva kifut a kódom és kéri az első tag-et......nem értem miért.

    Még egy valami észrevételt vettem észre, a két NFC/RFID olvasó között (NFC shield/ ID-12LA), hogy amíg az nfc shieldhez odaérintek egy tag-et, akkor kiolvas egyszerre vagy 6x, tehát lehet a kódom lefutna, amíg a ID 12-nél ott tarthatom a tag-et, akkor is csak 1x olvassa le.

    Hogyan tudnám még azt kiküszöbölni, hogy egyszer olvasson (tag UID) és utána többet már ne, csak fusson tovább a kódom?

    És a satnya kódrészletem amin már 2 napja töröm a fejem hiába......

    #include <SPI.h>
    #include <PN532_SPI.h>
    #include <PN532.h>
    #include <NfcAdapter.h>

    String const myUID1 = "F0 D7 70 80";//
    String const myUID2 = "A0 3C 8D 24";//
    String const myUID3 = "C0 9A 0E 26";//
    String const myUID4 = "D2 82 C0 3D";//
    String const myUID5 = "A2 E1 C1 3D";//
    String const myUID6 = "C0 B6 06 26";//

    PN532_SPI interface(SPI, 10); // create a PN532 SPI interface with the SPI CS terminal located at digital pin 10
    NfcAdapter nfc = NfcAdapter(interface); // create an NFC adapter object

    void setup()
    {
    Serial.begin(115200);
    //Serial.println("NFC Tag Writer"); // Serial Monitor Message
    nfc.begin();
    }

    void loop()
    {
    if (nfc.tagPresent())
    {

    NfcTag tag = nfc.read();
    String idnumber = tag.getUidString();

    if (myUID1 == idnumber)
    {
    Serial.println("This is the first");

    NfcTag tag = nfc.read();
    idnumber = tag.getUidString();

    delay(4000);

    if (myUID2 == idnumber)
    {
    Serial.println("This is the second");
    NfcTag tag = nfc.read();
    idnumber = tag.getUidString();

    delay(4000);

    if (myUID3 == idnumber)
    {
    Serial.println("This is the second");
    NfcTag tag = nfc.read();
    idnumber = tag.getUidString();

    delay(4000);

    if (myUID4 == idnumber)
    {
    Serial.println("This is the fourth");
    NfcTag tag = nfc.read();
    idnumber = tag.getUidString();

    delay(4000);

    if (myUID5 == idnumber)
    {
    Serial.println("This is the fifth");
    NfcTag tag = nfc.read();
    idnumber = tag.getUidString();

    delay(4000);

    if (myUID6 == idnumber)
    {
    Serial.println("This is the sixth");
    }
    else
    {
    Serial.println("Not correct tag!");
    }
    }
    else
    {
    Serial.println("Not correct tag!");
    }
    }
    else
    {
    Serial.println("Not correct tag!");
    }
    }
    else
    {
    Serial.println("Not third tag!");
    do {
    NfcTag tag = nfc.read();
    idnumber = tag.getUidString();
    delay(2000);
    }
    while (myUID3 == idnumber);
    }
    }
    else
    {
    Serial.println("Not second tag!");
    do {
    NfcTag tag = nfc.read();
    idnumber = tag.getUidString();
    delay(2000);
    }
    while (myUID2 == idnumber);
    }
    }
    else
    {
    Serial.println("Not firts tag!");
    do {
    NfcTag tag = nfc.read();
    idnumber = tag.getUidString();
    delay(2000);
    }
    while (myUID1 == idnumber);
    }
    }
    else
    {
    Serial.println("Place tag to the reader!");
    }
    }

  • DeniL

    tag

    válasz JozsBiker #1869 üzenetére

    Köszönöm nektek a segítséget, nekifogok újra, így már tényleg "értelmezhetőbb a logika"....
    Rossz irányba indultam el, van még mit tanulni :)

  • DeniL

    tag

    Sziasztok,

    még mindig az NFC olvasó, még mindig ugyan az a projektem fut. Tehát a 6 Tag-et csak egy adott sorrendben akarom beolvasni, ha más tag-et kap, mint amit kellene, akkor olvasson újra.

    1 hete küzdök vele, bár ahhoz képest, hogy jó 2 héttel ezelőtt még az arduinóról sem sokat hallottam, haladok, de nagyon lassan.

    Időközben megjött az ID-12LA típusú nfc/rfid olvasó, így mellőztem az NFC shieldet. Viszont ehhez a korábban használt 6 darab tag nem jó, így rendelhetek másikat. Amíg a megfelelő mennyiségű tag-re várok, 2 tag-et próbáltam összehasonlítani és tudni illik, ha kettőt végre sikerül, akkor utána a többit már gyerekjáték lenne.....

    Csak jutnék már túl azon a kettőn.

    Bekerült a projektembe egy 20x4-es LCD kijelző is, így a kiíratás már arra történik.

    Közben próbáltam megfogadni két korábban segédkező fórumtárs javaslatát, hogy tároljam a tag-ek azonosítóit tömbben, a másik pedig a while ciklus lett volna.

    Csak simán egymás után futtatott while-kkal is kifutott a kódból, bár nem értem miért.....
    De nem adom fel, keresem a megoldást.

    Tehát a kódomban van 1 tömbön, benne a 2 tag azonosítójával, és do-while-al pörgetem loopban a ciklust. 1 flag-et használok, ha van egyezés a flag értéke növekszik, ha nincs egyezés, marad a flag értéke.

    Problémáim:

    Ha simán minden kiíratás nélkül futtatom a kódom, többszöri tesztelésre ha helyes kártyát adok "Good job", ha helytelent "Wrong sequence". Ez így helyén is lenne, de:

    1. ha lefut 1x hibátlanul, kifagy a végén az arduíno, nem indul újra az egész ciklus, tuti a kódom hibás, nem tudom, hogyan tudnám újra elől kezdeni vele a beolvasást.

    2. szerettem volna a végén kiírni, ha megvan a 2 kártya helyes sorrendje, hogy "Nice job" vagy valami hasonló, de egyszerűen nem találom hová tudnám beszúrni. Én naívan beraktam a while után (gondoltam ha kilép majd a ciklusból, pont jó lesz), aztán eltelt 2 óra, mire rájöttem, hogy rfid.available miatt bármikor kártyát érintek az olvasóhoz, meg fog jelenni a kiíratásom...tehát zsákutca

    3. hogyan lehetne az lcd kijelzőn a sort törölni? Nincs valami clearline vagy hasonló? Nagyon kókány, de jobb ötletem nem támadt, mint hogy teleírom space-el......

    4. gondoltam folytatom a kiíratást azzal, hogy odaírom, hogy "első (kártya)" ha az elsőt húzom le a "good job" szöveg után, majd a "második" szócskát a második kártya lehúzásakor. Mivel 1 ciklus pörög, nehéz volt eldöntenem hogy a "good job szöveg" melyik lehúzásra is vonatkozott (korábban nagyok voltak a lcd printnél a delay-ek stb stb stb), meg amúgy is szeretném kiíratni, így hát csináltam egy második tömböt és szintén a flag változóval szedem ki a tömbből az elemet, viszont amint megcsinálom a helyes sorrendet, kiírja első, második, majd egy pillanatra belefut az else ágba és kiírja "Wrong sequence". Képtelen vagyok megfejteni, hol hibázom.

    Ha leszedem a kiíratást, csak marad a két rövid szöveg "good" vagy "wrong" semmi baja. Mihelyst mögé szúrom a "első" és "második" szavakat, a ciklus vége belefut az else ágba....Néztem a flag értékét, helyesen változik.....

    Hát második körben így ennyi. Nem adom fel, viszont valami útmutatást szívesen fogadnék lelkes amatőrként....köszi előre mindenkinek, és akkor íme a kódom...

    #include <SoftwareSerial.h>
    #include <ID20Reader.h>
    #include <Wire.h>
    #include <LiquidCrystal_I2C.h>
    #include <ID20Reader.h>
    int rx_pin = 2;
    int tx_pin = 8;
    ID20Reader rfid(rx_pin, tx_pin);
    LiquidCrystal_I2C lcd(0x27,20,4);

    void setup() {
    Serial.begin(9600);
    lcd.init();
    lcd.backlight();
    lcd.setCursor(0,0);
    lcd.print("****Swipe a card****");
    }

    char* sequence[] = { "7C005669FD" , "7C00567C09" };
    char* eredmeny[] = { " elso" , " masodik" };
    int flag = 0;
    int max_tomb = 2;
    String code;


    void olvas()
    {
    rfid.read();

    if (rfid.available())
    {
    do{
    code = (String)rfid.get();
    if (code == sequence[flag])
    {
    flag++;
    lcd.setCursor(0,1);
    lcd.print("Good job!" + (String)eredmeny[flag-1]);
    delay(2000);
    lcd.setCursor(0,1);
    lcd.print(" ");
    }
    else
    {
    lcd.setCursor(0,1);
    lcd.print("Wrong sequence!");
    delay(2000);
    lcd.setCursor(0,1);
    lcd.print(" ");
    }
    Serial.print(flag);
    }while(max_tomb == flag);


    }

    }

  • DeniL

    tag

    válasz Nagytoll #1892 üzenetére

    Nem nagyon hiszem, hogy a tag UID-jét felül tudod írni. De amúgy milyen célból is kellene? Fel tudod írni a tag-et más tartalommal, majd kiolvasáskor a tartalomra hivatkozva dolgozhatsz a tag-el. Nálam jelen esetben csak "műveletet végez", nekem üresek a tag-jeim, szükségtelen is lenne bármivel is felírnom, ha úgysem használom.

    De majd valaki okosabb kijavít, ha hülyeséget írok....

  • DeniL

    tag

    válasz JozsBiker #1898 üzenetére

    Danex: az ott loop volt, de utána saját eljárásnak írtam meg és void loopban azt hívtam meg, de azzal sem voltam előrébb. Már vagy 12 féle verzióm van erre a problémámra, szerintem nem a legutolsót másolhattam be, de köszönöm az észrevételt.

    Pubszon: tanulmányozom a feljavított kódom, holnap melóban ez lesz az első, hogy teszteljem....
    (sajnos ott kezdtem el, itthon meg másfajta kártyaolvasóm van és lusta vagyok átírni a beolvasáshoz szükséges dolgokat.....majd ha egyszer már sikerült, utána az itthonival is kezdek valamit, de nem ez a cél egyenlőre.

    Holnap beszámolok róla, hogy lefut-e. Köszi!

    JozsBiker: do...while-am van simán while helyett, de rá fogok nézni. Kezdek bekavarodni, de már nem fogom abbahagyni, amíg össze nem hozom és meg nem értem.

    A változó == konstans hasoníltást pedig köszönöm.

    Holnap folytatom... :)

  • DeniL

    tag

    válasz bacus #1900 üzenetére

    "A gond szerintem az, hogy a flag eléri a 3-at, ahhoz meg már nincs semmi sem rendelve."
    Hogyan tudnám ezt kiküszöbölni a while-s kódommal, hogy látszólag ne lefagyást kapjak?

    A cél:

    Adott egy gyártósori oktatóterem, egy mintagyártósorral, ahol alkatrészeket csavaroznak össze.

    Lóg az ember szemmagasságában egy csavarbehajtó, a munkaasztalon befogatod az alkatrész alját, majd rárakot a tetejéd, rázársz egy mehanikát amin 6 db csavarhely van. Beleejted a kis csavarjaid és csavarozod, a megfelelő sorrendben.

    Kb egy pár A4-es oldalra van leírva az adott munkaállomás használati utasítása és az oktatók szóban tanítgatják az újoncokat. Csak megadott sorrendben húzhatod be a csavarokat, mint ahogy egy autó kerékcsere esetében sem sorban, hanem átlósan húzod meg a csavarokat.

    Hiába van felszámozva a csavarlyuk, vagy mondják el az oktatók, vannak olyan lelkes újoncok, akik azért sem így csinálják.
    Sajnos mellőzném az olyanokat, hogy itt userhiba van. Van, viszont nem tudom felülbírálni a felsőbb vezetői döntéseket, amik pedig a következők voltak. Tegyük vizuálisan is láthatóvá az elvégzendő munka menetét....

    Innen indult el egy csapat abba az irányba, hogy rendeltek okosszemüveget, majd diasorozaton vetítik az ember "szeme elé" az eddig papír formában történő oktatási anyagot....

    Én viszont egyenlőre raspberryzek és arduinozok/nék....6 db nfc tag-et helyezek a 6 csavarlyukhoz, egy olvasót a csavarbehajtóra. Amint a csavarlyuk közelébe ér, olvassa a tag-et, kijelzőn (és hangjelzéssel) visszakapom az értéket.... persze későbbi cél, hogy ezt a fajta szövegkiíratásos kijelzést vigyem át az android alapú okosszemüvegre, de azt hagyjuk....itt már az alapoknál buktatókba ütköztem :D

    Persze ezek egyenlőre nem élesben mennek. Pénz van, embert aki ért hozzá nincs, így kaptam pár cuccot, hogy "legózzak".
    Engem is motivál, mert érdekel, aztán ha kisül belüle valami, talán mást is motivál az eredménye....

    Persze ha már így kérdezed mi a cél....

    A másik irány amibe el szeretnék mozdulni, egy olyan viselhető kesztyű megvalósítása, amin kis akksi, nfc olvasó van, ami wifin/bluetoot/xbee-n kommunikál egy raspberry-vel. Minden egyes gyártósori terméken már vagy vonalkód, qr-kód vagy lehetséges nfc tag is felkerül a tiszta nyákra, mielőtt végigmegy egy alkatrész beültetétsen. A legvégén embereket alkalmaznak kézi beolvasókkal, akik rögzítik a darabszámot egy-egy ládában szállítás előtt, amit SAP-ba tolnak be.

    Viselhető kesztyűvel ezt váltanám ki. Beolvasnám már a munkadarab megérintése közben a terméket....

    Szóval ötletek vannak, csak tanakodnom kell a megvalósításon :)

    [ Szerkesztve ]

  • DeniL

    tag

    válasz bacus #1904 üzenetére

    Pénz a játékszerekre van. Tehát azt es annyi arduino es egyeb boardot es kiegészítőt rendeltethetek amennyit akarok, viszont erre külön embert nem vesznek fel. En pedig csak egy átkozott gyakornok vagyok akinek odadobták a csontot hogy játszak vele, óránként netto 600 ft-ert. Szóval a van pénz nézőpont kérdése. Nekem nincs belőle, csak a tapasztalatom gazdagodik ;)

    [ Szerkesztve ]

  • DeniL

    tag

    válasz Pubszon #1903 üzenetére

    Működik, köszönöm. Mar csak azt nem értem az en do-while-mmal mi a probléma es hogyan orvosolhatnám. Persze mivel a kódom aikeresen kijavítottad a problémám megoldva. De tanulni akarok a hibámból :)

  • DeniL

    tag

    Sziasztok,

    6 nyomógombot "szimulálnék" a GND és 0-5-ig a digitális pinek összeérintésével. A 6 nyomógombot adott sorrendben kellene lenyomni, de ha ez nem így történik, akkor futás közben kellene visszajelzést adnia, hogy "elrontottad". Ne csak a végén ellenőrizzen, ha le lett nyomva mind a 6.

    Elkezdtem többféleképpen, de már kezdem feladni és belefáradni. Remélem találok köztetek olyanokat, akik a helyes útra térítenek és segítségemre lesznek. Köszönöm :)

    1.

    #include <SoftwareSerial.h>
    int button1 = 0;
    int button2 = 1;
    boolean button1_state = false;
    boolean button2_state = false;
    int mode = 0;
    void buttoncheck1(){
    button1_state = !digitalRead(button1);
    }
    void buttoncheck2(){
    button2_state = !digitalRead(button2);
    }
    void setup() {
    Serial.begin(9600);
    pinMode(button1, INPUT);
    pinMode(button2, INPUT);
    buttoncheck1();
    buttoncheck2();
    }
    void loop() {
    while (mode == 0){
    Serial.println("elso ciklus");
    while (mode == 0){
    delay(2000);
    buttoncheck1();
    if (button1_state==true) {
    Serial.println("ez az elso");
    mode = 1;
    }
    else {
    Serial.println("rossz sorrend 1.");
    }
    }
    }
    while (mode == 1){
    Serial.println("masodik ciklus");
    while (mode == 1){
    delay(2000);
    buttoncheck2();
    if (button2_state==true) {
    Serial.println("ez az masodik");
    //mode = 3;
    }
    else {
    Serial.println("rossz sorrend 2.");
    }
    }
    }
    }

    2.

    #include <SoftwareSerial.h>
    int ButtonPins[] = {0, 1};
    int buttonState[] = {HIGH, HIGH};
    int index;
    int numberOfBUTTON = 2;
    void setup() {
    Serial.begin(9600);
    /*for (int i = 0; i < numberOfBUTTON; i++) {
    pinMode(ButtonPins, INPUT_PULLUP);
    }*/
    pinMode(ButtonPins[1], INPUT_PULLUP);
    pinMode(ButtonPins[2], INPUT_PULLUP);
    }
    void loop() {
    for (index = 0; index < numberOfBUTTON; index++)
    {
    buttonState[index] = digitalRead(ButtonPins[index]);
    if (buttonState[index] == LOW) {
    Serial.print((String)(ButtonPins[index]));
    Serial.print(" elem");
    } else {
    Serial.println("rossz sorrend");
    }
    }
    delay(2000);
    }

    3.

    #include <SoftwareSerial.h>

    int scheme[6];
    int ints_read[6];
    int but_state[6];

    void buttoncheck(){
    int i,j;

    for(j=0;j<6;j++)
    {
    if(but_state[j] != digitalRead(j))
    {
    for(i=5;i>0;i--)
    ints_read[i]=ints_read[i-1];
    ints_read[0] = j+1;

    }
    but_state[j] = digitalRead(j);
    /*Serial.print(ints_read[j]);
    Serial.print(" ");
    Serial.println(scheme[j]); */
    }

    }

    int match_buttons()
    {
    int i;
    int j;

    for(j=0;j<6;j++)
    {
    if(ints_read[j] == 0)
    return j;
    if(scheme[j] != ints_read[j])
    {
    for(i=0;i<6;i++)
    ints_read[i] = 0;
    return -1;
    }
    }
    return 6;
    }


    void setup() {
    int j;
    Serial.begin(9600);
    for(j=0;j<6;j++)
    {
    pinMode(j, INPUT);
    ints_read[j] = 0;
    }
    pinMode(6, INPUT);
    }

    void loop()
    {

    boolean match = false;

    //gombok FORDÍTOTT sorrendben. A helyes lenyomási sorrend 2,3,5,4,1,6;
    scheme[0] = 6;
    scheme[1] = 1;
    scheme[2] = 4;
    scheme[3] = 5;
    scheme[4] = 3;
    scheme[5] = 2;

    delay(2000);


    while(true)
    {
    buttoncheck();
    if(match_buttons() == -1)
    {
    Serial.println("rossz sorrend");
    //Az eddig beöltött minta már törölve
    }
    if(match_buttons() == 6)
    {
    Serial.println("jó sorrend");
    break;
    }
    delay(100);
    }


    }

  • DeniL

    tag

    Sziasztok,

    segítsetek kérlek. Egy ESP-01+DTH22-vel tolom fel az értékeket Thingspeakre. Aug26-tól megy folyamatosan, viszont ha exportálom a hőmérsékleti és páratartalom értékeket, akkor csak az aug 30 ~23:00-tól most 15:30-ig tolja ki.

    (10 percenként van kiolvasás, látom is, hogy már ~340 érték született).

    Semmi más kérdésem nem lenne, csak annyi, hogyan tudom megjeleníteni grafikonon a kezdeti értéktől (aug26-tól mostanáig) az értékeket és ugyan ezt exportálni? Hiába nézem a thinspeakes channel beállításaimat, semmi erre vonatkozó dolgot nem látok/találok.

  • DeniL

    tag

    Sziasztok,

    szeretnék megvalósítani egy "projektet", amihez az ötleteitekre lenne szükségem (nem a kész megoldásra).
    Irodában dolgozom, ahol elektromos kapcsoló van felszerelve minden íróasztalhoz, amit megnyomva, a nyomás pillanatában nyitja az iroda bejárati ajtaját.
    A ajtónyitót egy külső cég szerelte fel, nem ismerem, csak egy kapcsoló lóg az asztalomnál.
    Szeretném ezt a kapcsolót kényelmi okokból kiváltani egy arduinóval vagy esp8266-al, webes felületről vagy applikációt írva hozzá, semmi más funkciót nem szeretnék elérni, csak annyit, hogy egy webes felületen lévő gombot megnyomva 10 másodpercig tartsa összezárva a kapcsolóba bekötött 2 vezetékét.
    A kapcsoló tudtommal 12V-os feszültség alatt van.

    Mire is lenne szükségem? egy relét vezéreljek vele? Csinált már valaki hasonlót?

    (Még talán RFID-s megoldásra is gondoltam, hogy egy tag-et érintve egy olvasóhoz, nyitná az ajtót).

    [ Szerkesztve ]

  • DeniL

    tag

    Sziasztok,

    köszönöm a válaszokat, így már lesz hol elindulni. Még az is nehezíti a dolgot, hogy simán használhatnék ESP-01-et, viszont a jelenlegi cégemnél nem tudom megadni neki a wifi certificatet, így vagy várok még egy hónapot mire berendelek kínából egy "lan shieldet" és használok egy arduinot lanra kötve, vagy van kéznél egy raspberry pi 2 is.

    Igazából az lenne a lényege, hogy vagyunk 600-an az irodában, de elszórva vannak ajtónyitók az asztalokra felszerelve, nehézkes nyúlni érte és ha már eleve az ember a monitorát lesi IT-s révén egész nap, akkor kényelmesebb lenne onnan megoldani mindezt valahogy.

    RFID is jó lenne a gondolatom szerint, de nem minden asztalra akarok olvasókat és tag-eket pakolászni, így csak 1 helyre kell bekötnia relét és mögé az arduino/esp8266/raspberry-t, onnantól bárki eléri weben keresztül, még jobb lenne minderre valami applikáció, a windows tálcán az értesítési területen megülve, ami örökké kapcsolatban áll, nem kell betölteni a weblapot stb.

    Nem magunkat akarjuk szabályozni a beléptetéssel, az már eleve adott mindenkinek a kártyájával, hanem a vendék usereket beengedni.

  • DeniL

    tag

    Sziasztok,

    valaki használ PoE-s Ethernet Shieldet Uno R3-hoz? Ha igen, mely típust és mi a tapasztalata vele?
    Köszönöm!

  • DeniL

    tag

    Sziasztok,

    több hete görcsölök pár darab ESP-01-el. Hőmérsékletet mérnék vele egy ds18b20-al ami feltölti az értéket 15 percenként Thingspeakre (esp-01,2xAA,10uF kondi, ds18b20).
    Már sikerül működtetnem egyet ~22 napja elemről, gondoltam az ünnepek közeledtével lesz időm és folytatom a dolgot. Ahhoz. hogy ne fogyasszon sokat, forrasztanom kellett az esp-01-en a gpio16-ost és a reset lábat. Megszenvedtem ezzel a három darabbal. 1 db mint korábban írtam működik.

    A másik kettővel egyszerűen nem bírok, olyan anomáliákat produkálnak, hogy nem tudom mi lehet a baj, persze megeshet, hogy épp "rosszakat fogtam ki kínából".

    1. elnyomta úgy itthon a wifit, jobban mondva a routereket, zavarta a jelet, hogy nem volt hálózatom, mihelyst kikapcsoltam az esp-t, a net visszajött, mindeközben forrósodott.

    2. van, hogy mér 1-2x, aztán elkezd melegedni, de veszettül (és el is dobta a wifit, nem mér stb).

    3. ha mért szépen, kikapcsoltam alóla a routert, megszakadt a wifi, nem tudott visszakapcsolódni rá mihelyst a routert újra bekapcsoltam és pár perc elteltével forrósodott, inkább elvettem alóla az áramot.

    4. Gondoltam nem elég neki a tápellátást, hisz magának az esp-01-nek 3,3-3,6V kellene, ehelyett én adok neki 2 ceruzaelemet (3V) és még ezen az elemen lóg a dallas hőmérő is.....de nem, mert megtápláltam ftdi usb serual átalakítóval, ugyan ez a jelenség. Adtam neki egy 5V 2200mAh powerbankról AMS1117-3.3V LDO-val, a jelenség ugyan az. Adtam neki áramot egy telefonakkumlátorról (3.7V, de mivel szinte fel volt töltve, 3.97V volt benne, egyet mért így is, aztán kapufa....)

    5. Gondoltam már arra is, hogy ránéztem a routerre, nehogy csak próbálkozzon, de nem kap a DHCP-n IP-t, de ott semmi baj....

    6. nézem serial monitorról, néha semmi gond, kapcsolódik a wifihez, megvan az ip címe, néha meg ezeket dobálja folyamatosan (villogtatva a kék ledet rajta)...

    >>>stack>>>
    3ffff9c0: 00000046 00000108 00000138 00000002
    3ffff9d0: 00000138 00000000 3ffe82f0 402283e5
    3ffff9e0: 383e4246 00002c34 00000004 4022a788
    3ffff9f0: 00000000 3ffee2a8 00000006 402283e5
    3ffffa00: 1e201d19 19161310 000a000d 00020008
    3ffffa10: 0000354b 4022835c 4022bfac 3ffee2a8
    3ffffa20: 00000ff4 4022bfc1 3ffee2a8 3ffee2a8
    3ffffa30: 00000001 3ffee354 00000001 00000001
    3ffffa40: 3ffee2a8 60000600 60000200 3ffe846c
    3ffffa50: 40227c03 00000000 3ffee2a8 00000001
    3ffffa60: 401066ea 60000e00 00000024 3fffff10
    3ffffa70: 4022cd5e 3ffffa80 00000008 4021c30e
    3ffffa80: 00000000 00000001 00000099 5e000000
    3ffffa90: 00000001 a200997c 000071f1 3ffefecc
    3ffffaa0: 00000000 40201d6d 3ffefecc 3ffefecc
    3ffffab0: 3ffede1e 40231100 00000001 00000000
    3ffffac0: 00000000 3ffefecc 000002f4 003fc000
    3ffffad0: 40105e4e 000000b7 3ffede1e 40218e97
    3ffffae0: 40219510 60000e00 3ffefecc 402194eb
    3ffffaf0: 40105694 000003fd 000000b7 60000200
    3ffffb00: 3fffff10 32ffa378 d2c372fa ded66f4c
    3ffffb10: ffffffff ffffffff ffff0003 0000000e
    3ffffb20: 6e65704f 5f747257 47342e32 ef007a68
    3ffffb30: efeffefe 01c200fe 00001c00 00000000
    3ffffb40: 00030503 31000003 35343332 00383736
    3ffffb50: feefeffe 00000001 3ffe84c1 40203f44
    3ffffb60: 00000000 00000001 feefeffe 3ffe8890
    3ffffb70: 3fffdad0 00000000 3ffef5c0 40203909
    3ffffb80: 3ffe84c0 00000000 29f4270d ede0eafb
    3ffffb90: 93a97c9a 5cc32bc5 fbb87eb7 7004dc30
    3ffffba0: 181ea151 871af5ad ffffffff ffffffff
    3ffffbb0: ffffffff ffffffff ffff00ff ffffffff
    3ffffbc0: 0000000a 5f505345 43373939 00004535
    3ffffbd0: 00000000 00000000 00000000 00000000
    3ffffbe0: 00000000 00000000 00000000 00000000
    3ffffbf0: 00000000 00000000 00000000 00000000
    3ffffc00: 00000000 00000000 00000000 00000000
    3ffffc10: 00000000 00000000 00000000 00000000
    3ffffc20: 00000000 ffffffff ffffffff ffffffff
    3ffffc30: ffffffff ffffffff ffffffff ffffffff
    3ffffc40: ffffffff 000001ff ffffff04 ffff0001
    3ffffc50: 0000000e 6e65704f 5f747257 47342e32
    3ffffc60: ef007a68 efeffefe 01c200fe 00001c00
    3ffffc70: 00000000 34333231 38373635 efeffe00
    3ffffc80: 000001fe fe84c100 203f443f 00000040
    3ffffc90: 00000100 efeffe00 fe8890fe ffdad03f
    3ffffca0: 0000003f fef5c000 2039093f fe84c040
    3ffffcb0: 0000003f ffffffff ffffffff ffffffff
    3ffffcc0: ffffffff ffffffff ffffffff ffffffff
    3ffffcd0: ffffffff ffffffff ffffffff ffffffff
    3ffffce0: ffffffff ffffffff ffffffff ffffffff
    3ffffcf0: ffffffff ffffffff ffffffff ffffffff
    3ffffd00: ffffffff ffffffff ffffffff ffffffff
    3ffffd10: ffffffff ffffffff ffffffff ffffffff
    3ffffd20: ffffffff ffffffff ffffffff ffffffff
    3ffffd30: ffffffff ffffffff ffffffff ffffffff
    3ffffd40: ffffffff ffffffff ffffffff ffffffff
    3ffffd50: ffffffff ffffffff ffffffff ffffffff
    3ffffd60: ffffffff ffffffff ffffffff ffffffff
    3ffffd70: ffffffff ffffffff ffffffff ffffffff
    3ffffd80: ffffffff ffffffff ffffffff ffffffff
    3ffffd90: ffffffff ffffffff ffffffff ffffffff
    3ffffda0: ffffffff ffffffff ffffffff ffffffff
    3ffffdb0: ffffffff ffffffff ffffffff ffffffff
    3ffffdc0: ffffffff ffffffff ffffffff ffffffff
    3ffffdd0: ffffffff ffffffff ffffffff ffffffff
    3ffffde0: ffffffff ffffffff ffffffff ffffffff
    3ffffdf0: ffffffff ffffffff ffffffff ffffffff
    3ffffe00: ffffffff ffffffff ffffffff ffffffff
    3ffffe10: ffffffff ffffffff ffffffff ffffffff
    3ffffe20: ffffffff ffffffff ffffffff ffffffff
    3ffffe30: ffffffff ffffffff ffffffff ffffffff
    3ffffe40: ffffffff 04080000 001c110c 01010000
    3ffffe50: ffffffff 00000003 ffffff00 ffffffff
    3ffffe60: ffffffff ffffffff ffffffff ffffffff
    3ffffe70: ffffffff ffffffff ffffffff ffff0064
    3ffffe80: 00000000 00000000 ffffffff ffffffff
    3ffffe90: ffffffff ffffffff ffffffff ffffffff
    3ffffea0: ffffffff ffffffff ffffffff ffffffff
    3ffffeb0: ffffffff ffffffff ffffffff ffffffff
    3ffffec0: ffffffff ffffffff ffffffff ffffffff
    3ffffed0: ffffffff ffffffff ffffffff ffffffff
    3ffffee0: ffffffff ffffffff ffffffff ffffffff
    3ffffef0: ffffffff 29f4270d ede0eafb 93a97c9a
    3fffff00: 5cc32bc5 fbb87eb7 7004dc30 181ea151
    3fffff10: 871af5ad ffffffff ffffffff ffffffff
    3fffff20: ffffffff ffffffff ffffffff ffffffff
    3fffff30: ffffffff ffffffff ffffffff ffffffff
    3fffff40: ffffffff ffffffff ffffffff ffffffff
    3fffff50: ffffffff ffffffff ffffffff ffffffff
    3fffff60: ffffffff ffffffff ffffffff ffffffff
    3fffff70: ffffffff ffffffff ffffffff ffffffff
    3fffff80: ffffffff ffffffff ffffffff ffffffff
    3fffff90: ffffffff df617d98 c9576eff 106067d9
    3fffffa0: 400001e9 9d6751dc ffffff00 55aa55aa
    <<<stack<<<

    ets Jan 8 2013,rst cause:4, boot mode:(3,7)

    wdt reset
    load 0x4010f000, len 1384, room 16
    tail 8
    chksum 0x2d
    csum 0x2d
    v00000000
    ~ld

    Exception (0):
    epc1=0x4022a2e1 epc2=0x00000000 epc3=0x00000000 excvaddr=0x00000021 depc=0x00000000

    ctx: sys
    sp: 3ffff820 end: 3fffffb0 offset: 01a0

    7. Elkezdtem utánaolvasgatni ennek a melegedésnek és hogy a környező wifiket elnyomja, de nem sok értelmesre találtam, sok helyen javasolták a firmware frissítést, ma megcsináltam mind a két "hibásnak vélt modullal is", tökéletesen felment rá.

    8. Bármilyen kódot rátöltök, felmegy rá.
    9. Még talán annyit megjegyeznék, hogy az egyik ESP-vel már kicsit túl "gányoltam" és leszedtem róla a 2 ledet és a két ellenállást.....próbálom feltornászni az akksi üzemidejét,de jelenleg már 2 modullal olyan falba ütköztem, amit nem értek. Remélem köztetek találkozott már valaki hasonlóval....

    Tehát a 3 modulból 1-en (rajta minden led, csak forrasztva a deep sleep miatt), ugyan ez a felállás a második "hibással", a harmadik esp-n többet akartam spórolni, így leszedtem a ledeket is...

    Tehát tanácstalan vagyok, az oké, hogy egyszer max elcsesztem, de hogy már kétszer is? Talán ott hibáztam a legelején, hogy egyik modult sem teszteltem, hanem mivel "tudom hogy szeretném használni, nekiálltam "átalakítani"....
    Még van egy épp Esp-01-esem, de lehet ideje lesz áttérnem 07-re vagy 12-re, ott kicsit könnyebb összeforrasztani a két lábat a deep sleepnek....

    Köszönöm előre is!

    [ Szerkesztve ]

  • DeniL

    tag

    válasz Janos250 #4526 üzenetére

    @ fpeter84 köszi, fogadom a tanácsod....áttérek másik boardra.
    @Janos250 szintúgy köszönöm a tanácsod.

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