Domovní monitor 3 - Řídící jednotka

calendar_month29.10.2018

Nejsložitější částí domovního monitoru je řídící jednotka plnící roli moderátora, tedy modulu, který celou komunikaci řídí. Údaje získané z periferií určeným způsobem zpracovává a zobrazuje na displeji.

Umožňuje nastavit teplotní limity, které určují, při jakých teplotách bude spuštěn alarm (překročení horního limitu) a kdy bude vydán zvukový signál (teplota pod spodním limitem), obsahuje vestavěné teplotní čidlo pro měření teploty v místě jednotky, baterií zálohovaný obvod reálného času (RTC) a piezo pro zvukové signály.

Procesor

Mozkem řídící jednotky je 8-bitový jednočipový mikropočítač Microchip PIC18F25K50 v pouzdru DIP28 taktovaný na 20MHz. Velkou výhodou procesorů této architektury je nestránkovaná programová paměť. Nepříjemnosti s přepínáním stránek tedy odpadají a všech 32kB paměti je plnně využitelných pro program. V této aplikaci je z nadstandardních funkcí procesoru využito ještě vestavěné I2C rozhraní pro komunikaci s RTC obvodem a USB port, který zatím pouze zvyšuje možnosti budoucího rozšíření.

Displej

Po dlouhém rozhodování padla volba na alfanumerický OLED displej s 20x2 znaky od Raystar Optronics REC002002AWPP5N00000 s řadičem WS0010. Výška znaků 5,55mm zajišťuje dobrou čitelnost údajů i z větších vzdáleností a průměrná spotřeba 35mA při polovině rozsvícených pixelů přímo vybízí k nasazení v této aplikaci. S procesorem komunikuje 4-bitově.

displej Raystar REC002002AWPP5N00000

Obvod reálného času

DS1307 v sobě integruje nejen hodiny, ale také kalendář do roku 2100 včetně dne v týdnu a přestupných roků. To vše je zálohováno malou baterií CR2032, která by měla zajistit běh vnitřních hodin bez vnějšího napájení po dobu cca 10 let. S procesorem komunikuje pomocí I2C.

Teplotní čidlo

S oblibou používám kalibrovaná digitální teplotní čidla DS18B20 komunikující prostřednictvím 1-Wire protokolu. Jeho podpora v procesoru není integrovaná, proto jsem pro komunikaci s čidlem vytvořil jednoduchou knihovnu.

DS18B20

Programování pomocí ICSP

K programování procesoru je trvale vyveden ICSP konektor, který je přístupný i po uzavření krabičky a umožňuje programování za chodu zařízení. Protože je u procesorů řady 18F povoleno na pinu MCLR při programování napětí max 9V, je mezi ICSP konektor a procesor zařazen ještě omezovač napětí v podobě rezistoru R7 a zenerovy diody ZD1. To je nutné pro případ použití programátoru, který umí pouze 13V programovací napětí, jako můj Asix Presto.

schéma zapojení

Mechanické provedení

Všechny součástky jsou připájeny k jednostranné desce plošných spojů (140 x 70mm), pouze tlačítka jsou na menší destičce, která je o několik milimetrů blíže k přednímu panelu krabičky. Displej je umístěný nad součástkami hlavní DPS, se kterou je propojen pomocí dutinkové lišty na straně displeje a oboustranných kolíků připájených do hlavní DPS. Protože jsou využity jen některé piny, je třeba upravit lištu s oboustrannými kolíky vyjmutím nepotřebných kolíků. Rozmístění součástek je patrné z následujícího obrázku. Motiv DPS je ke stažení zde.

motiv DPS

Celý přístroj je vestavěný do nástěnné krabičky KP33 (Z-44). Její zadní stranu lze přišroubovat na zeď a přední na ní poté jednoduše zacvaknout. Krabičku je třeba upravit vytvořením otvorů pro displej, tlačítka, na spodní straně vyvedený programovací konektor ICSP a na levém boku USB.

krabička KP33

Program

Po správném osazení a spuštění řídící jednotky se pochopitelně nebude dít vůbec nic. K plné funkčnosti je potřeba naprogramovat mikroprocesor. Přestože plánuji jednotlivé části programu v budoucích dílech popsat, můžete si ho už nyní celý stáhnout. Po zkompilování a náhrání do procesoru bude displej bez připojených periferií zobrazovat množství chybových hlášení a proto se hned v dalším díle podíváme na první modul měřící teplotu kotle a napětí akumulátoru náhradního zdroje.

Seznam součástek

OZNAČENÍ POČET NÁZEV TYP
IO1 1 8-bitový mikropočítač v pouzdru DIP28 PIC18F25K50
IO2 1 obvod reálného času (RTC) v pouzdru DIP8 DS1307
IO3 1 digitální teplotní čidlo DS18B20
displej 1 OLED 20x2 REC002002AWPP5N00000
R1, R3, R4, R8-R12 8 rezistor 4k7
R7 1 rezistor 1k2
R2, R6 2 rezistor 10k
R5 1 rezistor 1k
C1 1 elektrolytický kondenzátor 100u/25V
C2/1-3, C5, C6 5 keramický kondenzátor 100n
C3, C4 2 keramický kondenzátor 22p
C7 1 keramický kondenzátor 220n
XT1 1 krystalový oscilátor 20MHz
XT2 1 krystalový oscilátor 32,768kHz
ZD1 1 zenerova dioda 8V2
TL1-TL4 4 mikrospínač s hmatníkem HIGHLY KS01-B-B
reset 1 mikrospínač do DPS
piezo 1 piezoelektrický měnič 4kHz LD-BZPN-1705
ICSP 1 oboustranný kolík 6 - pin
USB 1 USB konektor typ B
BAT 1 baterie CR2032
pozdro pro baterii 1 pozdro pro baterii do DPS TE CONNECTIVITY 120591-1
svorkovnice 2 svorkovnice do DPS trojitá, rozteč 5mm
krabička 1 plastová krabička KP33 (obdoba Z-44)
konektor pro připojení displeje spodní 1 oboustranný kolík 2x8 pinů s roztečí 2,54mm
konektor pro připojení displeje horní 1 dutinková lišta 2x8 pinů s roztečí 2,54mm
konektor pro připojení tlačítek spodní 1 dutinková lišta 1x5 pinů s roztečí 2,54mm, snížená např ZL305
konektor pro připojení tlačítek horní 1 oboustranný kolík 1x5 pinů s roztečí 2,54mm

Ke stažení

motiv DPS
program asm