Fórum témák

» Több friss téma
Lapozás: OK   114 / 137
(#) majkimester válasza szidom hozzászólására (») Szept 10, 2021 /
 
Reset-re, táp elvételre törlődik, de az nem lenne gond Tyson5 alkalmazásában. Az akksit akarja kímélni, folyamatosan tápfeszen lesz amíg le nem merül. A reset gombot meg nem nyomogatjuk indokolatlanul. Azt kell csak megállapítani, hogy deep sleep-ből ébred, vagy reset ill. táp ráadása történt-e, azért, hogy a mentett adat valós és használható vagy nem.
(#) gyerek67 hozzászólása Szept 10, 2021 /
 
Sziasztok!
Az ESPEasy-t próbálgatom egy Wemos D1-en és rákötöttem egy BME-280-as hőmérséklet/pára/légnyomásmérő modult, aztán elakadtam:
A Controllers menüben beállítottam a ThingSpeak-ot.
Az ESP két adatot (a páratartalmat és a légnyomást) át is küldi a ThingSpeakra, de a hőmérsékletet valami miatt nem.
Szerintetek mi lehet a hiba?
Esetleg a Rules menüből megoldható valahogy a probléma?
A hozzászólás módosítva: Szept 10, 2021
(#) szidom válasza nedudgi hozzászólására (») Szept 12, 2021 /
 
Üdv!
Előre is bocsánat kérek ha hülyeséget beszélek, sok mindennel nem vagyok tisztában.
Tudom hogy a flash memória nem írható végtelenszer, (kb 10000 a gyártó által garantált minimum).
Viszont az EEPROM- nak is minimum 10000 írási ciklus amit garatálnak.(tudom vannak akik tesztelték, több millió írási ciklus után is működőképes, de a gyártó arra ad garanciát, hogy 10000 írási ciklus után is 20 évig megőrzi az adatot, azt azért megnézném hogy ezt hogy tesztelték).
Én azt hittem a RAM - nak szüksége van folyamatos tápfeszre.
Az EERAM-ról most hallottam először, ha jól értelmezem akkor ez egy RAM megtámogatva EEPROM-mal.(vagy fordítva)
Nem igazán értem a működését .
Talán egy gyors RAM beépített EEPROM- mentéssel?
Van róla valami magyarul?(az angol nekem "kínai").
(#) nedudgi válasza szidom hozzászólására (») Szept 12, 2021 / 1
 
Az EERAM egy soros RAM és egy EEPROM kominációja.
Egy külső kondenzátor tárol annyi energiát, ami elég ahhoz, hogy a RAM tartalmát önállóan kiírja az EEPROMba, ha megszűnik a tápfeszültség. Ha újra megjelenik a táp, ennek a fordítottja történik, az EEPROM-ot kimásolja a RAM-ba.
Az élettartamát csak a tápfeszelvételek befolyásolják.
Bővebben: Link
A hozzászólás módosítva: Szept 12, 2021
(#) szidom válasza majkimester hozzászólására (») Szept 12, 2021 /
 
Igazad van!
Nem kötözködni akartam, csak értelmezni .
(#) szidom válasza nedudgi hozzászólására (») Szept 12, 2021 /
 
Akkor nem lőttem nagyon mellé.
(#) nedudgi válasza gyerek67 hozzászólására (») Szept 12, 2021 /
 
Nem küldi át, vagy nem tudja mérni? (Értelmezhetetlen értéket ad)?
(#) szidom válasza nedudgi hozzászólására (») Szept 12, 2021 /
 
Még pár kérdés:
Tudsz mondani konkrét típust amit próbáltál?
Mennyire bonyolult a használata?
Van hozzá Arduino alá könyvtár?
(#) Bakman válasza szidom hozzászólására (») Szept 12, 2021 / 1
 
Párszor játszottam 47C16-os verzióval.

Az eredeti elképzelés az volt, hogy folyamatosan mentem oda az adatokat, majd jól elmenti nekem miközben megszűnik a tápfeszültség. Párszor sikerült úgy áramtalanítani a szerkezetet, hogy nagy valószínűséggel éppen írás közben történt az esemény. Ekkor a tartalom összezavarodott, mintha random adatokkal töltöttem volna fel az IC-t, rosszabb volt, mintha nullákkal írtam volna végig a használt részt (25 bájt).

Második nekifutásra eljátszottam azt, hogy az első 25 bájt után következett egy ellenőrző adat, majd még egy példányban feltöltöttem az adatokat. Ha az első részben lévő adatok sérültek, akkor a kontroller kiolvasta a második példányt. Így is sikerült összezavarnom a rendszert, az első és a második példány is hibás adatokkal lett tele.

Konkrétabban nem vizsgáltam a dolgot, hogy hol csúszott el a mutatvány.

Hagytam az egészet és visszaálltam a régi módszerre: kontroller elkülönített tápfeszültségről jár, nagy kondenzátorral kiegészítve, a tápfeszültséget pedig egy komparátorral figyelem. Ha a tápfeszültség megszűnik, megszakítást generál és azonnal menti az adatokat a belső EEPROM-ba. Nekem ez jött be.
(#) gyerek67 válasza nedudgi hozzászólására (») Szept 12, 2021 /
 
Szia!
Mérni tudja, mert egy pici OLED kijelzőn meg is jelenítettem, továbbá a webserverben is látszanak a mért értékek.
Időközben kipróbáltam egy másik ESP modullal is, az eredmény ugyanaz.
Csak a páratartalom és a légnyomás megy át, a hőmérséklet nem.
Nem tudom, hogy most a küldő (szerintem igen), vagy pedig a fogadó (ThingSpeak) oldalon van-e a hiba.
(#) vargham válasza Bakman hozzászólására (») Szept 12, 2021 /
 
Az adatlapon előírt kapacitású és típusú kondenzátort tetted mellé?
Mi termékben használjuk, és bevált.
(#) nedudgi válasza szidom hozzászólására (») Szept 12, 2021 /
 
Semelyik típust nem használtam. Arduinot nem használok, így nem tudom, van-e alá könyvtár.
Az adatlapot átfutottam ugyan, de különös trükk nem kellhet hozzá, egy közönséges soros RAM lehet az interfésze (SPI, vagy I2C).
(#) szidom válasza vargham hozzászólására (») Szept 12, 2021 /
 
Rákerestem a 47c16-osra, az adatlapja szerint 200 évig képes megőrizni az adatokat.
Én nem tervezek ilyen hosszú távra, de kíváncsi lennék rá hogy ezt hogy tesztelték.
(#) Bakman válasza vargham hozzászólására (») Szept 12, 2021 /
 
Minimum 8 µF-ot ír, én 15-öt raktam. Ez egy üzemóra- és eseményszámláló volt, másodpercenkénti kétszeri adatmentéssel. Viszonyleg könnyen tudtam ismételni a hibát, 20-30 kikapcsolás kb. elég is volt a dologhoz.
(#) helektro válasza Bakman hozzászólására (») Szept 12, 2021 /
 
Én 48L640 SPI EERAM-ot használok, szintén adatrekordonként összesítő kóddal. Soha nem volt még hibás adatolvasásom. Vagy egy hibás példányt fogtál ki, vagy valami más baj lehetett ott.
(#) icserny válasza nedudgi hozzászólására (») Szept 12, 2021 / 1
 
Létezik FRAM is, ami 10^10 - 10^14 -szer újraírható.Bővebben: Link
(#) BeginnerKrisz hozzászólása Szept 14, 2021 /
 
Sziasztok!

Olyan problémám lenne, hogy adott egy WEMOS D1-es board ESP8266-os wifi modullal. Van hozzá egy 4-es relé. Telefonra a Blynk nevű alkalmazás került telepítésre, majd a laptopon a configurálásnál az Arduiono program segítségével lett konfigolva, ami nálam annyit jelent, hogy a Blynk oldalán generált parancsot feltöltöttem a készülékre. Szépen működik is a 4 eszköz róla, de itt jön a millió dolláros kérdés. Ha áramszünet van akkor az Wemos automatikus újraindítását követően nem értem, hogy miért indítja el az összes relét. Próbáltam már a Blynk alkalmazáson a switch módokat is kapcsolni, de minden esetben megtörténik az elindulás. Hozzá tenném, hogy korábban működöt megfelelően, csak újra lett állítva minden. Nem gondolnám, hogy az eszköz bekötésével van gond. Ha esetleg valakinek van valami ötlete azt szívesen meghallgatnám.
(#) pipi válasza BeginnerKrisz hozzászólására (») Szept 14, 2021 /
 
Hali!
Nem világos, újrainduláskor csak megrángatja a reléket, vagy bekapcsolva is maradnak?
A relék alacsony vagy magas vez. feszről indulnak?
A boot alatt bizonyos gpio lábak magas szintre kerülnek, vagy pulzus jelenik meg rajta...
https://randomnerdtutorials.com/esp8266-pinout-reference-gpios/
Valamint mit jelent az "újra lett állítva minden" ?
(#) andyka hozzászólása Szept 15, 2021 /
 
Sziasztok
Egy ILYESMIT lehetne arduino alatt programozni ?
(#) Kera_Will válasza andyka hozzászólására (») Szept 15, 2021 /
 
CAN/RS485 elérhető akkor elvileg beszélgethet vele az ardu is ... csak "driver" könyvtár legyen hozzá.
(#) szidom hozzászólása Szept 19, 2021 /
 
Sziasztok!
I2C buszos eeprom kezeléssel kapcsolatban kérném a segítségeteket.
Esp32 -re kötöttem Ds3231-es RTC modult.
A modulon van egy 24C32-es eeprom a 0x57-es címen.
Szeretném használni, de sehogy nem boldogulok vele.
Kb. 30 különböző kódot próbáltam amit a neten találtam, de egyik sem működik.
Kiolvasáskor vagy 0-át ad vagy 255-öt, de olyan is van hogy minden kiolvasásra más értéket kapok.
Mutatom a legutolsó próbálkozásomat, az "eeprom_W()" függvényt csak induláskor hívom meg a "Void setup" részben, az "eeprom_R()" függvényt meg minden percben.
Hol rontom el?
  1. void eeprom_R(){
  2.   Wire.beginTransmission(0x57);
  3.   Wire.write(0);
  4. //  Wire.endTransmission();
  5.   Wire.requestFrom(0x57, 1);
  6.   while(Wire.available()){
  7.     eepadat = Wire.read();
  8.  
  9.   Wire.endTransmission();
  10.   Serial.print("EEprom:");
  11.   Serial.println(eepadat);
  12.   }
  13. }
  14.  
  15. void eeprom_W(){
  16.  Wire.beginTransmission(0x57);
  17.  Wire.write(0);
  18.  Wire.write(10);
  19.  Wire.endTransmission();
  20.  Serial.println("EEprom iras ok");
  21.  
  22. }


Ismer valaki egy bolondbiztos kódot, amit megosztana velem?
(#) Bakman válasza szidom hozzászólására (») Szept 19, 2021 / 1
 
Olvasás menete:
I2C start
I2C írás: IC címe (R/W bit=0)
I2C írás: memóriaterület címe, high byte [n]
I2C írás: memóriaterület címe, low byte [n]
I2C restart
I2C írás: IC címe (R/W bit=1)
I2C olvasás (ez már a megcímzett [n] memóriaterületen lévő adat)
I2C olvasás (a következő [n+1] memóriaterületen lévő adat)
I2C olvasás (a következő [n+2] memóriaterületen lévő adat)
...
I2C stop
(#) szidom válasza Bakman hozzászólására (») Szept 19, 2021 /
 
Ezer hála és köszönet!!!
Máris működik!
Arra nem gondoltam hogy a memória cím 2 byte.
(#) Elektro.on hozzászólása Szept 24, 2021 /
 
Sziasztok!
ESP32 fagyásokkal kapcsolatban van valakinek tapasztalata?
Sok fórumon néztem már, de mindenhol csak a találgatás megy.
Volt akinek a legegyszerűbb led villogtatással is véletlen szerűen fagyott.
Nekem egy sima DS18B20 ról jött adatot 5 percenként felrak thingspeak -re.
van amikor 2 napot megy van amikor 2 órát. Gondoltam már táphibára, ezért próbálnám akkuról is.
Ez így nem túl megbízható, pedig épp kezdett megtetszeni ez modul.
A hozzászólás módosítva: Szept 24, 2021
(#) Elektro.on válasza Elektro.on hozzászólására (») Szept 24, 2021 /
 
A kódot azért csatolom.
A soros terminálra való kírásokat kivettem belőle.
Nem is tudom. Ha a valóságban nem tud kiírni a soros porton, mert nincs géphez csatlakozva, az megtöltheti a memóriáját?
  1. #include "WiFi.h"
  2. #include <HTTPClient.h>
  3. #include <OneWire.h>
  4. #include <DallasTemperature.h>
  5.  
  6.  
  7. const char* WIFI_SSID = "DIGI-*******";
  8. const char* WIFI_PASS = "*******";
  9. const int potPin = 36;      //GPIO Light sensor
  10. const int oneWireBus = 23;  // GPIO where the DS18B20 is connected to
  11. const long interval = 300000;  //5 minutes
  12. int potValue = 0;
  13.  
  14. static uint32_t lastUpdate = 0;
  15. static uint32_t now = 0;
  16.  
  17. OneWire oneWire(oneWireBus);  // Setup a oneWire instance to communicate with any OneWire devices
  18. DallasTemperature sensors(&oneWire);  // Pass our oneWire reference to Dallas Temperature sensor
  19.  
  20. String server_url = "http://api.thingspeak.com/update?api_key=****************";
  21.  
  22.  
  23. void setup() {
  24.  
  25.  
  26.   WiFi.mode(WIFI_STA);
  27.   WiFi.begin(WIFI_SSID, WIFI_PASS);
  28.   while (WiFi.status() != WL_CONNECTED) {
  29.     delay(500);
  30.   }
  31.  
  32.   sensors.begin();  // Start the DS18B20 sensor
  33. }
  34.  
  35. void sendData() {
  36.   sensors.requestTemperatures();
  37.   float temperatureC = sensors.getTempCByIndex(0);
  38.  
  39.  
  40.   potValue = analogRead(potPin);
  41.  
  42.  
  43.  
  44.   HTTPClient http;                                                   // Declare an object of class HTTPClient
  45.   String p1 = String("&field1=") + String(temperatureC, 1);
  46.   String p2 = String("&field2=") + String(potValue);
  47.   String server_request = server_url + p1 + p2;
  48.  
  49.   http.begin(server_request);                                      // Specify request destination and fields
  50.   int httpCode = http.GET();                                       // Send the request
  51.   if (httpCode > 0) {                                              // Check the returning code
  52.    // Serial.print("HTTP Response code: ");
  53.    // Serial.println(httpCode);
  54.    //String payload = http.getString();                             // Get the request response payload
  55.    // Serial.println(payload);                                       // Print the response payload
  56.  
  57.   }
  58.   http.end();
  59.   lastUpdate = now;
  60. }
  61.  
  62. void reconW() {
  63.   WiFi.disconnect();
  64.   delay(500);
  65.   WiFi.begin(WIFI_SSID, WIFI_PASS);
  66.   delay(2000);
  67. }
  68.  
  69. void loop() {
  70.   now = millis();
  71.  
  72.   if (now < lastUpdate) { // overflow
  73.     lastUpdate = now;
  74.   }
  75.  
  76.   if (now - lastUpdate > interval) {
  77.  
  78.     if (WiFi.status() == WL_CONNECTED) { // Check WiFi connection status
  79.       sendData();
  80.     }
  81.     else {
  82.       reconW();
  83.  
  84.     }
  85.   }
  86.  
  87. }
A hozzászólás módosítva: Szept 24, 2021
(#) szidom válasza Elektro.on hozzászólására (») Szept 24, 2021 /
 
Üdv!
Én is használok esp32-es modulokat, még nem volt rá példa hogy leesett volna valamelyik a hálózatról.
Igaz nálam a legmesszebbi eszköz kb 4 méterre van a routertől.
Olyan már volt hogy kiesett adatátvitel, de biztos nem azért mert leesett a wifiről.
Ezt abból tudom hogy nekem nincs a kódban újra csatlakozás.
Szerintem próbáld meg kivenni az újra csatlakozást, akkor kiderül valóban leesik, vagy valami más probléma van.
Ha valóban leesik, próbáld meg növelni a késleltetést a WiFi.disconnect() után.
(#) Elektro.on válasza szidom hozzászólására (») Szept 24, 2021 /
 
Nekem ez kint van az udvaron. Mellette van beüzemelve egy SonOff kapcsoló is, az hibátlan.
Amikor befagy, nem tudom meg pingelni sem.
Ami nagyon zavar az , hogy a net tele van ezzel a témával.
Kínai a board. El tudom azt is képzelni, hogy a gyártásnál igen sok a nem 100% darab.

Most behoztam. A kódból kivettem az összes "Serial.print()" utasítást, arra gondolva, hogy vár valami vissza igazolást. És mivel nem kap , megtölti az agyát. Bár én úgy gondolnám, hogy bután kitolja magából az Rx lábon.
(#) szidom válasza Elektro.on hozzászólására (») Szept 24, 2021 /
 
Tudtommal a Serial.print() utasítás nem vár választ, adatot küld a TX lábon.
Esetleg próbáld meg újra csatlakozás helyett az ESP.restart -ot.
Ha tudod hagyd gépre kötve, akkor soros porton látod mikor bolondul meg.
(#) Elektro.on válasza szidom hozzászólására (») Szept 24, 2021 /
 
Még egy észrevétel a kódommal kapcsolatban. Eddig PIC et gyúrtam Mikro Pascalban, soha nem C -ztem. :S Van a sendData() fügvényem amir rendszeresen meghív a Loop. Abban van deklarálva a változó amibe a mért érék kerül. He minden híváskor lefut az a dklaráció az C ben nem okoz problémát? Lehet. hogy függvényen kívül kellet volna deklarálnom?

Idézet:
  1. void sendData() {
  2.   sensors.requestTemperatures();
  3.   float temperatureC = sensors.getTempCByIndex(0);

A hozzászólás módosítva: Szept 24, 2021
(#) Elektro.on válasza Elektro.on hozzászólására (») Szept 24, 2021 /
 
Idő közben én itt el beszélgetek magammal.

Most itt bent a routerhez közel már fut pár órája. Ha huzamosabb ideig bírja fagyás nélkül, akkor mégis csak az udvaron a wifiről leszakadás okozza a gondot.
De amiért nem tér vissza az a kódomban lehet hibás. Ugyanis adtam neki 2 másodpercet a csatlakozásra ami valószínűleg kevés. Viszont a program tovább fut, megint ellenőrzi, hogy van Wifi kapcsolat ami ugye még nem épült fel. És megint ráfut a reconW() függvényre ami előbb leállítja a még el nem indult kapcsolatot és újra kapcsolódik.
Szerintem itt akad be leszakadás után a hurokba.
Ki fog derülni ha a roterhez közel hosszú ideig fut gond nélkül.
Idézet:
  1. void reconW() {
  2.   WiFi.disconnect();
  3.   delay(500);
  4.   WiFi.begin(WIFI_SSID, WIFI_PASS);
  5.   delay(2000);


Lehet, hogy ez lenne a helyes:

  1. void reconW(){
  2.   WiFi.disconnect();
  3.   delay(500);
  4.   while (WiFi.status() != WL_CONNECTED){
  5.   delay(500);
  6.   }
  7. }
A hozzászólás módosítva: Szept 24, 2021
Következő: »»   114 / 137
Bejelentkezés

Belépés

Hirdetés
Lapoda.hu     XDT.hu     HEStore.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