灯控:ESP-01 ARDUINO 315MHZ 搖控器接收,控制 RELAY,驅動蜂鳴器。
1. 灯控:MPC82G516 , 8051C , 315MHZ 無線接收模組,接收搖控器 EV1527,
控制 RELAY, 做灯控。
(1) 這部份已完成。
2. 灯控:ESP-01 AT 固件,STC 8051C ,TCP server,控制 RELAY。
(1) 這部份已完成。
3. 灯控:ESP-01 MPY,TCP server,控制 RELAY。
(1) 這部份已完成。
4. 灯控:ESP-01 ARDUINO 315MHZ 搖控器接收,控制 RELAY,驅動蜂鳴器。
(1) 只搖控器碼接收,驅動 RELAY。未驅動蜂鳴器。=>完成
(2) 電路圖,手繪,DIO_00 同時當DI, DO => 完成。[2019/12/14]
(3) 整合蜂鳴器的程式碼。 => 範例 2。[2019/12/15 05:08]
範例1:這支程式,是接收到搖控器的訊號,發出聲音,並進行 繼電器開關,但沒有聲音。
#include
RCSwitch mySwitch = RCSwitch();
void Relay(char c)
{
digitalWrite(2,c);
}
void setup() {
Serial.begin(115200); Serial.println( "ev1527 receive!" );
mySwitch.enableReceive(0); // Receiver on interrupt 0 => that is pin #2
pinMode(2, OUTPUT);
}
void loop() {
if (mySwitch.available()) {
int value = mySwitch.getReceivedValue();
if (value == 0) {
Serial.print("Unknown encoding");
} else {
Serial.print("Received "); Serial.print( mySwitch.getReceivedValue() ); Serial.print(" / "); Serial.print( mySwitch.getReceivedBitlength() );
Serial.print("bit "); Serial.print("Protocol: "); Serial.print( mySwitch.getReceivedProtocol() );
if (mySwitch.getReceivedValue()==10910433){ Serial.println("==> A"); Relay(1);}
else if(mySwitch.getReceivedValue()==10910434){ Serial.println("==> B"); Relay(0);}
else if(mySwitch.getReceivedValue()==10910436) Serial.println("==> C");
else if(mySwitch.getReceivedValue()==10910440) Serial.println("==> D");
}
mySwitch.resetAvailable();4
}
}
範例2:這支程式,是接收到搖控器的訊號,發出聲音,並進行 繼電器開關,有聲音。
燒錄在 ESP-12F , 若要用 ESP-01 則需改腳位定義。
#include
#include "KEYSND.h"
KEYSND mKeySnd;
RCSwitch mySwitch = RCSwitch();
#define LED3 12
//#define PinRF 0
#define PinRF 13 /* RF 接收 GPIO 腳, 可設定, 大多可用。*/
#define PinRLY 2
void Relay(char c){
digitalWrite(PinRLY,c);
}
void setup(){
Serial.begin(115200); Serial.println( "ev1527 receive!" );
mySwitch.enableReceive(PinRF); // Receiver on interrupt 0 => that is pin #2
pinMode(PinRLY, OUTPUT);
pinMode(LED3, OUTPUT);
}
void loop() {
static char bLed3=0;// must static
static char bSet=0;// must static
digitalWrite(LED3, (int)bLed3); bLed3^=1;
if (mySwitch.available()) {
int value = mySwitch.getReceivedValue();
if (value == 0) {
Serial.print("Unknown encoding");
} else {
Serial.print("Received "); Serial.print( mySwitch.getReceivedValue() ); Serial.print(" / "); Serial.print( mySwitch.getReceivedBitlength() );
Serial.print("bit "); Serial.print("Protocol: "); Serial.print( mySwitch.getReceivedProtocol() );
if (mySwitch.getReceivedValue()==10910433){ Serial.println("==> A"); mKeySnd.SetSnd(0);Relay(1); }
else if(mySwitch.getReceivedValue()==10910434){ Serial.println("==> B"); mKeySnd.SetSnd(1);Relay(0); }
else if(mySwitch.getReceivedValue()==10910436){ Serial.println("==> C"); mKeySnd.SetSnd(2); }
else if(mySwitch.getReceivedValue()==10910440){
Serial.println("==> D");
if(bSet==0) mKeySnd.SetSnd(3);
else mKeySnd.SetSnd(4);
bSet ^= 1;
}
}
mySwitch.resetAvailable();
}
}
控制 RELAY, 做灯控。
(1) 這部份已完成。
2. 灯控:ESP-01 AT 固件,STC 8051C ,TCP server,控制 RELAY。
(1) 這部份已完成。
3. 灯控:ESP-01 MPY,TCP server,控制 RELAY。
(1) 這部份已完成。
4. 灯控:ESP-01 ARDUINO 315MHZ 搖控器接收,控制 RELAY,驅動蜂鳴器。
(1) 只搖控器碼接收,驅動 RELAY。未驅動蜂鳴器。=>完成
(2) 電路圖,手繪,DIO_00 同時當DI, DO => 完成。[2019/12/14]
(3) 整合蜂鳴器的程式碼。 => 範例 2。[2019/12/15 05:08]
範例1:這支程式,是接收到搖控器的訊號,發出聲音,並進行 繼電器開關,但沒有聲音。
#include
RCSwitch mySwitch = RCSwitch();
void Relay(char c)
{
digitalWrite(2,c);
}
void setup() {
Serial.begin(115200); Serial.println( "ev1527 receive!" );
mySwitch.enableReceive(0); // Receiver on interrupt 0 => that is pin #2
pinMode(2, OUTPUT);
}
void loop() {
if (mySwitch.available()) {
int value = mySwitch.getReceivedValue();
if (value == 0) {
Serial.print("Unknown encoding");
} else {
Serial.print("Received "); Serial.print( mySwitch.getReceivedValue() ); Serial.print(" / "); Serial.print( mySwitch.getReceivedBitlength() );
Serial.print("bit "); Serial.print("Protocol: "); Serial.print( mySwitch.getReceivedProtocol() );
if (mySwitch.getReceivedValue()==10910433){ Serial.println("==> A"); Relay(1);}
else if(mySwitch.getReceivedValue()==10910434){ Serial.println("==> B"); Relay(0);}
else if(mySwitch.getReceivedValue()==10910436) Serial.println("==> C");
else if(mySwitch.getReceivedValue()==10910440) Serial.println("==> D");
}
mySwitch.resetAvailable();4
}
}
範例2:這支程式,是接收到搖控器的訊號,發出聲音,並進行 繼電器開關,有聲音。
燒錄在 ESP-12F , 若要用 ESP-01 則需改腳位定義。
#include
#include "KEYSND.h"
KEYSND mKeySnd;
RCSwitch mySwitch = RCSwitch();
#define LED3 12
//#define PinRF 0
#define PinRF 13 /* RF 接收 GPIO 腳, 可設定, 大多可用。*/
#define PinRLY 2
void Relay(char c){
digitalWrite(PinRLY,c);
}
void setup(){
Serial.begin(115200); Serial.println( "ev1527 receive!" );
mySwitch.enableReceive(PinRF); // Receiver on interrupt 0 => that is pin #2
pinMode(PinRLY, OUTPUT);
pinMode(LED3, OUTPUT);
}
void loop() {
static char bLed3=0;// must static
static char bSet=0;// must static
digitalWrite(LED3, (int)bLed3); bLed3^=1;
if (mySwitch.available()) {
int value = mySwitch.getReceivedValue();
if (value == 0) {
Serial.print("Unknown encoding");
} else {
Serial.print("Received "); Serial.print( mySwitch.getReceivedValue() ); Serial.print(" / "); Serial.print( mySwitch.getReceivedBitlength() );
Serial.print("bit "); Serial.print("Protocol: "); Serial.print( mySwitch.getReceivedProtocol() );
if (mySwitch.getReceivedValue()==10910433){ Serial.println("==> A"); mKeySnd.SetSnd(0);Relay(1); }
else if(mySwitch.getReceivedValue()==10910434){ Serial.println("==> B"); mKeySnd.SetSnd(1);Relay(0); }
else if(mySwitch.getReceivedValue()==10910436){ Serial.println("==> C"); mKeySnd.SetSnd(2); }
else if(mySwitch.getReceivedValue()==10910440){
Serial.println("==> D");
if(bSet==0) mKeySnd.SetSnd(3);
else mKeySnd.SetSnd(4);
bSet ^= 1;
}
}
mySwitch.resetAvailable();
}
}
留言