我正在将两个 Arduino UNO 板与 lora-transmitter 和 lora-receiver 连接,并通过发送“Hello World”来测试互连,该“Hello World”很容易传输到接收器串行监视器。
但是,当我将传感器连接到 Arduino UNO 并将其与 lora-device 接口时,它将传感器值作为int
数据类型传输。所以我尝试将值转换int
为string
并存储在unit_8
数据类型中,但它无法将unit_8
数据类型转换为string
.
我的客户代码是:
#include <SPI.h>
#include <RH_RF95.h>
const int watermeterPin = 2;
volatile int pulse_frequency;
unsigned int literperhour;
unsigned long currentTime, loopTime;
byte sensorInterrupt = 0;
RH_RF95 rf95;
void setup()
{
Serial.begin(9600);
delay(500);
pinMode(watermeterPin, INPUT);
attachInterrupt(sensorInterrupt, getFlow, FALLING);
currentTime = millis();
loopTime = currentTime;
while (!Serial) ;
if (!rf95.init())
Serial.println("init failed");
}
void loop()
{
Serial.println("Sending to rf95_server");
currentTime = millis();
if(currentTime >= (loopTime + 1000))
{
loopTime = currentTime;
literperhour = (pulse_frequency * 60 / 7.5);
pulse_frequency = 0;
Serial.print(literperhour, DEC);
Serial.println(" Liter/hour");
}
String str= String(literperhour);
uint8_t data[] = str;
rf95.send(data, sizeof(data));
rf95.waitPacketSent();
uint8_t buf[RH_RF95_MAX_MESSAGE_LEN];
uint8_t len = sizeof(buf);
if (rf95.waitAvailableTimeout(3000))
{
if (rf95.recv(buf, &len))
{
Serial.print("got reply: ");
Serial.println((char*)buf);
}
else
{
Serial.println("recv failed");
}
}
else
{
Serial.println("No reply, is rf95_server running?");
}
delay(400);
}
void getFlow ()
{
pulse_frequency++;
}
我的服务器代码是:
#include <SPI.h>
#include <RH_RF95.h>
RH_RF95 rf95;
int led = 10;
void setup()
{
pinMode(led, OUTPUT);
Serial.begin(9600);
while (!Serial) ;
if (!rf95.init())
Serial.println("init failed");
}
void loop()
{
if (rf95.available())
{
uint8_t buf[RH_RF95_MAX_MESSAGE_LEN];
uint8_t len = sizeof(buf);
if (rf95.recv(buf, &len))
{
digitalWrite(led, HIGH);
Serial.print("got request: ");
Serial.println((char*)buf);
uint8_t data[] = "And hello back to you";
rf95.send(data, sizeof(data));
rf95.waitPacketSent();
Serial.println("Sent a reply");
digitalWrite(led, LOW);
}
else
{
Serial.println("recv failed");
}
}
}
有人可以帮忙吗?