Hallo liebe Forum,
die Funkmodule, die ich vor einiger Zeit hier anfragte, sind da.
Diese sind es geworden:
https://www.aliexpress.com/item/32820799760.html
Tja, ihr wusstet es wohl schon, es klappt nicht so einfach.
Wieder habe ich viel gelesen und am einfachsten erhschien mir folgender Weg:
Mit diesem Code wird geprüft, wie die HC-12 Module eingestellt sind:
#include <SoftwareSerial.h>;
#define RX 2 //Connect to the TX pin of the HC-12
#define TX 3 //Connect to the RX pin of the HC-12
SoftwareSerial mySerial(RX, TX);
void setup() {
Serial.begin(9600);
mySerial.begin(9600);
}
void loop() { // run over and over
if (mySerial.available()) {
Serial.write(mySerial.read());
}
if (Serial.available()) {
mySerial.write(Serial.read());
}
}
Mit dem Befehl AT+RX werden von beiden Modulen folgende Daten ausgelesen:
OK+B9600
OK+RC001
OK+RP:+20dBm
OK+FU3
Das sieht schon mal gut aus.
Der Sender soll nun "Hello World" senden und wenn der Empfänger dies empfängt, soll die interne LED für 500ms angehen.
Hier der Code für den Sender:
void setup() {
Serial.begin(9600);
}
void loop() {
Serial.print("Hello World");
delay(2000);
}
Hier der Code für den Empfänger:
void setup() {
Serial.begin(9600);
pinMode(LED_BUILTIN, OUTPUT);
}
void loop() {
if(Serial.available() > 0)
{
String input = Serial.readString();
if(input == "Hello World")
{
digitalWrite(LED_BUILTIN, HIGH);
delay(500);
digitalWrite(LED_BUILTIN, LOW);
}
}
}
Jedoch: die Led vom Empfänger blinkt nicht. Was könnte ich falsch gemacht haben?
Was mich wundert ist, dass bei dem Code zum Auslesen der Parameter noch die folgenden Zeilen verwendet werden, also noch ein paar settings gemacht werden:
#include <SoftwareSerial.h>;
#define RX 2 //Connect to the TX pin of the HC-12
#define TX 3 //Connect to the RX pin of the HC-12
SoftwareSerial mySerial(RX, TX);
[...]
Diese Zeilen fehlen bei dem Sender-/Empfänger-Code. Aber auch wenn ich sie hinzufüge, passt es nicht.
Ich verwende zwei Arduino-Uno.