Problème envoi données capteur BME280

Votre Apache se cache, votre Pi gémit, votre SoC fume ? La panne quoi ! C'est ici que vous trouverez sans doute une solution... Sinon du réconfort :)

Modérateurs : Francois, maxty01

Répondre
gorillusion
Messages : 1
Enregistré le : lun. 14 nov. 2022 09:21

Problème envoi données capteur BME280

Message par gorillusion » lun. 14 nov. 2022 10:26

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

piper
Raspinaute
Messages : 443
Enregistré le : sam. 5 juin 2021 18:57

Re: Problème envoi données capteur BME280

Message par piper » lun. 14 nov. 2022 18:32

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)
1 Pi 4 Emby / Samba
1 Pi4 Librelec
1 Pi3 / Hifiberry OSMC
1 Pi0 : traker GPS et acquisitions de données moteur automobile
1 Pi 2 : pilotage de serrures / RFID
5 Arduinos dont 4 nanos et 1 Mega
1 ESP32

Répondre

Retourner vers « En panne ? »