Как отослать значение нескольких переменных через 433Mhz RF link kit
- Войдите на сайт для отправки комментариев
Вс, 09/12/2012 - 19:59
Снова у меня вопрос по 433Mhz RF link kit.
Значение одной переменной отсылаютс и принимаются на ура, но вот когда надо переслать значение двух... В общем, необходимо пересылать данные с 2-х датчиков - температуры и влажности. Я продублировал в коде передатчика процесс, только переименовал в нём переменные и подставил значение д. влажности. Однако, приёмник принимает два одинаковых числа, то есть, значение 1 переменной.
Прошу помочь объяснить, как же отсылать значение 2-х переменных.
код передатчика:
#include <VirtualWire.h>
#include <dht11.h>
dht11 mysensor; //
int mysensorPIN = 2; //
int lm335=0;
void setup()
{
Serial.begin(9600); // Debugging only
Serial.println("setup");
// Initialise the IO and ISR
vw_set_ptt_inverted(true); // Required for DR3100
vw_setup(2000); // Bits per sec
}
void loop()
{
double val = analogRead(lm335);
double voltage = val*5.0/1024;
double temp = voltage*100 - 273.15;
int i;
String data = String(i);
char msg[50] ;
data.toCharArray(msg, data.length()+1);
digitalWrite(13, true); //
vw_send((byte*)msg, strlen(msg));
vw_wait_tx(); //
digitalWrite(13, false);
delay(900);
//вот тут начинается дубляж операции с новыми переменными
int chk = mysensor.read(mysensorPIN);//
int a = (float)mysensor.humidity, mysensorPIN; //
String data2 = String(a);//
char msg2[40] ;//
data.toCharArray(msg2, data2.length()+1);//
vw_send((byte*)msg2, strlen(msg2));//
vw_wait_tx(); //
digitalWrite(13, false);//
delay(1000);//
}
Я "склеиваю" все в одну строку и ее отсылаю, вот как-то так:
(Максимально 28 символов, это где-то в VirtualWire ограничение).
RFtemp = String(RelayBRfanState) + String(WCtemp) + String(RelayLightState)
+ "/" + int(CurDistance) + "/" + int(MinDistance) + "/" + int(CurHumidity)
+ "/" + int(MaxHumidity) + "/" + int(CurAirLevel) + "/" + int(MaxAirLevel);
RFtemp.toCharArray(RFMessage,RFtemp.length()+1);
TXsuccess = vw_send((uint8_t *)RFMessage, strlen(RFMessage));
vw_wait_tx();
я за реализацию пакетного уровня...
А какого типа переменная RFtemp?
А какого типа переменная RFtemp?
String RFtemp;