آموزش آردوینوپروژه های آردوینو

انتقال صدا جاسوسی شنود رادیویی با آردوینو

در این پروژه قصد داریم با استفاده از آردوینو و NRF24L01 یک دستگاه شنود صوتی بسازیم. این دستگاه جاسوسی صوتی بسیار قابل تنظیم است و به راحتی با دستگاه ها و سیستم های دیگر ادغام می شود. ماژول NRF24L01 امکان انتقال از طریق کانال خاص را فراهم می کند و تضمین می کند که ارسال های ما تا حدی خصوصی باقی میمانند و به سادگی قابل دسترسی دیگران نیست. این دستگاه برای نظارت بر اتاق کودک، مراقبت از حیوان خانگی یا … مناسب است.

با اندازه کوچک و قابلیت حمل آسان، این دستگاه جاسوسی صوتی برای هر کسی که نیاز به ضبط صوت پنهان و قابل اعتماد دارد، قابل استفاده است. مدار فرستنده از باتری تغذیه می کند و دارای محافظ باتری داخلی است. اندازه کوچک پروژه آن را همه کاره و مفید می کند. صرف نظر از اندازه کوچک، کیفیت صدای مناسب و همچنین محدوده انتقال مناسبی را نیز ارائه می دهد. در این مدار فرستنده آردوینو دارای میکروفونی است که ورودی صدا را می گیرد و در قسمت دیگر گیرنده آردوینو صدا را از فرستنده دریافت کرده و با استفاده از اسپیکر آن را خارج میکند.

نحوه این ارتباط به صورت ساده قبلا در آموزش ارتباط دو آردوینو با ماژول NRF24L01 توضیح داده شده است.

دستگاه شنود آردوینو چطور کار میکند؟

عملکرد دستگاه شنود آردوینو نسبتاً ساده است. ما از یک میکروفون خازنی برای دریافت صداها استفاده کرده ایم. سپس صداهای دریافت شده با استفاده از یک پیش تقویت کننده ساخته شده در اطراف یک تقویت کننده عملیاتی تقویت می شوند. سپس این سیگنال تقویت شده با استفاده از ADC داخلی آردوینو نمونه برداری می شود. هنگامی که داده ها نمونه می شوند و به فرمت دیجیتال تبدیل می شوند، آن داده ها با استفاده از ماژول NRF24L01 منتقل می شوند. در سمت گیرنده، داده های دریافتی پردازش می شوند و سیگنال PWM مربوطه در GPIO های آردوینو تولید می شود. این سیگنال های PWM سپس به یک بلندگو برای بازتولید صدا داده می شود. ما قبلاً PWM را به طور مفصل توضیح دادیم میتوانید مقاله PWM آردوینو را مطالعه کنید.

قطعات مورد نیاز

تمام قطعاتی که برای ساخت فرستنده و گیرنده آردوینو آردوینو نیاز دارید در زیر لیست شده است.

  • آردوینو نانو
  • آردوینو پرو مینی
  • 2* ماژول NRF24L01
  • ماژول TP4056 با حفاظت
  • بلندگوی کوچک
  • LM358
  • مقاومت ها، خازن ها

مدار دستگاه انتقال صدا رادیویی با آردوینو

نمودار مدار کامل فرستنده اشکال جاسوسی آردوینو در زیر نشان داده شده است.

مدار دستگاه انتقال صدا رادیویی با آردوینو

مدار حول یک آردوینو پرو مینی ساخته شده است. من این برد را به دلیل اندازه کوچکش انتخاب کردم. همچنین می توانید از بردهای آردوینو دیگر مانند آردوینو نانو، Uno و… استفاده کنید. باتری به ماژول TP4056 متصل است، این ماژول وظیفه شارژ و محافظت از باتری لیتیوم یونی را بر عهده دارد. سپس خروجی ماژول به یک تنظیم کننده ولتاژ 3.3 ولت متصل می شود. کل مدار توسط خروجی 3.3 ولت از این رگولاتور تغذیه می شود. میکروفون به ورودی پیش تقویت کننده ساخته شده در اطراف آمپلی فایر LM358 متصل است. پیش تقویت کننده سیگنال ضعیف میکروفون را تا حد مناسبی تقویت می کند. خروجی پیش تقویت کننده به پایه ADC0 آردوینو متصل می شود. ماژول NRF24L01 به پین های SPI آردوینو متصل است. پین های CE و CSN به پین های دیجیتال D7 و D8 آردوینو متصل می شوند.

فرستنده صدا رادیویی با آردوینو

تصویر زیر نمودار مدار گیرنده صوتی آردوینو را با استفاده از nRF24L01 نشان می دهد.

مدار گیرنده صدا رادیویی با آردوینو

در اینجا من از آردوینو نانو استفاده کرده ام، زیرا استفاده از آن بسیار ساده تر است و کوچک بودن اندازه در سمت گیرنده زیاد مهم نیست. آردوینو از پورت USB روی بردی تغذیه می کند. 5 ولت از آردوینو نانو به رگولاتور ولتاژ متصل است. خروجی 3.3 ولت از AMS1117-3.3 برای تغذیه NRF24L01 استفاده می شود. اتصالات به ماژول NRF همانند فرستنده است. سپس اسپیکر به پین های دیجیتال D9 و D10 متصل می شود.

بخش گیرنده شنود صدا Arduino

کد آردوینو برای فرستنده صدا جاسوسی

کد کامل در انتهای صفحه در فایل دانلودی قرار داده شده است. به عنوان اولین قدم مطمئن شوید که کتابخانه های RF24 و RF24Audio را از Library Manager نصب کرده اید.

#include <SPI.h>
#include <RF24Audio.h>
#include <RF24.h>
#include "printf.h"
RF24 radio(7,8);
RF24Audio rfAudio(radio,0);
void setup() {
  radio.begin();
  radio.setPALevel(RF24_PA_MAX);
  radio.setChannel(10);
  radio.setDataRate(RF24_250KBPS);
  rfAudio.begin();
  rfAudio.transmit();
}
void loop() {}

کد از کتابخانه RF24Audio استفاده می کند. در ابتدا کتابخانه های مورد نیاز را فراخوانی کردیم. سپس دو نمونه برای برای کتابخانه های RF24 و RF24Audio ایجاد کرده ایم. در تابع setup، کتابخانه RF24 را با استفاده از تابع radio.beign مقداردهی اولیه کردیم. تابع setPALevel برای تنظیم حداکثر توان انتقال ماژول NRF24L01 استفاده می شود. تابع setChannel برای تنظیم کانال خصوصی و تابع setDataRate برای تنظیم نرخ انتقال داده استفاده می شود. پس از آن، کتابخانه RF24Aduio را مقداردهی اولیه کردیم. بعداً با فراخوانی تابع rfAudio.transmit جریان صوتی را فعال کردیم.

اگر در مورد این مطلب سوالی دارید در قسمت نظرات بپرسید

کد گیرنده شنود صدا برای آردوینو

#include <SPI.h>
#include <RF24Audio.h>
#include <RF24.h>
#include "printf.h"
RF24 radio(7,8);
RF24Audio rfAudio(radio,0);
void setup() {
  radio.begin();
  radio.setChannel(10);
  radio.setDataRate(RF24_250KBPS);
  rfAudio.begin(); 
  rfAudio.setVolume(7);
  rfAudio. receive();
}
void loop() {}

کد از کتابخانه RF24Audio استفاده می کند. در ابتدا کتابخانه های مورد نیاز را فراخوانی کردیم. پس از آن دو نمونه برای کتابخانه های RF24 و RF24Audio ایجاد کرده ایم. در تابع setup، کتابخانه RF24 را با استفاده از تابع radio.beign مقداردهی اولیه کردیم. تابع setChannel برای تنظیم کانال خصوصی و تابع setDataRate برای تنظیم نرخ انتقال داده استفاده می شود. پس از آن، کتابخانه RF24Aduio را مقداردهی اولیه کردیم. تابع setVolume برای تنظیم سطح صدای خروجی استفاده می شود که از 1-7 پشتیبانی می کند. بعداً با فراخوانی تابع rfAudio.receive، جریان صدا را فعال کردیم.

می توانید با کاهش نرخ داده یا با استفاده از ماژول NRF با PA و LNA منطقه پوشش را افزایش دهید. به خاطر داشته باشید که کاهش سرعت داده بر کیفیت صدا تأثیر می گذارد. برای به دست آوردن کیفیت صدای بهتر باید سرعت داده را افزایش دهید.

موارد موجود در فایل : سورس کامل

3.6 (8 نفر)

برای دریافت مطالب جدید کانال تلگرام یا پیج اینستاگرام ما را دنبال کنید.

محمد رحیمی

محمد رحیمی هستم. سعی میکنم در آیرنکس مطالب مفید قرار بدهم. سوالات مربوط به این مطلب را در قسمت نظرات همین مطلب اعلام کنید. سعی میکنم در اسرع وقت به نظرات شما پاسخ بدهم.

10 نظر

  1. NRF24L01+PA+LNA هم قابل استفاده هستش تو این پروژه؟؟؟

  2. سلام عرض ادب یه سوال داشتم اونم اینکه من برای این پروژه تجهیزات لازم رو گرفتم ولی توی بخش پروگرام کردن برد نانو، سیستم برد رو نمیشناسه حتی با نصب درایور ch340
    موقع پروگرام ارور هم نمیده فقط میزنه loading و همینطور میمونه
    اگه میشه راهنمایی کنید

    1. سلام عزیز
      در منوی tools قسمت processor گزینه old bootloader را انتخاب کنید

  3. سلام دوست گرامی…ایا امکان ساخت یک نمونه برای خرید وجود دارد؟
    (بصورت کامل گیرنده و فرستنده)
    قیمت مجموعه بدون باتری چند میشود؟

    1. سلام عزیز
      باید خودتان بسازید.

  4. توی مدار نمونه c5 و c4 نیست .
    عدد گذاری خازن ها اشتباهه؟

  5. سلام. من قصد ساخت این پروژه رو دارم. اما تمام محصولات توی فروشگاه شما نیست. چطوری میتونم دو عدد uno با باقی قطعات این پروژه رو خریداری کنم ؟
    محصولات غیر موجود
    AMS1117-3.3
    TP4056 و یک سری قطعات دیگه

  6. کدتون تست شده است؟
    برای این میگم که تو void loop کدی نیست.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *