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 / C++
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
Fajne? Ranking DIY
