Hallo,
wie schaffe ich es, einige Parameter von einem zu einem anderen HC12-Modul zu senden.
Beim Einschalten beider Geräte sollen Parameter, die im EEPROM vom Sendergerät gespeichert sind an das Empfangsgerät gesendet werden.
Es muss sicher gestellt sein, dass alle Daten richtig und vollständig beim Empfänger angekommen sind.
Erst dann gehen beide Geräte in den Betriebsmodus.
Aktuell ist es so, dass der Empfänger die ganze Zeit "request" an den Sender sendet, dieser aber offensichtlich keine Daten erhält.
Hat jemand eine Idee, wo der Fehler ist?
Danke und Grüße
Tobias
Hier der Code:
SENDER (SERVER)
#include <SoftwareSerial.h>
#define pinTX 12 // Receiver HC12-Funkmodul
#define pinRX 13 // Transmitter HC12-Funkmodul
// Menü-Parameter (werden im EEPROM abgespeichert)
int speedRR=1300;
int speedR=300;
int speedLL=1300;
int speedL=300;
int moveR=6400;
int moveL=6400;
SoftwareSerial hc12(pinTX, pinRX); // Funkmodul 433 MHZ initialisieren
void setup() {
hc12.begin(9600);
}
void loop() {
// Übertragen der Menü-Parameter
String dataString="";
String requestString = "";
createDataString(speedRR, speedR, speedLL, speedL, moveR, moveL, dataString);
while (requestString != "request") {
//Serial.println("Wait for Request");
if (hc12.available()) {
requestString = hc12.readString();
//Serial.println(requestString);
}
}
//Serial.println(dataString);
hc12.print(dataString);
// Betrieb
while (1) {
// CODE
}
}
void createDataString(int data1, int data2, int data3, int data4, int data5, int data6, String &data){
data = "*" + String(data1) + "*" + String(data2) + "*" + String(data3) + "*" + String(data4) + "*" + String(data5) + "*" + String(data6);
}
EMPFÄNGER (RECEIVER)
#include <SoftwareSerial.h>
#define pinTX 12 // Receiver HC12-Funkmodul
#define pinRX 13 // Transmitter HC12-Funkmodul
// Menü-Parameter (werden vom Transmitter abgerufen)
int speedRR=0;
int speedR=0;
int speedLL=0;
int speedL=0;
int moveR=0;
int moveL=0;
SoftwareSerial hc12(pinTX, pinRX); // Funkmodul 433 MHZ initialisieren
void setup() {
hc12.begin(9600);
}
void loop() {
// Übertragen der Menü-Parameter
while (!hc12.available()) {
hc12.print("request");
//Serial.println("sending Request");
}
speedRR = hc12.parseInt();
speedR = hc12.parseInt();
speedLL = hc12.parseInt();
speedL = hc12.parseInt();
moveR = hc12.parseInt();
moveL = hc12.parseInt();
// Betrieb
while (1) {
// CODE
}
}