Hemkontrollnät
- PHermansson
- EF Sponsor
- Inlägg: 4340
- Blev medlem: 22 december 2004, 00:46:38
- Ort: Särestad Grästorp
- Kontakt:
Hemkontrollnät
Börjat fundera på hur ett kontrollnätverk för nya huset ska se ut. Än så länge har jag följande tankar:
-Datainsamling, loggning. Sköts av en PC eller en NSLU2.
-Interface mot PC. Någonting som konverterar mellan RS232 (mot datorn) och RS485 (mot sensornätet). Intelligent MCU-baserad eller bara en konverter?
-Noder. Enklast möjliga. En sensor (SHT-11 fukt/temp, HH10D fukt, MCP9701 temp, LDR för ljus, MPX4115A lufttryck med mera) läses av av en MCU på kommando från servern. Får kolla vad som blir billigast, en Attiny25 eller typ en Pic10F202? Finns det ben nog på dem för både sensorer och anslutningar till RS485-konverter?
-RS485, receiver och transmitter. 75176 från Futurelec á $0.55 kanske?
-Kabel. Billigaste smidigaste acceptabla kabel. Blir relativt långa sträckningar, de viktigaste sensorerna kommer att bli fuktmätare i krypgrund och på vinden. Huset har två våningar, krypgrunden når från pannrummet ligger som en utbyggnad på våning 1.
-Datainsamling, loggning. Sköts av en PC eller en NSLU2.
-Interface mot PC. Någonting som konverterar mellan RS232 (mot datorn) och RS485 (mot sensornätet). Intelligent MCU-baserad eller bara en konverter?
-Noder. Enklast möjliga. En sensor (SHT-11 fukt/temp, HH10D fukt, MCP9701 temp, LDR för ljus, MPX4115A lufttryck med mera) läses av av en MCU på kommando från servern. Får kolla vad som blir billigast, en Attiny25 eller typ en Pic10F202? Finns det ben nog på dem för både sensorer och anslutningar till RS485-konverter?
-RS485, receiver och transmitter. 75176 från Futurelec á $0.55 kanske?
-Kabel. Billigaste smidigaste acceptabla kabel. Blir relativt långa sträckningar, de viktigaste sensorerna kommer att bli fuktmätare i krypgrund och på vinden. Huset har två våningar, krypgrunden når från pannrummet ligger som en utbyggnad på våning 1.
Re: Hemkontrollnät
Om du ska köra RS485 så vill du väl ha en hårdvaruuart.
Då är väl attiny2313 lämplig.
Största skillnaden med attiny25 och attiny2313 är förutom antal pinnar ADC:n
attiny25 har differentiella, det har inte attiny2313...
Edit: har själv funderat lite på hemmanätverk, fast då sneglat att bygga noder med nRF9E5 eller liknande och strunta i kablarna.
Då är väl attiny2313 lämplig.
Största skillnaden med attiny25 och attiny2313 är förutom antal pinnar ADC:n
attiny25 har differentiella, det har inte attiny2313...
Edit: har själv funderat lite på hemmanätverk, fast då sneglat att bygga noder med nRF9E5 eller liknande och strunta i kablarna.
- PHermansson
- EF Sponsor
- Inlägg: 4340
- Blev medlem: 22 december 2004, 00:46:38
- Ort: Särestad Grästorp
- Kontakt:
Re: Hemkontrollnät
Ja det skiljer ju inte mer en knappt fem kronor i pris mellan en 2313 och en 25 så så det är ju inga problem. Blir enklare med Isp också, sen att jag har några 2313 liggande gör det ju inte sämre 

Re: Hemkontrollnät
Elektriskt: Open collector (1-wire), eller differentiellt (EIA-485)
Signalering: Asynkront, DCC, CAN osv.
Absolut enklast och billigast är öppen-kollektor med asynkron överföring. Men med t.ex DCC så kan man sannolikt använda inbyggd RC som klocka och förenkla noderna ytterligare. Samt att störkänsligheten blir avsevärt mindre.
Signalering: Asynkront, DCC, CAN osv.
Absolut enklast och billigast är öppen-kollektor med asynkron överföring. Men med t.ex DCC så kan man sannolikt använda inbyggd RC som klocka och förenkla noderna ytterligare. Samt att störkänsligheten blir avsevärt mindre.
- PHermansson
- EF Sponsor
- Inlägg: 4340
- Blev medlem: 22 december 2004, 00:46:38
- Ort: Särestad Grästorp
- Kontakt:
Re: Hemkontrollnät
Ok, nytt inlägg medan jag skrev
kommenterar det nedan.
Det här verkar vara en bra RS232/485-konverter:
http://www.circuit-projects.com/convert ... ntrol.html
Sen håller jag på att sätta upp en liten utvecklingsmiljö. Har en Attiny2313 som ska kopplas till PC:n via serieporten och en MAX232. Till MCU:n ska det sedan kopplas olika sensorer, och så ska jag fixa kod för att få vettiga värden från sensorn till PC:n. Tanken är också att kunna adressera MCU:n så att de (upp till 32) olika enheterna sedan ska kunna pollas separat. Man skickar tex "6" från datorn och då ska enheten med adress 6 svara. Men hur funkar det med RS485? Det borde funka med RS485 då endast den adresserade enheten kommer att skicka ut ett svar.
Nästa steg blir sedan en RS485-länk, en RS232/485-omvandlare och att MCU:n får sitta som nod.
Jämföreletabell mellan olika Atmel-MCU som visar att det stämmer att Tiny2313 är enda Tinyn med hårdvaru Uart:
http://gibibit.com/electronics/AVR%20MC ... 0Table.pdf
Blueint: 1-wire är besvärligt när man vill bygga speciella noder. Ok för temperaturmätning, men vill man tex ha en SHT-11 blir det besvärligt. Det finns ju inte direkt gott om källkod för 1-wire slavar, och det känns som om det blir onödigt komplicerat.
EIA-485, samma sak som jag kallas RS485?
För signaleringen borde det duga med asynkront, jag ska ju bara ha en master och slavarna ska bara svara på anrop (annars ska de vara tysta och lugna
)

Det här verkar vara en bra RS232/485-konverter:
http://www.circuit-projects.com/convert ... ntrol.html
Sen håller jag på att sätta upp en liten utvecklingsmiljö. Har en Attiny2313 som ska kopplas till PC:n via serieporten och en MAX232. Till MCU:n ska det sedan kopplas olika sensorer, och så ska jag fixa kod för att få vettiga värden från sensorn till PC:n. Tanken är också att kunna adressera MCU:n så att de (upp till 32) olika enheterna sedan ska kunna pollas separat. Man skickar tex "6" från datorn och då ska enheten med adress 6 svara. Men hur funkar det med RS485? Det borde funka med RS485 då endast den adresserade enheten kommer att skicka ut ett svar.
Nästa steg blir sedan en RS485-länk, en RS232/485-omvandlare och att MCU:n får sitta som nod.
Jämföreletabell mellan olika Atmel-MCU som visar att det stämmer att Tiny2313 är enda Tinyn med hårdvaru Uart:
http://gibibit.com/electronics/AVR%20MC ... 0Table.pdf
Blueint: 1-wire är besvärligt när man vill bygga speciella noder. Ok för temperaturmätning, men vill man tex ha en SHT-11 blir det besvärligt. Det finns ju inte direkt gott om källkod för 1-wire slavar, och det känns som om det blir onödigt komplicerat.
EIA-485, samma sak som jag kallas RS485?
För signaleringen borde det duga med asynkront, jag ska ju bara ha en master och slavarna ska bara svara på anrop (annars ska de vara tysta och lugna

Re: Hemkontrollnät
Kanske MODBUS kan vara ett intressant alternativ om du ändå ska ha en uC i varje slav. Det är ett master/slav protokoll för RS232 (point-to-point) eller RS422/485 (2- eller 4-tråds) för multidrop-nät. (Finns även för ethernet men det är knappast aktuellt...)
Re: Hemkontrollnät
Ont om kod,.. skriv 
EIA-485 är det korrekta benämningen. RS-485 är en misnomer om jag minns det korrekt.

EIA-485 är det korrekta benämningen. RS-485 är en misnomer om jag minns det korrekt.
- PHermansson
- EF Sponsor
- Inlägg: 4340
- Blev medlem: 22 december 2004, 00:46:38
- Ort: Särestad Grästorp
- Kontakt:
Re: Hemkontrollnät
Jo såg det nu när jag kollade lite mer. Det kallades RS först men ändrades till EIA.
Kollade lite på Modbus också och det verkar ju smidigt. Färdig mjukvara finns till Windows/Linux och till Atmega, dock inte till Tiny2313. Nackdelen är att man får gå upp till Atmega168 á 39:- i noderna, känns som ett lätt overkill när en 2313 kostar 23.75.
Länk: http://www.freemodbus.org/index.php?idx=32
Kollade lite på Modbus också och det verkar ju smidigt. Färdig mjukvara finns till Windows/Linux och till Atmega, dock inte till Tiny2313. Nackdelen är att man får gå upp till Atmega168 á 39:- i noderna, känns som ett lätt overkill när en 2313 kostar 23.75.
Länk: http://www.freemodbus.org/index.php?idx=32
Re: Hemkontrollnät
Japp, 2k blir nog riktigt tight även om du säkert kan banta bort en del funktioner som du inte behöver. Å andra sidan, hur många noder ska du ha, 20, 30? Vad gör 15:- per nod ovanpå kostnaden för ett nybyggt hus 
TIA/EIA-485-A kanske det heter men "alla" säger RS-485...vilket det naturligtvis inte gör det korrekt

TIA/EIA-485-A kanske det heter men "alla" säger RS-485...vilket det naturligtvis inte gör det korrekt

- PHermansson
- EF Sponsor
- Inlägg: 4340
- Blev medlem: 22 december 2004, 00:46:38
- Ort: Särestad Grästorp
- Kontakt:
Re: Hemkontrollnät
Möjligt, men jag gick på vilka MCU:er de specar på hemsidan. Antalet noder blir väl kanske ett tiotal, så det är väl inte så mycket pengar eg. Särskilt inte om man jämför med ett nybyggt hus för flera miljoner, men nu handlar det om ett gammalt hus för en halv miljon med visst renoveringsbehov. Inte nytt hus så sett alltså, men nytt för oss 

Re: Hemkontrollnät
Använd en bra elektrisk signalering och mjukvaruprotokoll. Mjukvara för att interpretera kommunikation kan man skriva, så svårt är det inte. Att utgå från färdig mjukvara begränsar oerhört. Det är dessutom väldigt lite kodmängd som det handlar om.
- PHermansson
- EF Sponsor
- Inlägg: 4340
- Blev medlem: 22 december 2004, 00:46:38
- Ort: Särestad Grästorp
- Kontakt:
Re: Hemkontrollnät
Jo det känns nästan enklast att göra något eget. Då kan man kanske hålla ner kostnaderna också. Så jag funderar på hur enkelt man kan göra det egentligen? Säg att hårdvaran består av en RS232/485-omvandlare kopplad till datorn. Sedan dras en trepolig kabel till noderna, som består av en MAX485 och en enklare MCU (Attiny2313).
Mjukvaran skickar tecken direkt ala RS232, alltså ett terminalprogram. Det första som händer är att Mastern (PC:n) skickar en adress till serieporten (tex "DA"). När slaven ser detta på sin Uart kollar den mot en hårdkodad adress, och om den har adress DA startar den en rutin som läser av sensorn. Gäller det tex en MCP9701 så svarar den med temperaturavläsningen i hex. Man skulle kunna ha en enkel felkontroll där noden kollar att det sista tecken mastern skickar är en viss teckenkombination. Samma princip kan användas när noderna svarar.
Mjukvaran skickar tecken direkt ala RS232, alltså ett terminalprogram. Det första som händer är att Mastern (PC:n) skickar en adress till serieporten (tex "DA"). När slaven ser detta på sin Uart kollar den mot en hårdkodad adress, och om den har adress DA startar den en rutin som läser av sensorn. Gäller det tex en MCP9701 så svarar den med temperaturavläsningen i hex. Man skulle kunna ha en enkel felkontroll där noden kollar att det sista tecken mastern skickar är en viss teckenkombination. Samma princip kan användas när noderna svarar.
- PHermansson
- EF Sponsor
- Inlägg: 4340
- Blev medlem: 22 december 2004, 00:46:38
- Ort: Särestad Grästorp
- Kontakt:
Re: Hemkontrollnät
Protokollet som beskrivs här verkar lagom enkelt:
http://real2electronics.blogspot.com/20 ... rsion.html
Sidan beskriver RS485-kommunikation mellan Arduinos, och då är ju steget till ren AVR med Avr-gcc inte så långt.
http://real2electronics.blogspot.com/20 ... rsion.html
Sidan beskriver RS485-kommunikation mellan Arduinos, och då är ju steget till ren AVR med Avr-gcc inte så långt.
Re: Hemkontrollnät
Ett tips om du skall köra minimalistiska noder baserade på AVR:er med inbyggd oscillator är att se till att kalibrera processorernas oscillator (chipen levereras okalibrerade, iaf för mega88), körde ett RS485-kommunikations-projekt på jobbet där vi missade det, dyr miss
, (finns en appnote på atmels hemsida för hur man kalibrerar deras chip med en vanlig AVRISP-programmerare)
Ett till färdigt simpelt protokoll är SNAP, kanske kan vara nått i stil med vad du letar efter, så finns det färdiga noder osv.
Är lite inne på AVR+RS484 hemautomationsnätverk själv men är mer inne på att göra det paketswitchat så det blir lättare att bygga ut nätet med mer grejjer (dock jobbigare att komma igång med det).

Ett till färdigt simpelt protokoll är SNAP, kanske kan vara nått i stil med vad du letar efter, så finns det färdiga noder osv.
Är lite inne på AVR+RS484 hemautomationsnätverk själv men är mer inne på att göra det paketswitchat så det blir lättare att bygga ut nätet med mer grejjer (dock jobbigare att komma igång med det).
- PHermansson
- EF Sponsor
- Inlägg: 4340
- Blev medlem: 22 december 2004, 00:46:38
- Ort: Särestad Grästorp
- Kontakt:
Re: Hemkontrollnät
Ok, ska tänka på kalibreringen, tack för tipset!
Vad är egentligen fördelen med att använda ett protokoll? Varför kan jag inte bara skicka Ascii-tecken som på en RS232-lina?
En annan notering - Attiny2313 har inga AD-omvandlare. Man får alltså välja rätt sensorer, eller gå upp till Atmega 48/88 om man ska använda tex MCP9701 eller en ljussensor. En annan tanke kan vara tex Tiny45/85 med mjukvaru-Uart?
Vad är egentligen fördelen med att använda ett protokoll? Varför kan jag inte bara skicka Ascii-tecken som på en RS232-lina?
En annan notering - Attiny2313 har inga AD-omvandlare. Man får alltså välja rätt sensorer, eller gå upp till Atmega 48/88 om man ska använda tex MCP9701 eller en ljussensor. En annan tanke kan vara tex Tiny45/85 med mjukvaru-Uart?