sobota, 8 marca 2014

Historia jednej płytki: Internet rzeczy, czyli kocioł Buderusa (cz. 1)

Jesteśmy szczęśliwymi posiadaczami kotła Buderus GB-132T. Kocioł ten wygląda mniej więcej tak:
Wybór padł na Buderus'a, ponieważ jest to jeden z dwóch producentów kotłów na Świecie, który umożliwia bezpośrednie połączenie z instalacją KNX. Niestety, nietanie.

Do fizycznego połączenia z KNX służy moduł FM 446. Jeśli jednak nasz kocioł wyposażony jest w dość popularny regulator RC35, musimy zamienić go na Logamatic'a, choćby najtańszy model 4111, a to znów dodatkowe wydatki. Łączny koszt takiej 'przeróbki' oscyluje na poziomie 4.000 zł netto. :(

A zatem: czy istnieje jest jakaś inna opcja? Czy można komunikować się z kotłem = odczytywać aktualne parametry, prezentować i ewentualnie sterować jego pracą w jakiś inny sposób?

Z pomocą przyszły - a jakże! - niemieckie fora internetowe. Najciekawsze propozycje znaleźliśmy na:
EMS > Adapter > NetIO > Raspi (http://www.mikrocontroller.net/topic/318364), a konkretny projekt został szczegółowo opisany na stronie:
Autorowi, Igorowi F. należą się tutaj szczególnie gorące podziękowania (Herzlichen Dank Igor!)

Poniżej zamieszczam pierwszą część tłumaczenia znalezionego pod powyższym adresem przepisu. Zostało ono zweryfikowane udaną realizacją (ale nie wyprzedzajmy faktów z części 2.)

EMS > Adapter > NetIO > Raspi

EMS to protokół komunikacji firmy Buderus, który wykorzystywany jest do przesyłania danych i komunikatów pomiędzy urządzeniami, czujnikami i sterownikami wewnątrz pojedynczej instalacji. EMS jako medium wykorzystuje dwa przewody (nawet nie musi być to skrętka). Z pomocą prostego kontrolera firmy Pollin o nazwie AVR NetIO (link tutaj), za niedużą kwotę można zbudować interface pomiędzy EMS a Ethernet'em. 

Adapter

Hardware

Jak wskazano w nagłówku, w pierwszej kolejności tajemnicze urządzenie o nazwie 'Adapter' musi przygotować sygnały EMS w taki sposób, aby układ UART płytki NetIO był w stanie je odczytać. Będziemy bazowali na schemacie opracowanym przez  Niffkos. Dodatkowo schemat został uzupełniony o diody LED, których zadaniem będzie sygnalizowanie odebranych/wysłanych ramek z danymi oraz stanu pracy, dlatego nowy schemat wygląda następująco:
Wszystkie połączenia pomiędzy płytką Adaptera a NetIO zrealizowano 10-żyłowym przewodem zakończonym żeńską wtyczką 2x5. W płytce NetIO przewód wpięty jest w gniazdo oznaczone jako EXT. Ponadto wyprowadzono interface OneWire (np. do podłączenia czujnika temperatury). Cztery równoległe rezystory 910R można zastąpić jednym 220R o mocy 1 wata. Jeśli chcemy oszczędzać energię możemy zwiększyć wartości rezystorów dla diod LED. 
Schemat elektryczny w formacie Eagle znajduje się tutaj

Polski akcent

W porównaniu do wersji niemieckiej zdecydowaliśmy się na zaprojektowanie płytki drukowanej, która jak druga kromka "kanapki" będzie mogła zostać umieszczona nad płytką NetIO. Projekt płytki zrobiony wstępnie w Eagle wyglądał tak:

a rozmieszczenie elementów tak:

Na taki układ zdecydowałem się z kilku powodów:

  1. aby umożliwić łatwy dostęp do portów płytki NetIO (np. cyfrowe we/wy w małym wycięciu na dole, złącze EXT u góry, zasilanie NetIO u góry po lewej stronie). Producent płytki przeklął mnie za te wynalazki...
  2. połączenie 10-żyłową taśmą pomiędzy złączem EXP płytki NetIO a Adapterem powinno być w miarę krótkie i proste. Idealnie byłoby, gdyby gniazda te znalazły się w jednej linii.
  3. płytka drukowana powinna być jednostronna. Rozmieszczenie elementów i prowadzenie ścieżek zajęło kilka godzin, ale udało się! Nie ma nawet 'crossów' robionych przewodami po stronie elementów. 
  4. Adapter i NetIO powinny dać złożyć się w "kanapkę".

Rysunek projektu rozmieszczenie elementów wyeksportowałem z Eagle'a do DXF, a następnie nałożyłem na schematyczny rysunek płytki NetIO (nie miałem jeszcze fizycznie kontrolera u siebie). Efekt złożenia wygląda tak:

Zleciłem wykonanie płytki drukowanej Adaptera. Kiedy NetIO wreszcie do mnie dotarł, okazało się, że oba elementy będą do siebie zaskakująco dobrze pasować:
Po wlutowaniu pierwszych elementów efekt "kanapki" wyszedł tak:
Prawda, że ładnie? Jak widać na zdjęciu, wszystkie postawione na etapie projektu założenia zostały spełnione: np. łatwy dostęp do wszystkich portów połączeniowych, czy też sposób w jaki 10-żyłowy przewód łączy Adapter z NetIO.

Na boje z oprogramowaniem zapraszam za tydzień (cz.2)

Brak komentarzy: