Page 4 sur 6

Re: capteur de courant 1-wire raspberry

Posté : ven. 22 mai 2015 22:21
par youn260
bonsoir
la plus petite résistance que je dispose fait 330 ohms
je voulais la mettre sur la sortie du capteur
je vais regarder comment faire pour la 5.6k
la je peux mettre une 10k
le plus compliqué c'est de trouver des appareils a grande consommation
mais si je suis bète des radiateurs électrique
j'ai aussi un halogène de 1kw
mais consommer 30A j'y arriverais pas

Re: capteur de courant 1-wire raspberry

Posté : ven. 22 mai 2015 22:51
par smba38
Bonsoir,

Avec des tests de 1A , 5A , 10A tu rapportes les mesures des tensions sur le graphique.
Tu dois ainsi avoir une idée approximative de la courbe.

SMBA38.

Re: capteur de courant 1-wire raspberry

Posté : sam. 23 mai 2015 19:19
par youn260
bonsoir
j'ai reçu mes 100w ce matin(je crois qu'elles serviront pas) et du fil de soudure très fin
je vais commander une plaque d'essai avec alimentation intégrée
je vais prendre une grande au pif
car y a trop de bordel sur la table je risque de faire une bourde
mes essais peuvent de se transformer en feu d'artifice c'était déja chaud
maintenant je suis moins inquiet je sens que c'est a ma portée

Re: capteur de courant 1-wire raspberry

Posté : lun. 25 mai 2015 08:21
par youn260
bonjour
ceci est le programme python qui me sert pour gerer mes panneaux solaires thermiques et mon chauffage
je vais m'en inspirer pour faire la mème chose avec mes panneaux photovoltaiques
par contre le programme peut etre copié ailleurs dans le forum pour plus de lisibilité

[L’extension py a été désactivée et ne peut plus être affichée.]


Re: capteur de courant 1-wire raspberry

Posté : lun. 25 mai 2015 09:17
par smba38
Bonjour Youn260

Il suffit d'encadrer le source par les balises BBcodes de début de code et de fin de code que l'on retrouve en haut de l'éditeur de texte.
Voici ton code

Code : Tout sélectionner

#!/usr/bin/python
# -*- coding: utf-8 -*-
#import sqlite3
import sched, time
import datetime
from subprocess import call
import sys,os
line=0
racine="/mnt/1wire/"
capteur1={"nom":"Panneaux","id":"28.FC3498040000"}
capteur2={"nom":"EntreeE","id":"28.1BF95F050000"}
capteur3={"nom":"SortieE","id":"28.D87A61050000"}
capteur4={"nom":"Entreebal","id":"28.152B60050000"}
capteur6={"nom":"Milieu","id":"28.1DF83F010000"}
capteur7={"nom":"SORTIE","id":"28.564D60050000"}
capteur8={"nom":"CapteurDevant","id":"28.A409A8030000"}
capteur9={"nom":"Ballon","id":"28.620AA8030000"}
capteur10={"nom":"DALLE","id":"28.2C28A8030000"}
capteur11={"nom":"SALLE","id":"28.248340010000"}
capteur12={"nom":"FANNY","id":"28.E37E3F010000"}




longswitch1="/mnt/1wire/12.8F627D000000/PIO.A"
longswitch2="/mnt/1wire/12.EC277D000000/PIO.A" #pour la cuisine
longswitch3="/mnt/1wire/12.A5377D000000/PIO.A" #pour la panneau
longswitch4="/mnt/1wire/12.D7537D000000/PIO.A"
longswitch5="/mnt/1wire/12.0B3B7D000000/PIO.A"
switch1="12.8F627D000000"
switch2="12.EC277D000000"  #pour la cuisine
switch3="12.A5377D000000"  #pour le panneau
switch4="12.D7537D000000"  #pour la dalle
switch5="12.0B3B7D000000"  #pour fanny
tatemp={}
listecapteurs=[capteur1,capteur2,capteur3,capteur4,capteur6,capteur7,capteur8,capteur9,capteur10,capteur11,capteur12]

def switch_pompe(etat,switch):
    file_name= os.path.join("/","mnt","1wire",switch,"PIO.A")
    try:
      with open(file_name,'r+') as f:
          line=f.read()
          print('Etat precedent de '+switch+'avant switch'),(line)
          #print (line)
          if (etat)==True:
              line='1'
          else:
              line='0'
          f.write(line)
    except IOError:
            print "Probleme ecriture switch"

def lire_switch(switch):
    file_name= os.path.join("/","mnt","1wire",switch,"PIO.A")
    resu=''
    try:
      with open(file_name,'r+') as f:
          line=f.read()
          if line=='1':
              resu=' ALLUME'
          else:
              resu=' ETEINT'
          print('Etat actuel de switch '+switch+' '),(resu)
    except IOError:
            print "Probleme ecriture switch"            

def lirecapteurs(n):
    if n==2 :
        os.system("tput reset")

    try:
        for capteur in listecapteurs:
            fichiertemperature=racine+capteur["id"]+"/temperature"
            #print capteur["nom"]
            with open(fichiertemperature) as f:
                temp = f.readline()
                if temp :
                    tatemp[capteur["nom"]]=temp
                    print  "la temperature du capteur "+capteur["nom"]+" est :"+temp
    except IOError:
            print "Fichier capteur n'existe pas"
    print "---------------------------------------"

    difference1 = float(tatemp ["EntreeE"])-float(tatemp ["Entreebal"])
    print "la difference de temperature EntreeEch/entreebal est:         ",  difference1
    if  (difference1 > 8):
         switch_pompe(True,switch1)
         print "ON ALLUME EntreeEch/EntreeBal...ON"
    elif (difference1 < 5):
         switch_pompe(False,switch1)
         print "ON ETEINT EntreeEch/EntreeBal...OF"
    else:
         print "On ne fait rien EntreeEch/EntreeBal"
         lire_switch(switch1)
    print "-----------------------------------------"

    difference2 = float(tatemp ["CapteurDevant"])-float(tatemp ["Ballon"])
    print "la difference de temperature CapteurDevant/Ballon est:         ",  difference2
    if  (difference2 > 8):
         switch_pompe(True,switch2)
         print "ON ALLUME CapteurDevant/Ballon...ON"
    elif (difference2 < 6):
         switch_pompe(False,switch2)
         print "ON ETEINT CapteurDevant/Ballon...OF"
    else:
         print "On ne fait rien CapteurDevant/Ballon"
         lire_switch(switch2)
    print "---------------------------------------"

    tpanneau= float(tatemp ["Panneaux"])
    if  (tpanneau > 25):
         switch_pompe(True,switch3)
         print "ON ALLUME Panneaux ...ON"
    elif (tpanneau < 20):
         switch_pompe(False,switch3)
         print "ON ETEINT Panneau...OF"
    else:
         print "On ne fait rien  Panneau"
         lire_switch(switch3)
    print "---------------------------------------"
     
    tdalle= float(tatemp ["FANNY"])
    if  (tdalle < 21):
         switch_pompe(True,switch4)
         print "ON ALLUME DALLE ...ON"
    elif (tdalle > 23):
         switch_pompe(False,switch4)
         print "ON ETEINT DALLE...OF"
    else:
         print "On ne fait rien  DALLE"
         lire_switch(switch4)
    print "======================================"
    
    tfanny= float(tatemp ["FANNY"])
    if  (tfanny < 18):
         switch_pompe(True,switch5)
         print "ON ALLUME FANNY ...ON"
    elif (tfanny > 19):
         switch_pompe(False,switch5)
         print "ON ETEINT FANNY...OF"
    else:
         print "On ne fait rien  FANNY"
         lire_switch(switch5)
    print "======================================"




s=sched.scheduler(time.time, time.sleep)
n=0
try :
    while True:
        n = n+1
        s.enter(20, 1, lirecapteurs, (n,))
        if n==2 :
            n=0
        s.run()
finally :
    print "Fin"
    #c.close()
    #conn.close()
SMBA38

Re: capteur de courant 1-wire raspberry

Posté : lun. 25 mai 2015 10:02
par youn260
re
je fais des essais de calibration
a vide la VDD est de 5.3V elle est tres stable
mais la VAD sur une charge de environ 1KW dérive e10mn progressivement de 7.35V a 6.52V
sans charge la VAD dérive aussi de 2.90V a 2.50 dans le meme laps de temps
apres ça bouge plus
y aurais pas un condo qui perturberait les calculs
car les données sont inutilisables avec de telles dérives
et meme 6.52v pour 1kw
c'est trop ça me fait plus de 10v pour 2kw
ds2438 capteur.jpg
ds2438 capteur.jpg (21.17 Kio) Vu 2526 fois

Re: capteur de courant 1-wire raspberry

Posté : lun. 25 mai 2015 11:21
par youn260
re bonjour
je vois sur le shéma 4.7 M ohms
et moi jai mis 4.7 K ohms
c'est pas pareil ?
j'ai tout vérifier sur la plaque
ça dérive toujours

Re: capteur de courant 1-wire raspberry

Posté : lun. 25 mai 2015 23:18
par smba38
Bonsoir Youn260.

La dérive au bout de 10mn se stabilise ou ça oscille en + et en - ?.
Les condensateurs doivent servir à lisser les variations, regarde directement en alternatif à la sortie du capteur pour voir si il y a également une dérive.

Si il y a une dérive à la sortie du capteur, le condensateur va progressivement se charger pour tendre vers la tension maximum.


Sans les condensateurs il faut peut-être faire plusieurs mesures rapprochées et ensuite faire une moyenne.

J'ai trouvé ce lien ou les mesures se font directement en alternatif, mais je pense qu'ils font des mesures très rapprochées avec un Arduino, avec une puce 1-wire on ne doit pas pouvoir faire des mesures très rapprochées.
http://openenergymonitor.org/emon/buildingblocks

SMBA38.

Re: capteur de courant 1-wire raspberry

Posté : mar. 22 août 2017 16:23
par JLRdomotique
Je rame pour utiliser un DS2450 sur un Raspberry pi3..... vu que c'est comme un DS2438 à 4 voies A/N
quelqu'un a-t-il des solutions....
il n'y a pas à ma connaissances de modules pour DS2450 , il faut passer par un générique et là je rame...
je cherche de l'aide....
Sur mon bus 1-wire, j'ai deux Ds18D20 et un DS2423 qui fonctionnent
le DS2450 est bien visible mais je n'arrive a recevoir des data....

Re: capteur de courant 1-wire raspberry

Posté : mar. 22 août 2017 17:40
par destroyedlolo
Salut,

Tu ne passes pas owfs ? Parce que le 2450 est visiblement supporté (je n'en ai pas et, malheureusement, il est en fin de vie)

A+