Ballon sonde
codeur_du_01
Messages postés
7
Date d'inscription
Statut
Membre
Dernière intervention
-
codeur_du_01 Messages postés 7 Date d'inscription Statut Membre Dernière intervention -
codeur_du_01 Messages postés 7 Date d'inscription Statut Membre Dernière intervention -
Bonjour, j'ai un problème avec mon code , j'ai un programme timelapse et un programme de température présion que je doit assembler et je n'ai pas les connaissance requise les programmes à assembles son :
pour la temp:
##############################
Et pour la timelaps :
###############################
pour la temp:
import smbus import picamera import time from datetime import datetime from ctypes import c_short from ctypes import c_byte from ctypes import c_ubyte DEVICE = 0x76 # Default device I2C address bus = smbus.SMBus(1) # Rev 2 Pi, Pi 2 & Pi 3 uses bus 1 # Rev 1 Pi uses bus 0 def getShort(data, index): # return two bytes from data as a signed 16-bit value return c_short((data[index + 1] << 8) + data[index]).value def getUShort(data, index): # return two bytes from data as an unsigned 16-bit value return (data[index + 1] << 8) + data[index] def getChar(data, index): # return one byte from data as a signed char result = data[index] if result > 127: result -= 256 return result def getUChar(data, index): # return one byte from data as an unsigned char result = data[index] & 0xFF return result def readBME280ID(addr=DEVICE): # Chip ID Register Address REG_ID = 0xD0 (chip_id, chip_version) = bus.read_i2c_block_data(addr, REG_ID, 2) return (chip_id, chip_version) def readBME280All(addr=DEVICE): # Register Addresses REG_DATA = 0xF7 REG_CONTROL = 0xF4 REG_CONFIG = 0xF5 REG_CONTROL_HUM = 0xF2 REG_HUM_MSB = 0xFD REG_HUM_LSB = 0xFE # Oversample setting - page 27 OVERSAMPLE_TEMP = 2 OVERSAMPLE_PRES = 2 MODE = 1 # Oversample setting for humidity register - page 26 OVERSAMPLE_HUM = 2 bus.write_byte_data(addr, REG_CONTROL_HUM, OVERSAMPLE_HUM) control = OVERSAMPLE_TEMP << 5 | OVERSAMPLE_PRES << 2 | MODE bus.write_byte_data(addr, REG_CONTROL, control) # Read blocks of calibration data from EEPROM # See Page 22 data sheet cal1 = bus.read_i2c_block_data(addr, 0x88, 24) cal2 = bus.read_i2c_block_data(addr, 0xA1, 1) cal3 = bus.read_i2c_block_data(addr, 0xE1, 7) # Convert byte data to word values dig_T1 = getUShort(cal1, 0) dig_T2 = getShort(cal1, 2) dig_T3 = getShort(cal1, 4) dig_P1 = getUShort(cal1, 6) dig_P2 = getShort(cal1, 8) dig_P3 = getShort(cal1, 10) dig_P4 = getShort(cal1, 12) dig_P5 = getShort(cal1, 14) dig_P6 = getShort(cal1, 16) dig_P7 = getShort(cal1, 18) dig_P8 = getShort(cal1, 20) dig_P9 = getShort(cal1, 22) dig_H1 = getUChar(cal2, 0) dig_H2 = getShort(cal3, 0) dig_H3 = getUChar(cal3, 2) dig_H4 = getChar(cal3, 3) dig_H4 = (dig_H4 << 24) >> 20 dig_H4 = dig_H4 | (getChar(cal3, 4) & 0x0F) dig_H5 = getChar(cal3, 5) dig_H5 = (dig_H5 << 24) >> 20 dig_H5 = dig_H5 | (getUChar(cal3, 4) >> 4 & 0x0F) dig_H6 = getChar(cal3, 6) # Wait in ms (Datasheet Appendix B: Measurement time and current calculation) wait_time = ( 1.25 + (2.3 * OVERSAMPLE_TEMP) + ((2.3 * OVERSAMPLE_PRES) + 0.575) + ((2.3 * OVERSAMPLE_HUM) + 0.575) ) time.sleep(wait_time / 1000) # Wait the required time # Read temperature/pressure/humidity data = bus.read_i2c_block_data(addr, REG_DATA, 8) pres_raw = (data[0] << 12) | (data[1] << 4) | (data[2] >> 4) temp_raw = (data[3] << 12) | (data[4] << 4) | (data[5] >> 4) hum_raw = (data[6] << 8) | data[7] # Refine temperature var1 = ((((temp_raw >> 3) - (dig_T1 << 1))) * (dig_T2)) >> 11 var2 = ( ((((temp_raw >> 4) - (dig_T1)) * ((temp_raw >> 4) - (dig_T1))) >> 12) * (dig_T3) ) >> 14 t_fine = var1 + var2 temperature = float(((t_fine * 5) + 128) >> 8) # Refine pressure and adjust for temperature var1 = t_fine / 2.0 - 64000.0 var2 = var1 * var1 * dig_P6 / 32768.0 var2 = var2 + var1 * dig_P5 * 2.0 var2 = var2 / 4.0 + dig_P4 * 65536.0 var1 = (dig_P3 * var1 * var1 / 524288.0 + dig_P2 * var1) / 524288.0 var1 = (1.0 + var1 / 32768.0) * dig_P1 if var1 == 0: pressure = 0 else: pressure = 1048576.0 - pres_raw pressure = ((pressure - var2 / 4096.0) * 6250.0) / var1 var1 = dig_P9 * pressure * pressure / 2147483648.0 var2 = pressure * dig_P8 / 32768.0 pressure = pressure + (var1 + var2 + dig_P7) / 16.0 # Refine humidity humidity = t_fine - 76800.0 humidity = (hum_raw - (dig_H4 * 64.0 + dig_H5 / 16384.0 * humidity)) * ( dig_H2 / 65536.0 * ( 1.0 + dig_H6 / 67108864.0 * humidity * (1.0 + dig_H3 / 67108864.0 * humidity) ) ) humidity = humidity * (1.0 - dig_H1 * humidity / 524288.0) if humidity > 100: humidity = 100 elif humidity < 0: humidity = 0 return temperature / 100.0, pressure / 100.0, humidity ################################################################################################# def display_data(nb_for, chip_id, chip_version, temperature, pressure, humidity): # affichage des données collectées grâce aux librairies readBME280ID & readBME280All now = datetime.now() print("\n{}: {}ème fois...".format(now.strftime("%d/%m/%Y %H:%M:%S"), nb_for + 1)) print("Chip ID : ", chip_id) print("Version : ", chip_version) print("Temperature : ", temperature, "C") print("Pression : ", pressure, "hPa") print("Humidité : ", humidity, "%") def record_data(chip_id, chip_version, temperature, pressure, humidity): # mise en forme des données collectées à enregistrer now = datetime.now() mesures = "{}\n\nChip ID : {}\nVersion : {}\nTemperature : {}C\nPression : {}hPa\nHumidité : {}%\n\n".format( now.strftime("%d/%m/%Y %H:%M:%S"), chip_id, chip_version, temperature, pressure, humidity, ) # stockage des données formatées dans un fichier mesures.txt à la racine with open("mesures.txt", "a") as file: file.write(mesures) ################################################################################################# def main(): # fonction principale print(" start ".center(50, "-")) for nb_for in range(3): # nb fois que la boucle est parcourrue au total # récupération des données via les appareils de mesures chip_id, chip_version = readBME280ID() temperature, pressure, humidity = readBME280All() # actionner la fonction display display_data(nb_for, chip_id, chip_version, temperature, pressure, humidity) # actionner la fonction record record_data(chip_id, chip_version, temperature, pressure, humidity) time.sleep(3) # nb secondes d'attente print(" end ".center(50, "-")) if __name__ == "__main__": # execution du programme main()
##############################
Et pour la timelaps :
###############################
import time import picamera with picamera.PiCamera() as camera: for n in range(3): camera.start_preview() time.sleep(2) camera.capture_sequence([ 'image%02d.jpg' % i for i in range(1) ]) camera.stop_preview()
EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici : ICI Merci d'y penser dans tes prochains messages. |
A voir également:
- Ballon sonde
- Java ballon - Télécharger - Jeux vidéo
- Ballon de foot - Guide
- Sonde extérieure la crosse technology ne fonctionne plus - Forum Accessoires & objets connectés
- Comment dégonfler un ballon de foot - Forum Loisirs / Divertissements
- Dessin animé ballon dirigeable - Forum Cinéma / Télé
4 réponses
yg_be
Messages postés
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 584
bonjour,
quel comportement attends-tu?
quel comportement attends-tu?
le premier programme présenter doit d'abord prendre la température , pression , humidité : ensuit,
il les enregistre dans un fichier "mesures.txt" .
Le deuxième programme présenter , qui luit prend plusieurs photo.
Et donc en ajoutent les deux programmes :
je voudrais que le programme prenne la température , la pression et l'humidité en les enregistrent dans le fichiée "mesurs.txt" et une fois fais , il faut qu'il prenne des photo.
je travail sur un rasberry a l'école pour un projet avec le B.I.A ;on envoi un ballon sond , je pourrait donc pas tester le programme pour l'instant en raison du confinement .
il les enregistre dans un fichier "mesures.txt" .
Le deuxième programme présenter , qui luit prend plusieurs photo.
Et donc en ajoutent les deux programmes :
je voudrais que le programme prenne la température , la pression et l'humidité en les enregistrent dans le fichiée "mesurs.txt" et une fois fais , il faut qu'il prenne des photo.
je travail sur un rasberry a l'école pour un projet avec le B.I.A ;on envoi un ballon sond , je pourrait donc pas tester le programme pour l'instant en raison du confinement .
ok, je me demandais dans quel ordre tout cela devait se passer.
le plus simple, me semble, alors, dans le fichier "temp":
- de créer une fonction timelaps()
- de mettre dans cette fonction les ligne 3 à 11 du fichier "timelaps"
- d'appeler cette fonction en ligne 212 du fichier "temp", juste avant les trois secondes d'attente.
il est également possible de faire un seul programme en gardant les deux fichiers séparés.
le plus simple, me semble, alors, dans le fichier "temp":
- de créer une fonction timelaps()
- de mettre dans cette fonction les ligne 3 à 11 du fichier "timelaps"
- d'appeler cette fonction en ligne 212 du fichier "temp", juste avant les trois secondes d'attente.
il est également possible de faire un seul programme en gardant les deux fichiers séparés.
comme ça :
import smbus
import picamera
import time
from datetime import datetime
from ctypes import c_short
from ctypes import c_byte
from ctypes import c_ubyte
DEVICE = 0x76 # Default device I2C address
bus = smbus.SMBus(1) # Rev 2 Pi, Pi 2 & Pi 3 uses bus 1
# Rev 1 Pi uses bus 0
def getShort(data, index):
# return two bytes from data as a signed 16-bit value
return c_short((data[index + 1] << 8) + data[index]).value
def getUShort(data, index):
# return two bytes from data as an unsigned 16-bit value
return (data[index + 1] << 8) + data[index]
def getChar(data, index):
# return one byte from data as a signed char
result = data[index]
if result > 127:
result -= 256
return result
def getUChar(data, index):
# return one byte from data as an unsigned char
result = data[index] & 0xFF
return result
def readBME280ID(addr=DEVICE):
# Chip ID Register Address
REG_ID = 0xD0
(chip_id, chip_version) = bus.read_i2c_block_data(addr, REG_ID, 2)
return (chip_id, chip_version)
def readBME280All(addr=DEVICE):
# Register Addresses
REG_DATA = 0xF7
REG_CONTROL = 0xF4
REG_CONFIG = 0xF5
REG_CONTROL_HUM = 0xF2
REG_HUM_MSB = 0xFD
REG_HUM_LSB = 0xFE
# Oversample setting - page 27
OVERSAMPLE_TEMP = 2
OVERSAMPLE_PRES = 2
MODE = 1
# Oversample setting for humidity register - page 26
OVERSAMPLE_HUM = 2
bus.write_byte_data(addr, REG_CONTROL_HUM, OVERSAMPLE_HUM)
control = OVERSAMPLE_TEMP << 5 | OVERSAMPLE_PRES << 2 | MODE
bus.write_byte_data(addr, REG_CONTROL, control)
# Read blocks of calibration data from EEPROM
# See Page 22 data sheet
cal1 = bus.read_i2c_block_data(addr, 0x88, 24)
cal2 = bus.read_i2c_block_data(addr, 0xA1, 1)
cal3 = bus.read_i2c_block_data(addr, 0xE1, 7)
# Convert byte data to word values
dig_T1 = getUShort(cal1, 0)
dig_T2 = getShort(cal1, 2)
dig_T3 = getShort(cal1, 4)
dig_P1 = getUShort(cal1, 6)
dig_P2 = getShort(cal1, 8)
dig_P3 = getShort(cal1, 10)
dig_P4 = getShort(cal1, 12)
dig_P5 = getShort(cal1, 14)
dig_P6 = getShort(cal1, 16)
dig_P7 = getShort(cal1, 18)
dig_P8 = getShort(cal1, 20)
dig_P9 = getShort(cal1, 22)
dig_H1 = getUChar(cal2, 0)
dig_H2 = getShort(cal3, 0)
dig_H3 = getUChar(cal3, 2)
dig_H4 = getChar(cal3, 3)
dig_H4 = (dig_H4 << 24) >> 20
dig_H4 = dig_H4 | (getChar(cal3, 4) & 0x0F)
dig_H5 = getChar(cal3, 5)
dig_H5 = (dig_H5 << 24) >> 20
dig_H5 = dig_H5 | (getUChar(cal3, 4) >> 4 & 0x0F)
dig_H6 = getChar(cal3, 6)
# Wait in ms (Datasheet Appendix B: Measurement time and current calculation)
wait_time = (
1.25
+ (2.3 * OVERSAMPLE_TEMP)
+ ((2.3 * OVERSAMPLE_PRES) + 0.575)
+ ((2.3 * OVERSAMPLE_HUM) + 0.575)
)
time.sleep(wait_time / 1000) # Wait the required time
# Read temperature/pressure/humidity
data = bus.read_i2c_block_data(addr, REG_DATA, 8)
pres_raw = (data[0] << 12) | (data[1] << 4) | (data[2] >> 4)
temp_raw = (data[3] << 12) | (data[4] << 4) | (data[5] >> 4)
hum_raw = (data[6] << 8) | data[7]
# Refine temperature
var1 = ((((temp_raw >> 3) - (dig_T1 << 1))) * (dig_T2)) >> 11
var2 = (
((((temp_raw >> 4) - (dig_T1)) * ((temp_raw >> 4) - (dig_T1))) >> 12) * (dig_T3)
) >> 14
t_fine = var1 + var2
temperature = float(((t_fine * 5) + 128) >> 8)
# Refine pressure and adjust for temperature
var1 = t_fine / 2.0 - 64000.0
var2 = var1 * var1 * dig_P6 / 32768.0
var2 = var2 + var1 * dig_P5 * 2.0
var2 = var2 / 4.0 + dig_P4 * 65536.0
var1 = (dig_P3 * var1 * var1 / 524288.0 + dig_P2 * var1) / 524288.0
var1 = (1.0 + var1 / 32768.0) * dig_P1
if var1 == 0:
pressure = 0
else:
pressure = 1048576.0 - pres_raw
pressure = ((pressure - var2 / 4096.0) * 6250.0) / var1
var1 = dig_P9 * pressure * pressure / 2147483648.0
var2 = pressure * dig_P8 / 32768.0
pressure = pressure + (var1 + var2 + dig_P7) / 16.0
# Refine humidity
humidity = t_fine - 76800.0
humidity = (hum_raw - (dig_H4 * 64.0 + dig_H5 / 16384.0 * humidity)) * (
dig_H2
/ 65536.0
1.0
+ dig_H6 / 67108864.0 * humidity * (1.0 + dig_H3 / 67108864.0 * humidity)
)
)
humidity = humidity * (1.0 - dig_H1 * humidity / 524288.0)
if humidity > 100:
humidity = 100
elif humidity < 0:
humidity = 0
return temperature / 100.0, pressure / 100.0, humidity
#################################################################################################
def display_data(nb_for, chip_id, chip_version, temperature, pressure, humidity):
# affichage des données collectées grâce aux librairies readBME280ID & readBME280All
now = datetime.now()
print("\n{}: {}ème fois...".format(now.strftime("%d/%m/%Y %H:%M:%S"), nb_for + 1))
print("Chip ID : ", chip_id)
print("Version : ", chip_version)
print("Temperature : ", temperature, "C")
print("Pression : ", pressure, "hPa")
print("Humidité : ", humidity, "%")
def record_data(chip_id, chip_version, temperature, pressure, humidity):
# mise en forme des données collectées à enregistrer
now = datetime.now()
mesures = "{}\n\nChip ID : {}\nVersion : {}\nTemperature : {}C\nPression : {}hPa\nHumidité : {}%\n\n".format(
now.strftime("%d/%m/%Y %H:%M:%S"),
chip_id,
chip_version,
temperature,
pressure,
humidity,
)
# stockage des données formatées dans un fichier mesures.txt à la racine
with open("mesures.txt", "a") as file:
file.write(mesures)
#################################################################################################
def main():
# fonction principale
print(" start ".center(50, "-"))
for nb_for in range(3): # nb fois que la boucle est parcourrue au total
# récupération des données via les appareils de mesures
chip_id, chip_version = readBME280ID()
temperature, pressure, humidity = readBME280All()
# actionner la fonction display
display_data(nb_for, chip_id, chip_version, temperature, pressure, humidity)
# actionner la fonction record
record_data(chip_id, chip_version, temperature, pressure, humidity)
time.sleep(3) # nb secondes d'attente
print(" end ".center(50, "-"))
time.sleep(1)
######################################################
with picamera.PiCamera() as camera:
for n in range(3):
camera.start_preview()
time.sleep(5)
camera.capture_sequence([
'image%02d.jpg' % i
for i in range(1)
])
camera.stop_preview()
if __name__ == "__main__":
# execution du programme
main()
import smbus
import picamera
import time
from datetime import datetime
from ctypes import c_short
from ctypes import c_byte
from ctypes import c_ubyte
DEVICE = 0x76 # Default device I2C address
bus = smbus.SMBus(1) # Rev 2 Pi, Pi 2 & Pi 3 uses bus 1
# Rev 1 Pi uses bus 0
def getShort(data, index):
# return two bytes from data as a signed 16-bit value
return c_short((data[index + 1] << 8) + data[index]).value
def getUShort(data, index):
# return two bytes from data as an unsigned 16-bit value
return (data[index + 1] << 8) + data[index]
def getChar(data, index):
# return one byte from data as a signed char
result = data[index]
if result > 127:
result -= 256
return result
def getUChar(data, index):
# return one byte from data as an unsigned char
result = data[index] & 0xFF
return result
def readBME280ID(addr=DEVICE):
# Chip ID Register Address
REG_ID = 0xD0
(chip_id, chip_version) = bus.read_i2c_block_data(addr, REG_ID, 2)
return (chip_id, chip_version)
def readBME280All(addr=DEVICE):
# Register Addresses
REG_DATA = 0xF7
REG_CONTROL = 0xF4
REG_CONFIG = 0xF5
REG_CONTROL_HUM = 0xF2
REG_HUM_MSB = 0xFD
REG_HUM_LSB = 0xFE
# Oversample setting - page 27
OVERSAMPLE_TEMP = 2
OVERSAMPLE_PRES = 2
MODE = 1
# Oversample setting for humidity register - page 26
OVERSAMPLE_HUM = 2
bus.write_byte_data(addr, REG_CONTROL_HUM, OVERSAMPLE_HUM)
control = OVERSAMPLE_TEMP << 5 | OVERSAMPLE_PRES << 2 | MODE
bus.write_byte_data(addr, REG_CONTROL, control)
# Read blocks of calibration data from EEPROM
# See Page 22 data sheet
cal1 = bus.read_i2c_block_data(addr, 0x88, 24)
cal2 = bus.read_i2c_block_data(addr, 0xA1, 1)
cal3 = bus.read_i2c_block_data(addr, 0xE1, 7)
# Convert byte data to word values
dig_T1 = getUShort(cal1, 0)
dig_T2 = getShort(cal1, 2)
dig_T3 = getShort(cal1, 4)
dig_P1 = getUShort(cal1, 6)
dig_P2 = getShort(cal1, 8)
dig_P3 = getShort(cal1, 10)
dig_P4 = getShort(cal1, 12)
dig_P5 = getShort(cal1, 14)
dig_P6 = getShort(cal1, 16)
dig_P7 = getShort(cal1, 18)
dig_P8 = getShort(cal1, 20)
dig_P9 = getShort(cal1, 22)
dig_H1 = getUChar(cal2, 0)
dig_H2 = getShort(cal3, 0)
dig_H3 = getUChar(cal3, 2)
dig_H4 = getChar(cal3, 3)
dig_H4 = (dig_H4 << 24) >> 20
dig_H4 = dig_H4 | (getChar(cal3, 4) & 0x0F)
dig_H5 = getChar(cal3, 5)
dig_H5 = (dig_H5 << 24) >> 20
dig_H5 = dig_H5 | (getUChar(cal3, 4) >> 4 & 0x0F)
dig_H6 = getChar(cal3, 6)
# Wait in ms (Datasheet Appendix B: Measurement time and current calculation)
wait_time = (
1.25
+ (2.3 * OVERSAMPLE_TEMP)
+ ((2.3 * OVERSAMPLE_PRES) + 0.575)
+ ((2.3 * OVERSAMPLE_HUM) + 0.575)
)
time.sleep(wait_time / 1000) # Wait the required time
# Read temperature/pressure/humidity
data = bus.read_i2c_block_data(addr, REG_DATA, 8)
pres_raw = (data[0] << 12) | (data[1] << 4) | (data[2] >> 4)
temp_raw = (data[3] << 12) | (data[4] << 4) | (data[5] >> 4)
hum_raw = (data[6] << 8) | data[7]
# Refine temperature
var1 = ((((temp_raw >> 3) - (dig_T1 << 1))) * (dig_T2)) >> 11
var2 = (
((((temp_raw >> 4) - (dig_T1)) * ((temp_raw >> 4) - (dig_T1))) >> 12) * (dig_T3)
) >> 14
t_fine = var1 + var2
temperature = float(((t_fine * 5) + 128) >> 8)
# Refine pressure and adjust for temperature
var1 = t_fine / 2.0 - 64000.0
var2 = var1 * var1 * dig_P6 / 32768.0
var2 = var2 + var1 * dig_P5 * 2.0
var2 = var2 / 4.0 + dig_P4 * 65536.0
var1 = (dig_P3 * var1 * var1 / 524288.0 + dig_P2 * var1) / 524288.0
var1 = (1.0 + var1 / 32768.0) * dig_P1
if var1 == 0:
pressure = 0
else:
pressure = 1048576.0 - pres_raw
pressure = ((pressure - var2 / 4096.0) * 6250.0) / var1
var1 = dig_P9 * pressure * pressure / 2147483648.0
var2 = pressure * dig_P8 / 32768.0
pressure = pressure + (var1 + var2 + dig_P7) / 16.0
# Refine humidity
humidity = t_fine - 76800.0
humidity = (hum_raw - (dig_H4 * 64.0 + dig_H5 / 16384.0 * humidity)) * (
dig_H2
/ 65536.0
- (
1.0
+ dig_H6 / 67108864.0 * humidity * (1.0 + dig_H3 / 67108864.0 * humidity)
)
)
humidity = humidity * (1.0 - dig_H1 * humidity / 524288.0)
if humidity > 100:
humidity = 100
elif humidity < 0:
humidity = 0
return temperature / 100.0, pressure / 100.0, humidity
#################################################################################################
def display_data(nb_for, chip_id, chip_version, temperature, pressure, humidity):
# affichage des données collectées grâce aux librairies readBME280ID & readBME280All
now = datetime.now()
print("\n{}: {}ème fois...".format(now.strftime("%d/%m/%Y %H:%M:%S"), nb_for + 1))
print("Chip ID : ", chip_id)
print("Version : ", chip_version)
print("Temperature : ", temperature, "C")
print("Pression : ", pressure, "hPa")
print("Humidité : ", humidity, "%")
def record_data(chip_id, chip_version, temperature, pressure, humidity):
# mise en forme des données collectées à enregistrer
now = datetime.now()
mesures = "{}\n\nChip ID : {}\nVersion : {}\nTemperature : {}C\nPression : {}hPa\nHumidité : {}%\n\n".format(
now.strftime("%d/%m/%Y %H:%M:%S"),
chip_id,
chip_version,
temperature,
pressure,
humidity,
)
# stockage des données formatées dans un fichier mesures.txt à la racine
with open("mesures.txt", "a") as file:
file.write(mesures)
#################################################################################################
def main():
# fonction principale
print(" start ".center(50, "-"))
for nb_for in range(3): # nb fois que la boucle est parcourrue au total
# récupération des données via les appareils de mesures
chip_id, chip_version = readBME280ID()
temperature, pressure, humidity = readBME280All()
# actionner la fonction display
display_data(nb_for, chip_id, chip_version, temperature, pressure, humidity)
# actionner la fonction record
record_data(chip_id, chip_version, temperature, pressure, humidity)
time.sleep(3) # nb secondes d'attente
print(" end ".center(50, "-"))
time.sleep(1)
######################################################
with picamera.PiCamera() as camera:
for n in range(3):
camera.start_preview()
time.sleep(5)
camera.capture_sequence([
'image%02d.jpg' % i
for i in range(1)
])
camera.stop_preview()
if __name__ == "__main__":
# execution du programme
main()
oui j'ai lu les instruction , mais le programme je ne peut pas le tester parce-que je n'est pas de rasberry à la
maison il faut que j'attende la rentrer pour le tester .
mais il n'y a pas d'erreurs de syntaxe quand je le lance .
maison il faut que j'attende la rentrer pour le tester .
mais il n'y a pas d'erreurs de syntaxe quand je le lance .
Traceback (most recent call last):
File "ballsond.py", line 1, in <module>
import smbus
ModuleNotFoundError: No module named 'smbus'