Bonjour,

Tout d'abord félicitations pour votre site remarquable !

Je débute en langage python et de ce fait mes connaissances actuelles sont très limitées....

Mon problème: je travaille avec une mini ordinateur pcDuino (comparable à un Raspberry Pi) sous LXDE 14.04. Je souhaiterai créer une application (ma première....) pour gérer un futur aquaterrarium.
J'ai parcouru le net et je suis arrivé naturellement à utiliser Python 2.x et Tkinter qui sont installés par défaut sur cette mini carte.
J'ai parcouru de nombreux tutos et je me suis enfin lancé. j'ai réussi à afficher dans une fenêtre la valeur de l'échelon d'une entrée analogique à laquelle est raccordée un capteur de température LM35.

le programme:
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
 
#!/usr/bin/python
#-*- coding: utf-8 -*-
 
# importation modules
from Tkinter import *
import gpio
from adc import analog_read
import time
 
#led_pin = "gpio2" # configuration LED sur gpio2
#gpio.pinMode(led_pin, gpio.OUTPUT) # configuration de gpio2 en sortie
 
 
def maj():
    # on arrive ici toutes les 1000 ms
	temperature.set ('Echelon = ' + str(analog_read(2))) # lecture adc2
	Mafenetre.after(1000,maj) #  boucle toute les 1000 ms
 
Mafenetre = Tk()
Mafenetre.title("Echelon LM35 sur ADC2") # titre de la fenetre
 
# Creation d'un widget Label
temperature = StringVar()
Label(Mafenetre,textvariable=temperature).pack(padx=10,pady=10)
 
maj()
 
Mafenetre.mainloop()
Avec ce programme (probablement pas très propre...) l' échelon apparaît dan la fenêtre du terminal et dans ma fenêtre Tkinter !

J'ai voulu améliorer ma petite application pour faire une moyenne sur 64 lectures. J'ai créer une fonction pour affichage dans ma fenêtre..... mais impossible de faire fonctionner....

nouveau programme:
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
 
#!/usr/bin/python
#-*- coding: utf-8 -*-
 
# importation modules
from Tkinter import *
import gpio
from adc import analog_read
import time
 
#led_pin = "gpio2" # configuration LED sur gpio2
#gpio.pinMode(led_pin, gpio.OUTPUT) # configuration de gpio2 en sortie
 
 
def analog_read64(): # 64 lectures et moyenne
	somme_temp = 0
	i = 0	
	while i < 64:		# lecture 64 x echelon  	
		temp = analog_read(2) # lecture adc2
		somme_temp = somme_temp + temp
		i += 1
	temp = somme_temp / 64
	print temp
 
def temp_LM35():
	temp.set ('Temperature ' + analog_read64())
	Mafenetre.after(1000,temp_LM35) #  boucle toutes les secondes
 
Mafenetre = Tk()
Mafenetre.title("Moyenne echelon LM35") # titre de la fenetre
 
# Creation d'un widget Label
temp = StringVar()
Label(Mafenetre,textvariable=temp).pack(padx=10,pady=10)
 
temp_LM35()
 
Mafenetre.mainloop()
J'obtiens l'erreur

Traceback (most recent call last):
File "Affichage moyenne echelon LM35.py", line 35, in <module>
temp_LM35()
File "Affichage moyenne echelon LM35.py", line 25, in temp_LM35
temp.set ('Temperature ' + analog_read64())
TypeError: cannot concatenate 'str' and 'NoneType' objects
Un problème de type de variable que je n'arrive pas à résoudre malgré toutes mes recherches sur le net....

Merci de votre aide afin de m'orienter sur une solution ainsi que sur les notions élémentaires qui m'échappent !

Cordialement