#!/usr/bin/env python
# -*- coding: utf-8 -*-
# import des librairies
from RF24 import *
import time
import RPi.GPIO as GPIO
# numerotation BCM des gpio
GPIO.setmode(GPIO.BCM)
# desactivation des warning
GPIO.setwarnings(False)
# definition des variables
red_pin = 26
green_pin = 19
blue_pin = 13
# gpio de la led RGB en mode output
GPIO.setup(red_pin, GPIO.OUT)
GPIO.setup(green_pin, GPIO.OUT)
GPIO.setup(blue_pin, GPIO.OUT)
# les 3 couleurs eteintent
GPIO.output(red_pin, False)
GPIO.output(green_pin, False)
GPIO.output(blue_pin, False)
#on definit le module nrf24l01
radio = RF24(22, 0)
# l'adresse utilisé
addr = 0x1111111111
# initialisation du module et lance l' écoute
radio.begin()
radio.openReadingPipe(0,addr)
radio.startListening()
# on écrit qu'on est prêt dans le terminal
print "prêt ...."
# try pour pouvoir nettoyer les gpio lors d'un control c
try:
# boucle infini
while True:
#si le module est ok
if radio.available():
# on lance la boucle
while radio.available():
# si on reçoit un message on le passe dans la variable "recup",
message = radio.read(32)
recup ='{}'.format(message)
# on découpe le message pour ne recupérer que le chiffre de la temperature
temp = recup[6:11]
# on passe "temp" qui est pour le moment une chaine de caractere en chiffre a virgule
temp = float(temp)
# en fonction de la valeur on allume la couleur correspondante et on écrit le message reçu dans le terminal
if temp >= 30 :
GPIO.output(red_pin, True)
print recup
time.sleep(2)
GPIO.output(red_pin, False)
elif 22 < temp < 30 :
GPIO.output(green_pin, True)
print recup
time.sleep(2)
GPIO.output(green_pin, False)
elif temp <= 22 :
GPIO.output(blue_pin, True)
print recup
time.sleep(2)
GPIO.output(blue_pin, False)
# en cas d'abort par controle c on nettoye les gpio avant de sortir du programme.
except KeyboardInterrupt:
GPIO.cleanup()