Fórum témák

» Több friss téma
Lapozás: OK   62 / 62
(#) nedudgi válasza Johnycorp hozzászólására (») Máj 9, 2018 /
 
Elsőre én rámérnék a GPIO0, GPIO2, GPIO15 lábakra, ellenőrizném, hogy a CHPD, RST fel van-e húzva a tápra.
A legtöbb problémát a táp pufferelése okozza. legalább 300 mikroFarad kondenzátor kell. A 3,3V tápot milyen IC állítja elő?
(#) advisor válasza Johnycorp hozzászólására (») Máj 9, 2018 /
 
Szia ! Én is jartam mar igy megoldodott cserevel.
Van a weboldalukon lehetoseg reklamaciot bejelenteni
Probald meg.Nekem mukodott.
(#) Johnycorp válasza nedudgi hozzászólására (») Máj 9, 2018 /
 
A lábakat mértem, minden jónak tűnik.
Ezt megerősítve azon az egy panelen, amelyiken a modult cseréltem, az új elsőre indult.

A táp 330µF-al szűrve közel az ESP8266-hoz, valamint 100nF is van. AMS1117-3,3 állítja elő a feszültséget. Az egyéb perifériák pedig külön tápfeszültségről járnak, hogy ne legyen gond.
De próbáltam értelemszerűen már külső tápfeszültség forrást is. Ez 3,5V-ra volt beállítva. A helyzet változatlan (több, nem működő egységet is próbáltam így).

Pár nyákpanelt építettem már ESP-01, ESP12, ESP-07 és ESP-201 modulokkal. Most először jelentkezett ez a probléma. Nem egy már vagy egy éve működik különböző helyeken gond nélkül.
(#) Johnycorp válasza advisor hozzászólására (») Máj 9, 2018 /
 
Szia.

Köszönöm, megnézem. Nem tudom, hogy a vásárlástól eltelt hosszabb idő miatt mit sikerül intéznem.
(#) sanyisay válasza Zekageri hozzászólására (») Máj 9, 2018 /
 
Idézet:
„Nos értem a kódodat”


Azért elsiklottál egy pár apróság fölött.

function getData(url, data = "")

Két adatot vár, a második elhagyható, az első nem.
Te a másodpercenkénti meghívásnál paraméterek nélkül hívod meg a függvényt, de nem ez a legrosszabb hanem hogy a függvényen belülről meghívod saját magát. Rekurzióra itt nincs szükség.

Így kicsit jobban fest.
  1. setInterval(function() {
  2.   // Meghívjuk a funkciót 1 másodpercenként.
  3.         getData('readtimestring');
  4.         getData('setLED', "?LEDstate=led")
  5. }, 1000);                     //1000mSeconds update rate
  6.  
  7. var ServerURL = "http://192.168.1.108/";
  8.  
  9. function getData(url, data = "") {
  10.  
  11.   var xhr = new XMLHttpRequest();
  12.   xhr.open("GET", ServerURL + url + data, true);
  13.   var timeout = setTimeout(
  14.                 function() {
  15.                     xhr.abort();
  16.                     xhr.status = 599;
  17.                     alert("Nem jött válasz. nincs kapcsolat");
  18.                     xhr.responseText = "OFF Offline";
  19.                 }, 2000); // 2 másodpercet vár a válaszra
  20.               xhr.onreadystatechange = function() {
  21.                 if (xhr.readyState != 4) {
  22.                     return;
  23.                 }
  24.                 clearTimeout(timeout);
  25.                 if (xhr.status >= 200 && xhr.status < 300) {
  26.                     if (this.responseText != null) {
  27.  
  28.                         // esp felől érkező üzenet feldolgozása
  29.  
  30.                         if (url == "readtimestring") {
  31.                             document.getElementById("uptime").innerHTML =
  32.                             this.responseText;
  33.                         }
  34.                         if (url == "setLED") {
  35.                             document.getElementById("LEDState").innerHTML =
  36.                             this.responseText;
  37.                         }
  38.                     }
  39.                 }
  40.             }
  41.             xhr.send(null);
  42.  
  43. }
(#) Zekageri válasza sanyisay hozzászólására (») Máj 10, 2018 /
 
Azért gondoltam hogy paraméterek nélkül hívom meg mert úgy gondoltam hogy az egész függvényt kellene átnéznie 1 másodpercenként hogy lett-e változás , és nem a függvényen belül a paramétereket.
(#) Zekageri hozzászólása Máj 10, 2018 /
 
De végülis így totál nem megy. Még laggolva sem. Megnézi a led állapotát , ki is írja a serial monitorra nekem hogy LED , 1 másodpercenként , viszont nem írja ki , és az uptimet sem. Hátha rájövök mi lehet a probléma.
(#) sanyisay válasza Zekageri hozzászólására (») Máj 10, 2018 /
 
Valószínű az Access-Control-Allow-Origin hiányzik a fejlécből. de csak akkor hiányolja ha nem esp ről futtatod a html oldalt. ezt ki is írja a fejlesztői lapon. a megoldást itt már írtam régebben most nem tudom megkeresni, csak este.
(#) Zekageri válasza sanyisay hozzászólására (») Máj 10, 2018 /
 
Hát azt nem tudom mi lehet. :/
(#) sanyisay válasza Zekageri hozzászólására (») Máj 10, 2018 /
 
Ahogy eddig csináltad, ESP -n tárolod a html oldalt és onnan tölti le a böngésző, utána Jön az ajax kommunikáció.

Ilyenkor az válasz az ajax kérésekre így néz ki esp webserveren.

  1. server.send(200, "text/plane", ledState);


HTML oldalon pedig az ajax kérés így. JS ben.
  1. xhttp.open("GET", "setLED?LEDstate="+led, true);


Amikor viszont a html kódot a pc-n tartod és onnan indítod el offline módban, akkor
esp felől a válasz így néz ki.
  1. server.sendHeader("Access-Control-Allow-Origin", "*");
  2. server.send(200, "text/plane", ledState);


JS ben pedig így változnak a dolgok.

  1. xhttp.open("GET", "http://192.168.1.1/setLED?LEDstate="+led, true)


Ha küldésnél kihagyod az Access-Control-Allow-Origin fejlécet akkor nem kapja meg a böngésződ az adatokat, azaz megkapja csak hibásnak értékeli így a te kódodnak már nem adja tovább.

Persze azt csak feltételezem hogy offline módban van a html kódod mert a legutolsó belinkelt kódodban benne volt az esp ip címe ami nem kell ha esp-n tartod a html oldalt.
(#) Zekageri válasza sanyisay hozzászólására (») Máj 11, 2018 /
 
Nos van 2 db HTML oldal amit a PC-n tartok , nem használok SPIFFS-t , még nem tudtam bele építeni a kódomba sajnos , vacakolok vele. Megpróbálom ezzel az új információval megvalósítani most.
(#) Zekageri válasza Zekageri hozzászólására (») Máj 11, 2018 /
 
A baj hogy hiába IF-el van megvalósítva , ha nem írom meg a setInterval funkcióban hogy milyen adatokat nézzen át , akkor nem nézi és nem veszi észre hogy változott az URL , ha pedig bele írom mindet , hogy nézze 1 vagy tökmindegy mennyi időnként , akkor pedig mire átnézi mindent megint csak laggol mint az állat. Ha 1 vagy 2 getData-t írok be neki hogy nézze át , akkor megy mint a karikacsapás , lagg mentesen. (Az válasz idő korlátot kivettem mivel néha képtelen volt akár 10 másodperc alatt is válaszolni és idegesítő volt az alert ablak.)

Jelenleg így van a JS része:
  1. setInterval(function() {
  2.   // Meghívjuk a funkciót 1 másodpercenként.
  3.         getData('readtimestring');
  4.         getData('setLED', "?LEDstate=led")
  5.         getData('readIdoValue');
  6.         getData('readJani');
  7. }, 2000);                     //1000mSeconds update rate
  8.  
  9. var ServerURL = "http://192.168.1.108/";
  10.  
  11. function getData(url, data = "") {
  12.  
  13.   var xhr = new XMLHttpRequest();
  14.   xhr.open("GET", ServerURL + url + data, true);
  15.   /*var timeout = setTimeout(
  16.                 function() {
  17.                     xhr.abort();
  18.                     xhr.status = 599;
  19.                     alert("Nem jött válasz. nincs kapcsolat");
  20.                     xhr.responseText = "OFF Offline";
  21.                 }, 10000); // 2 másodpercet vár a válaszra*/
  22.               xhr.onreadystatechange = function() {
  23.                 if (xhr.readyState != 4) {
  24.                     return;
  25.                 }
  26.                // clearTimeout(timeout);
  27.                 if (xhr.status >= 200 && xhr.status < 300) {
  28.                     if (this.responseText != null) {
  29.  
  30.                         // esp felől érkező üzenet feldolgozása
  31.  
  32.                         if (url == "readtimestring") {
  33.                             document.getElementById("uptime").innerHTML =
  34.                             this.responseText;
  35.                         }
  36.                         if (url == "readIdoValue") {
  37.                             document.getElementById("ido").innerHTML =
  38.                             this.responseText;
  39.                         }
  40.                         if (url == "readJani") {
  41.                             document.getElementById("JaniValue").innerHTML =
  42.                             this.responseText;
  43.                         }
  44.                         /*if (url == "setLED") {
  45.                             document.getElementById("LEDState").innerHTML =
  46.                             this.responseText;
  47.                         }*/
  48.                     }
  49.                 }
  50.             }
  51.             xhr.send(null);
  52.  
  53. }


C-ben pedig :

  1. void handleJani(){
  2.   if (ardu.available() > 0) {
  3.     a = ardu.read();
  4.     Serial.println(a);
  5.   }
  6.  
  7.   if (a == '1'){
  8.     String JaniValue = String(Jani);
  9.     //server.sendHeader("Access-Control-Allow-Origin", "*");
  10.     server.send(200, "text/plane", JaniValue);
  11.     int b;
  12.     while(b < 1){
  13.       Serial.println("Szia Jani");
  14.       b++;
  15.     }
  16.     }
  17. }
  18. void handleIdo(){
  19.  if(a == '1'){
  20.  
  21.   time_t now = time(nullptr)
  22.   while(egyszer < 1){
  23.    
  24.     String IdoValue = String(ctime(&now));
  25.     //server.sendHeader("Access-Control-Allow-Origin", "*");
  26.     server.send(200, "text/plane", IdoValue);
  27.  
  28.       Serial.print("Bejelentkeztél ekkor: ");
  29.       Serial.println(IdoValue);
  30.       egyszer++;
  31.     }
  32.    }
  33. }
  34.  
  35. void handleUptime(){
  36.   sprintf(timestring,"%d days %02d:%02d:%02d", hh, mi, ss);
  37. //Serial.print(timestring);
  38.   server.sendHeader("Access-Control-Allow-Origin", "*");
  39.   server.send(200, "text/plane", timestring);
  40. }
  41.  
  42. void handleLED() {
  43.  String ledState = "OFF";
  44.  String t_state = server.arg("LEDstate");           //Refer  xhttp.open("GET", "setLED?LEDstate="+led, true);
  45.  //Serial.println(t_state);
  46.  if(t_state == "1")
  47.  {
  48.   digitalWrite(LED,LOW); //LED ON
  49.   ledState = "ON";       //Feedback parameter
  50.  }
  51.  else
  52.  {
  53.   digitalWrite(LED,HIGH); //LED OFF
  54.   ledState = "OFF";       //Feedback parameter 
  55.  }
  56.  server.sendHeader("Access-Control-Allow-Origin", "*");
  57.  server.send(200, "text/plane", ledState);          //Send web page
  58.  
  59. }
A hozzászólás módosítva: Máj 11, 2018
(#) Zekageri válasza Zekageri hozzászólására (») Máj 11, 2018 /
 
Lehet hogy valami a c-ben lévő handleJani és a handleIdo funkciókkal lesz , mivel ha csak az a kettő van benne vagy az egyik , már akkor sem jó. Ha másodpercenként lekérem a readJani url-t és a readIdoValue-t akkor már a browserben csak pending van és képtelen másra figyelni. Az uptime magában jól megy.
A hozzászólás módosítva: Máj 11, 2018

pending.png
    
(#) sanyisay válasza Zekageri hozzászólására (») Máj 12, 2018 /
 
Alakul.
Most azt kellene elérned, hogy ne hívd meg az esp-t másodpercenként jelen esetben 4x hanem csak 1x.

HTML elküldi a kérést esp felé, esp egy stringbe tölti a kért adatokat és visszaküldi a választ, html szétválogatja és beteszi a helyére.
A hozzászólás módosítva: Máj 12, 2018
(#) Electricboy hozzászólása Máj 13, 2018 /
 
Sziasztok!
Van egy ESP8266 alapú NodeMCU fejlesztő panelem, arduino ide-vel programozom, csináltam vele egy projektet amolyan távirányítós autó-féle, Telefonnal irányítom Blynk nevű programmal, viszont van egy gondom vele, ha véletlenül megszakad a wifi kapcsolat akkor elvesztem az irányítást, ez ugye logikus is, viszont azt kéne csinálnom, hogy ebben az esetben lekapcsolnám a motorokra menő kimeneteket, hogy ne kelljen futnom utána Tehát valahogy kéne figyelni egy wifi státuszt. Ötletek?
A hozzászólás módosítva: Máj 13, 2018
(#) nedudgi válasza Electricboy hozzászólására (») Máj 13, 2018 / 1
 
Nem ismerem ezeket a programokat, de vezeték nélküli vezérlés esetén a parancsokat úgy kellene értelmezni, hogy csak x ideig hajtsa végre. Így megáll, ha az időzítés lejárta előtt nem kap újabb parancsot.
(#) Kovabe válasza Electricboy hozzászólására (») Máj 13, 2018 / 1
 
Egy folyamatos kontakt jelet küldesz és ha megszünik akkor minden leáll.
Ezt szerintem programból simán meg tudod oldani ha eddig eljutottál.
(#) Rainbow15 hozzászólása Máj 13, 2018 /
 
Sziasztok

Kimenetre egy rövidzárat szeretnék. Egy régi Nokia 3210 nyomógombját szeretném rövidre zárni.
Ezt hogy oldhatnám meg, direktbe? Relé, és akármilyen kapcsolás nélkül.
Az egyik lábat lekötném GND-re, az OUT-ot pedig GND-re ha igaz a feltétel. Viszont amíg nem igaz, addig ad rá 3,3V-ot, ami nem hiszem, hogy jót tenne a telefonnak. Nem lehet megcsinálni, hogy ha nem igaz, ne adjon semmit?
(#) Bakman válasza Rainbow15 hozzászólására (») Máj 13, 2018 /
 
Elöször is az a kérdés, hogy a telefon hogyan kezeli a gombokat. Ha mátrixba vannak kötve (nagyon valószínű), akkor alaposan át kell tanulmányozni, milyen módon figyeli a gombokat, különben a GND-re zárással is könnyen kárt tehetsz a telefonban.

Ha a kimenetet bemenetté lehet konfigurálni, akkor bemenetként a harmadik állapot (tri state output) valósul meg, nagy ellenállású lesz a tápfesz és a GND felé is. Ha a kimenet eleve tudja a három állapotot, akkor nincs ilyen gond.
(#) Rainbow15 válasza Bakman hozzászólására (») Máj 13, 2018 /
 
Ezeknek utána nézek, köszönöm.
Egyszerűbb megoldás lehet egy optocsatoló inkább?
(#) gerleimarci válasza Rainbow15 hozzászólására (») Máj 13, 2018 /
 
Talán ÍGY is lehetne. Bár én még megtoldanám egy-két shift regiszterrel, hogy kevesebb lábat használjon.
(#) Zekageri válasza sanyisay hozzászólására (») Sze, 11:17 / 1
 
Kiderült hogy a lagg nem a JS-es funkciók miatt adódott. Végül rájöttem hogy amikor elküldöm a kérelmet a c-ben lévő funkciókhoz hogy mondják meg hogy van-e jani és idő akkor ha jött bejövő adat , akkor az IF-eknek nem csináltam else ágat , így ha nem volt adat , nem ment vissza sem 200 "ok" response sem pedig semmi más , így a böngésző nem tudta mire vélni. Végül megmondtam neki hogy ha nincs bejövő adat akkor is legyen response , mégpedig 204 , ami "no content"-et takar , így a böngésző nem ragadt le nála. Megszűnt a lagg és gyorsabb mint valaha.
Következő: »»   62 / 62
Bejelentkezés

Belépés

Hirdetés
Lapoda.hu     XDT.hu     HEStore.hu