Hej, jeg er ny herinde.
Jeg er igang med og se om jeg kunne få en Haraldnyborg trådløs kontakt til at virke med en arduino, ved at kopiere signalet som fjernbetjeningen udsender.
Model 50080 http://www.harald-nyborg.dk/p2313/stikkontakt-fjernbetjent-hvid
Jeg har brugt en SDR usb dongle (en tv tuner)
og brugt linuxcommandolinje programmet rtl_433 til at identificere signalet
Using device 0: Generic RTL2832U OEM
Found Rafael Micro R820T tuner
Exact sample rate is: 250000.000414 Hz
Sample rate set to 250000.
Bit detection level set to 0 (Auto).
Tuner gain set to Auto.
Reading samples in async mode...
Tuned to 433920000 Hz.
Og selve signalet den opfangede
** signal_start = 573180, signal_end = 721237
signal_len = 148057, pulses = 282
Iteration 1. t: 203 min: 94 (134) max: 313 (148) delta 2221
Iteration 2. t: 203 min: 94 (134) max: 313 (148) delta 0
Pulse coding: Short pulse length 94 - Long pulse length 313
Short distance: 215, long distance: 570, packet distance: 1763
p_limit: 203
bitbuffer:: Number of rows: 5
[00] {151} 65 1d b8 32 8e dc 19 47 6e 0c a3 b7 06 51 db 83 28 ed c0
[01] {33} 2e 0f fa d3 00 : 00101110 00001111 11111010 11010011 0
[02] {33} 2e 0f fa d3 00 : 00101110 00001111 11111010 11010011 0
[03] {33} 2e 0f fa d3 00 : 00101110 00001111 11111010 11010011 0
[04] {32} 2e 0f fa d3 : 00101110 00001111 11111010 11010011
Når jeg så efterfølgende prøver at sende samme kodestrøm, opfanges det sådan her
** signal_start = 2630409, signal_end = 2664289
signal_len = 33880, pulses = 33
Iteration 1. t: 205 min: 91 (14) max: 320 (19) delta 17
Iteration 2. t: 205 min: 91 (14) max: 320 (19) delta 0
Pulse coding: Short pulse length 91 - Long pulse length 320
Short distance: 107, long distance: 110, packet distance: 339
p_limit: 205
bitbuffer:: Number of rows: 14
[00] {1} 00 : 0
[01] {1} 00 : 0
[02] {2} 80 : 10
[03] {4} e0 : 1110
[04] {1} 00 : 0
[05] {1} 00 : 0
[06] {1} 00 : 0
[07] {1} 00 : 0
[08] {10} ff 80 : 11111111 10
[09] {2} 80 : 10
[10] {3} c0 : 110
[11] {2} 80 : 10
[12] {1} 00 : 0
[13] {3} c0 : 110
I min arduino kode har jeg blandt andet ganget min/max med 4 da rtl_433 målte med samplerate på 250k
signal_len = 33880, pulses = 33
Iteration 1. t: 206 min: 92 (14) max: 320 (19) delta 40
Iteration 2. t: 206 min: 92 (14) max: 320 (19) delta 0
Pulse coding: Short pulse length 92 - Long pulse length 320
Og her er test arduino koden
#define rfTransmitPin 4
#define ledPin 13
void setup(){
Serial.begin(9600);
pinMode(rfTransmitPin, OUTPUT);
pinMode(ledPin, OUTPUT);
digitalWrite(rfTransmitPin, LOW);
Serial.print("ready\n");
}
void loop(){
transmitCode();
Serial.print("transmitting ON signal \n");
}
#define SHORT_WAIT delayMicroseconds(336) //min x4
#define LONG_WAIT delayMicroseconds(1228) //max x4
#define TX_LOW digitalWrite(rfTransmitPin, LOW)
#define TX_HIGH digitalWrite(rfTransmitPin, HIGH)
#define OUTPUT_0 {TX_HIGH; SHORT_WAIT; TX_LOW; LONG_WAIT;}
#define OUTPUT_1 {TX_HIGH; LONG_WAIT; TX_LOW; SHORT_WAIT;}
#define FRAME_SIZE 33
int code[] = {0,0,1,0,1,1,1,0,0,0,0,0,1,1,1,1,1,1,1,1,1,0,1,0,1,1,0,1,0,0,1,1,0};
void transmitCode() {
digitalWrite(ledPin, HIGH);
//for (int repeat = 1; repeat <= 3; repeat++)
// {
for (int i = 0; i < FRAME_SIZE; i++)
{
if(code[i] == 1)
{
Serial.print(code[i]);
//OUTPUT_1;
digitalWrite(rfTransmitPin, HIGH);
delayMicroseconds(1228);
digitalWrite(rfTransmitPin, LOW);
delayMicroseconds(336);
}
else
{
Serial.print(code[i]);
//OUTPUT_0;
digitalWrite(rfTransmitPin, HIGH);
delayMicroseconds(336);
digitalWrite(rfTransmitPin, LOW);
delayMicroseconds(1228);
}
}
digitalWrite(rfTransmitPin, LOW);
delayMicroseconds(200);
// }
Serial.print("\nwaiting \n");
digitalWrite(ledPin, LOW);
delay(10000);
digitalWrite(ledPin, LOW);
}
Jeg vil tro at jeg mangler noget om bitbuffer og så kan jeg se i Salomons artikel at han bruger noget foran "S" og efter signalet "E", men det forstår jeg ikke helt hvordan han opsnapper/ har fundet ud af fra signalet.
Håber der en der kan hjælpe mig lidt på vej.
Salomons artikel: http://elektronik-forum.dk/index.php?PHPSESSID=vavqsqhgtfmjulb2medr1hbc54&topic=986&asarticle (http://elektronik-forum.dk/index.php?PHPSESSID=vavqsqhgtfmjulb2medr1hbc54&topic=986&asarticle)