...
In an effort to send our own temperatures to the receiver, we put together a program running on an ESP8266 (Wemos mini) connected with RF transmitter.
Transmitter Code
Code Block |
---|
const int TX_PIN = 4; // ESP8266 pin D2 typedef struct { boolean power; int duration; // micro seconds } signal; const signal SHORT_ON { true, 500 }; const signal SHORT_OFF { false, 2000 }; const signal LONG_ON { true, 850 }; // not used const signal LONG_OFF { false, 4000 }; const signal STOP_OFF { false, 500 }; const int REST = 9000; // 9 ms gap // Here's a temperature of 24.5 forever... // signal sig_1 [] { SHORT_ON, // start bit SHORT_OFF, SHORT_ON, // a zero (0) bit LONG_OFF, SHORT_ON, // a one (1) bit LONG_OFF, SHORT_ON, // a one (1) bit LONG_OFF, SHORT_ON, // a one (1) bit LONG_OFF, SHORT_ON, // a one (1) bit SHORT_OFF, SHORT_ON, // a zero (0) bit SHORT_OFF, SHORT_ON, // a zero (0) bit SHORT_OFF, SHORT_ON, // a zero (0) bit LONG_OFF, SHORT_ON, // a one (1) bit SHORT_OFF, SHORT_ON, // a zero (0) bit SHORT_OFF, SHORT_ON, // a zero (0) bit SHORT_OFF, SHORT_ON, // a zero (0) bit SHORT_OFF, SHORT_ON, // a zero (0) bit SHORT_OFF, SHORT_ON, // a zero (0) bit SHORT_OFF, SHORT_ON, // a zero (0) bit SHORT_OFF, SHORT_ON, // a zero (0) bit // LONG_OFF, SHORT_ON, // a one (1) bit LONG_OFF, SHORT_ON, // a one (1) bit LONG_OFF, SHORT_ON, // a one (1) bit LONG_OFF, SHORT_ON, // a one (1) bit LONG_OFF, SHORT_ON, // a one (1) bit SHORT_OFF, SHORT_ON, // a zero (0) bit LONG_OFF, SHORT_ON, // a one (1) bit SHORT_OFF, SHORT_ON, // a zero (0) bit LONG_OFF, SHORT_ON, // a one (1) bit SHORT_OFF, SHORT_ON, // a zero (0) bit SHORT_OFF, SHORT_ON, // a zero (0) bit SHORT_OFF, SHORT_ON, // a zero (0) bit SHORT_OFF, SHORT_ON, // a zero (0) bit LONG_OFF, SHORT_ON, // a one (1) bit LONG_OFF, SHORT_ON, // a one (1) bit LONG_OFF, SHORT_ON, // a one (1) bit SHORT_OFF, SHORT_ON, // a zero (0) bit STOP_OFF, SHORT_ON // stop bit }; void doTransmission(signal array[67]) { Serial.println("Doing transmission..."); for (int burst = 1; burst <= 7; burst++) { for (int idx = 0; idx < 66; ++idx ) { // payload digitalWrite(TX_PIN, array[idx].power); delayMicroseconds( array[idx].duration ); } delayMicroseconds(REST); // rest between bursts } } void setup ( void ) { pinMode(TX_PIN, OUTPUT); Serial.begin ( 115200 ); } void loop ( void ) { Serial.println("Sending..."); doTransmission(sig_1); delay(10000); } |
...