J’ai récemment acquis un BME280 et un LCD 20x04.
Mon but est d’afficher les données du BME280 sur le LCD (pression, hydro et temp).
Je suis novice en programa…en tout, quand il s’agit de codage, programmation.
J’arrive sans problème à lancer l’un ou l’autre (récolter les données du BME et marquer HelloWorld sur le LCD), mais fusionner les librairies sous python, pas moyen…
Donc, , si vous avez des pistes, je suis preneur !
pas facile de répondre sans voir les deux programmes que tu utilises mais en gros le principe c’est de mettre d’abord les import des deux programmes, éventuellement les fonctions ( def …) et dans la boucles qui te sert a lire les données du BME280 ( while … ) tu mets le même print ( ou autre mot clé ou fonction ) qui te sert à écrire « hello world » en la remplaçant la ligne de print du prog du bme280 avec les variables temp, pression,humidité.
si tu reconnais tes imports surtout celui la : from RPLCD.gpio import CharLCD et en remplacant les ? par tes valeurs ce truc peut peut être ( précaution jamais inutile en programmation lol ) fonctionnerr :
from RPLCD.gpio import CharLCD
import time
import bme280
Salut Bof,
merci beaucoup pour ton aide !
Donc j’y suis je viens de créer le script nommé lcdtest1.py, puis j’ai utilisé RPLCD.i2c, l’écran et le bme280 étant tout deux en i2C.
Et cela donne :
from RPLCD.i2c import CharLCD
import time
import bme280
bon l’erreur elle vient de la ligne :
bme = bme280(0x76)
il te dit que le module bme280 n’accepte pas que tu lui mettes directement un argument entre parenthèse il attend un truc de la forme:
bm280.-une fonction-.(<un ou plusieurs parametres)
comme par exemple la ligne :
temperature,pression,humidite = bme280.readBME280All()
donc je suppose qu’il doit te manquer une fonction après bm280.
la #Preparation LCD : la tu définis les paramètres mais a l’inverse de la ligne #lcd = i2c.CharLCD(‹ PCF8574 ›, 0x27 , port=1, charmap=‹ A00 ›,cols=20, rows=4)
tu ne définis pas l’objet lcd donc les lignes y faisant référence ne vont pas fonctionner :
lcd.cursor_pos : la fonction de positionnement du cursor pour l’objet lcd
lcd.write_string
lcd.clear
la pour moi qui suis plus programme que électronique il y a le soucis que tes deux modules se servent du même type de bus i2c ! j’ai cru comprendre qu’on pouvait en gérer plusieurs et qu’on les interroge avec:
sudo i2cdetect -l pour les avoir tous
sudo i2cdetect -y 1 pour avoir son adresse
je suppose que la ligne en erreur essayait d’indiquer au programme ou trouver l’adresse (et le port ? ) du module BM280 et que pour le lcd la notion de port (et le 0X27) lui donne aussi la maniere de l"adresser.
donc si on résume :
il faut que tu trouves la fonction (ou les ? ) qui vont dire au programme ou il va trouver les info sur le 2ic pour le module BME280 ( ça revient à corriger la ligne en erreur bme = bme280(0x76) )
ou pas si tu utilises le programme bme280.py dans ce cas la ligne en erreur est simplement a supprimer !
mettre les paramétrés du lcd sur un ligne pour définir lcd.
lcd = … a la place de la liste de ses variables
désolé de pas être plus précis mais, bien qu"intéressé par ces montages électronique, je n’y connais vraiment que dalle ! perfect noob lol!
PS: si tu peux publier les deux programmes qui fonctionnent séparément ça pourrai aider.