Page 1 sur 1

Problème envoi données capteur BME280

Posté : lun. 14 nov. 2022 10:26
par gorillusion
Bonjour à tous,

Je suis nouveau sur ce forum, et débutant dans le Raspberry PI.

Je suis en BTS SN, et pour l'année prochaine je dois présenter un projet avec :
- un capteur
- un Raspberry PI
- une base de données
- une interface Web

Pour cela, je dispose d'un Raspberry PI 4 Go, ainsi qu'un capteur BME 280.

J'arrive à lire les données du capteur via un script en Python, mais je ne parviens pas à les envoyer dans ma base de données

Mon script :

import bme280
from time import sleep
import MySQLdb
import mysql.connector
import requests
import datetime
import sys
import serial
import pymysql

temperature,pressure,humidity = bme280.readBME280All()
(chip_id, chip_version) = bme280.readBME280ID()

conn = MySQLdb.connect(host="localhost",user="admin",passwd="admin",db="test")
c = conn.cursor()

while True:

c.execute("INSERT INTO bmetest (temperature) VALUES ($s)" %(temperature))
conn.commit()

print ("Chip_ID :", chip_id)
print ("Version :", chip_version)
print ("Température :", temperature, "C")
print ("Humidité :", humidity, "%")
print ("Pression:", pression, "hPa")

sleep(3)

J'obtiens l'erreur : TypeError : not all arguments converted durint string formatting

J'ai tout essayé, je comprends pas, j'aimerai juste que toutes les 3 secondes, la pression, l'humidité et la température soient intégrés dans la base

Pouvez-vous m'aider SVP

Merci,


Cordialement,
Lucas

Re: Problème envoi données capteur BME280

Posté : lun. 14 nov. 2022 18:32
par piper
Erreur basique en python / C / java / javascript / php sur le formatage des données
L'erreur n'a RIEN A VOIR avec la base de données
Mais à voir avec la construction de la chaîne de caractère correspondant à l'ordre insert.


dans ton insert, la partie valeur, tu as choisis de dire que c'est une chaïne de caractères (s comme string) : OK
Sauf que la syntaxe, ce n'est pas $s (dollar s) mais %s (pourcent s)