استفاده از کتابخانه ی RCSwitch در ESP-12F

سلام
برای استفاده اصولی از این کتابخونه براساس اینتراپت ها تو این ماژول ESP-12F (ESP8266)
از چه دستوراتی باید استفاده کرد
هدف اینه که تو لوپ اصلی دائم در حال دریافت سیگنال باشه

توی یک تست D2 قرار داده شد و ورودی هم به D4 وصل شد
mySwitch.enableReceive(D2)
جواب میده ولی بنظر اصولی نیست
چون خطی برای فعال کردن اینتراپت نداره
LED آبی روی برد هم کم نور روشن و انگار دائم درحال دریافت پالس هست !
ولی خروجی نمیده و با زدن دکمه ریموت خروجی میده

1:15:24.800 -> Decimal: 841512 (24Bit) Binary: 000011001101011100101000
01:15:24.924 -> Tri-State: not applicable
01:15:24.929 -> PulseLength: 355 microseconds
01:15:24.987 -> Protocol: 1
01:15:24.987 -> 11052,430,1018,417,1018,420,1024,429,1012,1154,305,1151,332,393,1054,390,1054,1118,340,1113,344,384,1060,1114,344,380,1064,1108,350,1107,352,1108,349,372,1073,374,1070,1101,354,370,1078,1096,358,370,1077,364,1081,366,1076,
01:15:25.182 -> 

ممنون از جوابها و
این کدها از Example های خود کتابخانه برای آردوینو هست و برای ESP نیاز به تغییر داره

#include <RCSwitch.h>
RCSwitch mySwitch = RCSwitch();
void setup() {
Serial.begin(9600);
mySwitch.enableReceive(0); // Receiver on interrupt 0 => that is pin
}
void loop() {
if (mySwitch.available()) {
output(mySwitch.getReceivedValue(), mySwitch.getReceivedBitlength(), mySwitch.getReceivedDelay(), mySwitch.getReceivedRawdata(),mySwitch.getReceivedProtocol());
mySwitch.resetAvailable();
Serial.println();
}
}

اگر درنظر بگیرید که ما به کتابخانه آشنایی نداریم و توضیحات بیشتری بنویسید راحتتر جواب میگیرید.
منظورتون رو از این جمله متوجه نشدم
هدف اینه که تو لوپ اصلی دائم در حال دریافت سیگنال باشه
و همینطور D2 و D4 چیه؟

کتابخانه ش رو اینترنت هست
بلی هدف لوپ دائم هست
D2 و 4 هم پایه های از پیش تعریفی GPIO هستند
هنوز وقت نشده ادامه بدم

سلام دوست عزیز،
بنده برداشت خودم را از این تاپیک برای شما می نویسم.
اینکه rc switch تقریبا شناخته شده ترین کتابخانه برای دریافت سیگنال ASK و OOK در آردوینو هست در واقع به سهولت کاربریش بر میگرده و نه بخاطر بهینه بودن عمکلرد این ماژول ! عملکرد لایه یوزش هم دقیقا به همین شکله که شما یک call back دارید که همیشه در لوپ خودتون بررسی میکنید که آیا دیتا جدید گرفته یا نه. سایر موارد مربوط به اینتراپت و هندل کردن لایه سخت افزاری رو هم خودش انجام میده و شما درگیر این موضوع نمیشید. بنابراین خلاصه بگم اینه که به شما اینتراپتی نمیده و یک کال بک میده و شما لازم هست که یک تیکر ران کنید و مرتبا استاتوس خروجی این کال بک رو بخونید.

در مورد اینکه احساس میکنید همیشه دیتا دارید، بخاطر نویز های محیط اطراف و دیتا های دیگر روی این باند فرکانسی هستند، اگر خروجی ماژول گیرنده رو هم با اسیوسکوپ بررسی کنید متوجه می شوید که پالسهای بی انتهایی را روی این پورت دریافت میکنید، اما این که فرمت کدام دسته از این پالسها منطبق بر 24 بیت استاندارد ASK باشه رو rc switch برای شما انجام میده و هر موقع یک فریم استاندارد و پشت سر هم رو دریفات کرد این دیتا رو به شما خروجی میده.

1 پسندیده