Hulp in programmeren AVR: Recuperatie van teveel aan Kwh energie

Kan mij hier iemand wat op weg helpen of tips geven...
Ik heb zonnepanelen geplaatst en daarmee heb ik zo'n 200 à 300Kwh overschot aan energie per jaar.
Nu zou ik deze energie willen gebruiken om mijn huis te verwarmen op zo'n 16° terwijl ik werken ben. Dan hoeft mijn chauffage (op aardgas) niet aan te liggen.
Ik heb een energietellertje in serie met mijn omvormer zodat ik precies weet hoeveel Kwh de panelen opwekken. In het tellertje zit een pulsgenerator (10 pulsen per 0.01Kwh).
Maandelijks hou ik ook bij hoeveel energie ik verbruikt heb. Af te lezen van mijn teller aan de elektriciteitskast.
Dus het opgebrachte aantal Kwh van de zonnepanelen - mijn verbruik = ... Kwh overschot of te kort aan energie. Zoals ik eerder schreef is dat op jaarbasis enkele 100-den Kwh overschot.
Het volgende zit in mijn gedachten:
Ik zou de pulsen van het energietellertje draadloos willen doorzenden met een kleine Radio Frequent module (voeding voor module eventueel uit de beltransformator?).
De pulsen zou ik dan ontvangen in de woonplaats en willen laten opslaan in een Atmega microcontroller. Die microcontroller zou dus het aantal pulsen (Kwh) moeten bij houden. ** Mijn eerste vraag, hoe doe ik dat? Kan dat aantal pulsen permanent in de controller blijven staan, ook als de spanning weg valt of heb ik dan extern geheugen nodig?
Daarnaast zou ik ook maandelijks mijn verbruikte Kwh in de controller opslaan. (ingave met een encoder of cijferklavier). De controller kan dan gemakkelijk het verschil uitrekenen. Heb ik Kwh over, dan kan hij een relais bedienen zodat de elektrische verwarming aan slaat.
In de controller zou dus ook een klok(met soort kalender) moeten zitten die bij houd (ik werk in shiften) wanneer ik al dan niet thuis ben en wanneer dus het relais mag bediend worden.
Bediening van het relais heeft maw twee voorwaarden: 1 enkel inschakelen als Kwh positief is 'en' wanneer ik niet thuis ben.
Als het werken met een klok te ingewikkeld is dan zou ik ook kunnen zeggen dat de controller aan deze voorwaarden moet voldoen: 1 enkel inschakelen als Kwh positief is 'en' wanneer de temperatuur in huis minder is dan bvb 16°. Deze optie zal waarschijnlijk minder complex, zeg maar eenvoudiger zijn...
Zou zoiets te programmeren zijn in Bascom-AVR? Ik heb namelijk geen ervaring (kennis) met C-taal in AVR.
Graag dus wat tips om:
1) pulsen draadloos door te sturen naar Atmega (welke RF module komt best in aanmerking en hoe te programmeren?)
2) Kunnen die pulsen opgeslagen worden in mijn controller zo niet, welk extern geheugen heb ik nodig en hoe te bedienen/gebruiken?
Maar dit alles in Bascom-AVR programmatie!!!
Hopelijk krijg ik wat positieve respons en misschien wat bruikbare tips of voorbeelden.
Bedankt alvast voor het lezen van mijn idee.

Op 13 december 2016 10:58:07 schreef tsjolder:
Kan dat aantal pulsen permanent in de controller blijven staan, ook als de spanning weg valt of heb ik dan extern geheugen nodig?

De atmega heeft "eeprom". Als je een beetje slim doet, kan daar best veel data in bewaard blijven. Zeker als je eea een beetje slim doet. Waar iedereen bang voor is, dat is dat het eeprom geheugen slijt. Het is maar voor 100000 keer herschrijven bedoeld. Als je nu bijvoorbeeld iedere minuut het aantal pulsen van die minuut in de volgende byte van de eeprom schrijft, en ieder uur dat samen neemt tot een grotere 4 byte locatie, dan moet je bij het opstarten maximaal 61 getallen bij mekaar optellen, en iedere locatie wordt per uur maar 2x geschreven (1x als het "zijn" minuut is, 1x bij het verzamelen/wissen.
Dan gaat de boel 50000 uur mee (5 jaar). Of als je per 10 minuten verzameld (en dus max 10 minuten kwijt bent als plots de spanning wegvalt), dan 500000 uur (57 jaar). Zo kan je zelf met wat slimmigheid de levensduur voorbij het redelijke halen.

four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/
Hensz

Golden Member

Andere optie is om de waarde die je wilt opslaan pas op te slaan als de spanning wegvalt. Daarvoor moet je dan wel zorgen dat je buffercondensator zo groot is dat je controller er nog 10-100 msec op werkt nadat die een interrupt heeft gehad dat de spanning(*) is weggevallen.
(*) Die spanning meet je vóór en onafhankelijk van de buffercondensator zodat je de extra tijd optimaal kunt gebruiken.
Combinatie van beide technieken is misschien nóg beter. Schrijf je waarden elk uur/dag of wat ook sowieso weg en dan ook nog eens als de stroom uitvalt. Zo heb je een actuele waarde én een goede backup.

Don't Panic!
EricP

mét CE

En de laatste optie is een combinatie van beiden: je accepteert dat je bij een spanningsuitval wat nauwkeurigheid verliest en schrijft de boel elk kwartier naar EEPROM. Als de spanningsuitval 1x per jaar is, dan is dat 'good enough'. Elke dag... Dan niet.
Aan de ontwikkelaar om te bepalen wat wijsheid is...

Verder leert de ervaring dat EEPROM meestal wel wat langer meegaat dan gespecificeerd. Dus als jij het op 30 jaar berekent... Dan moet het zomaar de levensduur van je panelen kunnen overstijgen. En over 30 jaar zou het zomaar kunnen dat er andere 'regels' voor terugleveren enzo van kracht zijn, waardoor je hele project een curiositeit geworden is.

Eeprom in AVR gaat ongeveer 10x de gespecificeerde aantal cycli mee voordat ie kapot gaat, bij een test waarbij ze proberen zo snel mogelijk er 1 kapot te krijgen..... Bij "gespecificeerde aantal cycli" garanderen ze dan ook nog dat het 30 jaar blijft staan of zoiets. Dus vandaar dat er iets aan marge is.

four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/
hennep

Golden Member

Op 13 december 2016 14:47:39 schreef rew:
Bij "gespecificeerde aantal cycli" garanderen ze dan ook nog dat het 30 jaar blijft staan of zoiets.

Slaan we niet een beetje door met onze angst dat de eeprom kapot gaat? We hebben het over een verwarmingstoepassing.
Als eens per 10 jaar de uC vervangen moet worden omdat door eeprom uitval het een dag koud blijft in huis, is dat erg?
Het gemiddelde van de dagenergie over de rest van de week is voor die ene keer toch mooi genoeg in de verbruiksstatistieken.

- En is er dan iemand die mij een voorbeeld kan doorsturen hoe ik de eeprom dien te programmeren in Bascom?
Het meest leer ik uit voorbeeld toepassingen, kan iemand mij op het juiste spoor zetten?
- Niemand die mij info kan verschaffen in verband met het draadloos doorsturen van de pulsen in Bascom taal?
Welk gebruik van RF module? veel data dient deze niet te versturen en ook qua snelheid ligt dat niet hoog zodat het niet de laatste module moet zijn die momenteel op de markt is. Betrouwbaar en eenvoudig bedien/programmeerbaar dat is het belangrijkste voor mij.

1) Ik ken bascom niet.
2) Is google daar niet goed in? "bascom eeprom avr"?

four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/
EricP

mét CE

Ik weet niet of google daar goed in is. Die zit al wat jaren in de ban. Startpage kan er echter wel wat mee. De eerste hit gelijk prijs...

Elektronica en microcontrollers, daar hou ik mij mee bezig als hobbie.
Ik heb leuke ideeën maar die zijn soms moeilijk uit te voeren aangezien mijn ervaring als niet elektronicus iets te kort schiet.
Wat ik hierboven als idee probeerde neer te schrijven daar zit iets in denk ik. Maar ik weet gewoon niet hoe er aan te beginnen door een gebrek aan ervaring en kennis van de controllers. Ik ben nu eenmaal niet als een genie in de wieg gelegd...
Wat tips , voorbeeld programma's of verwijzingen doen wonderen.
Alle ideeën die ik graag uitgevoerd zag in het verleden heb ik tot nu toe al altijd tot een goed einde kunnen brengen. Het vraagt gewoon soms héél veel tijd, en nog meer tijd in experimenteren, veel vallen en opstaan met andere woorden.
En nogmaals, ik ben geen elektronicus zoals velen van jullie hier.
'rew' met alle respect en bedankt voor de moeite om het neer te schrijven dat het mogelijk is maar je eerste uitleg zonder voorbeeld maakte het voor mij al te moeilijk... Een welgemeende sorry daarvoor!

Het is pure ervaring die ik opdoe, ja en soms met hulp van google en sites zoals deze.
Ik vind het dan ook triest sommige (als de laatste) reacties te moeten lezen. Hoewel ik denk dat jullie ook geregeld met vragen zitten?...
Ik ben niet te lui om veel op te zoeken en te proberen, maar soms is het leuk om een voorbeeldje als duwtje in de rug te krijgen.

Daarvoor hebben de oprichters sites gelijk deze opgericht dacht ik.
Ze zullen misschien in het verleden ook niet alles gevonden hebben wat ze nodig hadden door 'gewoon eens' te googlen...

En is er dan iemand die mij een voorbeeld kan doorsturen hoe ik de eeprom dien te programmeren in Bascom

Hoef je geen google voor te gebruiken, zit als voorbeeld in de sample directory bij Bascom:

'-----------------------------------------------------------------------------------------
'name : eeprom.bas
'copyright : (c) 1995-2005, MCS Electronics
'purpose : example on how to use the internal EEPROM
'micro : Mega48
'suited for demo : yes
'commercial addon needed : no
'-----------------------------------------------------------------------------------------

It's the rule that you live by and die for It's the one thing you can't deny Even though you don't know what the price is. It is justified.
EricP

mét CE

Ik vind het dan ook triest sommige (als de laatste) reacties te moeten lezen.

Dan krijg je een link naar een hapklaar voorbeeld... En dan loop je nog te piepen.

Is op een linkje klikken teveel gevraagd? Verwacht je nou echt dat ik het voor je ga copy-pasten???

Nou, vooruit dan maar.

bascom code:

Example

'-------------------------------------------------------------------------------

'copyright                : (c) 1995-2005, MCS Electronics

'micro                    : AT90S2313

'suited for demo          : yes

'commercial addon needed  : no

'purpose                  : demonstrates $DATA directive

 

'-------------------------------------------------------------------------------

$regfile = "2313def.dat"

$baud = 19200

$crystal = 4000000                                         ' 4 MHz crystal

 

Dim B As Byte

Readeeprom B , 0                                           'now B will be 1

End

 

Dta:


$eeprom

Data 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8

$data

End

En ik denk dat er nog een typo ook in zit, maar ik spreek geen bascom.

Voor wat zoeken betreft: ik vraag hier ook wel eens wat, wat ik zelf had kunnen vinden. Sterker nog... Wat ik hier vraag, had ik meestal zelf kunnen vinden. De toegevoegde waarde is vaak dat iemand een kreet noemt die precies de goede voor de search engine blijkt te zijn. Ofwel: ff met de neus de goede kant op gezet, dan ga ik zelf wel weer rennen...