teraz zobaczyłem, dlaczego urządzenie wchodzi Ci w tryb konfiguracji? tu bym szukał problemu.shimano73 pisze: ↑ndz gru 15, 2019 5:36 pmKod: Zaznacz cały
Firmware version [year.month.day]: 18.11.16 Mode: active Working period: 3 min cycles: work 30 seconds, measure and sleep DS18B2 init Parasite power is: OFF Tryb konfiguracji: 2
Stacja pogodowa by shimano73
https://gui-generic-builder.supla.io/
u mnie elf nie zapisuje sie tam gdzie bin tylko w jakimś temp'iekrycha88 pisze: ↑ndz gru 15, 2019 7:44 pm*.elf znajduje się w tym samym miejscu co binshimano73 pisze: ↑ndz gru 15, 2019 7:33 pmZainstalowałem, nie obyło się bez problemówkrycha88 pisze: ↑ndz gru 15, 2019 5:58 pm
pośpieszyłem się trochę abym mógł go zdecodować to byś musiał podesłać jeszcze wygenerowany plik *.elf
najlepiej zainstaluj sobie ten dodatek i wtedy tego exceptiona wklejasz w tego toolsa i zobaczysz gdzie jest problem
https://github.com/me-no-dev/EspExceptionDecoder
No ale pojawił się dekoder , wklejam ten stack i ... nic sie nie dzieje, a o tego elfa pyta sie tylko gdy po uruchomieniu ardu nie dokonam kompilacji programu, no nieźle trzeba się go naszukać
musisz to robić na skompilowanym projekcie i wklejasz:Kod: Zaznacz cały
Exception (0): epc1=0x4020389c epc2=0x00000000 epc3=0x00000000 excvaddr=0x00000000 depc=0x00000000 ctx: cont sp: 3fff4510 end: 3fff4a90 offset: 01a0 >>>stack>>> 3fff46b0: 401073a8 feefeffe feefeffe feefeffe 3fff46c0: ffffffff 00000020 feefeffe feefeffe ...... // tu jest tego duuużo więcej 3fff4a70: 3fffdad0 00000000 3fff3a5d 40213420 3fff4a80: feefeffe feefeffe 3fff3a70 40100718 <<<stack<<<
którą część muszę wkleić , bo jeśli wkleję całość od "Exception" wyskakuje Decode Failed a gdy wkleję liczby znajdujące pomiędzy
>>>stack>>> a <<<stack<<< to nic się nie dzieje
W elektronice jak nie wiadomo o co chodzi to zwykle chodzi o zasilanie
Wezmę udział w Supla Offline Party 2024
Wezmę udział w Supla Offline Party 2024
ja zawsze bin pobieram z tempashimano73 pisze: ↑ndz gru 15, 2019 8:02 pmu mnie elf nie zapisuje sie tam gdzie bin tylko w jakimś temp'iekrycha88 pisze: ↑ndz gru 15, 2019 7:44 pm*.elf znajduje się w tym samym miejscu co bin
musisz to robić na skompilowanym projekcie i wklejasz:Kod: Zaznacz cały
Exception (0): epc1=0x4020389c epc2=0x00000000 epc3=0x00000000 excvaddr=0x00000000 depc=0x00000000 ctx: cont sp: 3fff4510 end: 3fff4a90 offset: 01a0 >>>stack>>> 3fff46b0: 401073a8 feefeffe feefeffe feefeffe 3fff46c0: ffffffff 00000020 feefeffe feefeffe ...... // tu jest tego duuużo więcej 3fff4a70: 3fffdad0 00000000 3fff3a5d 40213420 3fff4a80: feefeffe feefeffe 3fff3a70 40100718 <<<stack<<<
którą część muszę wkleić , bo jeśli wkleję całość od "Exception" wyskakuje Decode Failed a gdy wkleję liczby znajdujące pomiędzy
>>>stack>>> a <<<stack<<< to nic się nie dzieje
podeślij mi tego elfa zobaczę u siebie.
https://gui-generic-builder.supla.io/
Ale to już jutro , dziś jestem już w robociekrycha88 pisze: ↑ndz gru 15, 2019 8:07 pmja zawsze bin pobieram z tempashimano73 pisze: ↑ndz gru 15, 2019 8:02 pmu mnie elf nie zapisuje sie tam gdzie bin tylko w jakimś temp'iekrycha88 pisze: ↑ndz gru 15, 2019 7:44 pm
*.elf znajduje się w tym samym miejscu co bin
musisz to robić na skompilowanym projekcie i wklejasz:Kod: Zaznacz cały
Exception (0): epc1=0x4020389c epc2=0x00000000 epc3=0x00000000 excvaddr=0x00000000 depc=0x00000000 ctx: cont sp: 3fff4510 end: 3fff4a90 offset: 01a0 >>>stack>>> 3fff46b0: 401073a8 feefeffe feefeffe feefeffe 3fff46c0: ffffffff 00000020 feefeffe feefeffe ...... // tu jest tego duuużo więcej 3fff4a70: 3fffdad0 00000000 3fff3a5d 40213420 3fff4a80: feefeffe feefeffe 3fff3a70 40100718 <<<stack<<<
którą część muszę wkleić , bo jeśli wkleję całość od "Exception" wyskakuje Decode Failed a gdy wkleję liczby znajdujące pomiędzy
>>>stack>>> a <<<stack<<< to nic się nie dzieje
podeślij mi tego elfa zobaczę u siebie.
W elektronice jak nie wiadomo o co chodzi to zwykle chodzi o zasilanie
Wezmę udział w Supla Offline Party 2024
Wezmę udział w Supla Offline Party 2024
Jak długo trwa pomiar? Jeśli nieco dłużej, to jest szansa, że zapętla się wywołanie obsługi timera i coś się krzaczy (np. wywołany jest drugi raz odczyt "pm", zanim pierwszy się skończył).
Wstaw tam coś z "millis()", żeby nie wchodziło w odczyt częściej niż trwa sam odczyt.
Albo wyrzuć odczyt poza timer.
Wstaw tam coś z "millis()", żeby nie wchodziło w odczyt częściej niż trwa sam odczyt.
Albo wyrzuć odczyt poza timer.
Widzimy się na Supla Offline Party vol. 2
Po długich bojach zaczął działać esp exception decoder , i napoczątku był problem z "iSR not IRAM" ale z tym sobie poradziłem,
teraz problem jest bardziej złożony z którym nie potrafię sobie poradzić dlatego załączam zdekodowany exception
teraz problem jest bardziej złożony z którym nie potrafię sobie poradzić dlatego załączam zdekodowany exception
Kod: Zaznacz cały
Exception 9: LoadStoreAlignmentCause: Load or store to an unaligned address
PC: 0x401059bc
EXCVADDR: 0x00000003
Decoding stack results
0x401005d8: ets_post(uint8, ETSSignal, ETSParam) at C:\Users\Darek\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.6.3\cores\esp8266\core_esp8266_main.cpp line 160
0x401009dc: millis() at C:\Users\Darek\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.6.3\cores\esp8266\core_esp8266_wiring.cpp line 188
0x40215698: Twi::write_stop() at C:\Users\Darek\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.6.3\cores\esp8266\core_esp8266_si2c.cpp line 300
0x402159f0: Twi::readFrom(unsigned char, unsigned char*, unsigned int, unsigned char) at C:\Users\Darek\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.6.3\cores\esp8266\core_esp8266_si2c.cpp line 426
0x40213060: Stream::timedRead() at C:\Users\Darek\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.6.3\cores\esp8266\Stream.cpp line 31
0x402130bb: Stream::readBytes(char*, unsigned int) at C:\Users\Darek\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.6.3\cores\esp8266\Stream.cpp line 215
0x40217458: Stream::readBytes(unsigned char*, unsigned int) at C:\Users\Darek\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.6.3\cores\esp8266/Stream.h line 92
0x40100a44: delayMicroseconds(unsigned int) at C:\Users\Darek\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.6.3\cores\esp8266\core_esp8266_wiring.cpp line 210
0x40210f26: ClosedCube_SHT31D::read(unsigned short*, unsigned char) at C:\Users\Darek\Documents\Arduino\libraries\ClosedCube_SHT31D\src\ClosedCube_SHT31D.cpp line 417
0x4020e248: OneWire::reset() at C:\Users\Darek\Documents\Arduino\libraries\OneWire\OneWire.cpp line 178
0x4020e767: DallasTemperature::readScratchPad(unsigned char const*, unsigned char*) at C:\Users\Darek\Documents\Arduino\libraries\DallasTemperature\DallasTemperature.cpp line 127
0x40214d8c: __esp_yield() at C:\Users\Darek\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.6.3\cores\esp8266\core_esp8266_main.cpp line 100
0x40215cc2: __delay(unsigned long) at C:\Users\Darek\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.6.3\cores\esp8266\core_esp8266_wiring.cpp line 54
0x4020ea6f: DallasTemperature::blockTillConversionComplete(unsigned char, unsigned char const*) at C:\Users\Darek\Documents\Arduino\libraries\DallasTemperature\DallasTemperature.cpp line 361
0x4020eaae: DallasTemperature::requestTemperatures() at C:\Users\Darek\Documents\Arduino\libraries\DallasTemperature\DallasTemperature.cpp line 320
0x40201aed: get_temperature(int, double) at C:\Users\Darek\Documents\Arduino\Primary_GUI-V2_Stacja_pogodowa_sds011/Primary_GUI-V2_Stacja_pogodowa_sds011.ino line 733
0x4020c39d: SuplaDeviceClass::begin_thermometer(SuplaChannelPin*, TDS_SuplaDeviceChannel_B*, int) at C:\Users\Darek\Documents\Arduino\libraries\SuplaDevice\SuplaDevice.cpp line 378
0x4020c88b: SuplaDeviceClass::begin(IPAddress*, char*, unsigned char*, char const*, int, char const*) at C:\Users\Darek\Documents\Arduino\libraries\SuplaDevice\SuplaDevice.cpp line 339
0x402175f4: supla_arduino_data_read(void*, int, void*) at C:\Users\Darek\Documents\Arduino\libraries\SuplaDevice\SuplaDevice.cpp line 48
0x4020cde0: supla_arduino_data_write(void*, int, void*) at C:\Users\Darek\Documents\Arduino\libraries\SuplaDevice\SuplaDevice.cpp line 52
0x4020d8bc: supla_arduino_on_remote_call_received(void*, unsigned int, unsigned int, void*, unsigned char) at C:\Users\Darek\Documents\Arduino\libraries\SuplaDevice\SuplaDevice.cpp line 100
0x4010136f: free(void*) at C:\Users\Darek\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.6.3\cores\esp8266\umm_malloc\umm_malloc.cpp line 362
0x4020c8f0: SuplaDeviceClass::begin(char*, unsigned char*, char const*, int, char const*) at C:\Users\Darek\Documents\Arduino\libraries\SuplaDevice\SuplaDevice.cpp line 351
0x40213a48: String::~String() at C:\Users\Darek\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.6.3\cores\esp8266\WString.cpp line 125
0x402072d6: setup() at C:\Users\Darek\Documents\Arduino\Primary_GUI-V2_Stacja_pogodowa_sds011/Primary_GUI-V2_Stacja_pogodowa_sds011.ino line 257
0x40214e9c: loop_wrapper() at C:\Users\Darek\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.6.3\cores\esp8266\core_esp8266_main.cpp line 177
W elektronice jak nie wiadomo o co chodzi to zwykle chodzi o zasilanie
Wezmę udział w Supla Offline Party 2024
Wezmę udział w Supla Offline Party 2024
Bez kodu to ciężko będzie, wrzuć na jakiegoś githuba.shimano73 pisze: ↑pn gru 30, 2019 6:42 pm Po długich bojach zaczął działać esp exception decoder , i napoczątku był problem z "iSR not IRAM" ale z tym sobie poradziłem,
teraz problem jest bardziej złożony z którym nie potrafię sobie poradzić dlatego załączam zdekodowany exceptionKod: Zaznacz cały
Exception 9: LoadStoreAlignmentCause: Load or store to an unaligned address PC: 0x401059bc EXCVADDR: 0x00000003 Decoding stack results 0x401005d8: ets_post(uint8, ETSSignal, ETSParam) at C:\Users\Darek\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.6.3\cores\esp8266\core_esp8266_main.cpp line 160 0x401009dc: millis() at C:\Users\Darek\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.6.3\cores\esp8266\core_esp8266_wiring.cpp line 188 0x40215698: Twi::write_stop() at C:\Users\Darek\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.6.3\cores\esp8266\core_esp8266_si2c.cpp line 300 0x402159f0: Twi::readFrom(unsigned char, unsigned char*, unsigned int, unsigned char) at C:\Users\Darek\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.6.3\cores\esp8266\core_esp8266_si2c.cpp line 426 0x40213060: Stream::timedRead() at C:\Users\Darek\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.6.3\cores\esp8266\Stream.cpp line 31 0x402130bb: Stream::readBytes(char*, unsigned int) at C:\Users\Darek\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.6.3\cores\esp8266\Stream.cpp line 215 0x40217458: Stream::readBytes(unsigned char*, unsigned int) at C:\Users\Darek\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.6.3\cores\esp8266/Stream.h line 92 0x40100a44: delayMicroseconds(unsigned int) at C:\Users\Darek\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.6.3\cores\esp8266\core_esp8266_wiring.cpp line 210 0x40210f26: ClosedCube_SHT31D::read(unsigned short*, unsigned char) at C:\Users\Darek\Documents\Arduino\libraries\ClosedCube_SHT31D\src\ClosedCube_SHT31D.cpp line 417 0x4020e248: OneWire::reset() at C:\Users\Darek\Documents\Arduino\libraries\OneWire\OneWire.cpp line 178 0x4020e767: DallasTemperature::readScratchPad(unsigned char const*, unsigned char*) at C:\Users\Darek\Documents\Arduino\libraries\DallasTemperature\DallasTemperature.cpp line 127 0x40214d8c: __esp_yield() at C:\Users\Darek\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.6.3\cores\esp8266\core_esp8266_main.cpp line 100 0x40215cc2: __delay(unsigned long) at C:\Users\Darek\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.6.3\cores\esp8266\core_esp8266_wiring.cpp line 54 0x4020ea6f: DallasTemperature::blockTillConversionComplete(unsigned char, unsigned char const*) at C:\Users\Darek\Documents\Arduino\libraries\DallasTemperature\DallasTemperature.cpp line 361 0x4020eaae: DallasTemperature::requestTemperatures() at C:\Users\Darek\Documents\Arduino\libraries\DallasTemperature\DallasTemperature.cpp line 320 0x40201aed: get_temperature(int, double) at C:\Users\Darek\Documents\Arduino\Primary_GUI-V2_Stacja_pogodowa_sds011/Primary_GUI-V2_Stacja_pogodowa_sds011.ino line 733 0x4020c39d: SuplaDeviceClass::begin_thermometer(SuplaChannelPin*, TDS_SuplaDeviceChannel_B*, int) at C:\Users\Darek\Documents\Arduino\libraries\SuplaDevice\SuplaDevice.cpp line 378 0x4020c88b: SuplaDeviceClass::begin(IPAddress*, char*, unsigned char*, char const*, int, char const*) at C:\Users\Darek\Documents\Arduino\libraries\SuplaDevice\SuplaDevice.cpp line 339 0x402175f4: supla_arduino_data_read(void*, int, void*) at C:\Users\Darek\Documents\Arduino\libraries\SuplaDevice\SuplaDevice.cpp line 48 0x4020cde0: supla_arduino_data_write(void*, int, void*) at C:\Users\Darek\Documents\Arduino\libraries\SuplaDevice\SuplaDevice.cpp line 52 0x4020d8bc: supla_arduino_on_remote_call_received(void*, unsigned int, unsigned int, void*, unsigned char) at C:\Users\Darek\Documents\Arduino\libraries\SuplaDevice\SuplaDevice.cpp line 100 0x4010136f: free(void*) at C:\Users\Darek\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.6.3\cores\esp8266\umm_malloc\umm_malloc.cpp line 362 0x4020c8f0: SuplaDeviceClass::begin(char*, unsigned char*, char const*, int, char const*) at C:\Users\Darek\Documents\Arduino\libraries\SuplaDevice\SuplaDevice.cpp line 351 0x40213a48: String::~String() at C:\Users\Darek\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.6.3\cores\esp8266\WString.cpp line 125 0x402072d6: setup() at C:\Users\Darek\Documents\Arduino\Primary_GUI-V2_Stacja_pogodowa_sds011/Primary_GUI-V2_Stacja_pogodowa_sds011.ino line 257 0x40214e9c: loop_wrapper() at C:\Users\Darek\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.6.3\cores\esp8266\core_esp8266_main.cpp line 177
zacznij poszukiwania problemu od
Kod: Zaznacz cały
setup() at C:\Users\Darek\Documents\Arduino\Primary_GUI-V2_Stacja_pogodowa_sds011/Primary_GUI-V2_Stacja_pogodowa_sds011.ino line 257
https://gui-generic-builder.supla.io/
Wrzuć gdzieś kod tego programu. Wygląda jakbyś coś z pamięcią namieszał - np. pisanie do nieistniejących obiektów lub poza zakres. W takich sytuacjach nawet dodanie/usunięcie fragmentu niezwiązanego kodu może powodować, że crash się pojawi lub zniknie.
Widzimy się na Supla Offline Party vol. 2
Po wielkich bojach udało mi się uporać z tymi błędami. Problemem była, chyba, zbyt częsta kontrola czy są wyniki pomiaru z czujnika SDS011. Zauważyłem że gdy zablokuję odczyt danych z czujnika smogu to reszta programu działa poprawnie. Wpadłem na pomysł aby dokonywać kontroli co jakiś czas, np minutę i problem się rozwiązał, program działa i się nie wysypuje.
W głównym loop'ie dodałem
gdzie
Dalej chciałem rozszerzyć stronę konfiguracyjną o możliwość wpisania czasookresu pracy czujnika jak i norm aby wyliczać procent zanieczyszczenia powietrza
I tu prosiłbym o podpowiedź , jak wyliczyć , ustawić kolejny adres w EEPROM'ie bo mam z tym zagwozdkę . Ostania zapamiętywana dana jest "elevation" i adres ma postać :
np. ... + sizeof(bme_channel.elevation) ?
W głównym loop'ie dodałem
Kod: Zaznacz cały
if (millis() - pm_lastmillis >= 60000) {
pm_lastmillis = millis();
read_from_sds011();
}
Kod: Zaznacz cały
void read_from_sds011() {
PmResult pm = mySDS011.readPm();
Serial.print("Data request from SDS011 -> ");
if (pm.isOk()) {
Serial.println("Valid data received");
pomiar25 = double(pm.pm25);
pomiar10 = double(pm.pm10);
}
else {
Serial.print("Could not read values from sensor, reason : ");
Serial.println(pm.statusToString());
}
}
I tu prosiłbym o podpowiedź , jak wyliczyć , ustawić kolejny adres w EEPROM'ie bo mam z tym zagwozdkę . Ostania zapamiętywana dana jest "elevation" i adres ma postać :
Kod: Zaznacz cały
int start = 1 + MAX_SSID + MAX_PASSWORD + MAX_MLOGIN + MAX_MPASSWORD + MAX_SUPLA_SERVER + MAX_SUPLA_ID + MAX_SUPLA_PASS + MAX_HOSTNAME + (SUPLA_GUID_SIZE * 2) + MAX_BUTTON + MAX_RELAY + MAX_RELAY_STATE + (MAX_DS18B20_SIZE * MAX_DS18B20) + (MAX_DS18B20_NAME * MAX_DS18B20);
W elektronice jak nie wiadomo o co chodzi to zwykle chodzi o zasilanie
Wezmę udział w Supla Offline Party 2024
Wezmę udział w Supla Offline Party 2024
Pewnie, że tak możesz zrobić. Też możesz po prostu zrobić sizeof(int)shimano73 pisze: ↑czw sty 02, 2020 5:16 pm Dalej chciałem rozszerzyć stronę konfiguracyjną o możliwość wpisania czasookresu pracy czujnika jak i norm aby wyliczać procent zanieczyszczenia powietrza
I tu prosiłbym o podpowiedź , jak wyliczyć , ustawić kolejny adres w EEPROM'ie bo mam z tym zagwozdkę . Ostania zapamiętywana dana jest "elevation" i adres ma postać :np. ... + sizeof(bme_channel.elevation) ?Kod: Zaznacz cały
int start = 1 + MAX_SSID + MAX_PASSWORD + MAX_MLOGIN + MAX_MPASSWORD + MAX_SUPLA_SERVER + MAX_SUPLA_ID + MAX_SUPLA_PASS + MAX_HOSTNAME + (SUPLA_GUID_SIZE * 2) + MAX_BUTTON + MAX_RELAY + MAX_RELAY_STATE + (MAX_DS18B20_SIZE * MAX_DS18B20) + (MAX_DS18B20_NAME * MAX_DS18B20);
https://gui-generic-builder.supla.io/