Elektroda.pl
Elektroda.pl
X

Search our partners

Find the latest content on electronic components. Datasheets.com
Elektroda.pl
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

Bascom Atmega1284p - ESP8266 zmiana wartosci zmiennej ( nieporządana )

maximus22_kr 01 Jan 2018 16:30 336 0
  • #1
    maximus22_kr
    Level 18  
    Witam w Nowym Roku
    Postaram się jak najlepiej opisać problem, jak że kod duży - musiałem go dać w załączniku.
    Całość opiera się na Case i odpytywaniu po kolei każdego czujnika, na koniec zapis i wysłanie do klientów przez RFM12. Część czujników jest już zamontowana w "terenie", więc na czas testu ich odpytywanie jest wyłączone, a żeby to ładnie wyglądało to ich wartości wpisałem na stałe.

    Chciałem jeszcze dodać pobieranie czasu NTP z serwera Domoticz ( przy okazji czasu wschodu i zachodu słońca ). Dzięki pomocy między innymi Kolegi Niveasoft na płytce testowej działało to ładnie. Po dodaniu do głównego projektu nie jest już tak kolorowo.
    Domoticz odpytuję jednorazowo po starcie i kilka minut po północy.
    Jeśli uda się pobrać czas ( co też nie zawsze się udaje ) to zaczynają się kłopoty ze zmiennymi zapisywanymi na SD i wysyłanymi przez RFM12.
    Poniżej przykład z logów na karcie SD:

    Gdy nie pobrał czasu z Domoticz ( czujnik Zew i Kotl są podpięte fizycznie )
    "060 14:08:25 31/12/2017 Zew: (+)8.0 Piec: 21.7 Kociol: 12.2 C.W.U.: 18.5"
    "061 14:21:15 31/12/2017 Zew: (-)7.6 Piec: 21.7 Kociol: 12.2 C.W.U.: 18.5"
    "062 14:42:35 31/12/2017 Zew: (+)7.3 Piec: 21.7 Kociol: 12.2 C.W.U.: 18.5"
    "063 15:00:43 31/12/2017 Zew: (+)7.3 Piec: 21.7 Kociol: 12.2 C.W.U.: 18.5"
    "064 15:13:33 31/12/2017 Zew: (=)7.3 Piec: 21.7 Kociol: 12.2 C.W.U.: 18.5"

    "055 13:02:55 31/12/2017 Zew: (+)9.1 Kotl: (+)21.7 DS Temp 8: 22.2 DHT Temp: 22,3 DHT Hum: 56,0"
    "056 13:15:45 31/12/2017 Zew: (-)8.6 Kotl: (-)21.6 DS Temp 8: 22.2 DHT Temp: 22,3 DHT Hum: 66,0"
    "057 13:28:35 31/12/2017 Zew: (-)7.8 Kotl: (+)22.0 DS Temp 8: 22.2 DHT Temp: 22,6 DHT Hum: 57,0"
    "058 13:41:25 31/12/2017 Zew: (=)7.8 Kotl: (=)22.0 DS Temp 8: 22.2 DHT Temp: 22,7 DHT Hum: 54,0"
    "059 13:54:15 31/12/2017 Zew: (=)7.8 Kotl: (=)22.0 DS Temp 8: 22.2 DHT Temp: 22,7 DHT Hum: 53,0"
    "060 14:08:24 31/12/2017 Zew: (+)8.0 Kotl: (+)21.8 DS Temp 8: 22.2 DHT Temp: 22,5 DHT Hum: 54,0"
    "061 14:21:14 31/12/2017 Zew: (-)7.6 Kotl: (+)21.9 DS Temp 8: 22.2 DHT Temp: 22,5 DHT Hum: 55,0"
    "062 14:42:35 31/12/2017 Zew: (+)7.3 Kotl: (+)21.6 DS Temp 8: 22.2 DHT Temp: 22,2 DHT Hum: 56,0"


    Gdy pobrał czas z Domoticz
    "065 15:59:33 31/12/2017 Zew: (+)22.2 Piec: 21.7 Kociol: (=)ß8˜0›ţĎĹ C.W.U.: 18.5"
    "066 16:12:23 31/12/2017 Zew: (-)22.1 Piec: 21.7 Kociol: (=)ß8˜0›ţĎĹ C.W.U.: 18.5"
    "067 17:24:56 31/12/2017 Zew: (+)22.1 Piec: (=)”3ŕ8š9 Kociol: (-)8š7•ô9˜- C.W.U.: (=)”1™h”břŃ"
    "068 17:37:47 31/12/2017 Zew: (-)21.8 Piec: (=)”3ŕ8š9 Kociol: (-)8š7•ô9˜- C.W.U.: (=)”1™h”břŃ"
    "069 17:50:38 31/12/2017 Zew: (=)21.8 Piec: (=)”3ŕ8š9 Kociol: (-)8š7•ô9˜- C.W.U.: (=)”1™h”břŃ"
    "070 18:03:28 31/12/2017 Zew: (=)21.8 Piec: (=)”3ŕ8š9 Kociol: (-)8š7•ô9˜- C.W.U.: (=)”1™h”břŃ"

    "067 17:24:56 31/12/2017 Zew: (+)22.1 Kotl: (-)µß•
    ף< DS Temp 8: (-)ţĎĹ߈”1™- DHT Temp: 23,3 DHT Hum: 1,0"
    "068 17:37:46 31/12/2017 Zew: (-)21.8 Kotl: (-)µß•
    ף< DS Temp 8: (-)ţĎĹ߈”1™- DHT Temp: 22,7 DHT Hum: 1,0"
    "069 17:50:37 31/12/2017 Zew: (=)21.8 Kotl: (-)µß•
    ף< DS Temp 8: (-)ţĎĹ߈”1™- DHT Temp: 22,6 DHT Hum: 1,0"
    "070 18:03:28 31/12/2017 Zew: (=)21.8 Kotl: (-)µß•

    co ciekawe nie ma problemu z danymi z wyników pomiarów czujników, które są fizycznie podpięte do Atmegi. Mam dwie zmienne typu string - jedna tylko dla zapisu na SD, a druga do pozostałych funkcji. Starałem się tak to rozłożyć w Case'ach, żeby każdy czujnik miał "swój czas" i nic nie "nachodziło" na siebie.

    Ale gdy tylko dojdzie do odbioru
    Code: vbnet
    Log in, to see the code


    A tak odbieram NTP
    Code: vbnet
    Log in, to see the code


    Więc po starcie ESP8266 loguje się do sieci i do momentu, gdy nie pobierze danych ( tzn. uda mu się poprawnie pobrać ) z Domoticz to wszystko jest OK.

    Zastanawiam się, czy rozmiary stosów i ramek są dobre
    Code: vbnet
    Log in, to see the code


    Co mogło by być przyczyną ?
pcbway logo