Cookies op Tweakers

Tweakers maakt gebruik van cookies, onder andere om de website te analyseren, het gebruiksgemak te vergroten en advertenties te tonen. Door gebruik te maken van deze website, of door op 'Ga verder' te klikken, geef je toestemming voor het gebruik van cookies. Wil je meer informatie over cookies en hoe ze worden gebruikt, bekijk dan ons cookiebeleid.

Meer informatie

  • Raven
  • Registratie: november 2004
  • Niet online

Raven

Marion Raven fan

Beetje laat, de MAG3110 staat al een tijdje in bestelling :P Ik heb deze trouwens:


Heb al wat gevonden voor het 3.3v/5v issue en de MAG3110: http://playground.arduino...i-directionalLevelShifter , CTRL+F'en naar "Using 4 transistors", daar heb ik de onderdelen wel voor liggen :)

Raven wijzigde deze reactie 14-11-2013 16:06 (20%)

After the first glass you see things as you wish they were. After the second you see things as they are not. Finally you see things as they really are, and that is the most horrible thing in the world...

Oscar Wilde


  • Promy
  • Registratie: oktober 2002
  • Laatst online: 21-10 17:08
quote:
CurlyMo schreef op vrijdag 26 juli 2013 @ 14:38:
Voor de geÔnteresseerden, mijn uitvoer van mijn energie log:
[afbeelding]

Allemaal lokaal
Ik heb dit script proberen aan te passen om m'n eigen data (om de 5 min uitlezen van een 1-wire teller met absolute waardes)

De electricity.php geeft een mooie json weer van bv (natuurlijk meer datapunten)
[{"x": 1384467602000, "y": 0, "color": "#2f7ed8"},{"x": 1384467303000, "y": 106, "color": "#2f7ed8"}]


Bij het plaatsen in de charts (via de index.html) gaat er precies toch iets mis:
- ik krijg enkel een beeld als ik op "all" druk (bovenste deel), het onderste geeft wel iets weer(de golvende layout). De info die je normaal gezien krijgt door over de bars te hooveren staat vast aan een van de eerste (reageert niet). Als ik zoom met het onderste deel, dan gaat het bovenste deel van de grafiek blanco (geen bars)

- vanaf een bepaald aantal datapunten (hoeveelheid afhankelijk van de browser - bv IE 164) dumt hij in het bovenste deel van de grafiek alles in 1 kolom die het totale verbruik bevat, de onderste niks meer

Ik heb al de voorbeelden op de site van highcharts bekeken, maar zelfs met hun code en mijn json krijg ik hetzelfde probleem

(post verplaatst uit GPIO)

De code die ik gebruik is:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
header('Content-Type: text/html; charset=utf-8');
$rConnect = mysql_connect('KNIP', 'KNIP', 'KNIP');
$rDatabase = mysql_select_db('verbruik');

$rHourElec = mysql_query("SELECT * FROM elekalles ORDER BY ROWID DESC LIMIT 0 , 100");


$x = 0;
$iNrRows = mysql_num_rows($rHourElec);
$sJson = '[';
while($aHourElec = mysql_fetch_assoc($rHourElec)) {
    if ($x == 0){$vorige = $aHourElec['teller'];$x=1;} // om de eerste waarde op nul te zetten
    $aHourElec2 = $vorige-$aHourElec['teller'];
    $sJson .= '{"x": '.strtotime($aHourElec['datum'].' '.$aHourElec['tijd']).'000, "y": '.$aHourElec2.', "color": "#2f7ed8"},';
        $vorige = $aHourElec['teller'];
    }
$sJson = substr($sJson, 0, -1);
echo $sJson .= ']';


code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
<!DOCTYPE HTML>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
        <title>Energy Logging</title>

        <script type="text/javascript" src="js/jquery.min.js"></script>
        <script type="text/javascript">
$(function() {
    $.getJSON('electricity.php', function(data) {

        // create the chart
        $('#electricity').highcharts('StockChart', {

            chart: {
                alignTicks: false
            },

            rangeSelector: {
                selected: 1,
                buttons: [{
                    type: 'hour',
                    count: 12,
                    text: '12h'
                }, {
                    type: 'day',
                    count: 1,
                    text: '1d'
                }, {
                    type: 'week',
                    count: 1,
                    text: '1w'
                }, {
                    type: 'month',
                    count: 1,
                    text: '1m'
                }, {
                    type: 'month',
                    count: 6,
                    text: '6m'
                }, {
                    type: 'year',
                    count: 1,
                    text: '1y'
                }, {
                    type: 'all',
                    text: 'All'
                }],
            },

            title: {
                text: 'Electricity Usage'
            },
            
            credits: {
                enabled: false
            },
            
            exporting: {
                enabled: false
            },

            series: [{
                type: 'column',
                name: 'Watt',
                data: data,
                turboThreshold: 10000000,
                dataGrouping: {
                    units: [[
                        'minute',
                        [15, 60]
                    ], [
                        'hour',
                        [24]
                    ], [
                        'day',
                        [7]
                    ], [
                        'week',
                        [4]
                    ], [
                        'month',
                        [12]
                    ], [
                        'year',
                        null
                    ]]
                }
            }]
        });
    });
});
        </script>
    </head>
    <body>
<script src="js/highstock.js"></script>
<script src="js/modules/exporting.js"></script>

<div id="electricity" style="height: 400px"></div>
    </body>
</html>


  • Fr33z
  • Registratie: december 2003
  • Laatst online: 21-10 12:03
een update over mijn experimenten: ik heb een resultaat!! Ik heb een TCRT5000 gehaald en deze op dezelfde manier aangesloten als de CNY70. Dus voeden met 6V, een 100 ohm weerstand voor de led, een 10k potmeter tussen de Vcc en de fototransistor.

Hiermee meet ik een spanning van Ī0.25V bij het witte deel van de schijf, en springt dat naar Ī1.6V als het rode streepje langskomt :-) Ik ben superblij dat ik een resultaat heb, maar loop er tegenaan dat het heel nauw luistert qua plaatsing.

hebben anderen die problemen ook qua plaatsen/richten? Een paar mm te hoog en ik zie niks, dan een klein beetje bijstellen en ineens werkt het super....

Nu wachten op m'n arduino;s uit china en dan kan ik verder :D

  • Raven
  • Registratie: november 2004
  • Niet online

Raven

Marion Raven fan

Wow, die had je snel binnen :o Bij mij duurde het wel even voor de TCRT5000's en CNY70's er waren :P

Ik heb trouwens een 47k weerstand (niet pot) bij mijn CNY70, misschien dat je daarmee het verschil nog wat groter kan maken bij je TCRT5000?

Aparte voedingsspanning trouwens, 6v? Schakelingen gebruiken hier meestal 5v.

Raven wijzigde deze reactie 15-11-2013 15:57 (17%)

After the first glass you see things as you wish they were. After the second you see things as they are not. Finally you see things as they really are, and that is the most horrible thing in the world...

Oscar Wilde


  • CurlyMo
  • Registratie: februari 2011
  • Laatst online: 22:42

CurlyMo

www.pilight.org

@promy, ik heb niet direct aanwijzingen waarom het niet werkt.

geen vragen via PM die ook op het forum gesteld kunnen worden.


  • Fr33z
  • Registratie: december 2003
  • Laatst online: 21-10 12:03
quote:
Raven schreef op vrijdag 15 november 2013 @ 15:55:
Wow, die had je snel binnen :o Bij mij duurde het wel even voor de TCRT5000's en CNY70's er waren :P

Ik heb trouwens een 47k weerstand (niet pot) bij mijn CNY70, misschien dat je daarmee het verschil nog wat groter kan maken?
Ja ik heb die CNY70s idd snel binnen, kwamen uit Spanje in een dag of vijf. De TCRT5000 heb ik bij de lokale elektroboer gehaald (A) daarom heb ik die al. Ik zal eens proberen met een hogere weerstand nog.

Moet jij jouw setup ook heel precies uitrichten Raven of niet?

(is er ook een app/tapatalk voor dit forum trouwens, search leverde niks op..0)

  • Raven
  • Registratie: november 2004
  • Niet online

Raven

Marion Raven fan

Ehm, ik heb de CNY70 nog steeds niet in de meterkast getest, alleen getest met dingen erboven houden :+ Misschien toch maar eens een keer doen, ik wil(de) eerst een oplossing voor de gasmeter hebben voor ik er daadwerkelijk mee aan de gang ga. Maar van 't weekend eens een keer naar kijken.

Hier in Enschede hebben we voor zover ik weet geen lokale elektroboer die dat soort spul heeft.


edit: En ik heb voor een paar § een stel logic level converters voor I2C, al werken ze blijkbaar ook met UART en SPI, die waren best snel binnen, kwamen uit Polen. 2 dagen terug besteld, vandaag binnen :o Als de MAG3110 eens een keer aankomt, die maar eens testen.

Raven wijzigde deze reactie 15-11-2013 16:03 (47%)

After the first glass you see things as you wish they were. After the second you see things as they are not. Finally you see things as they really are, and that is the most horrible thing in the world...

Oscar Wilde


  • Fr33z
  • Registratie: december 2003
  • Laatst online: 21-10 12:03
quote:
SteeringWheel schreef op zondag 10 november 2013 @ 20:47:
Heb het uitlezen van een draaischijf nu goed werkend met een raspberry + cny70 + mcp3008. Volgend projectje wordt de gasmeter (met een reflecterende 0). Heb oa de volgende bronnen gebruikt:
Uitlezen draaischijf:
https://www.circuitlab.co...u/raspberry-pi-kwh-meter/
http://juerd.nl/site.plp/kwh
Website voor de grafieken (van CurlyMoo):
https://github.com/CurlyMoo/RaspberryPi-P1-port
beste steeringwheel, klinkt gaaf, heb je een schema van je circuitje misschien?

  • Promy
  • Registratie: oktober 2002
  • Laatst online: 21-10 17:08
@CurlyMo: is het mogelijk om eens die Json (of een deel ervan) te bezorgen, dan kan ik deze effectief vergelijken? Ik vermoed immers dat het daarin zit, want met een json van de site van highcharts (http://www.highcharts.com...me=aapl-v.json&callback=?) lukt het wel?

  • SteeringWheel
  • Registratie: augustus 2004
  • Laatst online: 19-10 11:16
quote:
Wietman!!! schreef op vrijdag 15 november 2013 @ 22:00:
[...]
beste steeringwheel, klinkt gaaf, heb je een schema van je circuitje misschien?
Heb het schema uit de link die ik postte naar circuitlabs gebruikt (https://www.circuitlab.co...u/raspberry-pi-kwh-meter/). Maar dan alleen het gedeelte van 1 sensor en de mcp3008.
quote:
Promy schreef op zaterdag 16 november 2013 @ 11:59:
@CurlyMo: is het mogelijk om eens die Json (of een deel ervan) te bezorgen, dan kan ik deze effectief vergelijken? Ik vermoed immers dat het daarin zit, want met een json van de site van highcharts (http://www.highcharts.com...me=aapl-v.json&callback=?) lukt het wel?
Zie voor mijn output http://tny.cz/c323f7b1

A forum post should be like a skirt. Long enough to cover the subject material, but short enough to keep things interesting.


  • Raven
  • Registratie: november 2004
  • Niet online

Raven

Marion Raven fan

quote:
SteeringWheel schreef op zaterdag 16 november 2013 @ 12:41:
[...]

Heb het schema uit de link die ik postte naar circuitlabs gebruikt (https://www.circuitlab.co...u/raspberry-pi-kwh-meter/). Maar dan alleen het gedeelte van 1 sensor en de mcp3008.
Is die schakeling wel compleet? R11+R12 zitten bij de ADC's niet helemaal aangesloten lijkt het?

After the first glass you see things as you wish they were. After the second you see things as they are not. Finally you see things as they really are, and that is the most horrible thing in the world...

Oscar Wilde


  • Promy
  • Registratie: oktober 2002
  • Laatst online: 21-10 17:08
Voor zover ik kan terugvinden na heel wat zoeken, ligt het aan de volgorde van de json.
Ik wilde de laatste x gegevens erin steken en gebruik hier voor
code:
1
SELECT * FROM elekalles ORDER BY ROWID DESC LIMIT 0 , 1000

Dit geeft echter de gegevens in omgekeerde volgorde (laatste eerst), en daar lijkt het mis te gaan.
Als ik alle gegvens erin dump (zonder order en limit), dan werkt het wel...(maar duurt het lang want er zijn nu al bijna 100.000 rows)

update: wijzigen naar volgende en hij werkt wel! :)
code:
1
(SELECT * FROM elekalles ORDER BY ROWID DESC LIMIT 1000) ORDER BY ROWID ASC

Promy wijzigde deze reactie 16-11-2013 13:19 (13%)


  • SteeringWheel
  • Registratie: augustus 2004
  • Laatst online: 19-10 11:16
quote:
Raven schreef op zaterdag 16 november 2013 @ 13:12:
[...]

Is die schakeling wel compleet? R11+R12 zitten bij de ADC's niet helemaal aangesloten lijkt het?
Die heb ik achterwege gelaten, hier en hier doen ze het ook niet.

A forum post should be like a skirt. Long enough to cover the subject material, but short enough to keep things interesting.


  • Speedfightserv
  • Registratie: september 2004
  • Laatst online: 19-10 14:10
Hoe schrijven jullie de waardes weg van het gas en het stroom verbruik in de database?

maak je in het script een berekening die het aantal pulsen per minuut telt en daarna uitrekend hoeveel gas of stroom per minuut verbruikt wordt en daarna naar de database wegschrijft met een datum en tijd?

8 x SF 150 = 1200 wp op GoodWe 1000, plat dak zuid | PVOutput


  • CurlyMo
  • Registratie: februari 2011
  • Laatst online: 22:42

CurlyMo

www.pilight.org

Ik schrijf elke puls die binnenkomt weg in een database bereken via tussen tabellen het verbruik.

geen vragen via PM die ook op het forum gesteld kunnen worden.


  • Speedfightserv
  • Registratie: september 2004
  • Laatst online: 19-10 14:10
krijg je dan niet een mega grote database?

8 x SF 150 = 1200 wp op GoodWe 1000, plat dak zuid | PVOutput


  • CurlyMo
  • Registratie: februari 2011
  • Laatst online: 22:42

CurlyMo

www.pilight.org

Mijn database heeft de volgende tabellen met het aantal rijen:
- consumption: 60.042
- electricity: 11.974
- electricity_buffer: 11.223
- gas: 982
- gas_buffer: 963

Totale omvang van de database op mijn HDD
code:
1
2
3
[root@server /data/mysql]# du -ch log
149k    log
149k    total

Ligt er dus maar net aan wat je groot noemt ;)

geen vragen via PM die ook op het forum gesteld kunnen worden.


  • Raven
  • Registratie: november 2004
  • Niet online

Raven

Marion Raven fan

Wat voor periode hebben we het dan over?

After the first glass you see things as you wish they were. After the second you see things as they are not. Finally you see things as they really are, and that is the most horrible thing in the world...

Oscar Wilde


  • CurlyMo
  • Registratie: februari 2011
  • Laatst online: 22:42

CurlyMo

www.pilight.org

22 juli 2013 t/m 21 november 2013.

geen vragen via PM die ook op het forum gesteld kunnen worden.


  • Raven
  • Registratie: november 2004
  • Niet online

Raven

Marion Raven fan

Heeft een database niet een limiet mbt het aantal entries? Gaat hard zo :P

After the first glass you see things as you wish they were. After the second you see things as they are not. Finally you see things as they really are, and that is the most horrible thing in the world...

Oscar Wilde


  • Mr-Leo
  • Registratie: oktober 2001
  • Laatst online: 23-09 13:36
Ik schrijf elke minuut een record weg met het aantal pulsen per teller:



Ik doe dit sinds begin oktober 2012, en mijn pulse tabel heeft nu meer dan een half miljoen records en heeft een grootte van 36,6mb. (mysql op mijn raspberry pi met 256mb geheugen)

Je moet alleen geen query's willen doen die alle records bij langs gaat. Ik heb cronjobs lopen die elk uur/dag totalen telt en in aparte dag en maand tabellen zet. Op die manier kun je snel overzichten laten weergeven.


  • CurlyMo
  • Registratie: februari 2011
  • Laatst online: 22:42

CurlyMo

www.pilight.org

Nee, dat is praktisch ongelimiteerd. Het valt nu ook wel mee; +/- 150.000 per jaar. Een 32-bit unsigned int auto increment kan 4.000.000.000.000 rijen bevatten. Niks om me zorgen over te maken dus. En dan hebben we het over mysql.


Ik heb ook andere tabellen waaruit de grafieken worden opgebouwd. Het maken van een grafiek vanuit mijn ruwe data kost nu zo'n 30 seconde :)

CurlyMo wijzigde deze reactie 22-11-2013 11:07 (24%)

geen vragen via PM die ook op het forum gesteld kunnen worden.


  • Dogooder
  • Registratie: april 2004
  • Laatst online: 23:40

Dogooder

dus...

Als je de timestamp als index opgeeft in MySQL kan je al een flinke tijdwinst halen bij het bouwen van grafieken uit ruwe data.
van 30 seconden naar 3 :)

Dogooder wijzigde deze reactie 22-11-2013 12:19 (9%)


  • Raven
  • Registratie: november 2004
  • Niet online

Raven

Marion Raven fan

quote:
CurlyMo schreef op vrijdag 22 november 2013 @ 11:06:
Nee, dat is praktisch ongelimiteerd. Het valt nu ook wel mee; +/- 150.000 per jaar. Een 32-bit unsigned int auto increment kan 4.000.000.000.000 rijen bevatten. Niks om me zorgen over te maken dus. En dan hebben we het over mysql.


Ik heb ook andere tabellen waaruit de grafieken worden opgebouwd. Het maken van een grafiek vanuit mijn ruwe data kost nu zo'n 30 seconde :)
150k per jaar? Als ik elke puls van de draaischijfmeter vast wil leggen zit ik met het huidige verbruik en toeren/kWh op ~900k per jaar.

After the first glass you see things as you wish they were. After the second you see things as they are not. Finally you see things as they really are, and that is the most horrible thing in the world...

Oscar Wilde


  • Mr-Leo
  • Registratie: oktober 2001
  • Laatst online: 23-09 13:36
quote:
Raven schreef op vrijdag 22 november 2013 @ 12:13:
[...]

150k per jaar? Als ik elke puls van de draaischijfmeter vast wil leggen zit ik met het huidige verbruik en toeren/kWh op ~900k per jaar.
Als je de pulsen per minuut optelt kom je op 525600 records.

  • Mr-Leo
  • Registratie: oktober 2001
  • Laatst online: 23-09 13:36
quote:
Dogooder schreef op vrijdag 22 november 2013 @ 12:01:
Als je de timestamp als index opgeeft in MySQL kan je al een flinke tijdwinst halen bij het bouwen van grafieken uit ruwe data.
van 30 seconden naar 3 :)
Dat gaan we proberen! Als extra index, of ipv mijn huidige index?

  • Dogooder
  • Registratie: april 2004
  • Laatst online: 23:40

Dogooder

dus...

Ik heb als extra index, want de primary key moet ook worden geindexed.

  • Proton_
  • Registratie: november 2011
  • Laatst online: 18:46
900k * (32bit counter + 64 bit timestamp)=10 megabyte. Niet echt schokkend, zeker als je de boel ook nog aggregeert. Vanuit een systeemperspectief is er een goede reden nodig om de ruwe data niet op te slaan; ruimte is hier geen probleem.

Kijk wel uit met extra indexen op zo'n tabel; die maken je tabel fors groter en inserts en updates worden duurder.
Ik heb op geen enkele manier expertise voor MySQL maar ik denk dat partitioning beter geschikt is als query snelheden op ruwe data een probleem worden:
http://dev.mysql.com/doc/...artitioning-overview.html
http://dev.mysql.com/doc/...n/partitioning-range.html
Hiermee beperk je ook de hoeveelheid rows die de db moet doorvlooien als je tussen datums zoekt en heb je niet de overhead van indexen.
(mocht bovenstaande onzin zijn: enlighten me, ik leer graag bij :))

'15 Zoe, tijdelijk verwarmen/douchen met hr-ketel


  • Speedfightserv
  • Registratie: september 2004
  • Laatst online: 19-10 14:10
ik ben zelf geen programmeur dus moet alles nog gaan uitzoeken met python en mysql. :)

bedankt voor de tips :*)

8 x SF 150 = 1200 wp op GoodWe 1000, plat dak zuid | PVOutput


  • CurlyMo
  • Registratie: februari 2011
  • Laatst online: 22:42

CurlyMo

www.pilight.org

Mijn verbruik is zo'n 1700Kwh per jaar. Ik log per 100watt. Vanuit mijn eindtabel wordt de grafieken vrijwel direct opgebouwd. De grafieken hebben nu een preciesie van 1 kwartier.


Mijn tabellen zien er zo uit:

Ruw:
code:
1
2
3
4
5
6
7
8
9
log_id   dev_id   rate_id     usage    datetime            direction
1       1       2           1148.430    2013-07-22 19:59:34 0
2       1       3           1119.170    2013-07-22 19:59:34 0
3       2       1           541.360  2013-07-22 19:59:34    0
4       1       3           1119.180    2013-07-22 20:01:24 0
5       1       3           1119.190    2013-07-22 20:03:34 0
6       1       3           1119.200    2013-07-22 20:05:35 0
7       2       1           541.460  2013-07-22 20:07:25    0
8       1       3           1119.210    2013-07-22 20:07:55 0

Stap 1:
code:
1
2
3
4
5
hour  datetime      usage   max          min         rate_id
20  1374523200  50    1119.230   1119.180   3
20  1374524100  40    1119.280   1119.240   3
20  1374525000  50    1119.340   1119.290   3
20  1374525900  40    1119.390   1119.350   3

Stap 2:
code:
1
2
3
4
5
hour  datetime      watt  prev_hour  prev_max
20  1374523200  50  20       1119.230
20  1374524100  50  20       1119.280
20  1374525000  60  20       1119.340
20  1374525900  50  20       1119.390

Vanuit die laatste tabel maak ik mijn grafiek.

CurlyMo wijzigde deze reactie 22-11-2013 19:21 (80%)

geen vragen via PM die ook op het forum gesteld kunnen worden.


  • Speedfightserv
  • Registratie: september 2004
  • Laatst online: 19-10 14:10
quote:
Koffie schreef op zondag 06 oktober 2013 @ 10:25:
@19roland70 je leest die opmerking wel meer als het om pulsen tellen gaat, maar aan de andere kant zijn er ook genoeg die aantonen dat het wel lukt.

Omdat ik toch het vermoeden had dat de plastic kap onderdeel van het probleem zou zijn, heb ik deze afgeplakt.
Eerst heb ik de LDR met een streepje tape vastgeplakt op de behuizing, daarna een stuk karton over de kap heen:

[afbeelding]

Als ik dan de volgende code uitvoer:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
import RPi.GPIO as GPIO
import time
import datetime

GPIO.setmode(GPIO.BCM)
GPIO.setup(18, GPIO.IN)

while True:
        input_value = GPIO.input(18)
        if input_value == 0:
                now = datetime.datetime.now()
                hour = now.hour
                minute = now.minute
                second = now.second
                print hour,minute,second," puls detected?"
        time.sleep(0.1)

ik kwam dit tegen op internet. geen while lus die constant je channel polst maar een interrupt.
https://code.google.com/p/raspberry-gpio-python/wiki/Inputs

is dit niet makkelijker?

8 x SF 150 = 1200 wp op GoodWe 1000, plat dak zuid | PVOutput


  • CurlyMo
  • Registratie: februari 2011
  • Laatst online: 22:42

CurlyMo

www.pilight.org

Dan liever interrupts in C. Is echt niet zo complex. Al helemaal niet als je wiringPi gebruikt.

Voor iedereen die mijn oplossing wilt gebruiken. Sinds vandaag heb ik een kant en klare image gemaakt. Die kan je gewoon op een SD kaart zetten van tenminste 32mb, paar instellingen instellen in de cmdline.txt en de rest gaat vanzelf.

https://github.com/CurlyMoo/RaspberryPi-P1-port/
http://sourceforge.net/projects/rpip1reader/files/

geen vragen via PM die ook op het forum gesteld kunnen worden.


  • Promy
  • Registratie: oktober 2002
  • Laatst online: 21-10 17:08
Je kan toch ook rechtstreeks de interrupts gebruiken van wiringpi, vanuit gelijk welk script (zijn system commands):
bv gpio wfi 17 both ==> deze wacht op een interrupt op pin 17 en let zowel op rising als falling.

(heb wel ondervonden dat er soms false positives tussenzitten...maar die kan je makkelijk in je script ondervangen)

  • Speedfightserv
  • Registratie: september 2004
  • Laatst online: 19-10 14:10
@ CurlyMo
heb je die scripts ook ergens los staan? ik keek op je website maar zag het niet staan.

ik moet even een voorbeeld hebben om op weg te komen denk ik :)

Speedfightserv wijzigde deze reactie 26-11-2013 15:38 (28%)

8 x SF 150 = 1200 wp op GoodWe 1000, plat dak zuid | PVOutput


  • CurlyMo
  • Registratie: februari 2011
  • Laatst online: 22:42

CurlyMo

www.pilight.org

Ehm, op mijn github die ik al heb geplaatst?

geen vragen via PM die ook op het forum gesteld kunnen worden.


  • Speedfightserv
  • Registratie: september 2004
  • Laatst online: 19-10 14:10
daar zie ik ook verschrikkelijk veel staan :P

ik zoek dat scriptje om een interrupt uit te lezen. Of heb ik je verkeerd begrepen en had je daar nog niets mee gedaan?

8 x SF 150 = 1200 wp op GoodWe 1000, plat dak zuid | PVOutput


  • CurlyMo
  • Registratie: februari 2011
  • Laatst online: 22:42

CurlyMo

www.pilight.org

Dit script werkt niet met interrupts. Hij leest de seriŽle poort van slimme meters. Als iemand een goed werkend script met interrupts kan toevoegen, dan doe ik dat natuurlijk graag. Dan kunnen we een all-in-one oplossing bieden.

Voor mijn implementatie van interrupts kan je in deze bestanden terecht:
https://github.com/piligh...master/libs/pilight/irq.c
https://github.com/piligh...r/libs/pilight/wiringPi.c
https://github.com/piligh...ter/libs/hardwares/gpio.c

CurlyMo wijzigde deze reactie 26-11-2013 17:39 (6%)

geen vragen via PM die ook op het forum gesteld kunnen worden.


  • Speedfightserv
  • Registratie: september 2004
  • Laatst online: 19-10 14:10
ah, ok. ik heb geen slimme meter. ik moet pulsen gaan tellen die een reedswitch (gasmeter) en een photosensor (stroom) uitlezen.

8 x SF 150 = 1200 wp op GoodWe 1000, plat dak zuid | PVOutput


  • CurlyMo
  • Registratie: februari 2011
  • Laatst online: 22:42

CurlyMo

www.pilight.org

Als je het voor elkaar krijgt om die data in een tabel te krijgen zoals bij mij in stap 2. dan kan ik hem integreren in mijn image + grafieken. De prev_hour en prev_max zijn niet relevant voor de grafieken, dus die kolommen kunnen leeg blijven.

CurlyMo wijzigde deze reactie 27-11-2013 11:48 (28%)

geen vragen via PM die ook op het forum gesteld kunnen worden.


  • ZuinigeRijder
  • Registratie: oktober 2009
  • Niet online

ZuinigeRijder

inactief, stuur PB voor vragen

quote:
Speedfightserv schreef op woensdag 27 november 2013 @ 09:29:
ah, ok. ik heb geen slimme meter. ik moet pulsen gaan tellen die een reedswitch (gasmeter) en een photosensor (stroom) uitlezen.
Ik ben van plan met een (goedkope) webcam gewoon een foto te maken en dan via OCR de meterstand aflezen. Dus Raspberry Pi + Tesseract + Webcam.
Webcam kost nog geen 5 euro.

  • Speedfightserv
  • Registratie: september 2004
  • Laatst online: 19-10 14:10
welke tool gebruiken jullie om de graphs te maken? ik kwam al rddtool tegen maar die schijnt performance issues met mysql te hebben.

8 x SF 150 = 1200 wp op GoodWe 1000, plat dak zuid | PVOutput


  • CurlyMo
  • Registratie: februari 2011
  • Laatst online: 22:42

CurlyMo

www.pilight.org

highstock

geen vragen via PM die ook op het forum gesteld kunnen worden.


  • messi
  • Registratie: oktober 2001
  • Laatst online: 21-10 11:18
quote:
Speedfightserv schreef op donderdag 28 november 2013 @ 20:30:
welke tool gebruiken jullie om de graphs te maken?
Ik gebruik D3.js.

Het begint al ergens op te lijken. Ik heb nu een oude iPad1 in de gang hangen als monitor :)

Uiteindelijke doel is niet alleen energieverbruik weergeven, maar afhankelijk van het tijdstip van de dag ook andere informatie te tonen.

s'ochtends: Vertragingen van het station dat ik altijd gebruik
s'middags/begin van de avond: Series die vannacht zijn binnengekomen
eind van de avond: Energieverbruik

Onze excuses voor het ontbreken van de ondertiteling.


  • Mr-Leo
  • Registratie: oktober 2001
  • Laatst online: 23-09 13:36
Mooi!

  • Fr33z
  • Registratie: december 2003
  • Laatst online: 21-10 12:03
na tijdje stilte (wachten op spullen) toch weer even geprobeerd maar ik begin gefrustreerd te raken :-( Ik probeer mijn ouderwetse draaischijfmeter met het bekende rode streepje af te lezen (zoals eerder gepost). Foto kWh-meter

Ik heb het volgende getest:

Arduino Uno met uitlezen van ADC op mn laptop, eerst CNY70 geprobeerd volgens:


hier geen resultaat dus geprobeerd met een TCRT5000 (die zou wat meer range moeten hebben). zelfde weerstanden gebruikt (op basis van datasheet nagerekend en zou moeten kunnen).

Mijn resulaten op mijn PC lijken veelbelovend, als er niks voor de sensor krijg ik een waarde van circa 680 terug van mijn arduino/adc. Als ik er iets wits tegenaanhoud dan een waarde van ~20. objecten op verschillende afstanden geven mooi verschillende meetwaardes tussen de 20 en 680. Zowel voor CNY als TCRT werkt dit.

Nu plak ik eht voor mijn kWh-meter en .... niks :S Ik meet voor beide sensoren constant 20-25, oftewel volledige reflectie. Ik heb geprobeerd daglicht/omgevingslicht weg te vangen door een afdekplaatje van karton te maken maar dit maakt niet uit.

Wie zet me op het goede spoor, wat gaat hier fout?

edit: heb ik nou gewoon supereflecterend plexiglas of richt ik die sensor steeds niet goed uit? Was dit bij anderen erg kritiek?

Fr33z wijzigde deze reactie 01-12-2013 14:36 (6%)


  • Speedfightserv
  • Registratie: september 2004
  • Laatst online: 19-10 14:10
<laat maar> foto van de meter stond al in de post :z

het kan zijn dat je glasplaat voor de meter te veel spiegeld.

probeer het eens met een sticker op je meter met een vakje wat open is recht voor je meter. plaats daar je sensoren.

is het infrarood lampje helemaal afgeschermd of straalt hij vrij alle kanten op?

Speedfightserv wijzigde deze reactie 02-12-2013 12:02 (88%)

8 x SF 150 = 1200 wp op GoodWe 1000, plat dak zuid | PVOutput


  • SteeringWheel
  • Registratie: augustus 2004
  • Laatst online: 19-10 11:16
Bij mij was het ook vrij kritisch hoor. Je kunt misschien nog de led wat minder fel laten schijnen.

A forum post should be like a skirt. Long enough to cover the subject material, but short enough to keep things interesting.


  • Koffie
  • Registratie: augustus 2000
  • Laatst online: 18-10 21:21

Koffie

Moderator Internet & Netwerken

Brouwt bier

Topicstarter
Originele TS meld zich weer eens ;)

Omdat ik het nog steeds niet aan de praat heb, ga ik het op een andere manier proberen.
Ik wil de LDR aan een MCP3008 ADC hangen, en later wellicht zelfs via een attinyu (mooi projectje om eens te leren hoe dat werkt).
De MCP3008 heb ik al, de attiny staat in bestelling. Een fotodiode wil ik ook nog bestellen, gewoon om te kijken wat het fijnste werkt.

  • Fr33z
  • Registratie: december 2003
  • Laatst online: 21-10 12:03
@koffie: als je het eerder geposte schakelingetje gebruikt voor die LDR dan moet dat vrij eenvoudig zijn. Vooral het aansluiten van die ADC op je PI is denk ik intressant, de rest moet goed te doen zijn. Succes iig!

mss nog een tip, zet even een ledje tussen je schakeling zodat je kunt zien wanneer de transistor open/dicht gaat.

@anderen: foto staat in mijn post genoemd, ik ga vanavond even proberen met een grotere weerstand zodat de led minder fel brand, wellicht verblind ik de sensor nu wel. Ik ga voor een 100ohm bij 3.3V voeding ipv 47ohm nu, dat moet me ongeveer 25mA geven door de led van de CNY70 ipv 50mA nu.

ik laat het weten hoe het gaat

update:
AAaaargh... dit is echt een frustrerende oefening aan 't worden. Ik heb vanavond nog een paar dingen geprobeerd:

1. CNY70 met een kleine "divider" van karton tussen led en ontvanger zoals beschreven hier http://www.aaamc.nl/softio/cny/
helaas maakte niks uit voor mijn CNY70 projecten (ook niet nadat ik de weerstand voor de LED verving van 47ohm naar 120 ohm, led blijft verblind door t glaasje lijkt t.

2. LDR plus een felblauwe led met een redelijke weerstand (560ohm bij Vcc 5V), gekozen voor blauw omdat het streepje op de schijf rood is. Dit gaf me na veel richten/prutsen een klein beetje resultaat, namelijk een meetwaarde die verspringt van ~770-780 tot 840-850 en daarna weer zakt naar ~770. Dit lijkt aardig, maar het uitrichten is erg moeilijk en ik twijfel of dit verschil groot genoeg is.

3. Phototransistor (BP103) met een IR led geprobeerd. Dit gaf me niks, maar kan aan de uitlijning liggen, das lastig met IR-licht ;-)

all-in-all vrij onbevredigend... Heb hier nu al zolang mee geprutst, ik snap niet hoe het bij anderen schijnbaar simpel werkt. Wat kan ik verbeteren/proberen? Blijkbaar heb ik een super-shiny raampje op mn meter zitten en is de schijf niet goed te detecteren.

Fr33z wijzigde deze reactie 02-12-2013 21:07 (57%)


  • Lord Anubis
  • Registratie: juni 2009
  • Laatst online: 12-10 22:36
Het betrefd een gasmeter UGI Meters londen 20730 1991.
Had hier een vraag over gesteld.




Oke, kreeg antwoord op een andere manier. Via een Delta medewerker. De nul ( 0 ) is een spiegel. Echter bij mij is de nul pikzwart. 8)7 Zou dus nu op volledig geen signaal kunnen testen. ;-p

In ieder geval misschien interessant voor een ander persoon.

Terzijde
Kreeg ook zojuist te horen dat ze bij ons volgend jaar in de wijk nieuwe meters komen plaatsen.
Dus effe wachten dan maar. ;w
Alhoewel kan natturlijk al voorbereidingen treffen. :P
/terzijde

Lord Anubis wijzigde deze reactie 03-12-2013 09:53 (65%)


  • Koffie
  • Registratie: augustus 2000
  • Laatst online: 18-10 21:21

Koffie

Moderator Internet & Netwerken

Brouwt bier

Topicstarter
Gisteravond even zitten prutsen met een LDR aan de MCP3008, maar dat was geen succes :(
Heeft iemand een idee wat voor weerstand er tussen de LDR moet in zo'n situatie?
Het ontbreekt mij net even aan kennis om daar iets zinnigs over te zeggen. Ik zat vrijwel elke keer op een waarde van 1020 oid.

Ik heb de LDR in een stukje PVC zitten, Het pijpje zit op een kartonnen cover die volledig om de unit heen zit, zodat er geen licht van andere bronnen bij kan komen.

  • Fr33z
  • Registratie: december 2003
  • Laatst online: 21-10 12:03
quote:
Koffie schreef op dinsdag 03 december 2013 @ 08:13:
Gisteravond even zitten prutsen met een LDR aan de MCP3008, maar dat was geen succes :(
Heeft iemand een idee wat voor weerstand er tussen de LDR moet in zo'n situatie?
Het ontbreekt mij net even aan kennis om daar iets zinnigs over te zeggen. Ik zat vrijwel elke keer op een waarde van 1020 oid.

Ik heb de LDR in een stukje PVC zitten, Het pijpje zit op een kartonnen cover die volledig om de unit heen zit, zodat er geen licht van andere bronnen bij kan komen.
ik gebruik een 20k weerstand (Vcc 5V), maar 10k kan ook wel. Ik heb getest met weerstanden tussen 1-50kOhm, maakt niet heel veel uit. Die pijp is misschien wat overkill, ik heb gemerkt met mijn LDRs dat ze echt alleen op licht "recht van voren" reageren. Als ik hem dus gewoon strak/plat op het glaasje plak vang ik geen achtergrondlicht op.

succes!

edit: deze LDR bedoel ik

  • Koffie
  • Registratie: augustus 2000
  • Laatst online: 18-10 21:21

Koffie

Moderator Internet & Netwerken

Brouwt bier

Topicstarter
Die LDR heb ik idd ook ;)
Probleem is (zie TS) dat de kast waar de LED voor de pulse in zit een doorzichtige kap heeft, waardoor er aan alle kanten licht op valt.

Voor de zekerheid heb ik net op ebay ook zo'n kan en klare fotodiode met potmeter besteld.
Als het goed is krijg ik vandaag mijn Rpasberry Pi noir camera binnen, misschien dat ik die ga inzetten om de GJ meter van stadswarmte uit te lezen, deze heeft namelijk alleen maar een display en geen enkele pulse of wat dan ook.

  • Speedfightserv
  • Registratie: september 2004
  • Laatst online: 19-10 14:10
quote:
Koffie schreef op dinsdag 03 december 2013 @ 08:57:


Voor de zekerheid heb ik net op ebay ook zo'n kan en klare fotodiode met potmeter besteld.
Als het goed is krijg ik vandaag mijn Rpasberry Pi noir camera binnen, misschien dat ik die ga inzetten om de GJ meter van stadswarmte uit te lezen, deze heeft namelijk alleen maar een display en geen enkele pulse of wat dan ook.
ik heb zojuist de 2de besteld. 1tje is gewoon niet aangekomen :(
t geld gelukkig wel gewoon terug gekregen.

Speedfightserv wijzigde deze reactie 03-12-2013 09:04 (4%)

8 x SF 150 = 1200 wp op GoodWe 1000, plat dak zuid | PVOutput


  • Koffie
  • Registratie: augustus 2000
  • Laatst online: 18-10 21:21

Koffie

Moderator Internet & Netwerken

Brouwt bier

Topicstarter
Welke heb je bij wie besteld ?

offtopic:
Ik heb het nu al 2 keer met mijn relais via ebay. Wel gled terug gekregen, maar de 2e zending lijkt ook weer niet aan te komen

  • Fr33z
  • Registratie: december 2003
  • Laatst online: 21-10 12:03
quote:
Koffie schreef op dinsdag 03 december 2013 @ 08:57:
Die LDR heb ik idd ook ;)
Probleem is (zie TS) dat de kast waar de LED voor de pulse in zit een doorzichtige kap heeft, waardoor er aan alle kanten licht op valt.

Voor de zekerheid heb ik net op ebay ook zo'n kan en klare fotodiode met potmeter besteld.
Als het goed is krijg ik vandaag mijn Rpasberry Pi noir camera binnen, misschien dat ik die ga inzetten om de GJ meter van stadswarmte uit te lezen, deze heeft namelijk alleen maar een display en geen enkele pulse of wat dan ook.
ik snap wat je bedoeld. Toch denk ik uit eigen ervaring dat het met die LDR zonder afscherming ook wel lukt. Heb dat bij mijn ouders gebruikt om een knipperende led te detecteren, als je de LDR gewoon recht boven/voor de led plakt is het (bij mij iig) zo'n duidelijk verschil in weerstand dat detectie een eitje is (heck, ik heb die bij mijn ouders zonder ADC gemaakt en gewoon een BC547 transistor laten schakelen).

TL:DR: bij mij viel strooilicht (bijna) volledig in het niet bij het wel/niet aangaan van de led, detectie daarvan was simpel.

Fr33z wijzigde deze reactie 03-12-2013 10:44 (5%)


  • Speedfightserv
  • Registratie: september 2004
  • Laatst online: 19-10 14:10
quote:
deze :)
http://www.ebay.nl/itm/310651562172

heb hem voor de 2de keer wel weer hier besteld. denk dat er gewoon bij de post iets mis is gegaan.

edit:
ik ben bang dat ik er nu zometeen 2 heb... :X mocht iemand interesse hebben..

Speedfightserv wijzigde deze reactie 11-12-2013 10:35 (31%)

8 x SF 150 = 1200 wp op GoodWe 1000, plat dak zuid | PVOutput


  • Speedfightserv
  • Registratie: september 2004
  • Laatst online: 19-10 14:10
ik kan echt nergens een goede graph vinden voor mijn gas meetingen.. :(

Sommigen hebben een te klein bereik omdat ik meet per minuut.

8 x SF 150 = 1200 wp op GoodWe 1000, plat dak zuid | PVOutput


  • CurlyMo
  • Registratie: februari 2011
  • Laatst online: 22:42

CurlyMo

www.pilight.org

Welke heb je geprobeerd?

geen vragen via PM die ook op het forum gesteld kunnen worden.


  • Koffie
  • Registratie: augustus 2000
  • Laatst online: 18-10 21:21

Koffie

Moderator Internet & Netwerken

Brouwt bier

Topicstarter
Je zou zelf wat kunnen fabrieken met bijv. phplot of google charts?

Mocht je er eentje overhouden houd ik me aanbevolen ;)

  • Speedfightserv
  • Registratie: september 2004
  • Laatst online: 19-10 14:10
quote:
pghraph
D3.js
highstock

ook nog gekeken naar de rddtool

8 x SF 150 = 1200 wp op GoodWe 1000, plat dak zuid | PVOutput


  • CurlyMo
  • Registratie: februari 2011
  • Laatst online: 22:42

CurlyMo

www.pilight.org

Highstock werkt bij mij echt perfect, ook per minuut.

geen vragen via PM die ook op het forum gesteld kunnen worden.


  • Speedfightserv
  • Registratie: september 2004
  • Laatst online: 19-10 14:10
zag er ook goed uit maar mijn java script kennis is eigenlijk 0.

daarna wat statische php graph's maar dan moet je weer data om gaan zetten etc. en dan nog heb je het niet netjes.

8 x SF 150 = 1200 wp op GoodWe 1000, plat dak zuid | PVOutput


  • CurlyMo
  • Registratie: februari 2011
  • Laatst online: 22:42

CurlyMo

www.pilight.org

Je hoeft ook geen javascript kennis te hebben, je moet gewoon de API volgen en de data juist aanleveren.

geen vragen via PM die ook op het forum gesteld kunnen worden.


  • Speedfightserv
  • Registratie: september 2004
  • Laatst online: 19-10 14:10
hmm... misschien verkeerde documentatie gelezen van highstock.

ga ik nog even bekijken.

8 x SF 150 = 1200 wp op GoodWe 1000, plat dak zuid | PVOutput


  • Mr-Leo
  • Registratie: oktober 2001
  • Laatst online: 23-09 13:36
Ik heb Flotcharts gebruikt: http://www.flotcharts.org/

  • Speedfightserv
  • Registratie: september 2004
  • Laatst online: 19-10 14:10
quote:
CurlyMo schreef op woensdag 11 december 2013 @ 15:10:
Je hoeft ook geen javascript kennis te hebben, je moet gewoon de API volgen en de data juist aanleveren.
het is gelukt! 8) ik heb een perfect werkende chart nu :*)

had inderdaad de documentatie niet goed gelezen. 8)7

8 x SF 150 = 1200 wp op GoodWe 1000, plat dak zuid | PVOutput


  • Koffie
  • Registratie: augustus 2000
  • Laatst online: 18-10 21:21

Koffie

Moderator Internet & Netwerken

Brouwt bier

Topicstarter
Care to share? :)

  • Speedfightserv
  • Registratie: september 2004
  • Laatst online: 19-10 14:10
ik moet het script nog even wat netter maken en daarna ga ik hem delen :)

8 x SF 150 = 1200 wp op GoodWe 1000, plat dak zuid | PVOutput


  • Speedfightserv
  • Registratie: september 2004
  • Laatst online: 19-10 14:10
hierbij de code. (het is niet super netjes maar het werkt. verbeteringen zijn natuurlijk altijd welkom)

highstock is in de map highstock in rootwebfolder geinstalleerd.
datum formaat die ik in de database heb staan staat in de tijdelijke mysql_query (gebruikte ik om niet meteen heel veel results te hebben met testen)
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
<?php

echo '<html>';
echo '<head>';
echo '<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>';
echo '<script src="http://code.highcharts.com/stock/highstock.js"></script>';
echo '<script src="js/highstock.js"></script>';
echo '</head>';
$link = mysql_connect('localhost', 'user', 'pass');
if (!$link) {
    die('Could not connect: ' . mysql_error());
}
 //echo 'Connected successfully';

mysql_select_db("gasoutput");

//$result = mysql_query("SELECT datetime, pulsepermin from gasusage where datetime >= '2013-12-15 08:30:00' and datetime < '2013-12-16 08:45:00'");

$result = mysql_query("SELECT datetime, pulsepermin from gasusage");


mysql_close($link);

while ($row = mysql_fetch_array($result, MYSQL_NUM)) {

        $date = date_create($row[0]);
        $format = $date->format('Y, m-1, d, H, i, s');

        $data[] = "[Date.UTC($format), $row[1]]";
}



?>
<script>
$(function () {
   $('#container').highcharts('StockChart', {
        chart: {
        },
    xAxis: {
        type: 'datetime', //ensures that xAxis is treated as datetime values

        },


        series: [{
                name : 'Data',
                data: [<?php echo join($data, ',') ?>],
        }]
    });
});



</script>

<div id="container" style="width:100%; height:500px;"></div>

</html>

8 x SF 150 = 1200 wp op GoodWe 1000, plat dak zuid | PVOutput


  • ZuinigeRijder
  • Registratie: oktober 2009
  • Niet online

ZuinigeRijder

inactief, stuur PB voor vragen

quote:
Lord Anubis schreef op dinsdag 03 december 2013 @ 08:09:
Het betrefd een gasmeter UGI Meters londen 20730 1991.
Had hier een vraag over gesteld.

[afbeelding]


Oke, kreeg antwoord op een andere manier. Via een Delta medewerker. De nul ( 0 ) is een spiegel. Echter bij mij is de nul pikzwart. 8)7 Zou dus nu op volledig geen signaal kunnen testen. ;-p

In ieder geval misschien interessant voor een ander persoon.

Terzijde
Kreeg ook zojuist te horen dat ze bij ons volgend jaar in de wijk nieuwe meters komen plaatsen.
Dus effe wachten dan maar. ;w
Alhoewel kan natturlijk al voorbereidingen treffen. :P
/terzijde
Je kunt het zo proberen, uitlezen met een webcam:

http://firtl.com/wp-content/uploads/2013/04/watermetercrop.png

http://firtl.com/wp-content/uploads/2013/04/crop0.png[http://firtl.com/wp-content/uploads/2013/04/crop1.pnghttp://firtl.com/wp-content/uploads/2013/04/crop2.pnghttp://firtl.com/wp-content/uploads/2013/04/crop3.pnghttp://firtl.com/wp-content/uploads/2013/04/cropa.pnghttp://firtl.com/wp-content/uploads/2013/04/cropb.png

  • Koffie
  • Registratie: augustus 2000
  • Laatst online: 18-10 21:21

Koffie

Moderator Internet & Netwerken

Brouwt bier

Topicstarter
Pfff .. ik begin er nu echt moedeloos van te worden :(
Vandaag mijn kan en klare fotodiode binnen (zo eentje: http://www.ebay.nl/itm/31..._trksid=p3984.m1423.l2649) en eens aan de gang gegaan.
Wat ik ook doe, ik krijg simpelweg geen pulsedetectie.
Er zit een klein rood LEDje op de sensor welke brand als hij licht ziet. Zelfs met een lampje op de gang aan kan ik diverse LEDjes in de meterkast detecteren met de sensor, maar niet die van de energiemeter.
Ik ben er van overtuigd dat dit komt omdat de plastic kap niet rechtstreeks op de LED zelf zit; zie hiervoor ook mijn topicstart,

Bij dergelijke plastic behuizingen willen ze het nog wel eens zo maken dat er op de LED een soort plastic buisje zit om zo het licht beter te geleiden. Bij mij is dat niet zo. Eerst een LED welke dieper in de behuizing zit, dan een behuizing er op en dan nog eens een doorzichtige kap.
Ook een stukje PVC met daarin wat aluminiumfolie versterkt niet genoeg om de puls op te vangen.

Uiteraard heb ik ook al met het potmeterje zitten spelen, maar daar waar ik wel andere LEDs in de meterkast kan 'zien' reageert hij gewoonweg niet op de pulse.

http://zooi.oostindie.com/images/8992013_12_19_22_tn.11_tn.38_tn.jpg

Hier zie je goed dat de LED al dieper in de behuizing zit en dan een diepe doorzichtige kap er overheen.
Iemand nog ideeŽn ?

  • Speedfightserv
  • Registratie: september 2004
  • Laatst online: 19-10 14:10
ik denk dat de enige manier om dit af te vangen is je hele meter in inpakken met bijvoorbeeld een kartonnen doosje. Ookal verspreid het licht, de sensor moet dan toch het licht zien.

nadeel is natuurlijk dat je de cijfers van je meter niet kan zien.

8 x SF 150 = 1200 wp op GoodWe 1000, plat dak zuid | PVOutput


  • Speedfightserv
  • Registratie: september 2004
  • Laatst online: 19-10 14:10
@Koffie.

is het nog gelukt?

had jij trouwens een weerstand tussen de pulspoort van de kant en klare photodiode gezet?
volgens mij hoeft dat niet toch? ik ga hem denk ik aankomend weekend plaatsen.

Speedfightserv wijzigde deze reactie 31-12-2013 10:49 (74%)

8 x SF 150 = 1200 wp op GoodWe 1000, plat dak zuid | PVOutput


  • ManS-H
  • Registratie: mei 2003
  • Laatst online: 09-10 12:10
quote:
Koffie schreef op dinsdag 03 december 2013 @ 08:57:
Die LDR heb ik idd ook ;)
Probleem is (zie TS) dat de kast waar de LED voor de pulse in zit een doorzichtige kap heeft, waardoor er aan alle kanten licht op valt.

Voor de zekerheid heb ik net op ebay ook zo'n kan en klare fotodiode met potmeter besteld.
Als het goed is krijg ik vandaag mijn Rpasberry Pi noir camera binnen, misschien dat ik die ga inzetten om de GJ meter van stadswarmte uit te lezen, deze heeft namelijk alleen maar een display en geen enkele pulse of wat dan ook.
Hallo Koffie,
Ik werk met de software van Harold65 van het forum "wij willen zon". Hij heeft ook een schema toegevoegd voor het uitlezen van de ferraris meter. Hij gebruikt een blauwe led van 5mm om de draaischijf te belichten. Deze werkt goed, was alleen moeilijk uit te richten. Ik heb deze weer aangepast door een led toe te voegen waardoor uitrichten super makkelijk wordt. Lichten beide leds op dan zit ie goed.http://imageshack.com/a/img27/9800/5dck.png http://imageshack.com/a/img843/1066/epjd.jpg

  • Fr33z
  • Registratie: december 2003
  • Laatst online: 21-10 12:03
quote:
ManS-H schreef op vrijdag 03 januari 2014 @ 21:35:
[...]


Hallo Koffie,
Ik werk met de software van Harold65 van het forum "wij willen zon". Hij heeft ook een schema toegevoegd voor het uitlezen van de ferraris meter. Hij gebruikt een blauwe led van 5mm om de draaischijf te belichten. Deze werkt goed, was alleen moeilijk uit te richten. Ik heb deze weer aangepast door een led toe te voegen waardoor uitrichten super makkelijk wordt. Lichten beide leds op dan zit ie goed.[afbeelding] [afbeelding]
mooie aanpassing! ik heb dit ook geprobeerd maar werd geen succes. Uiteindelijk heb ik nu (na weken prutsen) eindelijk een werkende opstelling! :-D :-D :-D

Ik heb na gepruts met een LDR, een TCRT5000, een CNY5000 en verschillende kleuren leds nu mijn oude ferraris-meter uitgelezen met een Ir-led en phototransistor zoals hierboven genoemd. Deze zijn aan en MCP3008 ADC gekoppeld die ik weer aan mijn raspberry pi heb hangen (communicatie via SPI).

Ik lees de ADC uit met een python script, als er een puls gemeten is dan schrijf ik dat in een sqlite3-database weg. Daarna lees ik dit uit met een php-script om de data te laten zien.

Na een dag prutsen ziet het er zo uit:
http://gj.hopto.org/

Meer info volgt, ik heb ook nog wat vragen omtrent wat handig is qua datetime-format in de verschillende talen (python-->sqlite3-->php-->javascript) maar die komen binnenkort wel even.

Voorlopig ben ik even erg blij met alles wat ik mede op basis van jullie ideeen heb kunnen maken :) dank!

  • Koffie
  • Registratie: augustus 2000
  • Laatst online: 18-10 21:21

Koffie

Moderator Internet & Netwerken

Brouwt bier

Topicstarter
quote:
Speedfightserv schreef op dinsdag 31 december 2013 @ 10:46:
@Koffie.

is het nog gelukt?

had jij trouwens een weerstand tussen de pulspoort van de kant en klare photodiode gezet?
volgens mij hoeft dat niet toch? ik ga hem denk ik aankomend weekend plaatsen.
Kartonnen doosje gebruik al vanaf het begin.
Vanwege teleurstellende resultaten (en genoeg andere projectjes) ligt het even op een lager pitje,

  • ThaHandy
  • Registratie: juli 2001
  • Laatst online: 19:04

ThaHandy

Discovery Channel

Ik ben ook van plan het een en ander te loggen dmv een Rpi en een MCP3008 te gebruiken voor gas / kwh meter en een HAL-sensor voor de gas meter.

Voor de gas en KWH is genoeg info over maar ik heb wat vraagjes over de water meter icm een HAL sensor:

De 2e water meter (lees: niet de Vitens meter, maar is vergelijkbaar) heeft een telwerk die magnetisch wordt aangedreven door een rotor waar een magneet aan vast zit (kwam ik achter toe ik 'm uit elkaar moest halen (zegel verbroken) omdat de rotor vast zat door wat rommel :P )

In mijn geval, heb ik een HALL-sensor nodig die 1300rpm kan registreren (=37,1L/min max.)
De watermeter heeft ~15mtr kabel nodig om bij de meterkast te komen waar de rest ook is.

Is er een manier om deze afstand te overbruggen zodat de RBpi/MCP3008 er ook wat aan heeft? HALL signaal versterken? HALL-sensor met SPI? HALL-sensor met hogere werkspanning, andere manier?

  • Speedfightserv
  • Registratie: september 2004
  • Laatst online: 19-10 14:10
quote:
Koffie schreef op zondag 05 januari 2014 @ 08:46:
[...]

Kartonnen doosje gebruik al vanaf het begin.
Vanwege teleurstellende resultaten (en genoeg andere projectjes) ligt het even op een lager pitje,
Ah, oke. gebruik je trouwens een weerstand tussen de pulspoort van de photodiode en de rpi?

8 x SF 150 = 1200 wp op GoodWe 1000, plat dak zuid | PVOutput


  • Fr33z
  • Registratie: december 2003
  • Laatst online: 21-10 12:03
quote:
ThaHandy schreef op zondag 05 januari 2014 @ 22:26:
Ik ben ook van plan het een en ander te loggen dmv een Rpi en een MCP3008 te gebruiken voor gas / kwh meter en een HAL-sensor voor de gas meter.

Voor de gas en KWH is genoeg info over maar ik heb wat vraagjes over de water meter icm een HAL sensor:

De 2e water meter (lees: niet de Vitens meter, maar is vergelijkbaar) heeft een telwerk die magnetisch wordt aangedreven door een rotor waar een magneet aan vast zit (kwam ik achter toe ik 'm uit elkaar moest halen (zegel verbroken) omdat de rotor vast zat door wat rommel :P )

In mijn geval, heb ik een HALL-sensor nodig die 1300rpm kan registreren (=37,1L/min max.)
De watermeter heeft ~15mtr kabel nodig om bij de meterkast te komen waar de rest ook is.

Is er een manier om deze afstand te overbruggen zodat de RBpi/MCP3008 er ook wat aan heeft? HALL signaal versterken? HALL-sensor met SPI? HALL-sensor met hogere werkspanning, andere manier?
Ik heb er voor gekozen om mij MCP3008 vlakbij de sensor te plaatsen en de kabel tussen de MCP3008 en de RPi 15m lang te maken (moest ook een stukje overbruggen...). Dit werkte in tests beter dan een lange kabel tussen de MCP3008 en de sensor. Dit kan in mijn geval wel komen door slecht afgeschermde kabels, ik heb 6-aderig telefoonsnoer (extra plat!) gebruikt, misschien gaat het met afgeschermde kabels beter. Mijn resultaat was dat mijn meetwaarden heen-en-weer gingen tussen erg hoog/erg laag, ik vermoed door inductie in de (lange) kabel.

  • dartheide
  • Registratie: juli 2003
  • Laatst online: 20-10 23:27
Heren,

Al een tijdje ben ik bezig met energiemeting op basis van een Raspberry Pi.
Toch nog niet mijn oplossing gevonden. Wat ik minimaal wil is uitlezen van mijn smartmeter en mijn omnik inverter en deze doorzetten naar pvoutput.org en www.bidgely.com.

Voor het uitlezen van de omnik inverter heeft Wouter een zeer goed werkend script geschreven
https://github.com/Woutrrr/Omnik-Data-Logger, dit werkt goed.

Voor het uitlezen van de meter gebruik ik de informatie van http://gejanssen.com/howto/Slimme-meter-uitlezen/index.html i.c.m. een USB P1 kabel (https://sites.google.com/site/nta8130p1smartmeter/webshop)

Nu mijn probleem met cu -l /dev/ttyUSB0 -s 9600 --parity=none kan ik het hele telegram zien en met python niet.

Nu probeer ik het zelfde met
while p1_line != "!":
p1_line=''
#Read 1 line van de seriele poort
try:
p1_raw = ser.readline()
except:
sys.exit ("Seriele poort %s kan niet gelezen worden. Aaaaaaaaarch." % ser.name )
p1_str=str(p1_raw)
p1_line=p1_str.strip()
print (p1_line)


Dan ontbreken de gas regels, zie mijn output, de eerste is met CU
/ISk5\2ME382-1003

0-0:96.1.1(4B414C37303035303936383335313132)
1-0:1.8.1(01588.796*kWh)
1-0:1.8.2(01533.423*kWh)
1-0:2.8.1(00033.608*kWh)
1-0:2.8.2(00088.127*kWh)
0-0:96.14.0(0001)
1-0:1.7.0(0000.19*kW)
1-0:2.7.0(0000.00*kW)
0-0:17.0.0(0999.00*kW)
0-0:96.3.10(1)
0-0:96.13.1()
0-0:96.13.0()
0-1:24.1.0(3)
0-1:96.1.0(3338303034303031323138333039333132)
0-1:24.3.0(140112150000)(00)(60)(1)(0-1:24.2.1)(m3)
(01771.237~)
0-1:24.4.0(1)
!


Dat is dus goed, nu met het python script;
/ISk5\2ME382-1003

0-0:96.1.1(4B414C37303035303936383335313132)
1-0:1.8.1(01588.791*kWh)
1-0:1.8.2(01533.423*kWh)
1-0:2.8.1(00033.608*kWh)
1-0:2.8.2(00088.127*kWh)
0-0:96.14.0(0001)
1-0:1.7.0(0000.19*kW)
1-0:2.7.0(0000.00*kW)
0-0:17.0.0(0999.00*kW)


Wie heeft er nog een tip?

Hans

  • Speedfightserv
  • Registratie: september 2004
  • Laatst online: 19-10 14:10
ff een vraagje..

hoe schrijven jullie de pulsen van je stroom meter weg in de database? pulsen per minuut? aantal watt per minuut?

ik zit namelijk een beetje met de betrouwbaarheid van de data..

stel je doet pulsen per minuut, en je hebt een keer een minuut geen pulsen wil niet zeggen dat je 0 watt verbruikt hebt in die minuut..

8 x SF 150 = 1200 wp op GoodWe 1000, plat dak zuid | PVOutput


  • CurlyMo
  • Registratie: februari 2011
  • Laatst online: 22:42

CurlyMo

www.pilight.org

Elke 100 watt

geen vragen via PM die ook op het forum gesteld kunnen worden.


  • Fr33z
  • Registratie: december 2003
  • Laatst online: 21-10 12:03
@speedfightserv:
ik zat ook met je dilemma, heb het zo opgelost dat ik elke puls met een datum+tijd wegschrijf. Tevens onthoud het script de tijd van de vorige puls. Hiermee reken ik dan het vermogen uit (door P(W) = joules in een puls (afhankelijk van je meter) / tijd in seconden tussen twee pulsen).

Dit schrijf ik weg in een kolom die ik 'rate' genoemd heb,waarden zijn in watt. Ik gebruik een python script, mijn database heeft deze opbouw:

ID, date_time (in RFC33339 formaat, dus "2014-01-05T12:23:44+01:00" ), pulse_count (sinds begin van tellen met de sensor), rate (in W)

in een php-script waarmee ik de data laat uitlezen plot ik date_time versus rate, zie http://gj.hopto.org

@CurlyMo: hoe bedoel je precies elke 100 watt (J/s)? Dit kun je toch niet 1 op 1 uitlezen? bedoel je elke 100 wattuur, oftewel elke 66 pulsen bijvoorbeeld (is in mijn geval zo dat 66 pulsen 100Wh (3600J)

  • CurlyMo
  • Registratie: februari 2011
  • Laatst online: 22:42

CurlyMo

www.pilight.org

Slimme meter.

geen vragen via PM die ook op het forum gesteld kunnen worden.


  • Speedfightserv
  • Registratie: september 2004
  • Laatst online: 19-10 14:10
quote:
Fr33z schreef op dinsdag 14 januari 2014 @ 09:43:
@speedfightserv:
ik zat ook met je dilemma, heb het zo opgelost dat ik elke puls met een datum+tijd wegschrijf. Tevens onthoud het script de tijd van de vorige puls. Hiermee reken ik dan het vermogen uit (door P(W) = joules in een puls (afhankelijk van je meter) / tijd in seconden tussen twee pulsen).

Dit schrijf ik weg in een kolom die ik 'rate' genoemd heb,waarden zijn in watt. Ik gebruik een python script, mijn database heeft deze opbouw:

ID, date_time (in RFC33339 formaat, dus "2014-01-05T12:23:44+01:00" ), pulse_count (sinds begin van tellen met de sensor), rate (in W)

in een php-script waarmee ik de data laat uitlezen plot ik date_time versus rate, zie http://gj.hopto.org
Dat is ook een idee. Ben je trouwens dan niet bang dat je grafiek naar nul gaat plotten met verbruik(soms kan er best wel wat tijd tussen een puls zitten)

ik ga even kijken of ik het in een python script kan gieten. :)

8 x SF 150 = 1200 wp op GoodWe 1000, plat dak zuid | PVOutput


  • Fr33z
  • Registratie: december 2003
  • Laatst online: 21-10 12:03
quote:
Speedfightserv schreef op woensdag 15 januari 2014 @ 09:04:
[...]


Dat is ook een idee. Ben je trouwens dan niet bang dat je grafiek naar nul gaat plotten met verbruik(soms kan er best wel wat tijd tussen een puls zitten)

ik ga even kijken of ik het in een python script kan gieten. :)
nou ja, dat heb ik wel gedacht maar tot nu toe valt het mee. Ik heb nog niks ingebouwd om te zorgen dat als het script herstart ik geen nul krijg (omdat de vorige meting qua tijd onbekend is). Nu is dat gewoon een nul qua verbruik maar maakt me niet uit, herstart het toch bijna nooit. Die ene waarde is trouwens ook niet zo'n probleem in de grafiek.

Wil je mijn python-source anders zien?

  • Speedfightserv
  • Registratie: september 2004
  • Laatst online: 19-10 14:10
dat is nooit verkeerd :), de python source wil ik wel zien :)

8 x SF 150 = 1200 wp op GoodWe 1000, plat dak zuid | PVOutput


  • Fr33z
  • Registratie: december 2003
  • Laatst online: 21-10 12:03
oke doe ik vanavond even,

  • Fr33z
  • Registratie: december 2003
  • Laatst online: 21-10 12:03
in de trant van beter laat dan nooit, hierbij mijn python-code:
Python:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
#!/usr/bin/python
 
import spidev
import time
import os
import datetime as dt
import sqlite3

# Open SPI bus
DEBUG=0
spi = spidev.SpiDev()
spi.open(0,0)

# Kanaal van de ADC, in dit geval 0
light_channel=0
#decectiethresshold
thresshold=250 

# Function to read SPI data from MCP3008 chip
# Channel must be an integer 0-7
def ReadChannel(channel):
    adc = spi.xfer2([1,(8+channel)<<4,0])
    data = ((adc[1]&3) << 8) + adc[2]
    return data
 
# Define delay between readings
delay = 0.05
pulse_detected = False #variabele om puls-detectie te doen
 
#define variables
pulse_max=None

#read max previous pulse-count and continue from there (maybe pickup timestamp also?)
db1 = sqlite3.connect('kwh.db')
cursor = db1.cursor()
cursor.execute('''SELECT pulse_count FROM electric WHERE pulse_count=(SELECT MAX(pulse_count) FROM electric) LIMIT 1''')
for row in cursor:
    pulse_max=row[0]
    
db1.commit()
db1.close

if(pulse_max>=1):
    pulse_count=pulse_max
else:
    pulse_count=0

first_run=True

while True:
    # Read the light sensor data
    light_level = ReadChannel(light_channel)
  
    if(light_level>=thresshold):  
        pulse_detected=True

    if(light_level<150 and pulse_detected == True):
        #nu is er een puls met falling edge gedetecteerd
        pulse_count+=1  
        consumption=pulse_count*(10/float(6)) #Wh van 1 puls
        
        print('Puls!!!')
        print pulse_count
        t = dt.datetime.now() #timestamp van detectie!
        year=t.strftime("%Y")
        month=t.strftime("%m")
        day=t.strftime("%d")
        hour=t.strftime("%H")
        min=t.strftime("%M")
        sec=t.strftime("%S")
        
        if(first_run):
            rate=0
        else:
            delta_t=t-t_prev #current timestamp minus previous
            delta_t_sec=delta_t.microseconds/float(1e6)+delta_t.seconds #seconds between two pulses, used for rate
            rate=6000/float(delta_t_sec)
    

        #datetimeformat voor sql-db
        time_format=t.strftime('%Y:%m:%d %H:%M:%S.%f')  #(van een datetime-object
        input1=[year,month,day,hour,min,sec,time_format,consumption,rate,pulse_count]

        #database openen
        db = sqlite3.connect('kwh.db')
        cursor = db.cursor()
        cursor.execute('''INSERT INTO electric(year,month,day,hour,min,sec,time_date,consumption,rate,pulse_count) VALUES(?,?,?,?,?,?,?,?,?,?)''', (input1))
        db.commit()
        db.close
        #flip variables
        pulse_detected=False
        first_run=False
        t_prev=t #save this datetime for use in next one to calculate timedifference
        
  
    # Wait before repeating loop
  
    time.sleep(delay)

hierin was ik nog niet zo handig met timestamps. Ik heb besloten mijn timestamps als strings in iso8601/rfc3339 format op te slaan, dat wordt dan "2014-01-20T15:56:23+01:00" bijvoorbeeld. Dit kan je in php/python weer goed gebruiken,werkt in sqlite ook met het datetime("2014....") commando zodat je makkelijk gister, morgen etc kan selecteren.

Dit stukje heb ik verbeterd in mijn python door de library arrow (http://crsmithdev.com/arrow/ ) te gebruiken. Een nieuw script (deze logt temperatuur) doet timestamps als volgt:
Python:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#!/usr/bin/python

#script to read DS18B(of S)20 sensor connect to 1-wire stuff
#don't forget to modprobe w1-gpio and w1-temp
#created 8-1-2014 GJ de Vries
#based on http://www.cl.cam.ac.uk/projects/raspberrypi/tutorials/temperature/

import datetime as dt
import time
import arrow
import sqlite3
import requests
import json

#STUK ERUIT GEKNIPT, leest een DS18B20 uit

#get time-date in rfc3339 format (string)
tijdstamp=arrow.now()
gj2=tijdstamp.format('YYYY-MM-DDTHH:mm:ssZZ') #format in rcf3339 formaat in een string zodat die in de tabel kan

om het leuker te maken, met arrow kun je verschil tussen twee tijden doen door bijvoorbeeld:
Python:
1
2
3
4
5
6
7
8
9
import arrow

ts1=arrow.utcnow()
sleep(20)
ts2=arrow.now()

timedif_millis=ts2.float_timestamp-ts1.float_timestamp

#Arrow-objecten hebben een float_timestamp optie :-)


  • Speedfightserv
  • Registratie: september 2004
  • Laatst online: 19-10 14:10
heb weer flink wat inspiratie zo :) Thnx!

8 x SF 150 = 1200 wp op GoodWe 1000, plat dak zuid | PVOutput


  • Fr33z
  • Registratie: december 2003
  • Laatst online: 21-10 12:03
quote:
Speedfightserv schreef op maandag 20 januari 2014 @ 21:23:
heb weer flink wat inspiratie zo :) Thnx!
mooi zo :-) ik kan je aanraden voor de tijd/datum-dingen (mits je python gebruikt) om arrow te installeren, op mijn linux-systeem ging dat via "pip install arrow", hoe het op andere platforms gaat weet ik niet maar staat vast op de site

  • xtr3me
  • Registratie: oktober 2001
  • Niet online
quote:
Koffie schreef op donderdag 19 december 2013 @ 22:22:
Pfff .. ik begin er nu echt moedeloos van te worden :(
Vandaag mijn kan en klare fotodiode binnen (zo eentje: http://www.ebay.nl/itm/31..._trksid=p3984.m1423.l2649) en eens aan de gang gegaan.
quote:
Speedfightserv schreef op dinsdag 31 december 2013 @ 10:46:
@Koffie.

is het nog gelukt?

had jij trouwens een weerstand tussen de pulspoort van de kant en klare photodiode gezet?
volgens mij hoeft dat niet toch? ik ga hem denk ik aankomend weekend plaatsen.
Hoe hebben jullie de photo diodes aangesloten op de RPI. Ik heb nu 2 van die sensors besteld maar vraag me alleen nog even af op welke GPIO poort ik ze moet aansluiten?
Hebben jullie trouwens ook een werkend script die de poorten vervolgens uitleest?

  • Raven
  • Registratie: november 2004
  • Niet online

Raven

Marion Raven fan

Helpt dit? Daar staat op aangegeven welke pin wat is:
http://www.elecrow.com/se...-sensor-module-p-677.html

Gevonden door te zoeken op raspberry pi Photo Diode Sensor Module bij Google afbeeldingen ;)

Raven wijzigde deze reactie 31-01-2014 11:28 (59%)

After the first glass you see things as you wish they were. After the second you see things as they are not. Finally you see things as they really are, and that is the most horrible thing in the world...

Oscar Wilde


  • xtr3me
  • Registratie: oktober 2001
  • Niet online
quote:
Raven schreef op vrijdag 31 januari 2014 @ 11:22:
Helpt dit? Daar staat op aangegeven welke pin wat is:

Gevonden door te zoeken op raspberry pi Photo Diode Sensor Module bij Google afbeeldingen ;)
Dat helpt zeker, dank je wel :-) Nu maar wachten totdat de sensor binnen is.

  • Wolly
  • Registratie: januari 2001
  • Niet online
quote:
Raven schreef op vrijdag 31 januari 2014 @ 11:22:
Helpt dit? Daar staat op aangegeven welke pin wat is: [afbeelding]
http://www.elecrow.com/se...-sensor-module-p-677.html

Gevonden door te zoeken op raspberry pi Photo Diode Sensor Module bij Google afbeeldingen ;)
Werkt deze sensor op de led van deze meter icm de Pi?


  • The Headhunter
  • Registratie: mei 2007
  • Laatst online: 05-05-2016
Ik denk wel dat die sensor gaat werken, de detector is erg richting gevoelig waardoor je geen last hebt van omgevingslicht.

Acties:
  • 0Henk 'm!

  • The Headhunter
  • Registratie: mei 2007
  • Laatst online: 05-05-2016
Allereerst wil ik iedereen in dit topic bedanken, erg veel mooie ideeen en inspiratie.

Ik heb dankzij dit topic een Kwh monitor in elkaar geknutseld.

Als sensor gebruik ik

Deze lees ik uit dmv interrupts en schrijf de boel weg naar een Mysql database.
Omdat hier nog geen Interupt gebasseerd opzetje stond heb ik besloten mijn knip en plakwerk hier te posten.
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
import RPi.GPIO as GPIO
import time
import arrow
import datetime
import MySQLdb

GPIO.setmode(GPIO.BCM)

tijd2= arrow.now()
tijd3= arrow.now()
count= 0
count1=0

GPIO.setup(18, GPIO.IN, pull_up_down=GPIO.PUD_UP)
GPIO.setup(19, GPIO.IN, pull_up_down=GPIO.PUD_UP)
GPIO.setup(24, GPIO.IN, pull_up_down=GPIO.PUD_UP)

def elektra_callback(channel):
    global tijd2
    global count
    tijd1 = arrow.now() 
    now = datetime.datetime.now()
    timedif_sec=tijd1.float_timestamp-tijd2.float_timestamp
    count=count+1
# 1 impuls=3600w/s =>  3600x seconden= watt 
    watt= 3600 / timedif_sec
    watt2=round(watt)
    print "Elektra",watt2,"watt"  , now,count

#verbinding met Db maken
    
    db = MySQLdb.connect("localhost","user","pass","db" )
    cursor = db.cursor()
    sql = "INSERT INTO `elektra` (`watt`,`count`) VALUES (%s,%s)"
    
    
    try:
    cursor.execute(sql,(watt2,count))
    db.commit()
     except:
    db.rollback()
    db.close()
        tijd2 = tijd1
    

#interupt activeren
GPIO.add_event_detect(18, GPIO.FALLING, callback=elektra_callback, bouncetime=20)

#GPIO.add_event_detect(24, GPIO.FALLING, callback=gas_callback, bouncetime=20)

try:
print "start"
GPIO.wait_for_edge(19, GPIO.RISING)
print " end"    

except KeyboardInterrupt:
    
GPIO.cleanup()
GPIO.cleanup()

Het is niet het mooiste stukje code maar het werkt.

  • somers1234
  • Registratie: september 2008
  • Laatst online: 20:56
Alle RaspberryPi projecten hier hebben ook mijn interesse gewekt. Ik ben begonnen met het meten van de ledpulsjes op mijn kWh-meter maar zit met het volgende probleem:

Mijn idee is om bij elke ledpuls een record in de database op te slaan met daarin een timestamp en het huidige verbruik in watt. Dit huidige verbruik bepaal ik met de tijd die verstreken is sinds de laatste puls. Dit zal waarschijnlijk goed gaan maar bij het plotten van mijn grafiekje denk ik een probleem tegen te gaan komen.

Stel dat ik een laag verbruik heb (idle toestand). Er komt dan zo nu en dan een pulsje binnen en de tijd hiertussen kan makkelijk 60 seconde zijn. Als ik dan een verbruiker van een paar kW inschakel zal er bijna direct een pulsje komen. Het vorige record in de database had een laag verbruik en het volgende record (een seconde later) heeft een hoog verbruik. Als ik dit verbruik in een grafiek plot dan krijg ik een stijle flank te zien.

Als de grote verbruiker dan weer uitgezet wordt, dan wordt het verbruik weer laag en zullen de pulsjes weer om de 60 seconde binnenkomen. Het vorige record in de database had een hoog verbruik en het volgende record (60 seconde later) heeft een laag verbruik. Als ik dit weer in een grafiek plot, dan krijg ik lijn te zien die in 60 seconde van een hoog verbruik naar een laag verbruik loopt. In de werkelijkheid wordt het hoge verbruik direct uitgeschakeld en is het niet de bedoeling dat dit verbruik in 60 seconde naar "laag" toeloopt.

Hebben jullie hier een creatieve oplossing voor bedacht of gaat dit verschijnsel nauwelijks zichtbaar zijn?

  • MacMF
  • Registratie: januari 2008
  • Laatst online: 21-10 17:48
quote:
somers1234 schreef op maandag 16 juni 2014 @ 11:19:
Alle RaspberryPi projecten hier hebben ook mijn interesse gewekt. Ik ben begonnen met het meten van de ledpulsjes op mijn kWh-meter maar zit met het volgende probleem:

Mijn idee is om bij elke ledpuls een record in de database op te slaan met daarin een timestamp en het huidige verbruik in watt. Dit huidige verbruik bepaal ik met de tijd die verstreken is sinds de laatste puls. Dit zal waarschijnlijk goed gaan maar bij het plotten van mijn grafiekje denk ik een probleem tegen te gaan komen.

Stel dat ik een laag verbruik heb (idle toestand). Er komt dan zo nu en dan een pulsje binnen en de tijd hiertussen kan makkelijk 60 seconde zijn. Als ik dan een verbruiker van een paar kW inschakel zal er bijna direct een pulsje komen. Het vorige record in de database had een laag verbruik en het volgende record (een seconde later) heeft een hoog verbruik. Als ik dit verbruik in een grafiek plot dan krijg ik een stijle flank te zien.

Als de grote verbruiker dan weer uitgezet wordt, dan wordt het verbruik weer laag en zullen de pulsjes weer om de 60 seconde binnenkomen. Het vorige record in de database had een hoog verbruik en het volgende record (60 seconde later) heeft een laag verbruik. Als ik dit weer in een grafiek plot, dan krijg ik lijn te zien die in 60 seconde van een hoog verbruik naar een laag verbruik loopt. In de werkelijkheid wordt het hoge verbruik direct uitgeschakeld en is het niet de bedoeling dat dit verbruik in 60 seconde naar "laag" toeloopt.

Hebben jullie hier een creatieve oplossing voor bedacht of gaat dit verschijnsel nauwelijks zichtbaar zijn?
Volgens mij is dit geen probleem. Ik doe hetzelfde (maar dan zonder rpi). Ik doe het zo dat als er geen pulsjes binnenkomen er toch elke minuut data met de laatste waarde naar de DB geschreven wordt, Voor de grafiek gebruik ik highcharts en krijg er netjes "stijle" grafieken uit. Verder verstuur ik niet elke puls maar tel ik 10 pulsjes en stuur dan een melding draadloos naar het centrale punt (dit spaart de batterijen een beetje). Enige nadeel is dat de meting niet 100% nauwkeurig is bij korte fluctuaties in het stroom verbruik. Totaal getelde verbruik per dag klopt wel perfect.
Pagina: 1 2 3 4 Laatste


Apple iPhone XS Red Dead Redemption 2 LG W7 Google Pixel 3 XL OnePlus 6T FIFA 19 Samsung Galaxy S10 Google Pixel 3

Tweakers vormt samen met Tweakers Elect, Hardware.Info, Autotrack, Nationale Vacaturebank en Intermediair de Persgroep Online Services B.V.
Alle rechten voorbehouden © 1998 - 2018 Hosting door True