Note

Bonjour et bienvenue dans la Communauté Facebook des passionnés de Raspberry Pi, Arduino et ESP32 de SunFounder ! Plongez plus profondément dans l’univers des Raspberry Pi, Arduino et ESP32 avec d’autres passionnés.

Pourquoi rejoindre ?

  • Support d’experts : Résolvez les problèmes après-vente et les défis techniques avec l’aide de notre communauté et de notre équipe.

  • Apprendre et partager : Échangez des astuces et des tutoriels pour améliorer vos compétences.

  • Aperçus exclusifs : Accédez en avant-première aux annonces de nouveaux produits et aux aperçus.

  • Réductions spéciales : Profitez de réductions exclusives sur nos produits les plus récents.

  • Promotions festives et cadeaux : Participez à des cadeaux et des promotions de vacances.

👉 Prêt à explorer et à créer avec nous ? Cliquez [Ici] et rejoignez-nous aujourd’hui !

4.1.5 Sonnette Visuelle Intelligente

Introduction

Dans ce projet, nous allons fabriquer une sonnette visuelle intelligente DIY.

Composants Nécessaires

Pour ce projet, nous avons besoin des composants suivants.

../_images/3.1.19components.png

Il est très pratique d’acheter un kit complet, voici le lien :

Nom

ARTICLES DANS CE KIT

LIEN

Kit Raphael

337

Raphael Kit

Vous pouvez également les acheter séparément via les liens ci-dessous.

INTRODUCTION DES COMPOSANTS

LIEN D’ACHAT

Carte d’extension GPIO

ACHETER

Plaque d’expérimentation (Breadboard)

ACHETER

Fils de Liaison

ACHETER

Résistance

ACHETER

Bouton

ACHETER

Module Audio et Haut-parleur

-

Module de Caméra

ACHETER

Schéma de Connexion

Nom T-Board

physique

wiringPi

BCM

GPIO27

Pin 13

2

27

../_images/3.1.19_schematic.png

Procédures Expérimentales

Étape 1 : Construisez le circuit.

../_images/3.1.19fritzing.png

Avant ce projet, vous devez vous assurer d’avoir terminé 3.1.3 Module Audio et 3.1.2 Module Vidéo.

Étape 2 : Allez dans le dossier du code.

cd ~/raphael-kit/python/

Étape 3 : Exécutez.

python3 4.1.5_DoorBell.py

Après avoir exécuté le code, lorsque le bouton est pressé, une sonnette retentira et la caméra enregistrera une vidéo de 5 secondes, qui sera stockée sous le nom de fichier visitor.h264 dans le répertoire ~. Si vous avez un écran, vous pouvez également voir les visiteurs en prévisualisant la vidéo en temps réel. Code

Note

Vous pouvez Modifier/Réinitialiser/Copier/Exécuter/Arrêter le code ci-dessous. Mais avant cela, vous devez aller dans le chemin du code source comme raphael-kit/python. Après avoir modifié le code, vous pouvez l’exécuter directement pour voir l’effet.

#!/usr/bin/env python3
from picamera import PiCamera
from pygame import mixer
import RPi.GPIO as GPIO
import time
import os
user = os.getlogin()
user_home = os.path.expanduser(f'~{user}')


camera = PiCamera()

BtnPin = 18
status = False

def setup():
    GPIO.setmode(GPIO.BCM)
    GPIO.setup(BtnPin, GPIO.IN, GPIO.PUD_UP)
    mixer.init()

def takePhotos(pin):
    global status
    status = True

def main():
    global status
    GPIO.add_event_detect(BtnPin, GPIO.FALLING, callback=takePhotos)
    while True:
        if status:
            mixer.music.load(f'{user_home}/raphael-kit/music/doorbell.wav')
            mixer.music.set_volume(0.7)
            mixer.music.play()
            camera.start_preview(alpha=200)
            camera.start_recording(f'{user_home}/visitor.h264')
            print ('Have a visitor')
            time.sleep(5)
            mixer.music.stop()
            camera.stop_preview()
            camera.stop_recording()
            status = False

def destroy():
    GPIO.cleanup()
    mixer.music.stop()
    camera.stop_preview()
    camera.stop_recording()

if __name__ == '__main__':
    setup()
    try:
        main()
    except KeyboardInterrupt:
        destroy()

Explication du Code

status = False

Ceci est un indicateur utilisé pour enregistrer si la sonnette est utilisée.

GPIO.add_event_detect(BtnPin, GPIO.FALLING, callback=takePhotos)

Configurer l’événement de BtnPin, lorsque le bouton est pressé (le signal de niveau passe de haut à bas), appeler la fonction takePhotos().

if status:
    mixer.music.load(f'{user_home}/raphael-kit/music/doorbell.wav')
    mixer.music.set_volume(0.7)
    mixer.music.play()
    camera.start_preview(alpha=200)
    camera.start_recording(f'{user_home}/visitor.h264')
    print ('Have a visitor')
    time.sleep(5)
    mixer.music.stop()
    camera.stop_preview()
    camera.stop_recording()
    status = False

Cinq secondes sont utilisées ici pour jouer de la musique et enregistrer des vidéos, fonctionnant ainsi comme une sonnette.

Photo du Phénomène

../_images/4.1.5door_bell.JPG