Domotica met... waarom niet? I2C...
Posted: Mon Jan 03, 2005 8:51 pm
Hallo iedereen,
Leuk om even een site te ontdekken (via www.bouwinfo.be) waar heel veel info wordt gevonden/uitgewisseld door doe-het-zelvers...
Ikzelf ben ook bezig met een nieuwbouw (momenteel sanitair aan het leggen). Ik ga ook zelf mijn elektriciteit aanbrengen, maar ook mijn eigen domoticasysteem maken.
De kern van het systeem zal een microcontroller zijn (8051 core) die hoofdzakelijk I2C-aangestuurde devices zal controleren. Het systeem zal dus volledig onafhankelijk van PC of wat dan ook kunnen draaien. Het is wel de bedoeling om via RS232 later een communicatie te leggen tussen PC en microcontroller.
In eerste instantie wil ik drukknoppen detecteren en stopcontacten sturen.
Voor de I/O zal ik de PCF8574 gebruiken, een I2C IO-expander van (oa) Philips. Deze heeft 8 IO pinnen per device. Er zijn 3 ingangen voorzien voor het vastleggen van het I2C adres, dus kan ik 8 van die devices plaatsen.
Daarenboven is er ook nog een speciale versie waarbij het vaste deel van het adres verschilt met de versie hierboven beschreven. Dus nogmaals 8 devices extra te plaatsen zonder enige vorm van additionele adresselectie of wat dan ook. In totaal dus max. 16 IO expanders met elk 8 IO's. Dat maakt 256 IO's in totaal. Voldoende om te beginnen, denk ik.
Hoe ga ik mijn 'hardware' opzetten?
Wetende dat er opnieuw 8 zo'n devices kunnen aangestuurd worden via I2C zonder extra hardware, geeft me al de mogelijkheid om op 32 verschillende plaatsen de temperatuur te meten.
Verder ben ik van plan om ook de inhoud van de hemelwaterputten te meten, de circulatiepompen van vloer- en radiatorverwarming aan te sturen, bewegingsdetectoren te plaatsen in bepaalde ruimtes en magneetcontacten op de binnen- en buitendeuren en ramen te observeren. Dit laatste om je erop attent te maken dat er nog dingen open staan, mocht je vertrekken van huis.
Er zal ook een 'alles uit' schakelaar staan, die dan de nodige signalistatie zal geven als er iets verkeerd is (bijv. zoals hierboven weergegeven, als er nog een raam open staat).
Ook een 'panic' button zal niet ontbreken, alsook een aanwezigheidssimulator.
De buitenverlichting zal ook in groepen worden aangestuurd, afhankelijk van waar je je op een bepaald moment bevindt. Ben ik achteraan, dan wil ik daar licht, niet aan de voorzijde. Zo simpel...
De drukknoppen zullen ook getest worden op lengte van indrukken. Bijvoorbeeld kort drukken op een schakelaar die een deel van de buitenverlichting aanstuurt, zal enkel die groep aansturen. Druk je daarentegen bijv. 3 seconden op de knop, dan kunnen bijv. wél alle lichten rond het huis worden aangeschakeld.
In de living worden ook sferen gecreeerd. Afhankelijk van de situatie (bezoek, tv kijken, boek lezen, gewoon niets doen) zal er een andere sfeer kunnen gekozen worden.
Er zal ook orientatieverlichting worden voorzien, om 's nachts op een niet-stoorbare manier bijv. keuken of badkamer te bereiken.
In iedere ruimte komt ook een RC5/6 detector, waardoor je eigenlijk alle verlichting via RC-commando's zal kunnen aan- of afzetten.
In een latere fase zullen ook verschillende audiobronnen in verschillende plaatsen kunnen afgespeeld worden. Het is de bedoeling dat dit ook via afstandsbediening kan gerealiseerd worden.
Zo, da's een heel klein beetje hoe ik het zie. Ik ga nu afsluiten, anders kom ik er nooit mee klaar...
Indien interesse in meer info, ga gerust je gang. Als ik tijd heb, dan beantwoord ik die wel, indien mogelijk.
-- Geert
Leuk om even een site te ontdekken (via www.bouwinfo.be) waar heel veel info wordt gevonden/uitgewisseld door doe-het-zelvers...
Ikzelf ben ook bezig met een nieuwbouw (momenteel sanitair aan het leggen). Ik ga ook zelf mijn elektriciteit aanbrengen, maar ook mijn eigen domoticasysteem maken.
De kern van het systeem zal een microcontroller zijn (8051 core) die hoofdzakelijk I2C-aangestuurde devices zal controleren. Het systeem zal dus volledig onafhankelijk van PC of wat dan ook kunnen draaien. Het is wel de bedoeling om via RS232 later een communicatie te leggen tussen PC en microcontroller.
In eerste instantie wil ik drukknoppen detecteren en stopcontacten sturen.
Voor de I/O zal ik de PCF8574 gebruiken, een I2C IO-expander van (oa) Philips. Deze heeft 8 IO pinnen per device. Er zijn 3 ingangen voorzien voor het vastleggen van het I2C adres, dus kan ik 8 van die devices plaatsen.
Daarenboven is er ook nog een speciale versie waarbij het vaste deel van het adres verschilt met de versie hierboven beschreven. Dus nogmaals 8 devices extra te plaatsen zonder enige vorm van additionele adresselectie of wat dan ook. In totaal dus max. 16 IO expanders met elk 8 IO's. Dat maakt 256 IO's in totaal. Voldoende om te beginnen, denk ik.
Hoe ga ik mijn 'hardware' opzetten?
- . Er komen zeker twee kasten. Zoals iemand hier op het forum al heeft gezegd, ik wil geen gemeenschappelijke kast(en) waar zowel sterkstroom als zwakstroom in gaat.
. Alle schakelaars zullen gewone drukknoppen van het merk Niko zijn. Sommigen dubbelvoudig uitgevoerd, de meesten enkelvoudig. Sommigen zullen ook een 'verklikkerlampje' hebben, bijvoorbeeld om aan te geven dat er iemand in de badkamer zit om of aan te geven dat de boiler aan het opwarmen is (knipperende LED in dit geval).
. De verbinding tussen de schakelaars (drukknoppen) en de IO pinnen van de IO expanders zal via UTP gebeuren.
Het is de bedoeling dat een UTP kabel wordt gebruikt voor een aantal groepen schakelaars. Ik bedoel wel degelijk groepen, omdat verschillende drukknoppen kunnen gebruikt worden om één en hetzelfde lichtpunt te bedienen.
Om eea deftig te kunnen bekabelen, zullen de UTP kabels achteraan de schakelaars op een klein PCB'tje worden bevestigd dmv een RJ45 connector en stekker. Die print zal worden gemonteerd op de plaats waar normaal gezien de twee schroeven van de klauwen zijn bevestigd. Daar zullen langere schroeven in bevestigd worden. Afstandsbusjes moeten het printje op een afstand van de achterkant van de schakelaar houden. Althans, da's wat ik in mijn hoofd heb. Hopelijk lukt het...
Wat zal er op dit printje zitten? Wel, niet veel. Enkel twee RJ45 connectoren en een blokje met een 3-tot 4-tal schroeven.
Waarom doe ik het zo? Enerzijds om de UTP kabel op een deftige manier tot bij de schakelaar te brengen, anderzijds omdat ik denk dat een directe montage van de fijne, dus broze, UTP adertjes in de schakelaar heel snel zullen leiden tot breuk. Zo'n schakelaar is immers voorzien op montage van een draad met minstens 1,5mm2.
Een connector moet daar soelaas in brengen. De connectoren zullen via koperbaantjes op de PCB 1 op 1 met elkaar verbonden worden, omdat ik moet kunnen vertrekken naar een andere schakelaar.
De verbinding naar de schakelaar zelf wordt dan 'afgetakt' via het schroefblokje, ook op het kleine PCB'tje gemonteerd. Daar kan ik dan met iets dikkere draad werken.
De schakelaars zelf worden dan vastgemaakt met de 4 openingen op de zijkanten van het schakelaar-frame. Daarvoor heb ik speciaal Helia75 inbouwbakjes genomen, omdat die op iedere zijde een uitklapbaar stukje hebben, waar later een schroef kan worden ingedraaid.
. De meeste stopcontactkringen zullen via een pulsar of relais (daar ben ik nog niet uit) kunnen aan- of afgeschakeld worden. Het aansturen van de pulsar of relais gebeurt via een TOR schakelingetje, die zijn aanstuurpuls krijgt van zo'n IO expander.
Het is de bedoeling om bijv. boilertjes 's morgens te laten opwarmen gedurende de daluren van het elektriciteitsnet. Ook wasmachine/droogkast/vaatwas zullen op afzonderlijk schakelbare stopcontacten geplaatst worden en dan 's nachts geactiveerd.
Indien er de nood bestaat om tijdens de dag te wassen, dan zal er daarvoor een mogelijkheid zijn. Een druk op een drukknop in de nabij heid van het desbetreffende toestel, zal de 'off' toestand van het stopcontact overrulen voor bijv. 2 uren, zodat ook in gevallen van nood tijdens de dag kan gewassen, gedroogd,.. worden.
Er zullen ook groepen stopcontacten gedefinieerd worden, omdat het simpelweg niet haalbaar is om alle stopcontacten apart van stroom/spanning te voorzien (heb momenteel zo'n 110 stopcontacten voorzien).
Een goede en doordachte keuze is hier dus zeker nodig! Ik zal daar de nodige tijd moeten voor uittrekken.
Wetende dat er opnieuw 8 zo'n devices kunnen aangestuurd worden via I2C zonder extra hardware, geeft me al de mogelijkheid om op 32 verschillende plaatsen de temperatuur te meten.
Verder ben ik van plan om ook de inhoud van de hemelwaterputten te meten, de circulatiepompen van vloer- en radiatorverwarming aan te sturen, bewegingsdetectoren te plaatsen in bepaalde ruimtes en magneetcontacten op de binnen- en buitendeuren en ramen te observeren. Dit laatste om je erop attent te maken dat er nog dingen open staan, mocht je vertrekken van huis.
Er zal ook een 'alles uit' schakelaar staan, die dan de nodige signalistatie zal geven als er iets verkeerd is (bijv. zoals hierboven weergegeven, als er nog een raam open staat).
Ook een 'panic' button zal niet ontbreken, alsook een aanwezigheidssimulator.
De buitenverlichting zal ook in groepen worden aangestuurd, afhankelijk van waar je je op een bepaald moment bevindt. Ben ik achteraan, dan wil ik daar licht, niet aan de voorzijde. Zo simpel...
De drukknoppen zullen ook getest worden op lengte van indrukken. Bijvoorbeeld kort drukken op een schakelaar die een deel van de buitenverlichting aanstuurt, zal enkel die groep aansturen. Druk je daarentegen bijv. 3 seconden op de knop, dan kunnen bijv. wél alle lichten rond het huis worden aangeschakeld.
In de living worden ook sferen gecreeerd. Afhankelijk van de situatie (bezoek, tv kijken, boek lezen, gewoon niets doen) zal er een andere sfeer kunnen gekozen worden.
Er zal ook orientatieverlichting worden voorzien, om 's nachts op een niet-stoorbare manier bijv. keuken of badkamer te bereiken.
In iedere ruimte komt ook een RC5/6 detector, waardoor je eigenlijk alle verlichting via RC-commando's zal kunnen aan- of afzetten.
In een latere fase zullen ook verschillende audiobronnen in verschillende plaatsen kunnen afgespeeld worden. Het is de bedoeling dat dit ook via afstandsbediening kan gerealiseerd worden.
Zo, da's een heel klein beetje hoe ik het zie. Ik ga nu afsluiten, anders kom ik er nooit mee klaar...
Indien interesse in meer info, ga gerust je gang. Als ik tijd heb, dan beantwoord ik die wel, indien mogelijk.
-- Geert