Mam układ w konfiguracji jak w tytule ( do tego czujniki DS, BME280, zapis SD, RFM12 )
Ostatni etap to wysyłanie przez JSON do Domoticz. Niestety szwankuje wysyłanie i robi to losowo, czasem po wysłaniu danych z kilku czujników, czasem przejdzie cały "cykl"
Odstęp pomiędzy wysyłaniem wynosi pomiędzy 20 a 30 sekund, natomiast odstęp pomiędzy wysyłaniem danych dla konkretnego czujnika wynosi 11 minut.
W załączniku cały kod, wklejam tylko część odpowiedzialną za Domoticz + fragment Select Case. Do odbioru UART wykorzystałem Serial0charmatch według pomysłu Niveasoft.
I teraz podpinając się do UART od strony Tx ESP8266 mam:
Wygląda tak, że Atmega przestaje reagować na odpowiedź "OK" - na polecenie AT+PING="192.168.0.92". ESP8266 raczej nie jest winny - odsyła "OK" i Atmega powinna w tym momencie rozpocząć wysyłanie. Resetowałem go podczas pracy, to nic nie zmieniło, dopiero reset całego układu pomaga - na chwilę.
Dodatkowo jako "bonus" ( ale to wymaga zajrzenia do kodu ) do momentu w którym działa jeszcze wysyłanie do Domoticz, nie działa komunikacja z Masterem 2, w momencie, gdy przestaną być wysyłane dane czujników do Domoticz, odbieranie danych z Master 2 zaczyna działać jak trzeba. No i oczywiście poza tym problemem całość działa - niezależnie, czy dane są wysyłane,czy nie - odczytywanie czujników, wysyłanie do klientów i zapis na SD - wszystko to działa.
Co może być przyczyną takiego zachowania UART'a Atmegi ?
Ostatni etap to wysyłanie przez JSON do Domoticz. Niestety szwankuje wysyłanie i robi to losowo, czasem po wysłaniu danych z kilku czujników, czasem przejdzie cały "cykl"
Odstęp pomiędzy wysyłaniem wynosi pomiędzy 20 a 30 sekund, natomiast odstęp pomiędzy wysyłaniem danych dla konkretnego czujnika wynosi 11 minut.
W załączniku cały kod, wklejam tylko część odpowiedzialną za Domoticz + fragment Select Case. Do odbioru UART wykorzystałem Serial0charmatch według pomysłu Niveasoft.
Code: vbnet
I teraz podpinając się do UART od strony Tx ESP8266 mam:
Code: bash
Wygląda tak, że Atmega przestaje reagować na odpowiedź "OK" - na polecenie AT+PING="192.168.0.92". ESP8266 raczej nie jest winny - odsyła "OK" i Atmega powinna w tym momencie rozpocząć wysyłanie. Resetowałem go podczas pracy, to nic nie zmieniło, dopiero reset całego układu pomaga - na chwilę.
Dodatkowo jako "bonus" ( ale to wymaga zajrzenia do kodu ) do momentu w którym działa jeszcze wysyłanie do Domoticz, nie działa komunikacja z Masterem 2, w momencie, gdy przestaną być wysyłane dane czujników do Domoticz, odbieranie danych z Master 2 zaczyna działać jak trzeba. No i oczywiście poza tym problemem całość działa - niezależnie, czy dane są wysyłane,czy nie - odczytywanie czujników, wysyłanie do klientów i zapis na SD - wszystko to działa.
Co może być przyczyną takiego zachowania UART'a Atmegi ?