Turinys:
2025 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2025-01-13 06:57
Taigi, aš norėjau skambinti durimis su šiomis savybėmis:
- Vaizdo įrašas iš durų
- Dvipusis garsas
- Du mygtukai
- Integracija su sienoje esančia planšete, kurioje rodoma „HomeAssistant“vartotojo sąsaja
Pasirodė kai kurios parinktys, pvz., „Doorbird“(brangios ir jose nėra dvipusio garso skambučio naudojant HTML5) ir „Ring doorbell“(bet man nepatinka abonementas, debesų skambučiai)
Kaip kūrėjas ir tinklininkas, aš jau baigiau kai kuriuos projektus, tačiau tai buvo vienas sunkiausių. Turėjau daug problemų, kad dvipusis garsas veiktų taip, kad suprastumėte vienas kitą. Tai daugiausia dėl to, kad yra gana daug aido,…. Idėja kilo iš „DoorPi“, tačiau naudojant SIP protokolą aš per daug aidėjau, todėl nesupratau vienas kito.
Kadangi mano durų skambutis yra visiškai apsaugotas nuo elementų, mes galime pagaminti priekį iš lazerio medžio.
Prekės
- „Raspberry Pi 3 B“arba „3B+“(nesirinkite „Banana Pi“su įmontuotu „PoE“, nes ji nepalaiko standartinės „Raspberry Pi CSI“kameros sąsajos) = 33, 67 €
- „Micro SD“kortelė = 2, 69 eurai
- „Raspberry Pi“žuvies akių kamera = 14, 14 eurų
- PoE adapteris = € 4, 94
- „RaspiAudio Mic“+ = 24, 69 eurai
- Prieiga prie 3D spausdintuvo (ir lazerinio pjaustytuvo)
- Durų skambučio mygtukai
- Daug laiko!
Iš viso tai sudaro 80,13 eurų.
Už taikymo srities ribų vidinė stotis:
- „HomeAssistant“sąranka naudojant „MQTT Broker“
- Sieninis „Android“planšetinis kompiuteris
1 veiksmas: nustatykite „Raspberry Pi“
Aš labai rekomenduoju naudoti „Ethernet“, o ne „Wifi“. Dėl to mano garso kokybė labai pagerėjo. Mes taip pat naudosime UV4L, nes jis palaiko žiniatinklį ir todėl turi integruotą aido panaikinimą. „Doorpi“naudoja linphone, SIP klientą ir man nepavyko įjungti aido.
-
Atsisiųskite „Raspbian Stretch Lite“ir įdiekite ją į „Micro SD“kortelę. Įsitikinkite, kad jums:
įjunkite ssh sukurdami tuščią ssh failą įkrovos skaidinyje
- Vykdykite šias komandas:
sudo apt-get atnaujinimas
sudo apt-get atnaujinimas
Fotoaparatas
Įjunkite fotoaparatą naudodami raspi-config ir įsitikinkite, kad GPU yra bent 192 MB RAM.
RaspiAudio
Sekite „RaspiAudio“diegimo vadovą, kurį rasite adresu
UV4L
Vykdykite UV4L diegimo vadovą, kurį rasite adresu
Sureguliuokite failą /etc/uv4l/uv4l-raspicam.conf ir būtinai pakoreguokite šiuos nustatymus:
Ryškiausi nustatymai yra tikimybė --enable-webrtc-video = no: taip yra todėl, kad vaizdo įrašą visada transliuosime iš uv4l naudodami h264 koduotą mjpeg.
Naudodami šiuos failus, esančius/usr/share/uv4l/demos/doorpi/, jau galite išbandyti dvipusio garso ir vaizdo įrašus.
- index.html (pervardykite jį iš index.html5, reikia pervardyti dėl nurodymų įkelti reikalavimų)
- main.js
- signalling.js
Naršykite adresu https:// [ip-of-raspberrypi]: 8888 ir patikrinkite, ar jums pavyks, kad dvipusis garsas veiktų.
pi-mqtt-gpio
Lengviausias būdas rasti durų skambučio mygtukus yra prijungti juos prie aviečių pi ir naudoti pi-mqtt-gpio, kad būtų integruotas su „HomeAssistant“.
Mano konfigūracijos failas yra toks:
mqtt: host: xxxx port: 1883 user: [username] password: [password] topic_prefix: "doorbell" gpio_modules: - name: raspberrypi module: raspberrypi cleanup: yes digital_inputs: - name: button_1 modulis: raspberrypi pin: 17 on_payload: " Išjungta "off_payload:" On "pullup: yes pulldown: ne - vardas: button_2 modulis: raspberrypi pin: 27 on_payload:" Off "off_payload:" On "pullup: yes pullldown: no
Atkreipkite dėmesį, kad kadangi yra daugiau įžeminimo kaiščių kaip 3,3 V kaiščių, aš pasirenku naudoti ištraukiamus GPIO kaiščius ir taip apverčiau savo MQTT pranešimus.
uv4l-raspicam.conf
vairuotojas = raspicam |
auto-video_nr = taip |
kadrų buferiai = 4 |
kodavimas = h264 |
plotis = 1024 |
aukštis = 768 |
kadrų dažnis = 10 |
rotacija = 270 #priklausomai nuo jūsų aparatinės įrangos sąrankos |
serverio parinktis =-uostas = 9090 |
serverio parinktis = --bind-host-address = 0.0.0.0 |
serverio parinktis =-use-ssl = taip |
server-option = --ssl-private-key-file =/etc/uv4l/selfsign.key |
serverio parinktis = --ssl-sertifikatas-failas =/etc/uv4l/selfsign.crt |
server-option = --enable-webrtc-video = ne |
server-option = --enable-webrtc-audio = taip |
server-option = --webrtc-vad = taip |
server-option = --webrtc-echo-cancellation = taip |
serverio parinktis = --webrtc-max-playout-delay = 34 |
server-option = --enable-www-server = taip |
server-option = --www-root-path =/usr/share/uv4l/demos/doorpi/ |
server-option = --www-index-file = index.html |
serverio parinktis = --www-uostas = 8888 |
serverio parinktis = --www-bind-host-address = 0.0.0.0 |
serverio parinktis = --www-use-ssl = taip |
server-option = --www-ssl-private-key-file =/etc/uv4l/selfsign.key |
server-option = --www-ssl-certificate-file =/etc/uv4l/selfsign.crt |
serverio parinktis = --www-webrtc-signalizacijos kelias =/webrtc |
peržiūrėti rawgistfile1.txt, kurį priglobia „GitHub“❤
2 žingsnis: durų skambučio dėžutė
- durų skambutis v1.stl: 3D spausdinta dėžutė, skirta aviečių pi ir PoE adapteriui
- durų skambutis priekyje v1.svg: lazeriu supjaustyta veido plokštė
- „doorbell-micro v1.stl“: 3D atspausdinta dėžutė, kurioje yra mopronas, apvyniotas garso izoliacija, priklijuotas prie veido plokštės
Įsukite aviečių pi į pritvirtintus varžtų laikiklius ir uždėkite PoE adapterį viršuje dešinėje. Įdėkite fotoaparatą ir mikrofoną į vietą (būtinai atjunkite mikrofoną ir įsitikinkite, kad mikrofono anga yra gerai sulygiuota su skylute priekinėje plokštelėje).
3 žingsnis: „HomeAssistant“integracija
Šie failai leidžia integruoti „HomeAssistant“:
- doorpi.yaml: paketas, kuriame yra viskas, kas susiję su durų skambučiu, įskaitant MQTT pranešimų klausymą ir automatiką, leidžiančią skambėti, kai paspaudžiamas durų skambutis
- www/doorpi/doorpi-card.js: lovelace doorpi kortelė, kuriai reikia signalling.js ir doorpi-camera-view.js
SVARBU: atminkite, kad turite naudoti „HomeAssistant“su https/ssl, nes priešingu atveju „Chrome“neleis pasiekti garso įrenginių.
4 žingsnis: laimingas durų skambutis
Štai ir viskas, dabar turėtumėte skambinti kam nors per durų skambutį, o „HomeAssistant“automatiškai persijungs į durų skambučio kortelę. Ten galite nuspręsti priimti ar ignoruoti durų skambutį.