Innholdsfortegnelse:
2025 Forfatter: John Day | [email protected]. Sist endret: 2025-01-13 06:58
Så jeg ville ha en dørklokke med følgende funksjoner:
- Video fra døren
- Toveis lyd
- To knapper
- Integrasjon med veggmontert nettbrett som viser HomeAssistant UI
Noen alternativer kom som Doorbird (dyrt og de har ikke toveis lydanrop med HTML5) og Ring dørklokke (men jeg liker ikke et abonnement, skybasert dørklokke)
Som utvikler og tinkerer var jeg allerede ferdig med noen prosjekter, men dette var uten tvil en av de vanskeligste å fullføre. Jeg hadde mange problemer med å få toveislyden til å fungere til et punkt der du kan forstå hverandre. Dette hovedsakelig fordi det er ganske mye ekko,…. Ideen kommer fra DoorPi, men med SIP-protokollen hadde jeg for mye ekko som gjorde at jeg ikke forsto hverandre.
Siden dørklokken min er fullstendig beskyttet mot elementene, kan vi lage fronten i laserskåret tre.
Rekvisita
- Raspberry Pi 3 B eller 3B+ (ikke gå for en Banana Pi med PoE innebygd da den ikke støtter standard Raspberry Pi CSI kamera grensesnitt) = € 33, 67
- Micro SD -kort = € 2, 69
- Bringebær Pi fiskeøyekamera = € 14, 14
- PoE -adapter = € 4, 94
- RaspiAudio Mic + = € 24, 69
- Tilgang til 3D -skriver (og laserskjærer)
- Knapper til dørklokken
- Mye tid!
Dette utgjør totalt € 80,13.
Utenom omfang, innendørsstasjonen:
- HomeAssistent oppsett med en MQTT -megler
- Veggmontert Android -nettbrett
Trinn 1: Sett opp Raspberry Pi
Jeg anbefaler deg å bruke ethernet i stedet for Wifi. Lydkvaliteten min ble mye bedre på grunn av den. Vi vil også bruke UV4L siden den støtter webrtc og dermed har innebygd ekkokansellering. Doorpi bruker linphone, en SIP -klient, og jeg klarte ikke å få ekkokanselleringen til å fungere.
-
Last ned Raspbian Stretch Lite og installer det på Micro SD -kortet. Vær sikker på at du:
aktiver ssh ved å opprette en tom ssh -fil i oppstartspartisjonen
- Kjør følgende kommandoer:
sudo apt-get oppdatering
sudo apt-get oppgradering
Kamera
Aktiver kameraet via raspi-config og kontroller at GPU-en har minst 192 MB RAM.
RaspiAudio
Følg installasjonsguiden til RaspiAudio som du finner på
UV4L
Følg installasjonsguiden til UV4L som du finner på
Juster filen /etc/uv4l/uv4l-raspicam.conf og sørg for å justere følgende innstillinger:
De mest bemerkelsesverdige innstillingene er probaby --enable-webrtc-video = no: dette er fordi vi alltid vil streame videoen fra uv4l ved å bruke h264-kodet mjpeg.
Ved å bruke følgende filer i/usr/share/uv4l/demos/doorpi/, kan du allerede teste toveis lyd og video.
- index.html (gi nytt navn fra index.html5, må bytte navn på grunn av krav til opplasting av instrukser)
- main.js
- signalling.js
Bla til https:// [ip-of-raspberrypi]: 8888 og test om du kan få 2-veis lyd til å fungere.
pi-mqtt-gpio
Den enkleste måten jeg fant for å få dørklokkeknappene til å fungere, er å feste dem til bringebær-pi og bruke pi-mqtt-gpio for å integrere den med HomeAssistant.
Konfigurasjonsfilen min er som følger:
mqtt: vert: xxxx port: 1883 bruker: [brukernavn] passord: [passord] topic_prefix: "dørklokke" gpio_modules: - navn: raspberrypi modul: raspberrypi opprydding: ja digital_innganger: - navn: button_1 modul: raspberrypi pin: 17 on_payload: " Av "off_payload:" On "pullup: yes pulldown: no - name: button_2 module: raspberrypi pin: 27 on_payload:" Off "off_payload:" On "pullup: yes pulldown: no
Vær oppmerksom på at ettersom det er flere bakkestifter tilgjengelig som 3.3V -pinner, velger jeg å bruke pullup GPIO -pinner og dermed omvendt MQTT -meldingene mine.
uv4l-raspicam.conf
driver = raspicam |
auto-video_nr = ja |
rammebuffere = 4 |
koding = h264 |
bredde = 1024 |
høyde = 768 |
framerate = 10 |
rotation = 270 #avhengig av maskinvareoppsettet ditt |
server-option = --port = 9090 |
server-option = --bind-host-address = 0.0.0.0 |
server-option = --use-ssl = ja |
server-option = --ssl-private-key-file =/etc/uv4l/selfsign.key |
server-option = --ssl-certificate-file =/etc/uv4l/selfsign.crt |
server-option = --enable-webrtc-video = nei |
server-option = --enable-webrtc-audio = ja |
server-option = --webrtc-vad = ja |
server-option = --webrtc-echo-cancellation = ja |
server-option = --webrtc-max-playout-delay = 34 |
server-option = --enable-www-server = ja |
server-option = --www-root-path =/usr/share/uv4l/demos/doorpi/ |
server-option = --www-index-file = index.html |
server-option = --www-port = 8888 |
server-option = --www-bind-host-address = 0.0.0.0 |
server-option = --www-use-ssl = ja |
server-option = --www-ssl-private-key-file =/etc/uv4l/selfsign.key |
server-option = --www-ssl-certificate-file =/etc/uv4l/selfsign.crt |
server-option = --www-webrtc-signal-path =/webrtc |
se rawgistfile1.txt hostet av ❤ av GitHub
Trinn 2: Dørklokkeboks
- doorbell-back v1.stl: 3D-trykt eske for bringebær pi og PoE-adapter
- doorbell-front v1.svg: Laserskåret ansiktsplate
- doorbell-micro v1.stl: 3D-trykt eske med mirofon innpakket med lydisolering, limt på frontplaten
Skru bringebær -pi i de vedlagte skruholderne og sett PoE -adapteren øverst til høyre. Sett kameraet og mikrofonen på plass (sørg for å koble fra mikrofonen og sørg for at hullet på mikrofonen er godt justert med et hull i frontplaten).
Trinn 3: HomeAssistant Integration
Følgende filer tillater HomeAssistant -integrasjon:
- doorpi.yaml: pakke som inneholder alt som er relatert til dørklokken, inkludert å lytte til MQTT -meldinger og automatiseringer for å spille av klokkeslettet når dørklokken trykkes
- www/doorpi/doorpi-card.js: lovelace doorpi-kort som trenger signalling.js og doorpi-camera-view.js
VIKTIG: Vær oppmerksom på at du må kjøre HomeAssistant med https/ssl, for ellers vil chrome ikke gi deg tilgang til lydenhetene.
Trinn 4: Happy Doorbell-calling
Det er det, du bør nå kunne ringe noen via dørklokken, og HomeAssistant vil automatisk bytte til dørklokkekortet. Der kan du bestemme deg for å godta eller ignorere dørklokken.