Cześć,
krótki opis aplikacji: sterownik do terrarium, uruchamianie świateł wg harmonogranu, ogrzewanie na podstawie odczytów czujników.
Hardware
NodeMCU komunikuje się po i2c z MCP23017. Szyna posiada rezystory pullup 4,7k do 3.3V. Ekspander łączy się z ośmiokanałowym modułem przekaźników, do którego podpięte są wszystkie urządzenia sterowane. Przekaźniki zasilane z osobnego źródła 5V. Schemat w załączeniu.
Skrzyneczka sterująca znajduje się w "suficie" terrarium. Zaraz obok idzie koryto z przewodami.
Na podstawie schematu została wykonana płytka PCB. Linie i2c idą zaraz obok siebie, całkowita długość to ok. 4 cm.
Software
Układ współpracuje z Blynk. Kod nie będzie potrzebny do analizy problemu.
Urządzenia sterowane
1. Listwy LED dzienne.
2. Listwa LED nocna.
3. Promiennik (ogrzewanie) - zasilanie sieciowe.
4. Metahalogen i jego statecznik.
Opis problemu
Światło dzienne LED włącza się o 9. O 10 włączał się metahalogen. Niestety czasem jego rozruch powoduje wyłączenie innych świateł, a moduł przekaźników przestaje reagować na ręczne zmiany stanów przez Blynk. Poza tym program działa normalnie (np. odczyty z czujników, etc). Usunąłem metahalogen z układu i steruje nim oddzielnie (przez gniazdko WiFi). Problem jednak nie zniknął. Winą zatem obarczyłem MCP23017 i i2c. Napięcie zapłonu (wg Osram) wynosi 4.5 kV. Niestety wydaje mi się, że ten pik mocno miesza w mojej szynie. Sterownik jest teraz możliwie najdalej odsunięty od lampy i statecznika, jednak niewiele to zmienia. Moim dotychczasowym rozwiązaniem jest wywoływanie o 10:01 ESP.restart(). Rozwiązanie działa, światła się uruchamiają normalnie, ale nie jestem usatysfakcjonowany.
Meritum
I tutaj moje pytanie - co mogę zrobić, aby zabezpieczyć szynę przed interferencjami? Czy drukowanie ścieżek dla i2c było błędem? Jaka jest dobra praktyka - czy powinienem stosować przewody ekranowane do i2c zamiast ścieżek na płytce?
krótki opis aplikacji: sterownik do terrarium, uruchamianie świateł wg harmonogranu, ogrzewanie na podstawie odczytów czujników.
Hardware
NodeMCU komunikuje się po i2c z MCP23017. Szyna posiada rezystory pullup 4,7k do 3.3V. Ekspander łączy się z ośmiokanałowym modułem przekaźników, do którego podpięte są wszystkie urządzenia sterowane. Przekaźniki zasilane z osobnego źródła 5V. Schemat w załączeniu.
Skrzyneczka sterująca znajduje się w "suficie" terrarium. Zaraz obok idzie koryto z przewodami.
Na podstawie schematu została wykonana płytka PCB. Linie i2c idą zaraz obok siebie, całkowita długość to ok. 4 cm.
Software
Układ współpracuje z Blynk. Kod nie będzie potrzebny do analizy problemu.
Urządzenia sterowane
1. Listwy LED dzienne.
2. Listwa LED nocna.
3. Promiennik (ogrzewanie) - zasilanie sieciowe.
4. Metahalogen i jego statecznik.
Opis problemu
Światło dzienne LED włącza się o 9. O 10 włączał się metahalogen. Niestety czasem jego rozruch powoduje wyłączenie innych świateł, a moduł przekaźników przestaje reagować na ręczne zmiany stanów przez Blynk. Poza tym program działa normalnie (np. odczyty z czujników, etc). Usunąłem metahalogen z układu i steruje nim oddzielnie (przez gniazdko WiFi). Problem jednak nie zniknął. Winą zatem obarczyłem MCP23017 i i2c. Napięcie zapłonu (wg Osram) wynosi 4.5 kV. Niestety wydaje mi się, że ten pik mocno miesza w mojej szynie. Sterownik jest teraz możliwie najdalej odsunięty od lampy i statecznika, jednak niewiele to zmienia. Moim dotychczasowym rozwiązaniem jest wywoływanie o 10:01 ESP.restart(). Rozwiązanie działa, światła się uruchamiają normalnie, ale nie jestem usatysfakcjonowany.
Meritum
I tutaj moje pytanie - co mogę zrobić, aby zabezpieczyć szynę przed interferencjami? Czy drukowanie ścieżek dla i2c było błędem? Jaka jest dobra praktyka - czy powinienem stosować przewody ekranowane do i2c zamiast ścieżek na płytce?