logo elektroda
logo elektroda
X
logo elektroda
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Zdalny system ochrony budynku i sterowanie zabezbieczeniami RaspberryPi3

bartpuma 12 Lis 2017 17:56 1677 10
  • #1 16818556
    bartpuma
    Poziom 2  
    Posty: 3
    Witam,
    [AKTUALIZACJA]:
    Udało mi się postawić system, dzięki przywracaniu danych z karty pamięci (nie polecam :D) oraz pisaniu części programów na nowo. Moja strona działa bez zarzutów, jestem w stanie kontrolować 8-kanałowy przekaźnik. Podoba mi się to, że reakcja na wciśnięcie guzika na stronie jest natychmiastowa (ośmielę się powiedzieć, że poniżej sekundy). Początkowo pisałem programy w C++ reakcja trwała 10-15s, na zmianę stanu pinu lub odbiór danych z czujnika. Pisząc w C nie udało mi się połączyć systemu z przetwornikiem MCP3008 mimo że widziałem że inni dali radę, zmuszony byłem szukać pomocy w Pythonie, który okazał się rozwiązaniem problemów. Przepisałem programy na Pythona. Odczyt z czujników temp&wilg następuje natychmiastowo, wykres również. Czujnik dymu,smogu gazu to samo. Czujnik ruchu po wykryciu wyświetla na stronie godzinę i datę ostatniego zdarzenia. Podłączone 2 kamery usb nieważne, w ktory port, wyświetlają obraz. Kolejna rzecz nad jaką pracuje to podłączenie trzeciej kamery (Raspberry Pi NoiR Camera V2 8MP) wpinanej we wbudowany w plytke RPi3 port CSI. Mogę zdalnie podglądać obraz z użyciem VLC. Może ktoś wie jak zagnieździć to do HTML? To pytanie raczej nie na to forum... Dzisiaj przyszedł oryginalny 7-calowy ekran dotykowy, który jutro podłącze do całości.

    Jakby ktoś chciał rzucić okiem na strone proszę pw. Obecnie serwer operuje na moim publicznym adresie IP, który jest dynamiczny :)


    Chciałbym uwierzyć w to, że to forum jeszcze żyje. Jednak ciężko jest uzyskać tutaj odpowiedzi na pytania.
    Potrzebuje pomocy kogoś kto wie jak najlepszą drogą mogę załatwić sprawę zasilenia czujników, a także jakie rezystory umieścić i w jakim miejscu. Mam wszystko co do tego potrzebne (miernik, pełną dokumentację wszystkich komponentów, zestaw rezystorów, moduł do zewnętrznego zasilenia płytki stykowej operujących 3.3V i 5V).
    Podejrzewam, że dla przeciętny elektronik dysponuje potrzebną wiedzą.
    Oferuje wynagrodzenie za pomoc, prosze o kontakt, więcej informacji wyślę na pw.


    [ORYGINAŁ]:
    Mam problem z połączeniem wszystkich czujników po crashu systemu, który być może spowodowany był przeładowaniem systemu. Do tej pory udało mi się umieścić wyniki poniższych czujników na serverze, dzięki bazie danych (Python) dane automatycznie aktualizowały się na stornie, miałem zdalny dostęp, mogłem sterować przekaźnikiem. Miałem podgląd z kamer z możliwością zapisu. Na stronie wyświetlał się uptime servera. Do danych pobieranych z czujników dołączone zostały wykresy google. System pracował stabilnie do momentu usterki, aby uniknąć podobnych doświadczeń, chcę upewnić się, że wszystko mam dobrze podłączone.

    Raspberry Pi 3
    System operacyjny: Raspbian 8.0 Jessie

    *8-kanałowy przekaźnik 5V [SRD-05VDC-SL-C]
    *2x czujnik temperatury i wilgoci [DHT11]
    *2x czujnik ruchu PIR [HC-SR501]
    *czujnik gazu, dymu, czadu [MQ-2]
    *2x czujnik otwarcia/zamkniecia okien (kontrakton magnetyczny) [CMD918]
    *Przetwornik A/C MCP3008 10-bitowy 8-kanałowy SPI
    *2x kamera USB
    *Raspberry Pi NoiR Camera V2 8MP
    *Ekran dotykowy 7"
    * karta MicroSD 64GB.
    Załączniki:
    • raspberrypi3-datagram.xlsx (14.38 KB) Musisz być zalogowany, aby pobrać ten załącznik.
  • #2 16986838
    _jta_
    Specjalista elektronik
    Posty: 49098
    Pomógł: 3212
    Ocena: 4252
    być może spowodowany był przeładowaniem systemu - masz na myśli przeciążenie procesora/pamięci/zasilania, restart systemu?

    Nie wiem, jak wygląda podłączenie tych czujników - przy długich połączeniach dobrze byłoby zabezpieczyć porty Raspberry przed napięciami indukowanymi w przewodach. Poza tym, uszkodzenie czujnika zasilanego z Raspberry może poważnie zakłócić działanie samego Raspberry, np. spowodować reset.
  • #3 16987118
    chudybyk
    Poziom 32  
    Posty: 1537
    Pomógł: 196
    Ocena: 297
    Dla sygnałów bistabilnych (przekaźniki, styki itp.) warto zastosować izolację galwaniczną np. przez transoptory. Dla interfejsów szeregowych też czasem można - np. SPI. Gorzej już w przypadku One-Wire, albo I2C, gdzie linie są dwukierunkowe. Wtedy pozostaje zabezpieczanie transilami.
    Elementy za izolacją galwaniczną zasilić należy niezależnym źródłem napięcia oczywiście.

    Alternatywnie można całą obsługę hardware-u wrzucić do jakiegoś małego mikrokontrolera, którego połączymy np. przez izolowanego RS-a z Raspberry. Spalony mikrokontroler mniej boli, bo tańszy i łatwiej wymienić.
  • #5 16989285
    chudybyk
    Poziom 32  
    Posty: 1537
    Pomógł: 196
    Ocena: 297
    _jta_ napisał:
    Może autor miał problem z kartą pamięci spowodowany jej zużyciem

    To też da się przeskoczyć - częściowo. Trzeba skonfigurować system do pracy z kartą w trybie Read-only. Konieczne dane przechowywać w Ramie, ewentualnie na zewnętrznym dysku wpiętym przez USB. Ciut skomplikowane może się zacząć to robić, ale się da.
  • #6 16989393
    hindoos
    Poziom 36  
    Posty: 3754
    Pomógł: 290
    Ocena: 662
    chudybyk napisał:
    To też da się przeskoczyć - częściowo. Trzeba skonfigurować system do pracy z kartą w trybie Read-only.

    I pozbyć się aktualizacji bezpieczeństwa, świetny pomysł ;)
    Za 32 euro jest dysk twardy dedykowany do RPi http://wdlabs.wd.com/category/wd-pidrive/ z kablem i rozgałęźnikiem, więc zasilanie dysku idzie bezpośrednio z zasilacza, nie obciążamy linii 5V w malinie.
    A tu przełączenie z SD na HDD: http://malinowepi.pl/post/154374529043/pidrive-czyli-dysk-twardy-dla-maliny-pidrive
    I mamy od razu dużo miejsca na zbieranie danych, monitoring itd.
  • #7 16996319
    bartpuma
    Poziom 2  
    Posty: 3
    Witam,
    Problem z kartą pamięci/crashem systemu został całkowicie rozwiązany. Problemem była karta pamięci. Więc ten wątek jest zamknięty.

    Natomiast nadal nie wiem jak mogę zasilić poszczególne czujniki. Na chwile obecną zasilanie brane jest z Raspberry Pi. Mam zakupiony Moduł zasilający do płytek stykowych ProtoPower - 3,3V 5V / 2A (Botland) i chciałbym go wykorzystać, aby odciążyć RPi.

    Pytanie odnośnie rezystorów, jedynymi czujnikami z mojego projektu potrzebującymi użycia reystora są 2 czujniki temp&wilg, zgadza się? Podpowiedziano mi, że nalezy użyć 4,7K Ohmowy do 1, a jak wygląda sprawa przy 2 czujnikach w momencie, gdy zasilane są z tego samego pinu 3v3 Raspberry Pi?

    Załączam schemat, zwróćcie uwagę na 2 pomaranczowe przewody na dole, czy w ten sposob powinno byc połączone?

    Za każdą pomoc - wielkie dzięki!
    Pozdrawiam.


    Zdalny system ochrony budynku i sterowanie zabezbieczeniami RaspberryPi3
  • #8 16996429
    chudybyk
    Poziom 32  
    Posty: 1537
    Pomógł: 196
    Ocena: 297
    Rezystory czujników DHT11 należy wpiąć między zasilanie (czerwony przewód) a magistralę (żółty przewód). Obecnie masz zwarcie magistrali do zasilania.
    Warto podobnie wpiąć wejścia kontaktronów, bo są to zwykłe niespolaryzowane styki - mogą dawać stany nieustalone bez polaryzacji.

    Co do zasilania - na pewno warto osobno zasilić przekaźniki - bo potrafią przenosić przez zasilanie zakłócenia przy przełączaniu.

    Zachwycił mnie schemat - piękny, kolorowy, szczegółowy, i zupełnie niezgodny z zasadami tworzenia schematów. Mimo wszystko doceniam zaangażowanie. :-)

    Pamiętaj, że prawidłowa praca czujników (np. na 1-wire) może mocno zależeć od odległości. Jak daleko od sterownika będą poszczególne elementy?
  • #9 16998092
    bartpuma
    Poziom 2  
    Posty: 3
    Limit (ok.20) wysłanych prywatnych wiadomości osiągnięty, od kilku dni nie mogę odpisać w ważnych mi kwestiach. Komunikat: Niestety limit wysłanych prywatnych wiadomości został przekroczony spróbuj ponownie za kilka dni.

    Poprawiłem schemat wg zaleceń @chudybyk sprawdź proszę czy dobrze zrozumiałem.

    Zasatnowie się odnośnie użycia rezystorów do kontaktronów, z uwagi na to iż otrzymałem kilka sprzecznych informacji na ich temat i musze to przemyśleć. Natomiast moduł przekaźników zasile zewnętrznie. Wszystkie czujniki i urządzenia będą w bliskiej odległości ze sobą, jest to projekt pracy inżynierskiej. Pozostało mi polutowanie układu oraz stworzenie schematu elektrycznego w celu zamknięcia dokumentacji.



    Zdalny system ochrony budynku i sterowanie zabezbieczeniami RaspberryPi3
  • #10 16998669
    tronics
    Poziom 38  
    Posty: 5065
    Pomógł: 358
    Ocena: 840
    chudybyk napisał:
    Warto podobnie wpiąć wejścia kontaktronów, bo są to zwykłe niespolaryzowane styki - mogą dawać stany nieustalone bez polaryzacji.

    Tylko po co zewnętrzny pull-up skoro można zastosować wewnętrzny?
    Cytat:
    Podpowiedziano mi, że nalezy użyć 4,7K Ohmowy do 1

    Jeśli są na wspólnej linii 1 wire to jest jeden, dokładnie tak jak w przypadku I2C jest jeden komplet (na SDA i SCL) dla wszystkich podłączonych do iej urządzeń. Jeśli sobie zrobimy kilka instancji (a da się!) to do każdej musi być osobny.
    Cytat:
    Pamiętaj, że prawidłowa praca czujników (np. na 1-wire) może mocno zależeć od odległości

    Bez przesady, miałem na 12m skrętce i działał bez zarzutu. Układy próbkują stan z opóźnieniem właśnie by zapobiec błędnemu odczytowi przy wolnym narastaniu, a gdyby pojemność linii była za duża wystarczy zmienić rezystor na 3.3k albo 2.7k
    Cytat:
    Co do zasilania - na pewno warto osobno zasilić przekaźniki - bo potrafią przenosić przez zasilanie zakłócenia przy przełączaniu.

    To prawda, niektóre płytki z przekaźnikami mają zworkę, domyślnie zwiera VCC z JD-VCC gdzie JD to napięcie zasilania cewki. Można to rozłączyć, do VCC dać napięcie z RPi, a do JD-VCC napięcie z osobnego zasilacza. Masy oczywiście są połączone tak czy siak.
  • #11 16999044
    chudybyk
    Poziom 32  
    Posty: 1537
    Pomógł: 196
    Ocena: 297
    Rezystory są już ok. Możesz oba czujniki wpiąć na jedną magistralę, jak sugeruje @tronics , ale będziesz musiał je adresować przy komunikacji.
    tronics napisał:
    Tylko po co zewnętrzny pull-up skoro można zastosować wewnętrzny?
    Dla świętego spokoju. ;-) Wtedy można mierzyć stan czujnika bez wpiętego procesora - kiedy debugujemy program rezystor może zaoszczędzić kłopotu. Dodałbym jeszcze kilkaset omów szeregowo i diodę lub transil dla bezpieczeństwa, ale musu nie ma.

Podsumowanie tematu

✨ Użytkownik zbudował zdalny system ochrony budynku na bazie Raspberry Pi 3, który umożliwia kontrolę 8-kanałowego przekaźnika oraz odczyt danych z czujników (temperatura, wilgotność, dym, smog, gaz, ruch). Problemy z opóźnieniem reakcji zostały rozwiązane poprzez przepisanie programów z C++ na Pythona. Użytkownik napotkał trudności z zasilaniem czujników, które obecnie są zasilane z Raspberry Pi, oraz z użyciem rezystorów pull-up dla czujników DHT11. W dyskusji poruszono również kwestie związane z zabezpieczeniem portów przed napięciami indukowanymi oraz zalecenia dotyczące izolacji galwanicznej dla przekaźników. Użytkownik planuje użycie zewnętrznego modułu zasilającego ProtoPower, aby odciążyć Raspberry Pi.
Podsumowanie AI na podstawie dyskusji. Może zawierać błędy.
REKLAMA