Senden von Zahlenwerten über HC-05 und HC-06

Ein einfacher Sender:

#include <Streaming.h>
#include <SoftwareSerial.h> 

enum Comand { 
              Temperatur   = 1,
              Feuchtigkeit = 2
            };  

#define rxPin 3
#define txPin 4

SoftwareSerial btSerial(rxPin, txPin);


void setup() 
{
  btSerial.begin(9600);
}

void loop() 
{
  delay(3000);
  btSerial << Temperatur << ',' << 18.6 << ';' << endl;
  
  delay(3000);
  btSerial << Feuchtigkeit << ',' << 54.77 << ';' << endl;
}

Dieser sendet schön abwechselnd 2 Kommandos:

1,18.6;

und

2,54.77;

Und ein Empfänger, welcher diese Daten auswertet:

#include <CmdMessenger.h>
#include <Streaming.h>
#include <SoftwareSerial.h> 

enum Comand { 
              Temperatur   = 1,
              Feuchtigkeit = 2
            };  

#define rxPin 3
#define txPin 4

SoftwareSerial btSerial(rxPin, txPin);

CmdMessenger cmdMessenger {btSerial};

void setup() 
{
  Serial.begin(9600);
  btSerial.begin(9600);
  Serial << "Start: "<< __FILE__ << endl;

  
  cmdMessenger.attach(Temperatur, [](){
                                         float t = cmdMessenger.readFloatArg();
                                         Serial << "Temperatur " << t << " C" << endl;
                                      });
                                      
  cmdMessenger.attach(Feuchtigkeit, [](){
                                           float f = cmdMessenger.readFloatArg();
                                           Serial << "Feuchtigkeit " << f << " %" << endl;
                                        });
}

void loop() 
{
  cmdMessenger.feedinSerialData();
}
  • Beides völlig ungetestet, da die Hardware nicht bereit steht *