Jag har i mitt 1-wire nät dragit 4 ledare, nu har jag två ledare ledigt, skulle jag kunna ta en av dom och koppla detta till +5 volt från nätaggregatet på mätdatorn och skicka ut på slingan för att mata denna räknare?
Har du provat denna räknare mot LogTemp, eller något annat färdigt program?
Jag har i mitt 1-wire nät dragit 4 ledare, nu har jag två ledare ledigt, skulle jag kunna ta en av dom och koppla detta till +5 volt från nätaggregatet på mätdatorn och skicka ut på slingan för att mata denna räknare?
Har du provat denna räknare mot LogTemp, eller något annat färdigt program?
// Tony
I teorin bör det fungera att ta ström från datorns nätaggregat. Det är såklart inte något jag ger support på. Går något fel (höga strömmar!) så tar du själv fullt ansvar. (Såklart! )
Jag provade precis mot LogTemp, och det fungerar såtillvida att jag får in pulserna och kan välja en av minnesbankerna åt gången, det borde ju gå att välja att få in båda kan man tycka. Vidare så är det pulsvärdet man får in, eventuell konvertering till energiåtgång verkar det inte som att man kan ställa in i LogTemp.
elf98 skrev:En sak till; batteriet går ju att byta om man har lite lödvana!
Ett nytt batteri med lödöron kostar ca 40kr.
Å andra sidan kanske man kan sätta dit ett större batteri externt
Kanske det räcker men 4.5 volt eller är den känslig för låg spänning?
Sedan skall den ju sitta vid elcentralen, där har man ju 230 volt att tillgå.
Det är lag på att alla elmätare ska läsas av varje månad senast 2009 och därför kommer de flesta elbolag att byta elmätare som klarar fjärravläsning med olika tekniker. Frågan är då om det kommer att finnas en pulsindikering på den nya mätaren? Någon som har varit med om ett mätarbyte för fjärravläsning och sett hur det blir?
Angående räknare så funderar jag på att bygga nåt själv. Fast jag funderar på att ha både en räknare av pulser men även mätning av periodtiden (via elektronik alltså), typ att man räknar upp en räknare i 100 Hz eller liknande och sparar undan resultatet varje gång man får en puls. Finessen med detta är att det blir enklare att räkna ut momentanförbrukningen, man kan ju sampla senaste periodtiden när som helst och det blir alltid ett vettigt värde. Ska datorn mäta periodtiden så måste man sampla själva pulserna väldigt ofta annars...
Om jag räknar rätt så blir momentanförbrukningen i Watt 6000/periodtiden. Har man lite datorer och annat igång så kommer det en puls typ var 10:e sekund eller mer (600W) så man behöver inte vänta så länge för att kunna räkna ut momentanförbrukningen. En enklare variant är att göra om blinket till ett pip som hörs i hela huset/lägenheten. Då kan men med stoppur och miniräknare lätt räkna ut momentanförbrukningen. Men det är inte lika kul...
Jag har nyligen fått en ny elmätare som går att läsa av externt.
I den fanns det en S0 utgång som man kan använda.
Bl a hittar man en lösning på http://www.techtrade.se/sv/emc-connect.asp där man kopplar S0 direkt till en serieport.
Problemet är att S0 sitter innanför plomberingen. Jag fick min installatör att dra ut dessa två trådar innan han plomberade min mätare. Men jag har inte provat att mäta där än.
pethson skrev:Jag har nyligen fått en ny elmätare som går att läsa av externt.
I den fanns det en S0 utgång som man kan använda.
Bl a hittar man en lösning på http://www.techtrade.se/sv/emc-connect.asp där man kopplar S0 direkt till en serieport.
Problemet är att S0 sitter innanför plomberingen. Jag fick min installatör att dra ut dessa två trådar innan han plomberade min mätare. Men jag har inte provat att mäta där än.
///Peter!
Låter lovande, det är ju enklare om man kan använda S0-utgången. Bra tips att dra ut trådar i samband med installationen!
Har hittat samma sida som du och jag funderar på att använda kopplingschemat som finns där med fototransistorn. Har inte bestämt mig för om jag ska dra ner en serieförbindelse än eller om jag ska använda en mikroprocessorlösning för diverse saker i källaren.
Är det någon som genomskådar hur handskakningen med serieporten funkar? Har försökt kommunicera från linuxburken men har ännu inte lyckats inse hur kopplingen med DTR och RXD/TXD funkar så att jag kan läsa av. Har två serieportar på linuxburken och har lyckats kommunicera mellan dem med nollmodemkabel så jag vet att jag kommer åt portarna. Frågan är bara hur jag ska läsa av data enligt kopplingsschemat på http://www.techtrade.se/sv/emc-schematics.asp
Jag har inte granskat det noggrannare, men är det inte så att pga R1 så blir potentialen på Rx i stort sett samma (låg ström=lågt spänningsfall) som Tx så länge som S0 inte leder. När S0 leder ökar potentialen på Rx vilket kan ses som en puls av ett program. Gissningsvis är Tx och Rx förbundna för att Rx inte ska flyta då S0 inte leder.
Så någon 'handskakning' finns egentligen inte, det programmet gör är gissningsvis att monitorera flanker på Rx.
Jag har fått bra svar direkt via Göran Krook på techtrade och även fått tips på hur man ska få det att funka på en linuxmaskin. Jag klistrar in en del här för andras räkning.
RxD är en ingång (data in) där, enl. den gamla standarden RS232C, en 1a (=MARK. idle)
skall representeras av en spänning < -3V, och en 0:a (=SPACE) skall representeras av > +3V.
I nyare datorer är mottagarkretsen oftast gjord så att det räcker med > +2.4V och < +0.8 V.
Motståndet mellan TxD (som är -12V) och RxD ser till att spänningen på ingången håller sig
under -3V i viloläge, så att kopplingen blir kompatibel med alla RS232 ingångar.
DTR är en utgång som måste vara satt PÅ (ON), för att få +12V till fototransistorn som då den
belyses av elmätarens blink leder och 'lyfter' upp RxD över +3V. Datorn kommer då att uppfatta
detta som ett riktigt datapaket med en start-bit följd av några 0-bitar + några 1-bitar och en stop-bit.
Serikommunikationen i datorn bör vara satt till 110b/s för att inte få 'framing error' dvs en 0a istället
för stop-bit som förväntas vara låg (1a). (Men detta är inte helt nödvändigt om det kan hanteras i mjukvaran.)
Fördelen med att ta emot pulserna som data är att de vanliga rutinerna för seriekommunikation används, med
buffring och allt, så att inga pulser missas. Varje puls tas emot som ett data tecken med ASCII kod #0F (ungefär),
där antalet 0-bitar i följd indikerar ljuspulsens längd.
DTR används som konstant utgång för +12V
TxD används som konstant utgång för -12V
GND (Jord) används ej
RxD används som ingång som skall växla mellan under -3V och över +3V.
På nya datorer räcker det med att RxD växlar mellan under +0.8V och över +2.4V,
RxD har ett internt motstånd på ca 5kohm till GND (jord) vilket innebär att de yttre
motståndet och anslutningen till TxD kan uteslutas. Dvs, då behövs det bara 2 ledare
DTR och RxD.
RxD används som vanlig data ingång för seriekommunikation med 110baud,
du behöver bara öppna /dev/ttyXX för läsning och sedan räkna antalet tecken som kommer in.
Är det tänkt att DTR ska ligga konstant på +12V?
Ja!
Och att pulserna ska komma in på RXD i och med att nivån höjs över 3V?
Ja!
Innebär det att det hela tiden ska komma in data på serieporten eller funkar
det så att data inte anses finnas om man ligger på konstant negativ spänning på RXD?
? ! En puls = Ett tecken (som kommer lite då och då)
Vid 115200bps så kommer du garanterat att få fel på varje tecken. (BREAK)
Pulsbredden är ca 50ms som bör vara runt 1/2 tecken, vid 115200bps är ett helt tecken 0.09ms
Vid 110bps är ett helt tecken 90ms.
Om du kopplar DTR till RxD en kort tid, mellan 10ms och 80ms vid 110bps så fungerar det.
Men efter 90ms så blir det fel även vid 110bps. (FRAMING ERROR + BREAK DETECT)
jag testade just på en linux dator (ubuntu)
och fick det att fungera med följande;
stty -F /dev/ttyS0 raw ispeed 110
od -tx1 -w1 -v -N10 /dev/ttyS0
od (octal dump) används istället för cat för att kunna se ASCII koden för inkommande tecken,
optionen -N10 anger att du avbryter efter 10 tecken.
Senast redigerad av hanpa den 13 jul 2007, 23:54, redigerad totalt 1 gånger.