یک زنگ درب بی سیم بسازید که می تواند فایل های MP3 مورد علاقه شما را پخش کند و حتی به عنوان یک بلندگوی هوشمند از آن استفاده کنید.
زنگ درب های بی سیم یک راه عالی برای اضافه کردن زنگ در خانه ها یا ادارات بدون استفاده از هیچ سیمی است. با این حال، این زنگهای بیسیم دارای صداهای MIDI از پیش تنظیمشده محدودی هستند که با فشار دادن دکمه روی واحد فرستنده پخش میشوند.
اگرچه میتوانید بین صداهای MIDI جابهجا شوید و صدا را کم یا زیاد کنید، این تنها کاری است که میتوانید با این زنگهای بیسیم انجام دهید. با این حال، امروز ما یک زنگ در بیسیم هوشمند DIY میسازیم که در آن میتوانید صداهای MP3 یا فایلهای موسیقی سفارشی را اضافه کنید که وقتی کسی کلید زنگ را فشار میدهد پخش میشود. همچنین می توانید تنظیمات را سفارشی کنید و از زنگ به عنوان یک بلندگوی هوشمند استفاده کنید.
چیزهایی که شما نیاز دارید
برای ساخت و راه اندازی یک زنگ درب هوشمند سفارشی DIY به موارد زیر نیاز دارید.
- سرور Home Assistant که روی Raspberry Pi یا هر دستگاه پشتیبانی شده دیگری اجرا می شود.
- ۲ عدد برد Wemos D1 mini یا NodeMCU.
- بلندگو ۵۰ میلی متری
- یک برد تقویت کننده دیجیتال مینی ۵ ولتی PAM8403.
- سیم های دوپونت یا جامپر. همچنین اگر می خواهید اتصال دائمی داشته باشید، ممکن است به آهن لحیم کاری و قلع اتصالات لحیم کاری نیاز داشته باشید.
- کیس برای مونتاژ تمام قطعات شما می توانید این کیس سه بعدی را چاپ کنید.
مرحله ۱: یک بلندگوی هوشمند بسازید
ابتدا یک اسپیکر هوشمند می سازیم که با Home Assistant کار می کند و سپس از آن به عنوان زنگ هوشمند برای این پروژه استفاده می کنیم. همچنین می توانید از این زنگ هوشمند برای پخش هشدارهای صوتی استفاده کنید. مراحل به شرح زیر است:
- Home Assistant را باز کنید و افزونه ESPHome را نصب کنید.
- پس از نصب، ESPHome را باز کنید و روی +New Device کلیک کنید.
- روی Continue کلیک کنید و نامی مانند smart-speaker را تایپ کنید.
- روی Next > یک برد خاص را انتخاب کنید و Wemos D1 و Wemos D1 mini را انتخاب کنید. روی Next کلیک کنید.
- یک بلندگوی هوشمند در لیست پیدا کنید و روی دکمه ویرایش کلیک کنید.
- در پنجره ویرایشگر YAML خود، SSID و رمز عبور Wi-Fi را به روز کنید.
- سپس کد زیر را دقیقاً زیر captive_portal:uart: tx_pin: GPIO3 rx_pin: GPIO1 baud_rate: 9600dfplayer: on_finished_playback: سپس: logger.log: «Playback Encryption n:Ey Key: : – سرویس: dfplayer_next سپس : – dfplayer.play_next: – سرویس: dfplayer_previous سپس: – dfplayer.play_previous: – – سرویس: dfplayer_play متغیرها: فایل: mb n فایل;’ – سرویس: dfplayer_play_loop متغیرها: فایل: int loop_: bool سپس: – dfplayer.play: فایل: !lambda ‘return file;’ حلقه: !lambda ‘return loop_;’ – سرویس: dfplayer_play_folder متغیرها: پوشه: int فایل: int سپس: – dfplayer.play_folder: پوشه: !lambda ‘return folder;’ file: !lambda ‘return file;’ – سرویس: dfplayer_play_loop_folder متغیرها: پوشه: int سپس: – dfplayer.play_folder: پوشه: !lambda ‘return folder;’ حلقه: true – سرویس: dfplayer_set_device_tf سپس: – dfplayer.set_device: TF_CARD – سرویس: dfplayer_set_device_usb سپس: – dfplayer . set_var: USB ولوم: int سپس: – dfplayer.set_volume: !lambda ‘return volume;’ – سرویس: dfplayer_set_eq متغیرها: پیشتنظیم: int سپس: – dfplayer.set_eq: !lambda ‘return static_cast<:eqpreset>(پیشتنظیم);’ – سرویس: dfplayer_sleep سپس: – dfplayer.sleep – سرویس: dfplayer_reset سپس: – dfplayer.reset – سرویس: dfplayer_start hen: – dfplayer.pause – سرویس: dfplayer_stop سپس: – dfplayer.stop – سرویس: dfplayer_random سپس: – dfplayer.random – سرویس: dfplayer_volume_up سپس: – dfplayer.volume_up – – سرویس: dfplayer_volume_down:-dfplayer.
- کلید رمزگذاری موجود خود را جایگزین YourEncryptionKey در کد بالا کنید. همچنین کد زیر را اگر بالای captive_portal است بردارید: text—فقط باید یک بخش api: در کد کامل وجود داشته باشد، در غیر این صورت خطاهای کامپایل را دریافت خواهید کرد.api: encryption: key: «YourEncryptionKey»
- روی Save و سپس Install کلیک کنید.
- گزینه Plug into this computer را انتخاب کنید و منتظر بمانید تا سیستم عامل کامپایل شود.
- پس از کامپایل شدن سیستم عامل، روی لینک دانلود پروژه کلیک کنید تا سیستم عامل را دانلود کنید.
- روی Open ESPHome Web کلیک کنید و D1 mini خود را با استفاده از کابل micro-USB به رایانه شخصی متصل کنید.
- روی Connect کلیک کنید و پورت COM که در آن D1 mini متصل است را انتخاب کنید.
- بر روی Install کلیک کنید و سپس روی Choose File کلیک کنید تا سیستم عاملی را که دانلود کرده اید انتخاب کنید.
- روی Install کلیک کنید.
- پس از نصب سیستم عامل، برای اتصال DFPlayer یا ماژول پخش کننده MP3 خود با برد مینی D1 به نمودار زیر مراجعه کنید.

uart:
tx_pin: GPIO3
rx_pin: GPIO1
baud_rate: 9600
dfplayer:
on_finished_playback:
then:
logger.log: 'Playback finished event'
api:
encryption:
key: "YourEncryptionKey"
services:
- service: dfplayer_next
then:
- dfplayer.play_next:
- service: dfplayer_previous
then:
- dfplayer.play_previous:
- service: dfplayer_play
variables:
file: int
then:
- dfplayer.play: !lambda 'return file;'
- service: dfplayer_play_loop
variables:
file: int
loop_: bool
then:
- dfplayer.play:
file: !lambda 'return file;'
loop: !lambda 'return loop_;'
- service: dfplayer_play_folder
variables:
folder: int
file: int
then:
- dfplayer.play_folder:
folder: !lambda 'return folder;'
file: !lambda 'return file;'
- service: dfplayer_play_loop_folder
variables:
folder: int
then:
- dfplayer.play_folder:
folder: !lambda 'return folder;'
loop: true
- service: dfplayer_set_device_tf
then:
- dfplayer.set_device: TF_CARD
- service: dfplayer_set_device_usb
then:
- dfplayer.set_device: USB
- service: dfplayer_set_volume
variables:
volume: int
then:
- dfplayer.set_volume: !lambda 'return volume;'
- service: dfplayer_set_eq
variables:
preset: int
then:
- dfplayer.set_eq: !lambda 'return static_cast<dfplayer::EqPreset>(preset);'
- service: dfplayer_sleep
then:
- dfplayer.sleep
- service: dfplayer_reset
then:
- dfplayer.reset
- service: dfplayer_start
then:
- dfplayer.start
- service: dfplayer_pause
then:
- dfplayer.pause
- service: dfplayer_stop
then:
- dfplayer.stop
- service: dfplayer_random
then:
- dfplayer.random
- service: dfplayer_volume_up
then:
- dfplayer.volume_up
- service: dfplayer_volume_down
then:
- dfplayer.volume_down
api:
encryption:
key: "YourEncryptionKey"


به طور پیش فرض، ماژول DFPlayer می تواند دو بلندگوی ۳ واتی را اجرا کند که می توانید همانطور که در نمودار نشان داده شده است، به پین های SPK_1 و SPK_2 متصل شوید. ترمینال دیگر هر دو بلندگو به ترمینال GND بین دو ترمینال بلندگو در ماژول DFPlayer متصل می شود.
نکته: برای صدای بلندتر و کاملتر از بلندگوی ۳ واتی ۵۰ میلیمتری یا بزرگتر، حتماً یک ماژول تقویتکننده مانند PAM8403 بین بلندگو و DFPlayer نصب کنید.
مرحله ۲: یک سوئیچ هوشمند بسازید
مینی برد دیگر D1 را بردارید و این مراحل را برای ساخت سوئیچ هوشمند دنبال کنید.
- به Home Assistant > ESPHome بروید، روی New Device کلیک کنید و سپس یک پروژه جدید به نام bell-switch ایجاد کنید. مطمئن شوید که مینی برد Wemos D1 و Wemos D1 را انتخاب کنید.
- روی دکمه Edit در زیر پروژه bell-switch کلیک کنید و کد زیر را درست زیر captive_portal:switch: – پلتفرم: gpio پین: D2 id: relay نام: «Bell» نماد: «mdi:bell» on_turn_on: -۰ delay: -۰. – switch.turn_off: رله
- همچنین، SSID و رمز عبور Wi-Fi را به روز کنید.
- روی Save و سپس Install کلیک کنید.
- روی Plug into this computer کلیک کنید و سپس سیستم عامل را دانلود کنید.
- روی Open ESPHome Web کلیک کنید و از نصب کننده وب برای فلش کردن سیستم عامل روی این برد کوچک D1 استفاده کنید.
- هنگامی که سیستم عامل نصب شد، می توانید همانطور که در نمودار زیر نشان داده شده است، دو سیم را به این مینی برد D1 لحیم کنید و سپس آن دو سیم را به هر کلید زنگ مکانیکی متصل کنید.
- برق را وصل کنید و سوئیچ را تست کنید. خروجی را در سیاهههای مربوط به سوئیچ زنگ خواهید دید.
switch:
- platform: gpio
pin: D2
id: relay
name: "Bell"
icon: "mdi:bell"
on_turn_on:
- delay: 200ms
- switch.turn_off: relay

مرحله ۳: فایل های MP3 را اضافه کنید
می توانید یک کارت microSD را به رایانه شخصی خود متصل کنید و صداهای زنگ را روی کارت کپی کنید. همچنین میتوانید هر آهنگ یا دیالوگی را از فیلمی که میخواهید پخش شود، وقتی کسی کلید زنگ در را فشار میدهد، اضافه کنید.
مطمئن شوید که همه آنها فایل های MP3 هستند و با اعدادی مانند ۱، ۲، ۳، و غیره تغییر نام داده شده اند. به عنوان مثال، ۱.mp3 یا ۲.mp3. همچنین می توانید از سایت های مبدل MP3 متن به گفتار رایگان برای ایجاد صداهای دلخواه خود برای این زنگ هوشمند استفاده کنید. هنگامی که صداهای MP3 کپی شدند، کارت microSD را به DFPlayer وصل کنید.
در این مرحله می توانید اسپیکر هوشمند و کلید زنگ هوشمند را روشن کنید. می توانید از هر آداپتور ۵ ولت و کابل میکرو USB برای تغذیه هر دو دستگاه استفاده کنید. می توانید ماژول را با لمس هر پین IO یا ADKey از DFPlayer به GND آزمایش کنید. پخش فایل های MP3 را خواهید شنید.
مرحله ۴: ایجاد اتوماسیون
اتوماسیون به شما این امکان را می دهد که وقتی شخصی دکمه سوئیچ زنگ هوشمند را فشار می دهد، فایل MP3 مورد نظر را فعال یا پخش کنید. این مراحل را دنبال کنید:
- در Home Assistant به Settings > Automations & Scenes بروید.
- روی Create Automation کلیک کنید و روی Start with an automation خالی کلیک کنید.
- روی Add Trigger > Device کلیک کنید و سپس زنگ را جستجو کنید.
- Bell in Device را انتخاب کنید و گزینه Bell switch on را از منوی کشویی Trigger انتخاب کنید.
- در قسمت Actions، روی Add Action کلیک کنید.
- خدمات تماس را انتخاب کنید.
- ESPHome: smart_speaker_dfplayer_play را جستجو کنید و آن را انتخاب کنید.
- در قسمت فایل، شماره فایل MP3 را که می خواهید پخش کنید تایپ کنید. برای تغییر صدای زنگ در هر زمان می توانید این شماره را تغییر دهید.
- اتوماسیون شما باید به شکل زیر باشد:
- روی دکمه Save کلیک کنید و سپس هر نامی را با توضیحات به این اتوماسیون بدهید (اختیاری).
- روی ذخیره کلیک کنید.

حالا اگر سوئیچ زنگ هوشمند را فشار دهید، اتوماسیون را فعال می کند و صدا را روی زنگ هوشمندی که ما ساختیم پخش می کند.
علاوه بر این، میتوانید صداهای اعلان مانند «مخزن پر است. موتور را خاموش کنید» یا «مصرف انرژی بالا شناسایی شده است» را با استفاده از TTS به MP3 ایجاد کنید، و هر زمان که چنین رویدادهایی اتفاق میافتد یا بر اساس مقادیر حسگر، برای پخش این صداها خودکار ایجاد کنید. همچنین میتوانید از راهنمای دقیق ما برای ساخت حسگر سطح آب هوشمند و دستگاه نظارت بر توان هوشمند برای Home Assistant پیروی کنید.
زنگ هوشمند برای خانه هوشمند
زنگ هوشمندی که ما ساختهایم میتواند به عنوان یک بلندگوی هوشمند با سرور Home Assistant شما برای پخش هشدارها استفاده شود. همچنین میتوانید کنترلهای DFPlayer را روی داشبورد «دستیار خانگی» خود برای پخش، توقف، افزایش/کاهش صدا و غیره اضافه کنید. کافی است یک کارت موجودیت را در داشبورد «دستیار خانگی» اضافه کنید و موجودیتهای کنترلی DFPlayer را برای اضافه کردن آنها جستجو کنید.