[RESOLU] Caractère spéciaux sur LCD2004  [RESOLU]

Python est le langage de prédilection du Raspberry Pi

Modérateurs : Francois, Manfraid

Répondre
EVOTk

[RESOLU] Caractère spéciaux sur LCD2004

Message par EVOTk » mer. 1 oct. 2014 19:32

Bonjour,

J'utilise un afficheur de type LCD2004 pour afficher l'heure, ... et le résultat de ma sonde de température !

Aucune problème a cela, le seul problème viens pour afficher le symbole degrés sur l’écran LCD ! ( ° )

Je ne sait pas si cela est impossible ou non ?

Mon code est en UTF8.

Voila la partie du code qui affiche la température :

Code : Tout sélectionner

  temperature()
  lcd.lcd_display_string("Temp. int. : %s" % temp, 4)
Seulement la le résulat retourner est :
Temp. int. : 24
Si j'écrit :

Code : Tout sélectionner

  temperature()
  lcd.lcd_display_string("Temp. int. : %s °C" % temp, 4)
Python ne comprend pas le caractère ° est affiche n'importe quoi a la place.
Modifié en dernier par EVOTk le mar. 17 mars 2015 11:18, modifié 1 fois.

mikebzh44
Raspinaute
Messages : 359
Enregistré le : ven. 19 sept. 2014 09:47

Re: Caractère spéciaux sur LCD2004

Message par mikebzh44 » mer. 1 oct. 2014 20:54

Vu que tu dis que ton code est en UTF8, il faut traduire le caractère ° en UTF8, non ?

Moi, j'essaierai ça :

Code : Tout sélectionner

lcd.lcd_display_string("Temp. int. : %s °C" % temp, 4).encode('utf8')
Ou un truc comme ça. J'ai pas de python sous la main pour tester
RPi 3 sous Raspbian : connecté au compteur EDF pour la téléinfo
RPi 3 : framboise de test pour OSMC, OpenELEC, LibreELEC, Retrogaming
Stockage : ReadyNAS-RN102 2 x 4 To en miroir

domi
Administrateur
Messages : 3233
Enregistré le : mer. 17 sept. 2014 18:12
Localisation : Seine et Marne

Re: Caractère spéciaux sur LCD2004

Message par domi » mer. 1 oct. 2014 21:04

Bonsoir,

A le LCD2004, j'en ai commandé un, mais je l'attend :-(
devrait pas tarder...

Pour le °, peut-être un début de piste.
Lorsque tu es dans une "console" Python, un

Code : Tout sélectionner

print u'\u00b0'
retourne le signe des degrés.

ce qui donne pour être plus clair, dans un affichage complet.

Code : Tout sélectionner

$ python
Python 2.6.6 (r266:84292, Dec 27 2010, 00:02:40) 
[GCC 4.4.5] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> print u'\u00b0'
°
>>> 
A+
Passionné de Raspberry, Arduino, ESP8266, ESP32, et objets connectés :
Spécial débutant, concevez vous-même votre domotique DIY : https://www.youtube.com/c/DomoticDIY
Conception d'une station météo DIY, et envoi des infos à votre Domotique.

EVOTk

Re: Caractère spéciaux sur LCD2004

Message par EVOTk » mer. 1 oct. 2014 21:24

@mikebzh44 :

Merci de ta réponse, malheureusement sa ne marche. Cela me retourne :
Traceback (most recent call last):
File "/home/lcd/lcddark.py", line 80, in <module>
lcd.lcd_display_string("Temp. int. : %s °C" % temp, 4).encode('utf8')
AttributeError: 'NoneType' object has no attribute 'encode'
@domi :

N'oublie de commander les petits convertisseur logique qui vont bien pour l'exploiter avec ton raspberry pi !
Par exemple : http://cgi.ebay.fr/ws/eBayISAPI.dll?Vie ... 1497.l2649

-------------------------------------------

j'ai essayer ceci :

Code : Tout sélectionner

deg = u"°C"
  deg = deg.encode('utf8')
  print deg
Sa m'affiche bien :
°C
j'ai donc essayer de l'integrer dans mon programme :

Code : Tout sélectionner

deg = u"°C"
deg = deg.encode('utf8')
lcd.lcd_display_string("Temp. int. : %s %s" % (temp,deg), 4)
Maintenant, l'ecran m'affiche un caractère bizarre a la place ( Voir ici ), je pense que la limitation viens de l'écran.

D'autre idée peut etre ?

mikebzh44
Raspinaute
Messages : 359
Enregistré le : ven. 19 sept. 2014 09:47

Re: Caractère spéciaux sur LCD2004

Message par mikebzh44 » mer. 1 oct. 2014 22:08

Et ça :

Code : Tout sélectionner

str_temp = "Temp. int. : %s °C" % temp
lcd.lcd_display_string("%s" % str_temp.encode('utf8'), 4)
RPi 3 sous Raspbian : connecté au compteur EDF pour la téléinfo
RPi 3 : framboise de test pour OSMC, OpenELEC, LibreELEC, Retrogaming
Stockage : ReadyNAS-RN102 2 x 4 To en miroir

EVOTk

Re: Caractère spéciaux sur LCD2004

Message par EVOTk » mer. 1 oct. 2014 22:12

Re,

Sa donne une erreur :

Code : Tout sélectionner

Traceback (most recent call last):
  File "/home/lcd/lcddark.py", line 81, in <module>
    lcd.lcd_display_string("%s" % str_temp.encode('utf8'), 4)
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc2 in position 16: ordina not in range(128)

EVOTk

Re: Caractère spéciaux sur LCD2004

Message par EVOTk » mar. 17 mars 2015 11:18

Hello,

je chercher depuis un moment et j'ai trouvé !

un gentil monsieur a adapter les drivers actuel fourni avec l'ecran pour le Pi afin de pourvoir créer ses propres caractères !

Sa marche impeccable, merci a lui

et pour ceux que sa intéresse, voici le lien :

https://gist.github.com/DenisFromHR/cc8 ... ver-py-L17

domi
Administrateur
Messages : 3233
Enregistré le : mer. 17 sept. 2014 18:12
Localisation : Seine et Marne

Re: [RESOLU] Caractère spéciaux sur LCD2004  [RESOLU]

Message par domi » mar. 17 mars 2015 11:44

Salut Evotk,

Merci pour l'info, cela m'intéresse effectivement.
Passionné de Raspberry, Arduino, ESP8266, ESP32, et objets connectés :
Spécial débutant, concevez vous-même votre domotique DIY : https://www.youtube.com/c/DomoticDIY
Conception d'une station météo DIY, et envoi des infos à votre Domotique.

Répondre

Retourner vers « Python »