Connect RF433 to ESP8266

خواندن کد ریموت چراغ با آردوینو

تبدیل ریموتهای RF معمولی به یک سیستم مبتنی بر اینترنت، یکی از کارهای جالب و تاثیر گذار در هوشمند سازی خانه می‌باشد. در این پست قرار نیست به انواع ریموت و طریق کار کردن آنها به صورت تخصصی بپردازیم. فقط به بخش نرم افزاری کار نگاهی خواهیم انداخت.

 

چرا اتصال RF به ESP8266 :

در ابتدا ببینیم که چرا اصلا این کار را باید انجام دهیم و چه سودی دارد:

اولین مزیت آن، می تواند این باشد، که اگر همین الان برای چراغهای خانه ریموت نصب کرده باشیم. لازم نیست دوباره هزینه کنیم.

دومین مزیت این است که فرض کنید، درب پارکینگ را هم با ریموت بتوان باز کرد و هم با موبایل. ریموت دست شما جا مانده و سر کار هستید. خانم شما با ماشین پشت در است. از همانجا برایش در را باز می کنید و مشکل حل می‌شود.

سومین مزیت برد بالای ماژولهای RF است. شما چراغ انتهای حیاط را به راحتی می توانید به RF وصل کنید. ولی اتصال به وایفای، مشکل است. چون برد وایفای کمتر است.

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

 

شروع کار با RF :

خب برای شروع باید بدانیم نحوه‌ی کار ریموت RF به چه صورت است. بیشتر ریموتهای RF خانه، کد باینری ای را بر روی فرکانسی سوار کرده و ارسال می کنند. گیرنده هم این کد را دریافت می کند. و اگر با تنظیماتش همخوانی داشت دستور را اجرا می کند.

پس ما باید اول از همه فرکانس را پیدا کنیم. بعد از آن کد را بدست آوریم. و در آخر ببینیم با چند بار ارسال کد به دست گیرنده می‌رسد.

برای پیدا کردن فرکانس، ریموت را باز می کنیم و عدد روی کریستال آن را می خوانیم. ریموتی که من با آن کار کردم دارای کریستال 433 بود.

RF433_Remote

RF433_Remote

پس ما باید ماژول RF ای خریداری کنیم که فرکانس آن 433 باشد.

اول ماژول رسیور را وصل می کنیم تا کد ریموت را بخوانیم.

433 MHz RF Receiver Module Pinout

433 MHz RF Receiver Module Pinout

با استفاده از کتابخانه rc-switch و باز کردن مثال ReceiveDemo_Advanced به کد ریموت دست پیدا می کنیم. بعد از آپلود برنامه بر روی ESP8266 شروع به فشار دادن دکمه ها کرده. به این صورت کد مربوط به هر دکمه را پیدا می کنیم.

راه دیگر برای پیدا کردن کد ریموت استفاده از برنامه رایگان Audacity می باشد. به این ترتیب که خروجی ماژول RF خود را به میکروفن لبتاپ یا کامپیتور خود وصل می‌کنیم. وقتی دکمه های ریموت را فشار می دهیم. فراکنس ایجاد شده توسط این نرم افزار ضبط شده. و با تحلیل آن به کد و بازه زمانی آن دست پیدا می کنیم.

 

نحوه اتصال ماژول به فیش میکروفون لبتاپ:

Connect rf433 to Audio

نکته: در اینجا اگر ماژول را به 3.3 ولت وصل کردید می‌توانید از مقاومتها استفاده نکنید. کلا اگر شکل موج کوچک بود مقاوت را کم کنید تا موج ضبط شده قابل درک شود.

 

تحلیل فرکانس:

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

rcswitch_code_output

rcswitch_code_output

در این عکس هم فرکانسی را می‌بینید که با نرم افزار ضبط صدا بدست آورده‌ایم.

audacity_rf433_output

audacity_rf433_output

همینطور که می‌بینید، کد بر روی فرکانس سوار شده است. و زمان این بازه از فرکانس را هم، در پایین عکس می ‌بینید، که 30 میلی ثانیه است.

حال که کد را بدست آورده ایم از مثالهای کتابخانه‌ی rc-switch مثال SendDemo را باز کنید. پروتکل و زمان و تعداد تکرار کد را مشخص کنید. در loop هم کد را وارد می کنیم. چهار نمومه مثال دارد که ما از باینری و دسیمال آن استفاده می کنیم.

esp266-rf433

esp266-rf433

 

/*
  Example for different sending methods
  
  https://github.com/sui77/rc-switch/
  
*/

#include <RCSwitch.h>

RCSwitch mySwitch = RCSwitch();

void setup() {

  Serial.begin(9600);
  
  // Transmitter is connected to Arduino Pin #10  
  mySwitch.enableTransmit(2);
  
  // Optional set protocol (default is 1, will work for most outlets)
   mySwitch.setProtocol(5);

  // Optional set pulse length.
   mySwitch.setPulseLength(300);
  
  // Optional set number of transmission repetitions.
   mySwitch.setRepeatTransmit(10);
  
}

void loop() {

  /* Same switch as above, but using binary code */
  mySwitch.send("010110111100001111010010");
  delay(1000);  
  mySwitch.send("010110111100001111010010");
  delay(1000);
  delay(20000);
}

نکته ای که باید به آن توجه کنید طول پالس است که این کتابخانه به درستی آنرا به ما نشان نمی دهد. ولی چیزی که ما از ضبط صدا بدست آوردیم 30 میلی ثانیه بود. که با حساب 10 بار تکرار ارسال کد، می شود 300 . و اگر کار نکرد آنرا کمی بیشتر کنید.
نکته‌ی دیگر اینکه دو روش باینری و دسیمال یکی هستند و از یکی از آنها استفاده کنید.

حال با اتصال ماژول RF433 به ESP8266 و آموزشهایی که یاد گرفته‌ایم، می توانیم دستگاههای جالبی تولید کنیم. از ترکیب این دو ماژول و استفاده از MQTT به یک سیستم مبتنی بر اینترنت یا همان اینترنت اشیا می‌رسیم، که از هر کجای دنیا به ما امکان دسترسی و کنترل می‌دهد می دهد.

دیدگاه ها :

من بات نیستم

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

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