You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

173 lines
4.7 KiB

2 years ago
# pour installer la librairie MCP9808 :
# cd ~
# git clone https://github.com/adafruit/Adafruit_Python_MCP9808.git
# Attention à la version de python par défaut ( python --version)
# Si ce n'est pas la bonne :
# sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.7 1
# cd Adafruit_Python_MCP9808
# sudo python setup.py install
import RPi.GPIO as GP
import time
import Adafruit_MCP9808.MCP9808 as mcp
import serial
import threading
# initialisation du raspberry
capteurTemp = mcp.MCP9808()
GP.setwarnings(False)
GP.setmode(GP.BOARD)
GP.setup(7,GP.OUT, initial=GP.LOW) # D1, a1
GP.setup(11,GP.OUT, initial=GP.LOW) # D2, b1
GP.setup(13,GP.OUT, initial=GP.LOW) # D3, c1
GP.setup(15,GP.OUT, initial=GP.LOW) # D4, d1
GP.setup(19,GP.OUT, initial=GP.LOW) # D5, e1
GP.setup(21,GP.OUT, initial=GP.LOW) # D6, f1
GP.setup(23,GP.OUT, initial=GP.LOW) # D7, g1
GP.setup(22,GP.OUT, initial=GP.LOW) # D8, DP1
GP.setup(29,GP.OUT, initial=GP.LOW) # a2, RVB rouge
GP.setup(31,GP.OUT, initial=GP.LOW) # b2, RVB bleu
GP.setup(33,GP.OUT, initial=GP.LOW) # c2, RVB vert
GP.setup(35,GP.OUT, initial=GP.LOW) # d2
GP.setup(37,GP.OUT, initial=GP.LOW) # e2
GP.setup(16,GP.OUT, initial=GP.LOW) # f2
GP.setup(18,GP.OUT, initial=GP.LOW) # g2
GP.setup(24,GP.OUT, initial=GP.LOW) # DP2
GP.setup(26,GP.IN) # Bouton poussoir 1
GP.setup(32,GP.IN) # Bouton poussoir 2
#Ouverture et configuration du port UART
monPort = serial.Serial(
port='/dev/ttyS0',
baudrate = 9600,
parity=serial.PARITY_NONE,
stopbits=serial.STOPBITS_ONE,
bytesize=serial.EIGHTBITS,
timeout=1
)
# Lancement d'un thread pour répliquer les octets reçus sur l'uart
def Lire_port():
""" écoute le port UART et renvoie les octets reçus"""
while monPort.isOpen(): # tant que le port est ouvert le thread fonctionne
data = (monPort.read())
if len(data) !=0:
print(data)
monPort.write(data)
threadLectureUART = threading.Thread(target=Lire_port, args=())
threadLectureUART.start()
#Test des boutons poussoir
print ("appuyer sur le bouton poussoir 1")
while GP.input(26):
pass
print("BP1 OK")
print ("appuyer sur le bouton poussoir 2")
while GP.input(32):
pass
print("BP2 OK")
#Test des leds
print("mettre le cavalier en position LED puis appuyer sur BP1 pour lancer le test")
while GP.input(26):
pass
for i in range(5):
GP.output(7, GP.HIGH)
GP.output(11, GP.HIGH)
GP.output(13, GP.HIGH)
GP.output(15, GP.HIGH)
GP.output(19, GP.HIGH)
GP.output(21, GP.HIGH)
GP.output(23, GP.HIGH)
GP.output(22, GP.HIGH)
time.sleep(0.5)
GP.output(7, GP.LOW)
GP.output(11, GP.LOW)
GP.output(13, GP.LOW)
GP.output(15, GP.LOW)
GP.output(19, GP.LOW)
GP.output(21, GP.LOW)
GP.output(23, GP.LOW)
GP.output(22, GP.LOW)
time.sleep(0.5)
#Test afficheurs
print("mettre le cavalier en position afficheur puis appuyer sur BP1 pour lancer le test")
while GP.input(26):
pass
for i in range(5):
GP.output(7, GP.HIGH)
GP.output(11, GP.HIGH)
GP.output(13, GP.HIGH)
GP.output(15, GP.HIGH)
GP.output(19, GP.HIGH)
GP.output(21, GP.HIGH)
GP.output(23, GP.HIGH)
GP.output(22, GP.HIGH)
GP.output(29, GP.HIGH)
GP.output(31, GP.HIGH)
GP.output(33, GP.HIGH)
GP.output(35, GP.HIGH)
GP.output(37, GP.HIGH)
GP.output(16, GP.HIGH)
GP.output(18, GP.HIGH)
GP.output(24, GP.HIGH)
time.sleep(0.5)
GP.output(7, GP.LOW)
GP.output(11, GP.LOW)
GP.output(13, GP.LOW)
GP.output(15, GP.LOW)
GP.output(19, GP.LOW)
GP.output(21, GP.LOW)
GP.output(23, GP.LOW)
GP.output(22, GP.LOW)
GP.output(29, GP.LOW)
GP.output(31, GP.LOW)
GP.output(33, GP.LOW)
GP.output(35, GP.LOW)
GP.output(37, GP.LOW)
GP.output(16, GP.LOW)
GP.output(18, GP.LOW)
GP.output(24, GP.LOW)
time.sleep(0.5)
#Test Led RVB
print("mettre le cavalier en position Led RVB puis appuyer sur BP1 pour lancer le test Led RVB")
while GP.input(26):
pass
GP.output(29, GP.LOW)
time.sleep(0.5)
GP.output(29, GP.HIGH)
GP.output(31, GP.LOW)
time.sleep(0.5)
GP.output(31, GP.HIGH)
GP.output(33, GP.LOW)
time.sleep(0.5)
GP.output(31, GP.LOW)
time.sleep(0.5)
GP.output(31, GP.HIGH)
GP.output(29, GP.LOW)
time.sleep(0.5)
GP.output(29, GP.HIGH)
GP.output(33, GP.LOW)
time.sleep(0.5)
GP.output(29, GP.LOW)
GP.output(31, GP.LOW)
GP.output(33, GP.LOW)
time.sleep(0.5)
GP.output(29, GP.HIGH)
GP.output(31, GP.HIGH)
GP.output(33, GP.HIGH)
# Test capteur de température
print("appuyer sur BP1 pour lancer le test capteur de température")
while GP.input(26):
pass
capteurTemp.begin()
for i in range(5):
temperature = capteurTemp.readTempC()
print("Température = ",temperature, " °C")
time.sleep(0.5)