IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Arduino Discussion :

Récupérer la température du processeur d'un PC depuis le BIOS


Sujet :

Arduino

  1. #1
    Candidat au Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Février 2016
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Février 2016
    Messages : 3
    Par défaut Récupérer la température du processeur d'un PC depuis le BIOS
    bonjour à tous, si je crée cette discussion, c'est car j'ai besoin d'aide au sujet de mon tpe, je suis en 1ere S science de l'ingénieur et mon TPE a pour objet d' éviter la surchauffe d'un ordinateur portable, je m'explique :
    on s'est rendu compte qu'une utilisation trop intense d'un ordinateur pouvais amener a la surchauffe de ses composants, du coup on a décidé de réaliser un socle de ventilation pour un ordinateur portable (comme il en existe deja dans le commerce). on s'est servi de logiciels tels que solidwork pour élaborer le support puis nous l'avons réalisé. jusqu'ici aucun problème, seulement nous avons décidé de se servir d'arduino afin de programmer la ventilation présente dans le socle. ( ventilateurs a l'intérieurs du socle en supplément des ventilateurs présents dans l'ordinateur) en fait on souhaite a l'aide d'un capteur de température allumer les ventilateurs si la température dépasse un seuil donné. en cherchant sur internet j'ai trouvé un code type pour le genre programmation qui nous fallait, nous l'avons modifié afin d'y mettre les valeurs souhaitées

    photo ci dessous
    Nom : screenshot arduino.png
Affichages : 3549
Taille : 28,5 Ko

    nous avons testé le programme avec les composants que le professeur nous a donné, ( nous avons pris un capteur de température en entrée et une led en sortie simulant le fonctionnement des ventilateurs.
    cela a fonctionné, bonne nouvelle, jusqu'à se que j'arrive chez moi et que je me rende compte que le capteur de température ne pourra jamais être placé sur mon processeur car il faut démonter entièrement l'ordinateur pour y avoir accès .
    j'ai donc pensé a utiliser l'information provenant des capteurs que les constructeurs mettent sur leurs processeurs, ce qui m'éviterais de démonter l'ordinateur mais plutôt me permettrais de fournir l'information de température du BIOS de l'ordinateur jusqu'au logiciel arduino
    en plus, cela me parait plus fiable que d'appliquer un capteur de température car les capteurs "constructeurs" sont placés a l'intérieur même des processeurs.

    alors voila, n'ayant aucune connaissance en arduino (jamais un seul cours fait a ce sujet et professeurs ayant peu voir 0 connaissances en arduino ou incapable de me renseigner ou m'aider) et un enorme besoin, je fait appel a votre aide.
    j'aimerais remplacer l'information provenant de mon capteur de température par celui fourni dans le BIOS de l'ordinateur, en d'autre termes, trouver et traduire l'information "température du processeur" afin de l'insérer dans un programme arduino
    merci infiniment d'avance, Lucas.

  2. #2
    Membre Expert
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    1 711
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2012
    Messages : 1 711
    Par défaut
    Hello,

    Ce que je ferai :
    - coté PC, un programme qui lis la température et l'écris sur un port série (si tu as) ou un autre port simple d'utilisation.
    - coté Arduino, tu lis le port série pour avoir la température.

    Petit détail, c'est généralement une bonne idée d'avoir un truc du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    float const tempOn = 25.f;
    float const tempOff = 20.f;
     
    bool isOn = false;
     
    // on l'allume à 25°C
    if(temperature > tempOn) {
       isOn = true;
    }
    // on l’éteint à 20°C
    else if(temperature < tempOff) {
       isOn = false;
    }
    Ça évite d'avoir le ventilateur qui s'allume, provoque une baisse de température et s’éteint directement... Puis il se rallume quelques secondes plus tard, etc...

  3. #3
    Candidat au Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Février 2016
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Février 2016
    Messages : 3
    Par défaut
    déjà, merci beaucoup d'avoir pris le temps de répondre, même sans connaissances en arduino et en langage c, j'ai compris l'astuce que vous m'avais donné, je doit dire que je n'y aurais pas pensé, alors merci haha!
    seulement, vous avez dis " faire un programme qui lis la température et l'écris sur un port serie", seulement je ne sais pas comment m'y prendre pour créer un programme tel, et puis l'écrire sur un port serie, je vais surement passer pour un con mais je ne vois pas du tout comment faire,
    ensuite je vois un deuxième problème, comment je pourrais faire pour donner l'ordre a mon programme de lire cette température? veuillez excuser mon extrême manques de connaissances a se sujet..

  4. #4
    Modérateur

    Avatar de Bktero
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2009
    Messages
    4 493
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2009
    Messages : 4 493
    Billets dans le blog
    1
    Par défaut
    Petit détail, c'est généralement une bonne idée d'avoir un truc du genre :
    Ce mécanisme porte le nom savant d'hystérésis https://fr.wikipedia.org/wiki/Hyst%C3%A9r%C3%A9sis

    cela a fonctionné, bonne nouvelle, jusqu'à se que j'arrive chez moi et que je me rende compte que le capteur de température ne pourra jamais être placé sur mon processeur car il faut démonter entièrement l'ordinateur pour y avoir accès .
    Si le processeur chauffe, alors l'ensemble du PC chauffe par conduction. Tu n'as pas nécessairement besoin de placer le capteur sur le processeur pour détecter une hausse de chaleur. Je me souviens d'avoir fait un programme sous Linux, en bash, pour tracer une courbe donnant l'évolution de la température du processeur. En effet, mon PC chauffait énormément et je voulais savoir ce qu'il en était vraiment. La chose à retenir pour toi est que le PC tout entier était brûlant !

    Vous pourriez essayer pour le moment de simplement mettre le capteur sous le PC (je présume qu'on parle de PC portable), proche de l'endroit où est le CPU et regarder si vous êtes capables de détecter une surchauffe depuis l'extérieur.

    Faire un programme sur le PC vous compliquera fortement la tâche, donc évitez-le si vous le pouvez.

  5. #5
    Candidat au Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Février 2016
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Février 2016
    Messages : 3
    Par défaut
    merci pour tes précisions, pour se qui es de placer le capteur sous l'ordinateur j'y avais pensé mais je n'ai pas approfondis car je me suis dis que ce ne serais pas assez précis, je vais devoir étudier l'écart entre la température extérieure et la température du processeur ( interne ) pour déterminer a quelle température déclencher la marche des ventilateurs

    oui je parle bien d'un cas d'ordinateur portable.


    j'imagine la complexité d'élaborer un programme pour si peu, c'est pourquoi je pense me tourner vers une prise de température extérieure, à moins se qu'il existe une commande qui traduise la température indicative dans le BIOS en c afin de remplacer par exemple le "<25°C lu par le capteur externe" par "<25°C directement pris dans le bios"

  6. #6
    Modérateur

    Avatar de Bktero
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2009
    Messages
    4 493
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2009
    Messages : 4 493
    Billets dans le blog
    1
    Par défaut
    En relisant ton premier message, j'ai vu qu'il s'agissait bien d'un PC portable.

    Cette technique est forcément moins précise. La chaleur se diffuse dans tout le PC, donc l'échauffement sera moins fort à l'endroit ou sera ton capteur. De plus, les variations rapides seront filtrés par l'inertie thermique de la carcasse mais ce n'est pas grave, car comme l'a dit Iradrille, il est toujours bon de faire une hystérésis dans ce genre de régulation. Après, ce dire que c'est moins précis, c'est bien (car c'est pas faux) mais tester pour voir ce que ça donne vraiment, c'est mieux (car ça pourrait bien fonctionner correctement !).

    Tu n'auras rien de standard pour récupérer la température du PC en C. Ce sera forcément par des bibliothèques à côté, souvent dépendantes du système d'exploitation. De plus, ce n'est pas garanti d'être disponible sur tous les ordinateurs.

    Au passage, il y plein de PC portable avec des "grilles" dessous, pour faciliter l'aération. Tu peux ouvrir la grille, mettre ton capteur à l'intérieur et faire sortir les fils par les trous de la grille. Ca me fait d'ailleurs penser que tu auras du mal à trouver une température seuil pour tous les PC. Ce sera sûrement du cas par cas si tu ne te mets pas directement sur le processeur. Soit il faut ajuster le seuil pour chaque ordinateur (soit en changeant le code, soit avec un potentiomètre pour le régler pendant l'exécution), soit il faudrait un algorithme "apprenant". En gros, il regarde comment évolue la température et au bout d'un moment est capable de réguler. Cela devient un brin plus compliqué pour des lycéens, donc commencez par quelque chose de simple (une valeur fixe dans le code) mais s'il vous reste du temps à la fin, vous pouvez y penser

Discussions similaires

  1. [Développement] récupérer la température du (des) processeur(s)
    Par d'Oursse dans le forum Apple
    Réponses: 1
    Dernier message: 20/05/2011, 08h46
  2. Récupérer la température du processeur en C
    Par swingNJava dans le forum Windows
    Réponses: 1
    Dernier message: 09/10/2008, 17h04
  3. Réponses: 11
    Dernier message: 09/06/2006, 15h10
  4. Température du processeur
    Par duplo dans le forum Assembleur
    Réponses: 2
    Dernier message: 04/11/2005, 21h44
  5. Récupérer la température du processeur (CPU)
    Par cyber_N dans le forum MFC
    Réponses: 4
    Dernier message: 05/09/2005, 18h27

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo