Hi guys, i want to make a transmitter/reciver using FS1000A and XY-MK-5V
All good, is working but, i want to read more then a single char. Ex. when i press Button (buttonPin1 on arduino pin 2, this goes HIGH and send "Led 1 on" to reciver and power on the led from pin 13. I can to this but if i send just ONE character. I want to send a string like... a MD5 hash maybe. So, please help me.
Thank You
Here is my code:
Transmitter:
#include <RH_ASK.h>
#include <SPI.h>
const int buttonPin1 = 2;
const int buttonPin2 = 3;
const int buttonPin3 = 4;
const int buttonPin4 = 5;
int buttonState1 = 0;
int buttonState2 = 0;
int buttonState3 = 0;
int buttonState4 = 0;
// Arduino Transmitter
// GND--------------------------GND
// D12--------------------------Data
// 5V---------------------------VCC
RH_ASK driver(2000, 11, 12);
void setup() {
pinMode(buttonPin1, INPUT);
pinMode(buttonPin2, INPUT);
pinMode(buttonPin3, INPUT);
pinMode(buttonPin4, INPUT);
Serial.begin(9600);
if (!driver.init()) Serial.println("init failed");
}
void loop() {
buttonState1 = digitalRead(buttonPin1);
if (buttonState1 == HIGH) {
const char *msg1 = "A\n";
driver.send((uint8_t *)msg1, strlen(msg1));
driver.waitPacketSent();
delay(200);
}
buttonState2 = digitalRead(buttonPin2);
if (buttonState2 == HIGH) {
const char *msg2 = "B\n";
driver.send((uint8_t *)msg2, strlen(msg2));
driver.waitPacketSent();
delay(200);
}
buttonState3 = digitalRead(buttonPin3);
if (buttonState3 == HIGH) {
const char *msg3 = "Button 3 pressed\n";
driver.send((uint8_t *)msg3, strlen(msg3));
driver.waitPacketSent();
delay(200);
}
buttonState4 = digitalRead(buttonPin4);
if (buttonState4 == HIGH) {
const char *msg4 = "Button 4 pressed\n";
driver.send((uint8_t *)msg4, strlen(msg4));
driver.waitPacketSent();
delay(200);
}
}
Reciver:
#include <RH_ASK.h>
#include <SPI.h>
// Arduino Receiver
// GND--------------------------GND
// D11--------------------------Data
// 5V---------------------------VCC
RH_ASK driver(2000, 11, 12);
void setup() {
pinMode(13, OUTPUT);
Serial.begin(9600);
if (!driver.init()) Serial.println("init failed");
}
void loop() {
uint8_t buf[RH_ASK_MAX_MESSAGE_LEN];
uint8_t buflen = sizeof(buf);
if (driver.recv(buf, &buflen)) {
for (int i = 0; i < buflen; i++){
Serial.print((char)buf[i]);
}
int x;
if (buf[x] == 'A'){
digitalWrite(13, HIGH);
delay(200);
digitalWrite(13, LOW);
delay(200);
digitalWrite(13, HIGH);
delay(200);
digitalWrite(13, LOW);
}
int y;
if (buf[y] == 'B'){
digitalWrite(13, HIGH);
delay(500);
digitalWrite(13, LOW);
delay(500);
digitalWrite(13, HIGH);
delay(500);
digitalWrite(13, LOW);
}
}
}