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