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

Raspberry Pi Discussion :

Bibliothèque max31855 (sonde de température)


Sujet :

Raspberry Pi

  1. #1
    Candidat au Club
    Bibliothèque max31855 (sonde de température)
    Bonjour

    Je suis débutant en python. J'essaye de faire un programme qui utilisera des valeurs retournées par une sonde de températures de type k.
    - J'utilise un Raspberry Pi 3 avec la dernière version de Raspbian (installé avec NOOB).
    - J'utilise un module max31855.
    - J'utilise la bibliothèque Tuckie.

    Même après une réinstallation de tout le système, la bibliothèque semble reconnue, mais pas les "class" qui sont dedans...

    Après la réinstallation complète de l'OS, j'ai commencé par activé "SSH", "VNC", "SPI" et "Remote GPIO".

    Voici les infromations sur mon système :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    pi@raspberrypi:~/Python/Essais_MAX31855 $ uname -a
    Linux raspberrypi 4.19.58-v7+ #1245 SMP Fri Jul 12 17:25:51 BST 2019 armv7l GNU/Linux
    pi@raspberrypi:~ $ lsb_release -a
    No LSB modules are available.
    Distributor ID:	Raspbian
    Description:	Raspbian GNU/Linux 10 (buster)
    Release:	10
    Codename:	buster
    pi@raspberrypi:~ $
    Et voici tout ce que j'ai fait sur cette installation propre :

    1- Installation de la bibliothèque
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    pi@raspberrypi:~ $ git clone https://github.com/Tuckie/max31855
    
    Clonage dans 'max31855'...
    remote: Enumerating objects: 33, done.
    remote: Total 33 (delta 0), reused 0 (delta 0), pack-reused 33
    Dépaquetage des objets: 100% (33/33), fait.
    
    
    pi@raspberrypi:~ $ cd max31855/
    pi@raspberrypi:~/max31855 $ sudo python3 setup.py install
    running install
    running bdist_egg
    running egg_info
    creating max31855.egg-info
    writing max31855.egg-info/PKG-INFO
    writing dependency_links to max31855.egg-info/dependency_links.txt
    writing top-level names to max31855.egg-info/top_level.txt
    writing manifest file 'max31855.egg-info/SOURCES.txt'
    reading manifest file 'max31855.egg-info/SOURCES.txt'
    writing manifest file 'max31855.egg-info/SOURCES.txt'
    installing library code to build/bdist.linux-armv7l/egg
    running install_lib
    warning: install_lib: 'build/lib' does not exist -- no Python modules to install
    
    creating build
    creating build/bdist.linux-armv7l
    creating build/bdist.linux-armv7l/egg
    creating build/bdist.linux-armv7l/egg/EGG-INFO
    copying max31855.egg-info/PKG-INFO -> build/bdist.linux-armv7l/egg/EGG-INFO
    copying max31855.egg-info/SOURCES.txt -> build/bdist.linux-armv7l/egg/EGG-INFO
    copying max31855.egg-info/dependency_links.txt -> build/bdist.linux-armv7l/egg/EGG-INFO
    copying max31855.egg-info/top_level.txt -> build/bdist.linux-armv7l/egg/EGG-INFO
    zip_safe flag not set; analyzing archive contents...
    creating dist
    creating 'dist/max31855-2.0-py3.7.egg' and adding 'build/bdist.linux-armv7l/egg' to it
    removing 'build/bdist.linux-armv7l/egg' (and everything under it)
    Processing max31855-2.0-py3.7.egg
    Copying max31855-2.0-py3.7.egg to /usr/local/lib/python3.7/dist-packages
    Adding max31855 2.0 to easy-install.pth file
    
    Installed /usr/local/lib/python3.7/dist-packages/max31855-2.0-py3.7.egg
    Processing dependencies for max31855==2.0
    Finished processing dependencies for max31855==2.0
    2- Vérification que la bibliothèque a bien été installée
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    pi@raspberrypi:~/max31855 $ python3
    Python 3.7.3 (default, Apr  3 2019, 05:39:12) 
    [GCC 8.2.0] on linux
    Type "help", "copyright", "credits" or "license" for more information.
    >>> import max31855
    >>>
    >>> exit()
    
    3- Lancement du script de test
    
    pi@raspberrypi:~/max31855 $ cd /home/pi/Python/Essais_MAX31855/
    pi@raspberrypi:~/Python/Essais_MAX31855 $ python3 Essai_MAX31855_V1.py 
    Traceback (most recent call last):
      File "Essai_MAX31855_V1.py", line 1, in <module>
        from max31855 import MAX31855, MAX31855Error
    Voici le code de mon fichier "Essai_MAX31855_V1.py":
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    from max31855 import MAX31855, MAX31855Error
    
    cs_pin=24
    clock_pin=23
    data_pin=22
    unit="f"
    thermocouple1=MAX31855(cs_pin, clock_pin, data_pin, units)
    print(thermocouple.get())
    thermocouple.cleanup()
    4- Nouvelle installation de la bibliothèque dans le même dossier que mon script
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    pi@raspberrypi:~/max31855 $ cd /home/pi/Python/Essais_MAX31855/
    pi@raspberrypi:~/Python/Essais_MAX31855 $ git clone https://github.com/Tuckie/max31855
    Clonage dans 'max31855'...
    
    remote: Enumerating objects: 33, done.
    remote: Total 33 (delta 0), reused 0 (delta 0), pack-reused 33
    Dépaquetage des objets: 100% (33/33), fait.
    pi@raspberrypi:~/Python/Essais_MAX31855 $ 
    
    
    pi@raspberrypi:~/Python/Essais_MAX31855 $ cd max31855/
    pi@raspberrypi:~/Python/Essais_MAX31855/max31855 $ sudo python3 setup.py install
    running install
    running bdist_egg
    running egg_info
    creating max31855.egg-info
    writing max31855.egg-info/PKG-INFO
    writing dependency_links to max31855.egg-info/dependency_links.txt
    writing top-level names to max31855.egg-info/top_level.txt
    writing manifest file 'max31855.egg-info/SOURCES.txt'
    reading manifest file 'max31855.egg-info/SOURCES.txt'
    writing manifest file 'max31855.egg-info/SOURCES.txt'
    installing library code to build/bdist.linux-armv7l/egg
    running install_lib
    warning: install_lib: 'build/lib' does not exist -- no Python modules to install
    
    creating build
    creating build/bdist.linux-armv7l
    creating build/bdist.linux-armv7l/egg
    creating build/bdist.linux-armv7l/egg/EGG-INFO
    copying max31855.egg-info/PKG-INFO -> build/bdist.linux-armv7l/egg/EGG-INFO
    copying max31855.egg-info/SOURCES.txt -> build/bdist.linux-armv7l/egg/EGG-INFO
    copying max31855.egg-info/dependency_links.txt -> build/bdist.linux-armv7l/egg/EGG-INFO
    copying max31855.egg-info/top_level.txt -> build/bdist.linux-armv7l/egg/EGG-INFO
    zip_safe flag not set; analyzing archive contents...
    creating dist
    creating 'dist/max31855-2.0-py3.7.egg' and adding 'build/bdist.linux-armv7l/egg' to it
    removing 'build/bdist.linux-armv7l/egg' (and everything under it)
    Processing max31855-2.0-py3.7.egg
    Removing /usr/local/lib/python3.7/dist-packages/max31855-2.0-py3.7.egg
    Copying max31855-2.0-py3.7.egg to /usr/local/lib/python3.7/dist-packages
    max31855 2.0 is already the active version in easy-install.pth
    
    Installed /usr/local/lib/python3.7/dist-packages/max31855-2.0-py3.7.egg
    Processing dependencies for max31855==2.0
    Finished processing dependencies for max31855==2.0
    5- Nouvel essai du script
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    pi@raspberrypi:~/Python/Essais_MAX31855/max31855 $ cd ..
    pi@raspberrypi:~/Python/Essais_MAX31855 $ ls
    Essai_MAX31855_V1.py  max31855
    pi@raspberrypi:~/Python/Essais_MAX31855 $ python3 Essai_MAX31855_V1.py 
    Traceback (most recent call last):
      File "Essai_MAX31855_V1.py", line 1, in <module>
        from max31855 import MAX31855, MAX31855Error
    ImportError: cannot import name 'MAX31855' from 'max31855' (/home/pi/Python/Essais_MAX31855/max31855/__init__.py)
    pi@raspberrypi:~/Python/Essais_MAX31855 $
    C'est tout ce que j'ai fait sur ce système d'exploitation... Peut-être manque-t-il des étapes ?

    Est-ce que vous verriez des anomalies ?

    Merci à vous :-)

  2. #2

  3. #3
    Candidat au Club
    Bonjour

    Oui, mais mon module MAX31855 n'est pas de chez Adafruit... C'est un chinois générique.
    Ça marcherait quand-même ?

    Je vais essayer.

    Merci

    P.S. Il n'y a pas d'erreurs dans mon installation ?

  4. #4
    Candidat au Club
    Je suis allé voir :

    https://learn.adafruit.com/max31855-thermocouple-python-library/software

    C'est du Python 2 ...

    Je continue de chercher.

  5. #5
    Rédacteur

    Hello,
    C'est très facile de convertir du Python 2 en 3.
    Je l'ai fait à plusieurs occasions.
    Ce n'est souvent que les print avec leurs parenthèses qu'il faut corriger.

    Sur le Pi:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    pi@raspberrypi:~/python $ python -V
    Python 2.7.13
    Donc Python 2 (par défaut).

    Et il y a aussi la version 3 (commande python3).
    Bonne recherche

  6. #6

  7. #7
    Candidat au Club
    J'obtiens le même résultat : il ne reconnaît pas le module

    J'ai essayé avec un fork "node-alpha" :
    https://github.com/node-alpha/max31855/

    Et j'ai eu du progrès, il reconnaît le module !
    Mais quelque-soit le branchement (vérifié 12 fois avec BCM et BOARD), il me donne toujours 32°C (température de la sonde dont j'ai vérifié la polarité, comme celle du capteur interne)

    J'ai essayé avec le pilote d'Adafruit, et là encore, j'ai des problèmes... Il donne soit 32°C en absence du capteur, soit des valeurs qui semblent complètement aléatoires (positives et négatives).

    J'ai pourtant bien vérifié les branchements en essayant BCM et BOARD.

    Je pense que le pilote de Tuckie, je vais le laisser tomber.
    Les pilotes de node-alpha et d'Adafruit fonctionnent probablement, mais que c'est mon module alors qui serait mort... (J'en ai essayé deux, toujours branchés sur le 3.3V, jamais plus...)
    Ou peut-être ça :
    http://georgeknowlden.com/articles/head-scratchers/max31855/log.html


    Je pense que je vais tester mes modules sur Arduino, mais je n'ai pas encore de "level shifter" pour ça...

    Peut-être même qu'en fait, si ça marche sur mon UNO, je lui ferai envoyer les données reçues à mon Raspberry par USB, ça n'a pas l'air d'être sorcier...
    http://electroniqueamateur.blogspot.com/2014/05/communication-par-usb-entre-raspberry.html

    Voilà, je vous tiens au courant...

    Merci pour votre aide :-)

  8. #8
    Candidat au Club
    Après installation sur un UNO, la sonde me renvoie ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    Internal Temp = 21.06
    Quelque chose ne fonctionne pas avec le thermocouple!
    Internal Temp = 4.69
    Quelque chose ne fonctionne pas avec le thermocouple!
    Internal Temp = 5.13
    Quelque chose ne fonctionne pas avec le thermocouple!
    Internal Temp = 21.19
    Quelque chose ne fonctionne pas avec le thermocouple!
    Internal Temp = 21.31
    Quelque chose ne fonctionne pas avec le thermocouple!
    Internal Temp = 20.69
    Quelque chose ne fonctionne pas avec le thermocouple!
    Internal Temp = 4.94
    Quelque chose ne fonctionne pas avec le thermocouple!
    Internal Temp = -11.19
    Quelque chose ne fonctionne pas avec le thermocouple!
    Internal Temp = 5.25
    Quelque chose ne fonctionne pas avec le thermocouple!
    Internal Temp = 4.94
    Quelque chose ne fonctionne pas avec le thermocouple!
    Internal Temp = -11.19
    Quelque chose ne fonctionne pas avec le thermocouple!
    Internal Temp = 5.06
    Quelque chose ne fonctionne pas avec le thermocouple!
    Internal Temp = 21.06
    Quelque chose ne fonctionne pas avec le thermocouple!
    Internal Temp = 21.25
    Quelque chose ne fonctionne pas avec le thermocouple!
    Internal Temp = 4.75
    Quelque chose ne fonctionne pas avec le thermocouple!
    Internal Temp = 5.06
    Quelque chose ne fonctionne pas avec le thermocouple!
    Internal Temp = 21.19
    Quelque chose ne fonctionne pas avec le thermocouple!
    Internal Temp = 21.44
    Quelque chose ne fonctionne pas avec le thermocouple!
    Internal Temp = 5.38
    Quelque chose ne fonctionne pas avec le thermocouple!
    Internal Temp = 21.87
    Quelque chose ne fonctionne pas avec le thermocouple!
    Internal Temp = 21.75
    Quelque chose ne fonctionne pas avec le thermocouple!
    Internal Temp = 75.56
    Quelque chose ne fonctionne pas avec le thermocouple!
    Internal Temp = 27.75
    Quelque chose ne fonctionne pas avec le thermocouple!
    Internal Temp = 44.06
    Quelque chose ne fonctionne pas avec le thermocouple!
    Internal Temp = 43.50
    Quelque chose ne fonctionne pas avec le thermocouple!
    Internal Temp = 59.81
    Quelque chose ne fonctionne pas avec le thermocouple!
    Internal  Temp = -19.31
    Quelque chose ne fonctionne pas avec le thermocouple!
    Internal Temp = -19.25
    Quelque chose ne fonctionne pas avec le thermocouple!
    Internal Temp = -19.56
    Quelque chose ne fonctionne pas avec le thermocouple!
    Internal Temp = 43.00
    Quelque chose ne fonctionne pas avec le thermocouple!
    Internal Temp = 42.06
    Quelque chose ne fonctionne pas avec le thermocouple!
    Internal Temp = 24.87
    Pour information, il fait un 31,4°C bien stable chez moi...

    Je commence vraiment à penser que mon module est mort ou faux... Je vais essayer avec les deux autres que j'ai...

  9. #9
    Candidat au Club
    Avec un autre module tout neuf :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    Mfonctionne pas avec le thermocouple!
    Internal Temp = -128.00
    Quelque chose ne fonctionne pas avec le thermocouple!
    MAX31855 test
    Internal Temp = 127.94
    Quelque chose ne fonctionne pas avec le thermocouple!
    Internal Temp = 127.94
    Quelque chose ne fonctionne pas avec le thermocouple!
    Internal Temp = -102.50
    Quelque chose ne fonctionne pas avec le thermocouple!
    Internal Temp = -128.00
    Quelque chose ne fonctionne pas avec le thermocouple!
    Internal Temp = -108.87
    Quelque chose ne fonctionne pas avec le thermocouple!
    Internal Temp = 127.94
    Quelque chose ne fonctionne pas avec le thermocouple!
    Internal Temp = -70.50
    Quelque chose ne fonctionne pas avec le thermocouple!
    Internal Temp = 127.94
    Quelque chose ne fonctionne pas avec le thermocouple!
    Internal Temp = 35.50
    Quelque chose ne fonctionne pas avec le thermocouple!
    Internal Temp = -128.00
    Quelque chose ne fonctionne pas avec le thermocouple!
    Internal Temp = 127.94
    Quelque chose ne fonctionne pas avec le thermocouple!
    Internal Temp = 127.94
    Quelque chose ne fonctionne pas avec le thermocouple!
    Internal Temp = 127.94
    Quelque chose ne fonctionne pas avec le thermocouple!
    Internal Temp = 118.56
    Quelque chose ne fonctionne pas avec le thermocouple!
    En inversant la sonde :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    MAXe pas avec le thermocouple!
    Internal Temp = -44.19
    Quelque chose ne fonctionne pas avec le thermocouple!
    &#11822;MAX31855 test
    Internal Temp = -44.19
    Quelque chose ne fonctionne pas avec le thermocouple!
    Internal Temp = -44.19
    Quelque chose ne fonctionne pas avec le thermocouple!
    Internal Temp = -44.19
    Quelque chose ne fonctionne pas avec le thermocouple!
    Internal Temp = -44.19
    Quelque chose ne fonctionne pas avec le thermocouple!
    Internal Temp = -44.19
    Quelque chose ne fonctionne pas avec le thermocouple!
    Internal Temp = -44.19
    Quelque chose ne fonctionne pas avec le thermocouple!
    Internal Temp = -44.19
    Quelque chose ne fonctionne pas avec le thermocouple!
    Internal Temp = -44.25
    Quelque chose ne fonctionne pas avec le thermocouple!

    Avec le module neuf et une autre sonde :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    M.88
    C = -485.75
    00
    C = -484.75
    Internal Temp = -44.94
    C = -485.50
    Internal Temp = -44.94
    C = -484.75
    Internal Temp = -44.88
    C = -485.75
    MAX31855 test
    Internal Temp = -44.88
    C = -354.25
    Internal Temp = -44.88
    C = -479.25
    Internal Temp = -44.88
    C = -472.50
    Internal Temp = -44.81
    C = -472.75
    Internal Temp = -44.81
    C = -474.75
    Internal Temp = -44.81
    C = -477.25
    Internal Temp = -44.81
    C = -479.50
    Internal Temp = -45.25
    C = -2048.00
    Internal Temp = -45.25
    C = -2048.00
    Internal Temp = -45.25
    C = -2048.00
    Internal Temp = -45.25
    C = -2048.00
    Internal Temp = -45.25
    C = -1512.50
    Internal Temp = -45.31
    C = -1372.75
    En inversant cette sonde :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    MATemp = -45.19
    C = 1820.00
    Internal Temp = -45.19
    C = 1161.75
    MAX31855 test
    Internal Temp = -45.06
    C = 1976.50
    Internal Temp = -45.06
    C = -1854.00
    Internal Temp = -45.06
    C = 1093.00
    Internal Temp = -45.06
    C = 1623.75
    Internal Temp = -45.06
    C = 1584.25
    Internal Temp = -45.00
    C = -1526.25
    Internal Temp = -45.00
    C = -1727.75
    Rien à faire... Je crois que mes 3 modules neufs sont morts ou fake...

  10. #10
    Candidat au Club
    Changement de module
    Jusqu'à maintenant, après des dizaines d'essais (sous Raspberry comme sous Arduino avec un level shifter), je n'ai eu aucune preuve qu'aucun de mes 3 modules MAX31855 n'ait été en état de fonctionner...

    Ce sont probablement des fakes :
    http://georgeknowlden.com/articles/head-scratchers/max31855/log.html

    Heureusement, j'ai réussi à mettre la main sur un MAX6675 (Pas facile où j'habite... au Nicaragua). Il marche bien avec le pilote de Robojax :
    http://robojax.com/learn/arduino/?vid=robojax_MAX6675_thermocouple

    Il explique même comment en faire fonctionner deux sur un seul UNO :
    http://robojax.com/learn/arduino/?vid=robojax_MAX6675_thermocouple%20_LCD1602-2dis
    Et ça tombe bien, ça m'intéresse.

    Donc ma solution, c'est laisser tomber mes trois modules MAX31855...