Как отослать значение нескольких переменных через 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;