niedziela, 16 listopada 2014

AVRHR - Ethernetowy kontroler czujników DS18B20

Celem projektu było utworzenie urządzenia do zbierania danych pomimarowych z czujników temperatury DS18B20 oraz ich wizualizacji za pomocą przeglądarki internetowej na dowolnym komputerze podłączonym do wspólnej sieci Ethernet. 
Jako dawcę obudowy dla urządzenia wybrano uszkodzony Router TLINK TD-W8901G (na zdjęciach widać ślady dymu na obudowie - urządzenie "porządnie" uszkodzone przez wyładowania atmosferyczne). Dodatkowo płytka routera była źródłem kilku elementów elektronicznych dla projektu - głównie gniazda, przyciski, diody led itp. Podejście takie było wyzwaniem tworzenia płytek pod ściśle narzucone reguły projektowe dotyczące obudowy końcowego produktu.

W projekcie tym byłem odpowiedzialny za część elektroniczną, programową oraz opisową, także mogę spokojnie odpowiedzieć na pytania z tego zakresu jeśli takowe będą. Kolega Staszek zajmował się "marketingiem" ;)  (pozdrawiam go serdecznie).

Interfejsu przeglądarki niestety nie jestem w stanie pokazać, ponieważ urządzenie pozostawiłem na uczelni jako inspiracja dla przyszłych pokoleń ;) Urządzenie dynamicznie generowało prostą stronę internetową wykorzystującą Javascript. Przeglądarka odświeżając stronę umożliwiała animowanie kolejnych pomiarów. Na pojedyńczym wykresie znajdowało się 12 ostatnich pomiarów zapisywanych na karcie pamięci microSDHC z określonym interwałem czasowym. Maksymalna ilość pomiarów była ograniczona rozmiarem ramki Ethernetowej, która nie mogła przekroczyć około 1500 bajtów. Wynikało to z faktu użycia prostego stosu TCP/IP na układzie ENC28J60 (stos ze strony tuxgraphics.org).  Wewnętrzny zegar RTC synchronizowany był czasem pobranym z internetu (NTP). 

Obudowa wymagała nieznacznej modyfikacji w postaci wycięcia dodatkowej szczeliny na kartę pamięci microSDHC.

Naklejki i opis urządzenia zostały zaprojektowane przy wykorzystaniu oprogramowania Inkscape. Wydrukowano je na papierze samoprzylepnym.








Płytki PCB zaprojektowane w oprogramowaniu KiCAD wykonano metodą termotransferu. Ze względu na montaż przewlekany oraz domowe warunki wytwarzania ścieżki są specjalnie pogrubione (płytka jednowarstwowa - brak konieczności tworzenia prymitywnych przelotek drutowych). Warstwa miedzi została zabezpieczona cynowaniem za pomocą pasty lutowniczej z cyną i opalarki (uzyskuje się rewelacyjne efekty). Największą trudność podczas montażu sprawiło lutowanie gniazda karty microSDHC - wykorzystano lutownicę z b, cienkim grotem, jednak pady lutownicze umieszone były wewnąrz gniazda, co przysporzyło "gimnastyki" podczas lutowania.

 




Godziny spędzone ze suwmiarką pozwoliły na zaprojektowanie płytki dokładnie dopasowanej do obudowy. Wiele elementów elektronicznych musiało mieć utworzone biblioteki PCB od podstaw. Jednak efekt końcowy w pełni rekompensował poświęcony czas. Wszystko pasowało co do milimetra :)



Schemat ideowy płyty głównej urządzenia, mozaika ścieżek płytki PCB (kolor zielony warstwa Bottom, kolor czerwony zworki na warstwie Top) oraz schemat montażowy: 



Na potrzeby szybkiego łączenia czujników w sieć pomiarową powstały specjalne adaptery przyłączeniowe. Umożliwiają one bardzo szybkie tworzenie magistrali z sensorami, przy wykorzystaniu taniego okablowania stosowanego w telefoni stacjonarnej (przewody zakończone wtykami RJ12). Ponadto na adapterze znalazła się zworka pozwalająca na skonfigurowanie trybu zasilania czujnika w tryb zewnętrzny (3-ci przewód) lub pasożytniczy. Dzięki temu do budowy magistrali można wykorzystywać okablowanie dwuprzewodowe (czyli "prawdziwy" 1-Wire:  przewód masowy oraz drugi pełniący rolę transmisji i zasilania układów).




Kod źródłowy do pobrania. Wstawiam jako ciekawostkę. Jednak nie polecam wykorzystywania go w całości ;) Z perspektywy czasu mogę stwierdzić, iż da się to zrobić dużo lepiej ;)