Elektroda.pl
Elektroda.pl
X
Metal Work Pneumatic
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Dom + fatek + arduino + modbus +C#

doran5 03 Lis 2018 15:19 5001 28
  • Dom + fatek + arduino + modbus +C#
    Witam.
    Przedstawiam wszystkim mój projekt. Projekt dotyczy sterowania domem choć to za dużo powiedziane. System składa się ze sterownika PLC Fatek z modułem komunikacji dla modbus 485 oraz TCP i układu odczytu temperatury na ATMega 32 (DS18B20).

    Opis projektu PLC :
    • PLC steruje światłem na klatce
    • PLC steruje piecem CO
    • Otwieraniem drzwi przez WWW
    • Reszta nie została podłączona

    I tyle, jak widać jest to przerost treści nad formą i tu polecam wykonanie sterowania na np. ARDUINO, który będzie pracował jako układ sterowania naszym domem.
    Dla młodszych uwaga: po moich doświadczeniach lepiej zrobić osobną płytkę sterownika i osobny układ wizualizacji.

    Opis projektu wizualizacja:
    • Wbudowany serwer WWW w PLC generuje stronę zdalną ale jest ona dość brzydka.
    • Tablet z Windows 8 ma wgrany program napisany w C# który przez Modus TCP odczytuje dane z PLC (testowałem kiedyś połączenie z Arduino i też ładnie chodziło ale lepiej wziąć szybszy procesor)

    Ponieważ PLC to prosta sprawa opiszę tylko wizualizację.
    Podstawową funkcją jest genialna biblioteka zaczerpnięta ze strony :

    www.easymodbustcp.net/easymodbustcp

    Przykład odczytu :

    Kod: c
    Zaloguj się, aby zobaczyć kod

    Teraz pytanie czemu modbus – ponieważ od 25 lat zajmuję się sterownikami ta komunikacja towarzyszyła mi od zawsze. Pierwsze programy pisane w Delhi 7 używały mojej komunikacji w modbusie i komunikowały się z płytkami sterującymi napisanymi w Bascomie.

    Tutaj mała dygresja; ponieważ wyrosłem na Pascalu i Delhi jestem kiepski w C#, nie lubię tej całej otoczki obiekty, klasy dla tego moje obecne programy nie są dobrymi wzorami do naśladowania i warto poprawić co nieco.

    Teraz opis programu:
    • W timerku odczytuje dane co określony czas i zapisuje je do tabeli (wykresy temperatur) i zmieniam ikony na panelu
    • Drugi timerek sprawdza czy używam ekranu jeśli nie to załączam wygaszacz.
    • Każde naciśnięcie przycisku wysyła po Modbusie rozkaz zmiany
    • Dla oszczędności energii panel ściemnia się w nocy.

    Na stronie sourceforge.net/projects/easymodbustcp/files/latest/download jest serwer który po odpaleniu lokalnie i zmianie adresu w mojej aplikacji może nam zasymulować nasz sterownik.

    Załączam pełen kod programu, program jest jaki jest, nie ponoszę za niego żadnej odpowiedzialności, program można dowolnie modyfikować i używać.





    class ScreenGamma jest ściągnięta z sieci ale niestety nie mogę znaleźć tej strony.

    Program nie będzie dalej rozwijany z prostego powodu nie da się kupić nowego tabletu w Windowsem.
    Pytanie co teraz?
    Kupiłem Malinkę, zainstalowałem Raspiana i uczę się Pytona.
    Dlaczego? -> bo ma w sobie serwer WWW,, znalazłem bibliotekę ModbusTCP, która odpaliła od razu, więc będę się teraz męczył nad serwerem. Może Flask, może Django.
    Pierwsza strona we Flasku już ruszyła ale myślę że to zajmie mi z pół roku.

    Ponieważ coraz więcej aplikacji pracuje jako strona WWW więc zamiast aplikacji po stronie tabletu będę miał serwer WWW na malince i stronę dostępną na każdym urządzeniu domu oraz zdalnie.
    Miłej lektury AS

    Dom + fatek + arduino + modbus +C# Dom + fatek + arduino + modbus +C# Dom + fatek + arduino + modbus +C#


    Fajne! Ranking DIY
    Potrafisz napisać podobny artykuł? Wyślij do mnie a otrzymasz pendrive 32GB.
  • Metal Work Pneumatic
  • #2 03 Lis 2018 21:08
    sza86
    Poziom 3  

    Fajny projekt. Sam aktualnie męczę coś podobnego ale serwer stawiam na Qnapie nie na malince ;) (co kto ma ).
    Jaki masz sterownik pieca i jak się z nim komunikujesz?

  • #3 03 Lis 2018 21:10
    hummer130
    Poziom 11  

    Cyt: "• Dla oszczędności energii panel ściemnia się w nocy."
    Ściemnia się z pomocą czujnika czy zegara? Pytam z ciekawości ponieważ dla mnie noc to druga w nocy a dla innych noc to jak jest ciemno na dworze ;-). Pozdrawiam

  • #4 04 Lis 2018 09:57
    JedenZero
    Poziom 8  

    Pomijając aspekt edukacyjny, nie trzeba pisać wszystkiego od 0, polecam Home Assistant. Nie wiem czy wspiera Twój sterownik najwyżej dopiszesz sam komponent do obsługi sterownika a cały serwer, i aplikacje mobilną i www masz gotową. Do pi jest specjalna dystrybucja 'hassbian'. Możliwości tego sytemu są naprawdę spore i trochę czasu zajmuje jego rozpoznanie ale to i tak nic w porównaniu do pisania wszystkiego samemu. Myślę że zamiast w pół roku uda się w miesiąc ;)

  • #5 04 Lis 2018 12:30
    doran5
    Poziom 3  

    sza86 napisał:
    Fajny projekt. Sam aktualnie męczę coś podobnego ale serwer stawiam na Qnapie nie na malince ;) (co kto ma ).
    Jaki masz sterownik pieca i jak się z nim komunikujesz?

    Sterownikiem jest PLC Fatek, cała automatyka jest na nim.

    Dodano po 2 [minuty]:

    hummer130 napisał:
    Cyt: "• Dla oszczędnoœci energii panel œciemnia się w nocy."
    Œciemnia się z pomocš czujnika czy zegara? Pytam z ciekawoœci ponieważ dla mnie noc to druga w nocy a dla innych noc to jak jest ciemno na dworze ;-). Pozdrawiam
    Mam czujnik - zwykły fotoopornik podłšczony do Fateka na wejscie analogowe i on decyduje kiedy przełšcza się tryb nocny, ten tryb włšcza też funkcję automatycznego załšczania œwiatła na klatce schodowej po otwarciu drzwi.

    Dodano po 3 [minuty]:

    JedenZero napisał:
    Pomijając aspekt edukacyjny, nie trzeba pisać wszystkiego od 0, polecam Home Assistant. Nie wiem czy wspiera Twój sterownik najwyżej dopiszesz sam komponent do obsługi sterownika a cały serwer, i aplikacje mobilną i www masz gotową. Do pi jest specjalna dystrybucja 'hassbian'. Możliwości tego sytemu są naprawdę spore i trochę czasu zajmuje jego rozpoznanie ale to i tak nic w porównaniu do pisania wszystkiego samemu. Myślę że zamiast w pół roku uda się w miesiąc ;)

    Byłem już zdecydowany na Domoticz ale wolę sam wszystko kontrolować.

  • Metal Work Pneumatic
  • #6 04 Lis 2018 13:07
    sza86
    Poziom 3  

    A myślałeś o OpenHAB?
    Jeśli nie rzuć okiem na opisy i możliwości integracji bo nie sposób krótko opisać

  • #7 04 Lis 2018 13:12
    doran5
    Poziom 3  

    sza86 napisał:
    A myślałeś o OpenHAB?
    Jeśli nie rzuć okiem na opisy i możliwości integracji bo nie sposób krótko opisać

    Przez prawie miesiąc studiowałem różne rozwiązania, każde ma swoje zalety i wady.
    Ja już wybrałem nowy język Phyton i Malinka3.
    Ale dzięki za podpowiedzi.

  • #8 04 Lis 2018 13:56
    sza86
    Poziom 3  

    To może teraz pochwal się jakie masz stworzone "algorytmy" do domu.
    Chętnie coś popatrzę ;D

  • #9 04 Lis 2018 19:22
    doran5
    Poziom 3  

    Używam czegoś takiego:
    - pomiar temperatur w chyba 8 miejscach
    - reguluje prace pieca CO (dzień/noc/party )
    - nadzoruje prace fotoogniwa 24V 200W
    - cos w rodzaju inteligentnego światła na klatce
    - otwieranie drzwi wejściowych przez WWW
    - pomiar energii elektrycznej chwilowa i w dwóch strefach (dane tylko w PLC ponieważ na koniec roku zmieniam taryfę)
    - współpraca z domofonem.
    -rejestr i wykres temperatur ale bez bazy danych 12/24/48godzin
    -nadzór nad czujnikami ruchu
    Miała być jeszcze kamera i pogoda wyświetlana na tablecie ale mi przeszło.
    Jak widać żadnych wodotrysków, tylko podstawowe funkcje.
    W szafie mam kabel do każdej lampy i gniazdka w domu ale tylko lampy są na przekaźnikach ale nie było sensu ich podłączać.
    W zasadzie podłączę jeszcze lampę w przedpokoju żeby się zaświecała kiedy jest ciemno i wchodzę do mieszkania
    Jest też sterowanie do kominka nadmuchem ale na razie też nie podłączone.

  • #10 05 Lis 2018 08:26
    Szyszkownik Kilkujadek
    Poziom 32  

    doran5 napisał:
    - otwieranie drzwi wejściowych przez WWW

    Dostęp do tej WWW masz tylko w sieci lokalnej? Jeśli tak to w jakim celu takie otwieranie? Co to daje?
    Jak wygląda to od strony mechanicznej? Jakiś rygiel jak w domofonach?
    Możesz rozwinąć i podać nieco szczegółów?

  • #11 05 Lis 2018 09:33
    doran5
    Poziom 3  

    W drzwiach wejściowych jest normalny zamek z elektro-zaczepem sterowany przez domofon i PLC
    Dostęp do otwierania drzwi tylko z lokalnej sieci przez WIFI . Kiedy czasem wracam bez kluczy od domu nie muszę dzwonić na domofon i budzić domowników. Czasem zostawiam auto żonie i tam mam spięte kluczyki od domu więc po dwóch przypadkach kiedy zostałem bez kluczy dorobiłem sobie taką możliwość.
    Sposób działania : na stronie generowanej przez Fateka jest pole wpisz hasło jako drugie zabezpieczenie (pierwsze to adres do wifi) i po naciśnięciu przycisku otwierają się drzwi i tyle.

  • #12 05 Lis 2018 10:39
    Szyszkownik Kilkujadek
    Poziom 32  

    doran5 napisał:
    W drzwiach wejściowych jest normalny zamek z elektro-zaczepem sterowany przez domofon i PLC

    A jak rozwiązałeś kwestię zamknięcia zasuwy kluczem?

  • #14 05 Lis 2018 12:33
    Szyszkownik Kilkujadek
    Poziom 32  
  • #15 05 Lis 2018 13:16
    krisRaba
    Poziom 25  

    Masz jakiś solidny i sprawdzony elektrozaczep? Większość tych domofonowych jest wewnątrz raczej słaba mechanicznie i mocniejszy argument z podeszwy przełącza je w always_open_mode ;-)
    W klatkach to nie jest ostatnia linia obrony, więc nie ma problemu. Drzwi wejściowe to już inna sprawa...

  • #16 05 Lis 2018 13:18
    doran5
    Poziom 3  

    Szczerze to zamek lub elektro-zaczep i domofon zatrzymają tylko amatora, gość przy mnie otwierał zamek do auta może 30 s.

    Od zewnątrz nie ma klamki, żeby wejść do domu (klatka schodowa) muszę użyć klucza - typowy układ jak np w blokach z domofonem.
    Ale nie jestem naiwny drzwi do mieszkania zamykam kiedy nikogo nie ma w domu.

  • #18 07 Lis 2018 17:27
    doran5
    Poziom 3  

    Jak widzisz na zdjęciach rozdzielnia powstała 20 lat temu.
    Jest podzielona. Górna część obwody siłowe i przekaźniki do świateł, dolna część zasilacze 5/12/24V i płytka zabezpieczeń analogów. Poniżej M32 i wejścia DS18B20 i PLC. Jeszcze niżej domofon i przekaźniki systemowe. Dom + fatek + arduino + modbus +C# Dom + fatek + arduino + modbus +C#

    Dodano po 22 [minuty]:

    ditomek
    Popatrzyłem na Twój temat. Bardzo ładnie zrobiony sterownik.
    Przypomniałem sobie mój pierwszy układ (zdjęcie poniżej).
    Sterownik na M32 16Mhz, zasilacz 5/9/24 (z 9 V szedł mój domofon), wejścia i wyjścia na I2C ale to nie był najlepszy układ.
    Dodatkowo płytka od Ethernetu i to wszystko w Bascomie- wtedy nie było jeszcze Arduino.
    Ale to już historia. Dom + fatek + arduino + modbus +C#

  • #19 07 Lis 2018 19:00
    Bojleros
    Poziom 15  

    doran5 napisał:
    Byłem już zdecydowany na Domoticz ale wolę sam wszystko kontrolować.


    To co wykonałeś jest imponujące. Sam niedawno chciałem sam zrobić prosty system do kontroli oświetlenia w salonie od A do Z ale ostatecznie się z tego wyleczyłem bo doszedłem do wniosku, że korzystanie z gotowców wcale złe nie jest bo daje sporą oszczędność czasu. Zobacz sobie to repo https://github.com/bojleros/ec133mqtt . To jest mikroserwis który z jednej strony wysyła ramki RTU po RS485 do Enteriusa EC133MB a z drugiej strony łączy się do brokera MQTT. Format wiadomości mam kompatybilny z Home Assistantem ale to nie zamyka możliwości. Zobacz sobie ile masz apek dostępnych na Androida pod hasłem "mqtt panel". Hass wysyła i odbiera wiadomości w formacie JSON. Wiele paneli ma możliwość wyciągania wartości z poszczególnych pól jsona i podpinanie je pod suwaki , przyciski , lampki .... Masz co chcesz w cenie starszego tabletu z ładowarką do powieszenia na ścianie. PLC z panelem tańsze od tableta nie będzie a i w razie awarii łatwiej tablet zastąpić innym lub tymczasowo telefonem. Jak zabezpieczysz brokera mqtt używając ssl/tls to w zasadzie bez tunelowania możesz sterować z internetu. Każdy kanał składa się z topicu sterowniczego i statusowego. Jak do sterowniczego wpadnie nowa nastawa i zostanie ona zaaplikowana to ec133mqtt potwierdza to wiadomością do topica statusowego. W ten sposób każdy klient ma odświeżony stan praktycznie natychmiastowo. Liczba klientów i ich rodzaj nie ma za bardzo znaczenia.

    Ja muszę jeszcze napisać apkę która będzie obsługiwała wiadomości jakie po RS485 spływają z moich dwóch pokręteł w salonie. Szukałem kiedyś paneli i sposobu na sterowanie oświetleniem z dwóch punktów bo salon mam przechodni. Wyszło na to , że w zasadzie łatwiej było ogarnąć własną elektronikę i wsadzić ją w obudowy z Ospelowego ŁP-8 ;). Moje pokrętła nadają proste wiadomości tekstowe o kliknięciu i/lub obrocie po rs485 więc mogę tych pokręteł zapiąć co najmniej kilka na jednej magistrali godząc się z minimalnym ryzykiem kolizji przed którym i tak zabezpiecza mnie suma kontrolna. Moja apka musi te wiadomości przekształcić w gesty i odpowiednio modyfikować stan po mqtt.

    Ps. Mam za sobą kilka projektów z podobnych dziedzin prowadzonych z perspektywy elektronika albo automatyka przemysłowego. Projekty te mniej lub bardziej cierpiały ze względu na brak programisty spoza dziedziny embedded. Brakowało interdyscyplinarnej po prostu wymiany wiedzy ...

  • #20 07 Lis 2018 19:40
    doran5
    Poziom 3  

    Wiem ze MQTT to przyszłość systemów sterowania i widzę że zrobiłeś kawał świetnej roboty.
    Może gdybym teraz na nowo zaczynał skorzystałby z tej technologii bo daje ogromne możliwości ale mam już cały sprzęt skompletowany. Nie wiem czego używasz za pokrętła ale miałem kiedyż bardzo ładne enkodery obrotowe.
    Możesz podpiąć kilka, każdy osobno steruje tą samą zmienną.

  • #21 07 Lis 2018 20:17
    Bojleros
    Poziom 15  

    Dom + fatek + arduino + modbus +C#


    Po lewej moja płytka (bez obsadzonego enkodera) , po prawej oryginalne flaczki z Ospel ŁP-8. Enkoder w oryginalnej elektronice to to chyba Bourns PEC11R natomiast w pobliskim sklepie elektronicznym dostałem kompatybilny zamiennik i kompletnie mnie to nie boli, że ma mniej impulsów na obrót od oryginału. ŁP-8 tani nie jest bo niby też może ściemniać ledy 230V ale nie chciałem mieć jakiegoś dziadostwa na ścianach w salonie.

    Widzisz , ENCMOD_1 powstał właśnie przy założeniu że całość (pokrętła i regulator PWM ledów) będzie działała na jednej magistrali z Modbusem RTU. Tylko to oznaczałoby konieczność ciągłego poolingu co przy 19200bd (narzucane przez EC133MB) oznaczałoby laga w reakcji który by mnie irytował no i też system byłby o wiele trudniejszy w integracji. Dlatego koncepcja uległa zmianie i mam dwie magistrale rs485, jedna do ściemniacza z modbusem rtu a druga ze zwykłymi wiadomościami tekstowymi. Koszt to dodatkowy konwerter usb-rs485 za ~9zł a uproszczenie znaczne.

    Możesz napisać coś więcej o tych swoich enkoderach ? Nie masz czasem jakiegoś wielokanałowego konwertera ? Ja nie chciałem puszczać sygnałów z enkoderów długimi kablami. Co prawda pokrętło w salonie to nie enkoder na silniku ale stare przyzwyczajenia pozostają.

  • #22 07 Lis 2018 20:31
    doran5
    Poziom 3  

    To był zwykły enkoder podpięty bezpośrednio pod AVR bez żadnej elektroniki .
    Idea miała być taka : dwa gołe enkodery , każdy podpięty do procesorka AVR czytany przez modbusa RS485 w centralnym sterowniku. żeby przyspieszyć reakcje układu enkodery reagowały na nacisk (oprócz obrotu miały przycisk w ośce), ten przycisk mówił do sterownika słuchaj teraz enkodera nr1.
    Ostatecznie nie używam żadnych enkoderów , zwykły przycisk załącz wyłącz.

  • #23 07 Lis 2018 21:28
    Bojleros
    Poziom 15  

    To w zasadzie identycznie jak w moim ENCMOD_1. Ja jednak zamierzam korzystać z przycisku i pokrętła bo mam trzy niezależne obwody led i nie chcę się ograniczać do włącz/wyłącz.

  • #27 09 Lis 2018 15:49
    doran5
    Poziom 3  

    W szafie sterującej od góry od lewej:
    Zasilacz 5/12/24 V zasilany z trafo lub akumulatora 24V.
    Wykorzystałem przetwornice ze sklepu internetowego, napięcie regulowane i prąd ograniczenia, ale po testach okazało się że
    czasami wariował procesor M32 więc założyłem stary sprawdzony stabilizator impulsowy LM2576. Całość dla ładnego wyglądu przykręcona do wytrawionej płytki.
    Następna to zabezpieczenie dla wejść PLC. Ponieważ wejście w PLC jest od 0-10V a akumulator ma 24V więc mam tam dzielnik i miały być diody zenera 10,1V .
    Poniżej jest płytka z AVR M32, ponieważ koszt wejść analogowego pomiaru temperatur był zbyt wysoki zrobiłem dodatkowy moduł który mierzy temperatury przez DS18B20 i pozwala się odczytać przez modbusa RS485, płytka miała też czytać czy są 3 fazy ale jednak nie podpiąłem 400V na płytkę ze względów bezpieczeństwa. Płytka czyta też fotorezystor który mówi jak jest ciemno na zewnątrz.
    Ponizej Fabryczny domofon oraz fabryczna płytka z przekaźnikami chyba z Relpola.

    Jesli chodzi o stare płytki to po kolei:
    -płytka z przekaźnikami na 24 V - do płytki przechodzą sygnały sterujące ze sterownika, na driver ULN2803 do którego podpięte są cewki przekaźników, Przekaźniki sterowały światłami w domu.
    - płytka wejść cyfrowych 24V typowy układ z dzielnikiem i optoizolatorem na 16 wejść obsługiwała przyciski na klatce, kontaktrony na drzwiach wejściowych znowu tasiemka do do sterownika.
    - płytka zasilacza zasilacz 24/9(12)/5V dla całej szafy, z bezpiecznikami i przełączaniem przekaźnikiem zasilanie sieciowe, akumulator. Z boku widać gniazdo na tasiemki do sterownika które miało czytać czy są wszystkie napięcia ale nigdy tego nie testowałem.
    -płytka sterownika - prosta płytka z M32, gniazdem programowania, wyświetlacza, przycisków, 2 gniazda wejść analogi i cyfrowe, 1 gniazdo wejść po i2C, 2 gniazda wyjść po I2C, RS232/485, gniazdo na płytkę do internetu NM7010A.
    Układ był zbyt słaby na wymagania jakie miałem, pracował jednoczenie:
    wyświetlacz Lcd z 4 przyciskami,
    strona WWW o ile można to nazwać stroną WWW ale wtedy była znośna w czystym HTML
    8 wejść analogowych + 8 wejść cyfrowy bezpośrednio podpiętych do procka
    wejścia i wyjścia I2C i tu już okazało się ze Bascom miał problemy, pomimo kontroli błędów na szynie I2C,
    Generalnie teraz zrobiłbym jedną płytkę na Arduino która była by sterownikiem, a drugą do wizualizacji.
    Jakiś rok temu zacząłem testy z Arduino Due 80MHz ale strona strasznie się ślimaczyła i dla tego przesiadłem się na malinkę w nowym układzie.
    I w zasadzie to cały opis.

  • #28 11 Lis 2018 13:26
    Pittt
    Poziom 31  

    doran5 napisał:
    Program nie będzie dalej rozwijany z prostego powodu nie da się kupić nowego tabletu w Windowsem.

    co masz na myśli pisząc że nie da się kupić nowego tabletu z Windowsem ?

  Szukaj w 5mln produktów