PLC-home.pl

...inteligentny dom zarządzany przez sterownik PLC

Odczyt temperatur w pomieszczeniach - system pomiaru temperatury

Rozkład kabli w moim domu jest w topologii gwiazdy, więc postanowiłem zbudować czytnik temperatur który posiada 16 wejść dla 16 termometrów 1-wire. Czytnik po zebraniu informacji od cyfrowych termometrów onewire wystawia je sterownikowi PLC po magistrali Rs-485.

(Wcześniej wypróbowałem (bez powodzenia) konwerter z jedną wspólną magistralą onewire - teraz zmiana podejścia)

ONEWIRE

Za dosłownie kilka złotych można kupić termometr cyfrowy Dallas DS18B20.
Każdy taki termometr:

  • podłaczony jest bezpośrednio do mojego czytnika
  • odczytuje cyfrowo temperaturę otoczenia
  • komunikuje się z czytnikiem przy użyci tylko jednego przewodu + dwa zasilające

Poniżej zdjęcie zamontowanego czujnika temperatury DS18B20:

DS18B20 zamontowany we włącznikuDS18B20 zamontowany we włączniku

Czytnik onewire

Zaprojektowałem oraz uruchomiłem czytnik bazując na mikroprocesorze (uP) PIC 18F4550 (ze względu na sporą liczbę wejść oraz na to że taki akurat miałem wolny :) ). uP zaprogramowany jest w języku C z wykorzystaniem bibliotek CCS.

Konwerter zasilany jest z sieci 230V. Jednocześnie zasila on wszystkie termometry napięciem +5V.

Odczyt temperatur i sterowanie

Czytnik komunikuje się z termometrem onewire cyfrowo odczytując z niego temperaturę. Przechowuje są w 16 kolejnych rejestrach. Sterownik PLC wysyła do czytnika rozkaz odczytu 16 rejestrów - otrzymuje zestaw temperatur.

Na podstawie temperatur sterownik PLC będący mózgiem mojego inteligentnego domu podejmuje decyzje np. o załaczeniu pieca, wentylacji czy opuszczeniu rolet.

Schemat

Budowa czytnika (konwertera magistral:

SchematPłytka czytnika

Realizacja:

Gotowy moduł czytnika modbus onewireModuł czytnika onewire modbus w rozdzielnicy

Oprogramowanie

Zamieszczam kod źródłowy:

Program czytnika onewire-modbus. Do otwarcia w środowisku Microchip IDE z użyciem bibliotek CCS.

Schematy elektroniczne płytki. Wykonane w programie EAGLE.

Działanie

Zrzut niektórych odczytanych temperatur z mojego systemu zarządzania:

Prezentowane odczytane temperatury