Partage
  • Partager sur Facebook
  • Partager sur Twitter

[projet] Station météo

    16 août 2012 à 20:04:46

    non, pas toujours (à par pour le 2), c'est un exemple.
    Je l'ai dit plus haut :

    Citation : diode

    Par exemple, je sais qu'a 16.6°C sa résistance est à 62.9K et a 16.4, elle est à 63K, donc comment savoir que un nombre de 0 à 1023 va donner tant de degrés ?

    • Partager sur Facebook
    • Partager sur Twitter
    2b||!2b   sqrt(4b²)
      16 août 2012 à 20:32:00

      Donc tu t'es basé sur une variation de 0.2 °C pour faire ta fonction ? c'est pas terrible... essaie d'avoir une variation beaucoup plus large que ca !!
      -> Met ton capteur au frigo/congélateur dans un petit sachet hermétique, attend d'être sur qu'il est refroidi, puis fais une mesure (et mesure en parrallèle la température du frigo pour savoir)
      -> puis met le dans un truc chaud (genre fais bouillir de l'eau) et fais une mesure. (la encore sachet hermetique, comme ca tu peux plonger le capteur et mesurer en meme temps :))

      (Le plus simple serait que tu es la datasheet du composant, ca éviterais bien des manipulations)
      • Partager sur Facebook
      • Partager sur Twitter

      Retrouvez moi sur mon blog et ma chaine Youtube !

        16 août 2012 à 20:56:57

        Ok je vais de ce pas tester tout ça !

        Et j'ai récupérer un émetteur FM 433MHz, mais je n’ai pas de récepteur, est-ce que je peut savoir si il marche ?

        EDIT : mais j'y pense ... même si j'ai ma fonction qui bug, sa expliquerait pas ce si grand décalage ! J'ai surtout peur du calcul de mon pont diviseur, donc si qqu pouvait vérifier ... ;)

        EDIT2 : J'ai les données ! j'ai eu 95° dans l'eau des œufs et -10° dans le congèle !
        * 95°C -> 3K33
        * -10°C -> 200K
        • Partager sur Facebook
        • Partager sur Twitter
        2b||!2b   sqrt(4b²)
          16 août 2012 à 21:52:04

          comment ca ca expliquerait pas le grand décalage ?

          Si tu parles du calcul pour ta fonction affine, je te répondrais que ca n'a pas de sens de calculer sur 0.2 °C... Selon ta bio tu n'as que 14 ans, mais tu apprendras qu'en physique (dans toute science même) on prendra toujours un écart le plus grand possible pour calculer un coefficient, car sinon l'erreur se propage bien trop vite (imagine une fusée qui décolle tout droit, fais une erreur d'un degré sur son angle de départ et le décalage de trajectoire sera énorme au bout de plusieurs kilomètres, alors que ca ne se verra pas sur les premiers metres parcouru (en supposant qu'on corrige pas la trajectoire))
          • Partager sur Facebook
          • Partager sur Twitter

          Retrouvez moi sur mon blog et ma chaine Youtube !

            16 août 2012 à 21:58:11

            msg édité en haut.
            Et je sais pour le plus grand écart possible, mais je ne pensait pas que sa pourrait se répercuter comme ça là-dessus :/
            • Partager sur Facebook
            • Partager sur Twitter
            2b||!2b   sqrt(4b²)
              16 août 2012 à 22:08:47

              Du coup avec les nouvelles valeurs tu peux recalculer ta fonction affine et voir si ça diffère...

              Citation : diode

              je ne pensait pas que sa pourrait se répercuter comme ça là-dessus


              J'affirme pas à 100% que ca changera, mais ca me semble risquer de tirer une conclusion avec un si petit écart pour un composant capable de mesurer de si grande variation...
              • Partager sur Facebook
              • Partager sur Twitter

              Retrouvez moi sur mon blog et ma chaine Youtube !

                16 août 2012 à 22:15:08

                ok, mais y'a juste un problème, je me souvient plus comment on fais. x) (les vacances ça aide pas ...) Bon, je vais chercher

                EDIT : je vient de retrouver l'ancien fichier de mes calcules, et de me rendre compte que enfaite, je me suis gouré à la bases dans mon équation ...

                EDIT2 : donc sa me fait un système comme ça non ? :
                |3.33a+b=95
                <
                |200a+b=-10

                mais comme la droite descend, c'est pas plutôt comme ça ? :
                |3.33a-b=95
                <
                |200a-b=-10
                • Partager sur Facebook
                • Partager sur Twitter
                2b||!2b   sqrt(4b²)
                  16 août 2012 à 23:00:47

                  Bah il suffit de faire les calculs...
                  Ta courbe sera du type "Réistance en fonction des températures".
                  On a donc en 'y' la résistance en (kilo)Ohms et en 'x' les températures en degrés celsius.
                  Tu dis que ton capteur est linéaire donc la fonction est affine : y = ax + b.
                  La résistance est plus élevé pour une température basse, donc le coefficient directeur a est négatif.
                  Maintenant on calcul.
                  Pour déterminer a, on fait la différence des ordonnées sur celle des abscisses, donc ici :
                  <math>\(a = (-10-95)/(200-3,3) = -0.53 kOhms/degree\)</math>
                  a est négatif, tout va bien...
                  Maintenant on prend un point pour calculer b.
                  par exemple celui à -10°C.
                  y=ax+b donc b=y-ax.
                  <math>\(b = -10 - (-0.53*200) = 96 kOhms\)</math>

                  On a donc la fonction affine y = -0.53x+96 !

                  Je te laisse injecter ca dans ton code...
                  • Partager sur Facebook
                  • Partager sur Twitter

                  Retrouvez moi sur mon blog et ma chaine Youtube !

                    16 août 2012 à 23:28:27

                    Super ! j'avais trouvé y=-53x+116.78.
                    Mais ça ne marche toujours pas... je vais revoir ma connectique et le reste des fonctions
                    • Partager sur Facebook
                    • Partager sur Twitter
                    2b||!2b   sqrt(4b²)
                      16 août 2012 à 23:33:15

                      Euh... tu as le même résultat que moi ? car on a quand meme un facteur 100 de différence entre ton coef et le mien XD

                      et si tu peux recopier le bout de code commenté de ta conversion et aussi expliquer rapidement ton montage de pont diviseur pour obtenir la tension se serait pas mal...
                      • Partager sur Facebook
                      • Partager sur Twitter

                      Retrouvez moi sur mon blog et ma chaine Youtube !

                        17 août 2012 à 0:06:42

                        Pour le coef, je me suis pas servit de tes calcules j'avais fais avant de voir ton msg les miens.

                        la conversion :
                        <math>\(U_2 = U \frac{R_2}{R_1 + R_2}\)</math>
                        (code pour afficher les espaces)
                                    R1           R2
                        +5V>-----capteur--|--résistance100K----->GND
                                          |
                                       Arduino

                        et ici je bloque, comment isoler R1 ?
                        pour récapituler on a ça :
                        V2 = map(analogRead(A0),0,1023,0,5000);//ça marche
                        V2 /= 1000.0;//ça marche
                        R1 = (500000/V2)-100000;//on ne sais pas
                        temp=(-0.53*R1+96);//ça marche
                        
                        • Partager sur Facebook
                        • Partager sur Twitter
                        2b||!2b   sqrt(4b²)
                          17 août 2012 à 0:29:01

                          on retourne au math !
                          Soit Vs la tension de sortie (celle que l'on mesure) et Ve la tension d'entrée (5V).
                          On a comme tu l'as écrit : <math>\(Vs = Ve \times \frac{R2}{R1+R2}\)</math>
                          On va maintenant trouver la formule pour isoler R1.
                          on commence par passer Ve et R2 de l'autre coté ce qui donne : <math>\(\frac{Vs}{Ve\times R2}=\frac{1}{R1+R2}\)</math> ou plus simplement
                          <math>\(\frac{Ve\times R2}{Vs}=R1+R2\)</math>
                          et donc on obtient facilement R1 en supprimant R2 a droite :

                          <math>\(\frac{Ve\times R2}{Vs}-R2=R1\)</math> ou factorisé <math>\(R2\times (\frac{Ve}{Vs}-1)=R1\)</math>

                          Dans le code sa se traduira par :
                          Vs = map(analogRead(0), 0, 1023, 0, 5000); //on récupère Vs en milliVolts
                          Vs /= 1000.0; //on convertit en volts
                          R1 = 100*(5/Vs - 1); //on calcul la valeur de R1
                          temp = (-0.53*R1+96); //conversion selon la fonction de transfert du capteur
                          


                          Et voila ! ca devrait marcher nan ?
                          • Partager sur Facebook
                          • Partager sur Twitter

                          Retrouvez moi sur mon blog et ma chaine Youtube !

                            17 août 2012 à 0:56:45

                            et bien nan, toujours pas :(
                            il mesure dans les 3Volts, en conclue que la résistance est de 37K et me dit 76° ; la résistance est en faite de 78K ...

                            Je vient d'être prit d'un doute (qui se révèle être vrai) ma résistance de soit disant 100K n'en fais que 60 ... température afficher : 84° ...

                            Pour conclure, j'ai validé les 2 premières lignes du code ainsi que la quatrième, et la troisième dit faux, alors que théoriquement non !
                            • Partager sur Facebook
                            • Partager sur Twitter
                            2b||!2b   sqrt(4b²)
                              17 août 2012 à 1:05:28

                              Deux choses à faire :
                              - Vérifie ton montage pour t'assurer que R1 et R2 ne sont pas inversé...
                              - Mesures précisément la valeur de ta résistance R2 (celle censé faire 100k) et met sa valeur précise (ou presque, ca dérive forcément) dans ton code (à la ligne 3, à la place du 100).
                              • Partager sur Facebook
                              • Partager sur Twitter

                              Retrouvez moi sur mon blog et ma chaine Youtube !

                                17 août 2012 à 1:25:14

                                -non, je l'ai même inversé pour essayer
                                -je l'avais déjà fait
                                • Partager sur Facebook
                                • Partager sur Twitter
                                2b||!2b   sqrt(4b²)
                                  17 août 2012 à 12:36:18

                                  Alors a priori pas de raison que ca marche pas oO
                                  Tu fais comment pour tester que ca marche (j'ai déjà posté la question mais pas eu la réponse que je voulais ^^)
                                  • Partager sur Facebook
                                  • Partager sur Twitter

                                  Retrouvez moi sur mon blog et ma chaine Youtube !

                                    17 août 2012 à 13:10:16

                                    Ben pour tester les variables, print ; pour la résistance, ohmmètre une fois enlevée du circuit ; pour comparer la valeur des volts reçu estimés pas Arduino : print + voltmètre entre A0 et GND.
                                    Si c'est pas ça je ne voit pas ce que tu veux dire :/
                                    • Partager sur Facebook
                                    • Partager sur Twitter
                                    2b||!2b   sqrt(4b²)
                                      17 août 2012 à 13:13:24

                                      je voulais savoir comment tu testais le capteur du genre :
                                      "Je souffle dessus pour avoir une mesure de froid puis je le sers entre mes doigts pour mesurer une température chaude"
                                      ou
                                      "J'ai deux verres, un froid et un chaud, je plonge dedans et vérifie le résultat de la conversion avec un vrai thermomètre"
                                      • Partager sur Facebook
                                      • Partager sur Twitter

                                      Retrouvez moi sur mon blog et ma chaine Youtube !

                                        17 août 2012 à 13:18:00

                                        ahhhh, sa serait plus la première réponse, je vois que quand je chauffe, la température monte (elle passe de 85 à 87).
                                        • Partager sur Facebook
                                        • Partager sur Twitter
                                        2b||!2b   sqrt(4b²)
                                          17 août 2012 à 13:23:34

                                          donc j'arrive pas à très bien comprendre d'où vient le problème...
                                          • Partager sur Facebook
                                          • Partager sur Twitter

                                          Retrouvez moi sur mon blog et ma chaine Youtube !

                                            24 août 2012 à 3:23:25

                                            Je reviens vers toi concernant la mesure du taux d'humidité via un condensateur. La capacité d'un condensateur est fonction de l'humidité (recherche sur le net pour plus de précisions). Donc une variation de l'humidité entraîne une variation de la capacité. Une manière de quantifier cette variation est d'observer la variation des longueurs d'impulsions d'un monostable (basé sur un NE555 par exemple). Puis activer un astable qui va osciller le temps de l'impulsion du monostable. Ensuite il ne reste plus qu'à compter les oscillations et de faire une petite règle de trois, d'étalonner etc...
                                            • Partager sur Facebook
                                            • Partager sur Twitter
                                              24 août 2012 à 9:47:43

                                              La règle de 3 ça ne marche que pour les procédés qui ont un fonction de transfert affine.
                                              • Partager sur Facebook
                                              • Partager sur Twitter
                                              64kB de mémoire, c'est tout ce dont j'ai besoin
                                                25 août 2012 à 12:01:55

                                                J'avais déjà vu un sujet comme ça :
                                                Image utilisateur
                                                • Partager sur Facebook
                                                • Partager sur Twitter
                                                2b||!2b   sqrt(4b²)
                                                  15 novembre 2012 à 18:44:26

                                                  Bonjour !
                                                  Gros up (de 81 jours si je ne m'abuse ^^ ).
                                                  Mon projet n'est pas mort, j'attendais juste l'arriver des composants, soit : un shield Mémoire de snootlab, un DHT22, un kit Rx/Tx radio, et un ATtiny45.

                                                  Je remet le sujet dans votre mémoire : je voudrais faire une station météo avec capteur humidité/température externe, contrôler par l'ATtiny qui envoie ses données par radiofréquences, l'heure, un affichage 4*20 sur LCD, et un datalogger SD.
                                                  Je vais donc tout re-coder.

                                                  J'ai un petit problème au niveau de la transmission par RF : l'ATtiny ne supporte pas la librairie virtualwire, et je ne vois pas comment la rendre compatible. :'(
                                                  Et toujours ce problème de noël...

                                                  Voilà, c'est tout pour l'instant, je vais bientôt mettre le code fini ^^
                                                  • Partager sur Facebook
                                                  • Partager sur Twitter
                                                  2b||!2b   sqrt(4b²)

                                                  [projet] Station météo

                                                  × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                                                  × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                                                  • Editeur
                                                  • Markdown