Fórum témák

» Több friss téma
Lapozás: OK   67 / 138
(#) neogeo2 válasza Gránátalma hozzászólására (») Júl 3, 2018 /
 
Iderakok két függvényt, ami a konfigurációhoz tartozó változókat menti ki és tölti vissza:
  1. #include <FS.h>
  2.  
  3. String ssid = "ssid";
  4. String pass = "pass";
  5. String host = "host";
  6. String uname = "admin";
  7. String upass = "admin";
  8. byte daytemp = 20;
  9. byte moontemp = 18;
  10. byte hysteresis = 1;
  11. unsigned int samplerate = 10;
  12. byte progmode = 0;
  13. const static String configName = "/config.txt";
  14.  
  15. void SaveConfig(){
  16.   configFile = SPIFFS.open(configName, "w");
  17.   configFile.print(ssid); configFile.print(",");
  18.   configFile.print(pass); configFile.print(",");
  19.   configFile.print(host); configFile.print(",");
  20.   configFile.print(uname); configFile.print(",");
  21.   configFile.print(upass); configFile.print(",");
  22.   configFile.print(daytemp); configFile.print(",");
  23.   configFile.print(moontemp); configFile.print(",");
  24.   configFile.print(hysteresis); configFile.print(",");
  25.   configFile.print(samplerate); configFile.print(",");
  26.   configFile.print(progmode); configFile.print(",");
  27.   configFile.close();
  28. }
  29.  
  30. void LoadConfig(){
  31.   configFile = SPIFFS.open(configName, "r");
  32.   ssid = configFile.readStringUntil(',');
  33.   pass = configFile.readStringUntil(',');
  34.   host = configFile.readStringUntil(',');
  35.   uname = configFile.readStringUntil(',');
  36.   upass = configFile.readStringUntil(',');
  37.   daytemp = configFile.readStringUntil(',').toInt();
  38.   moontemp = configFile.readStringUntil(',').toInt();
  39.   hysteresis = configFile.readStringUntil(',').toInt();
  40.   samplerate = configFile.readStringUntil(',').toInt();
  41.   progmode = configFile.readStringUntil(',').toInt();
  42.   configFile.close();  
  43. }
  44.  
  45. void setup(){
  46.     configFile = SPIFFS.open(configName, "r");
  47.     if (!configFile) {    // no config file exists
  48.       Serial.print("Writing to config file because not exist...");
  49.       SaveConfig();
  50.       Serial.println("success");
  51.     } else {
  52.       Serial.println("Config file present, loading data");
  53.       LoadConfig();
  54.     }
  55. }


Ez nekem így működik.
A hozzászólás módosítva: Júl 3, 2018
(#) neogeo2 válasza david10 hozzászólására (») Júl 3, 2018 / 1
 
Panhard fórumtársunk jó választ adott.
(#) neogeo2 válasza Gránátalma hozzászólására (») Júl 3, 2018 /
 
Most gondoltam át, amit írtál. Ha a programodat úgy kezded hogy format, akkor nem lesz a filerendszeredben semmi amit be lehetne olvasni, hiába töltötted fel előtte az IDE-ből.
(#) cs_gabor válasza Gránátalma hozzászólására (») Júl 3, 2018 /
 
Én pl. a képeket a méretük miatt nem az ESP-n tárolom, hanem külső szerveren, csak hivatkozok rá. Ugyanígy lehet a komplett weboldal is kint elhelyezve, ahol sokkal könnyebben a módosítása is, az ESP-n pedig csak egy hivatkozást helyezel el, hogy honnan töltse be a valódi tartalmat.
(#) pipi válasza sany hozzászólására (») Júl 3, 2018 /
 
Az a baj, ha bemenetként használod, hogy ha a reset/boot alatt "rossz" szintet ad ami rá van kötve, akkor nem fog tudni butulni
emlékeim szerint: Boot GPIO15 low, GPIO0 high, GPIO2 high
(#) sany válasza pipi hozzászólására (») Júl 3, 2018 /
 
Ezen én is gondolkoztam ezen a problémán.
Jelenleg az alábbi kapcsolás szerint meg a webszerver az ESP-01 -en. Máshogy egyszerűen nem akar.
Bootkor a LED felvillan egy pillanatra.
A hozzászólás módosítva: Júl 3, 2018
(#) nedudgi válasza sany hozzászólására (») Júl 4, 2018 /
 
Még így is necces a LED1 bekötése. Jobb lenne a táp felé kötni.
Ötletek, amire nem gondol az ember elsőre.
(#) sany válasza nedudgi hozzászólására (») Júl 4, 2018 /
 
Jól gondolom, hogy akkor a LED folyamatosan fog világítani?
Az oldalt ,amit ajánlottál, néztem már. Onnan vettem az ötletet.
A hozzászólás módosítva: Júl 4, 2018
(#) nedudgi válasza sany hozzászólására (») Júl 4, 2018 /
 
Használod valamire a programban a GPIO2 lábat?
(#) sany válasza nedudgi hozzászólására (») Júl 4, 2018 /
 
Igen. A programban kimenetként, alacsony szintén van definiálva.
(#) nedudgi válasza sany hozzászólására (») Júl 4, 2018 /
 
Rendszertöltéskor viszont bemenet, bizonytalan szinttel. Ez befolyásolja a működést.
(#) sany válasza nedudgi hozzászólására (») Júl 4, 2018 /
 
Valóban , lehet a LED-nél nem okoz olyan nagy gondot, de másnál lehet hogy fog.
Esetleg valamilyen megoldás van erre a problémára.? Arra gondoltam ,hogy a LED-et, javaslatodnak megfelelően, pozitív terhelésként kötöm be. És a negatív ágban lévő ellenállás értékét megnövelem kb. 20kOhm-ra.
(#) nedudgi válasza sany hozzászólására (») Júl 4, 2018 / 1
 
(#) Gránátalma válasza neogeo2 hozzászólására (») Júl 4, 2018 /
 
Nekem erre kidobja, hogy:"'configFile' was not declared in this scope"

A setup részre.
(#) neogeo2 válasza Gránátalma hozzászólására (») Júl 4, 2018 /
 
Igen, mert sajnos lemaradt az elejéről (egy nagyobb programból mazsoláztam ki a Neked fontos részeket):
  1. File configFile;

Tehát ezt rakd még be mondjuk az #include rész után.
(#) sany válasza nedudgi hozzászólására (») Júl 4, 2018 /
 
Egy kicsit számomra érdekes, hogy a felhúzó ellenállással párhuzamosan van a LED. De valóban ez a jó megoldás. Ezekre tényleg nem gondol az ember elsőre.
(#) Gránátalma válasza neogeo2 hozzászólására (») Júl 4, 2018 /
 
Igen erre gondoltam én is, meg is tettem még akkor viszont akkor kiáll az IDE arra a hibára, hogy a kód nem fordithato nodemcu 1.0panelra.
Ilyen hibaüzenettel találkoztam már más példaprogramnál is de nem találtam még rá megoldást. Enlegettek fórumokon olyasmit, hogy a boars managerben az előző verziót kell telepíteni, de még nem próbáltam ki. A napokban jobban ráállok és visszajelzek mi lett vele.
Vagy ha tudod mi ooozza ezt a hibaüzenetet megköszönöm a segítséget rá

  1. C:\Users\FERENC~1\AppData\Local\Temp\arduino_build_42462/arduino.ar(core_esp8266_main.cpp.o):(.text._ZL12loop_wrapperv+0x4): undefined reference to `loop'
  2.  
  3. C:\Users\FERENC~1\AppData\Local\Temp\arduino_build_42462/arduino.ar(core_esp8266_main.cpp.o): In function `loop_wrapper':
  4. collect2.exe: error: ld returned 1 exit status
  5.  
  6. exit status 1
  7. Error compiling for board NodeMCU 1.0 (ESP-12E Module).
A hozzászólás módosítva: Júl 4, 2018
(#) neogeo2 válasza Gránátalma hozzászólására (») Júl 5, 2018 /
 
Alapból az 1.6.5 IDE-t használom. Azon lefordítottam gond nélkül tegnap. Megpróbálom majd 1.8.x-en is este. Volt már olyan, hogy az újabb alatt nem fordult rendesen a régiben készült program. Pont ilyen modullal kísérletezek én is.
Itt hasonló hibáról társalognak. Próbáld végigolvasni.
(#) sany válasza nedudgi hozzászólására (») Júl 5, 2018 /
 
Még egy észre vétel.
Itt is a GPIO0 -as lábra van kötve az optocsatoló LED -je. Akkor ezek szerint ennek is be kellene "zavarni" a boot folyamatba. Nem jól gondolom?
(#) nedudgi válasza sany hozzászólására (») Júl 5, 2018 /
 
Senki sem tökéletes. Én csak a GPIO2-t ellenőriztem.
A rajz tartalmaz a LEDdel soros ellenállást, aminek nem tudjuk az értékét. Opto helyett tranzisztorral biztosan működik. Mondjuk én az optocsatoló LEDjét a táp és a GPIO közé tenném.
(#) sany válasza nedudgi hozzászólására (») Júl 5, 2018 /
 
Lehet, hogy itt nem a hardver szinten kell keresni a probléma megoldását, hanem szoftver szinten.
A hozzászólás módosítva: Júl 5, 2018
(#) sany válasza nedudgi hozzászólására (») Júl 5, 2018 /
 
A GPIO2 és a GPIO0 is részt vesz a boot folyamatkor, legalábbis ahogy én értelmeztem az oldalon található táblázatot.
A hozzászólás módosítva: Júl 5, 2018
(#) nedudgi válasza sany hozzászólására (») Júl 5, 2018 /
 
Tulajdonképpen szoftver, de a beégetett firmware (a bootloader, nem a flash program) dönt azügyben, hogy mikor, melyik programot töltse a program RAMba. Ehhez kap segítséget tőlünk, a lábak megfelelő szintre húzásának képében.
(#) silent15 hozzászólása Júl 7, 2018 /
 
Üdv!

Elkezdtem kísérletezni MySQL SELECT parancsal, le is kéri, int-nél más kóddal ki is tudom írni, de stringként hogy tudom vajon kezelni? Van bárkinek ötlete, hogy lehetne a lekért querry sorát kiírni?

  1. #include <ESP8266WiFi.h>
  2. #include <WiFiClient.h>
  3. #include <MySQL_Connection.h>
  4. #include <MySQL_Cursor.h>
  5.  
  6. //MySQL szerver adatai
  7. IPAddress server_addr(192,168,0,109);
  8. char user[] = "root";
  9. char password[] = "";
  10.  
  11. // WiFi kapcsolat
  12. char ssid[] = "SSID";
  13. char pass[] = "****";
  14.  
  15.  
  16. WiFiClient client;
  17. MySQL_Connection conn((Client *)&client);
  18.  
  19. void setup() {
  20.   Serial.begin(115200);
  21.    
  22.   WiFi.begin(ssid, pass);                    
  23.  
  24.   //Várakozás a kapcsolat feléledéséig
  25.   while ( WiFi.status() != WL_CONNECTED ) {
  26.     delay ( 500 );
  27.     Serial.print ( "." );
  28.   }
  29.  
  30.   //Wifi kapcsoalt adatainak kiírása
  31.   Serial.println ( "" );
  32.   Serial.print ( "Csatlakozas  " );
  33.   Serial.println ( ssid );
  34.   Serial.print ( "IP cim: " );
  35.   Serial.println ( WiFi.localIP() );
  36.  
  37.   //Csatlakozás a MySQL szerverhez
  38.   Serial.println("Adatbazis - Csatlakozas...");
  39.   while (conn.connect(server_addr, 3306, user, password) != true) {
  40.     delay(500);
  41.     Serial.print ( "." );
  42.   }
  43. }
  44.  
  45.  void loop() {
  46.     row_values *row = NULL;
  47.     long head_count = 0;
  48.    
  49.     //A beolvasott adatok feltöltése a MySQL adatbázisba
  50.     String buffertext = "SELECT * FROM esp8266_1.esp_control";
  51.     char INSERT_SQL[buffertext.length()];
  52.     buffertext.toCharArray(INSERT_SQL, buffertext.length() + 1);
  53.     Serial.println(INSERT_SQL);
  54.    
  55.     MySQL_Cursor *cur_mem = new MySQL_Cursor(&conn);
  56.     //Query végrehajtása
  57.     cur_mem->execute(INSERT_SQL);
  58.    
  59.     column_names *columns = cur_mem->get_columns();
  60.  
  61.     do {
  62.       row = cur_mem->get_next_row();
  63.       Serial.println(row);
  64.     } while (row != NULL);
  65.    
  66.     //Felszabadítjuk a memóriát
  67.     delete cur_mem;
  68.  
  69.     Serial.println("Feltoltes befejezve!");  
  70.     Serial.println("");
  71.     delay(2000);
  72.  
  73.  
  74.  }
(#) Gránátalma hozzászólása Júl 8, 2018 /
 
Üdv ismét, régi IDE-vel se ment a dolog, viszont közben keresgéltem itt a fórumon régebbi posztokat.
Találtam egyet(nem tudom belinkelni, mert nem dob semmit a javascript sajna, de a topikban RFID kulcsszóval egyetlen találat...)

AZ érdekelne, hogy Zekageri programjában hogy történik meg a html lap implementálása és kiküldése a szerverre.
Ez a megoldás tetszik nekem, csak nem tudom hogy oldja meg.

Amit látok, include-olja az index.h -t, ami a főlap.
Viszont a későbbiekben a programban nem hivatkozik rá sehol, a Main_page pedig összvissz egy azt hiszem S változóval találkozik, nem tudom honnan kerül bele a tartalom. Ha ezt elmagyarázná valaki talán meg is oldanám a problémám vele.


Szerk.: "const char MAIN_page[] PROGMEM = R"=====("
Ezt a sort látom a .h -ban de nem tudom ezt a program hogyan értelmezi, mi ezaz R=== és társai
A hozzászólás módosítva: Júl 8, 2018
(#) nedudgi válasza Gránátalma hozzászólására (») Júl 8, 2018 /
 
(#) Gránátalma válasza nedudgi hozzászólására (») Júl 8, 2018 /
 
Igen, csak nálam nem megy a kettőskereszt popup.
Megvan egyébként, sikerült a külső html-t behúzni, már csak azzal játszok, hogy a html lapon legyen a D0 állapotának visszajelzése Gondolom nem úszom meg a javascriptet, vagy a jquery-t
(#) nedudgi válasza Gránátalma hozzászólására (») Júl 8, 2018 /
 
A találatlistában nem megy, csak a normál megjelenítéskor.
(#) sanyisay válasza andyka hozzászólására (») Júl 20, 2018 /
 
igen.
(#) Kovabe hozzászólása Júl 22, 2018 /
 
Sziasztok

Valaki használ még rajtam kívűl basic nyelvet esp programozáshoz?
Nem tudom sehogy megoldani hogy a thingspeak-re több adatot küldjön egynél.
Következő: »»   67 / 138
Bejelentkezés

Belépés

Hirdetés
XDT.hu
Az oldalon sütiket használunk a helyes működéshez. Bővebb információt az adatvédelmi szabályzatban olvashatsz. Megértettem