Nota
Ciao, benvenuto nella SunFounder Raspberry Pi & Arduino & ESP32 Enthusiasts Community su Facebook! Approfondisci le tue conoscenze di Raspberry Pi, Arduino ed ESP32 con altri appassionati.
Perché unirti a noi?
Supporto esperto: Risolvi i problemi post-vendita e le sfide tecniche con l’aiuto della nostra comunità e del nostro team.
Impara e condividi: Scambia consigli e tutorial per migliorare le tue competenze.
Anteprime esclusive: Ottieni accesso anticipato a nuovi annunci di prodotti e anteprime esclusive.
Sconti speciali: Approfitta di sconti esclusivi sui nostri prodotti più recenti.
Promozioni e omaggi festivi: Partecipa a omaggi e promozioni speciali durante le festività.
👉 Sei pronto a esplorare e creare con noi? Clicca su [Qui] e unisciti oggi stesso!
4.1.5 Campanello intelligente con videocamera
Introduzione
In questo progetto, creiamo un campanello intelligente con videocamera fai-da-te.
Componenti necessari
In questo progetto, avremo bisogno dei seguenti componenti.
È sicuramente conveniente acquistare un kit completo, ecco il link:
Nome |
ELEMENTI IN QUESTO KIT |
LINK |
|---|---|---|
Kit Raphael |
337 |
Puoi anche acquistarli separatamente dai link sottostanti.
INTRODUZIONE AI COMPONENTI |
LINK PER L’ACQUISTO |
|---|---|
- |
|
Schema elettrico
T-Board Name |
physical |
wiringPi |
BCM |
GPIO27 |
Pin 13 |
2 |
27 |
Procedura sperimentale
Passo 1: Costruisci il circuito.
Prima di iniziare questo progetto, assicurati di aver completato 3.1.3 Modulo Audio e 3.1.2 Modulo Video.
Passo 2: Accedi alla cartella del codice.
cd ~/raphael-kit/python/
Passo 3: Esegui.
python3 4.1.5_DoorBell.py
Dopo l’esecuzione del codice, quando viene premuto il pulsante, suonerà una campanella e la fotocamera registrerà un video di 5 secondi, che verrà salvato come file visitor.h264 nella directory ~. Se hai uno schermo, puoi anche visualizzare i visitatori in tempo reale.
Codice
Nota
Puoi Modificare/Resettare/Copiare/Eseguire/Fermare il codice qui sotto. Ma prima di farlo, devi accedere al percorso del codice sorgente come raphael-kit/python. Dopo aver modificato il codice, puoi eseguirlo direttamente per vedere l’effetto.
#!/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()
Spiegazione del Codice
status = False
Questo è un flag utilizzato per registrare se il campanello è stato utilizzato.
GPIO.add_event_detect(BtnPin, GPIO.FALLING, callback=takePhotos)
Imposta l’evento di BtnPin, quando viene premuto il pulsante (il segnale di livello cambia da alto a basso), viene chiamata la funzione 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
Qui vengono utilizzati cinque secondi per riprodurre la musica e registrare i video, svolgendo la funzione di campanello.
Immagine del fenomeno