Création d'une alarme (Raspberry Pi)

Signaler
Messages postés
1
Date d'inscription
mardi 23 février 2016
Statut
Membre
Dernière intervention
23 février 2016
-
Bonjour, je souhaite créer une alarme très peu complexe à base de Raspberry. Je possède le modèle B+.
J'ai malheureusement quelques soucis avec le code source:

- Je pense qu'il y a des erreurs :D :D (Je ne m'y connais pas très bien en codage mais j'apprends).

-Je ne sais pas comment faire pour pouvoir désactiver l'alarme avec un code numérique tapé sur le clavier connecté au Raspberry.

La sirène sera diffusé sur les enceintes connectées en Jack.

Voici mon code (Alarme Pi.h)

    //input.c
    #include <bcm2835.h>
    #include <stido.h>
    #define PIN RPI_GPIO_P1_15
    int main(int argc, char ** argv) {
        if (!bcm2835_init()) {
            return 1;
       }
        // Fixe le GPIO en entrée
        bcm2835_gpio_fsel(PIN, BCM2835_GPIO_FSEL_INPT);
        //  avec une résistance de pull down
        bcm2835_gpio_set_pud(PIN, BCM2835_GPIO_PUD_DOWN);
     
        while (1) {
            // lecture du niveau d'entrée
            uint8_t value = bcm2835_gpio_lev(PIN);
            printf("lecture GPIO22: %d\n", value);
     
       
          //Si la valeur est égal à 1
       if ( GPIO22: value=1) {
          fichier = fopen ("music.py", "r");
          
     
       // Image
       IplImage *image1=NULL;
       IplImage *image2=NULL;
       IplImage *subImage=NULL;
     
       // Capture vidéo
       CvCapture *capture;
     
       // Ouvrir le flux vidéo,  mettre en paramètre le device de la cam (pour X = /dev/videoX)
       capture = cvCreateCameraCapture(atoi(argv[1]));
     
       //Configuration de la capture par défaut, donc la taille d'une image que l'on va récupérer. 640*480
       cvSetCaptureProperty(capture, CV_CAP_PROP_FRAME_WIDTH, 640);
       cvSetCaptureProperty(capture, CV_CAP_PROP_FRAME_HEIGHT, 480);
       cvSetCaptureProperty(capture, CV_CAP_PROP_BRIGHTNESS, 0.65);
     
       
          // On récupère une image
          image1 = cvQueryFrame(capture);
     
          // On sauvegarde notre image 1.
          cvSaveImage("buffer1.jpg",image1,0);
          
          // On attend 2000 milisecondes
          cvWaitKey(2000);
     
          // On récupère une image 2
          image2 = cvQueryFrame(capture);
     
          // On sauvegarde notre image 2
          cvSaveImage("buffer2.jpg",image2,0);
          
          // On attend 2000 milisecondes
          cvWaitKey(2000);
     
          // On récupère une image 3
          image3 = cvQueryFrame(capture);
     
          // On sauvegarde notre image
          cvSaveImage("buffer3.jpg",image2,0);
       }

          //Boucle infinie
       while ( GPIO22: value=0)
       { if (!bcm2835_init()) {
            return 1;
       }
        // Fixe le GPIO en entrée
        bcm2835_gpio_fsel(PIN, BCM2835_GPIO_FSEL_INPT);
        //  avec une résistance de pull down
        bcm2835_gpio_set_pud(PIN, BCM2835_GPIO_PUD_DOWN);
     
        while (1) {
            // lecture du niveau d'entrée
            uint8_t value = bcm2835_gpio_lev(PIN);
            printf("lecture GPIO22: %d\n", value);
     
       
          //Si la valeur est égal à 1
       if ( GPIO22: value=1) {
          fichier = fopen ("music.py", "r")
          
       }
       
       //Fin du code


et le second code (music.py)
    pygame.mixer.music.load("257.mp3")
    pygame.mixer.music.play()


Je vous remercie par avance de pouvoir m'aider
Cordialement

Tom2669