5 #include <RHReliableDatagram.h>
8 #include <ArduinoJson.h>
30 while (!manager.init()) {
31 Serial.println(
"LoRa radio init failed");
32 Serial.println(
"Uncomment '#define SERIAL_DEBUG' in RH_RF95.cpp for detailed debug info");
35 Serial.println(
"LoRa radio init OK!");
39 Serial.println(
"setFrequency failed");
42 Serial.print(
"Set Freq to: "); Serial.println(
RF95_FREQ);
49 rf95.setTxPower(23,
false);
53 static int16_t packetnum = 0;
55 static char radiopacket[RH_RF95_MAX_MESSAGE_LEN];
56 static uint8_t packet_len;
58 void build_msg(
float flow,
char * weight,
float temp,
float maxtemp)
60 Serial.print(
"Building message...");
61 const int capacity=JSON_OBJECT_SIZE(10);
62 StaticJsonDocument<capacity>doc;
66 char * tstring =
rtc_ds.now().text();
71 doc[
"flow"].set(str1);
72 doc[
"weight"].set(
"0");
73 doc[
"temp"].set(str3);
74 doc[
"maxtemp"].set(str2);
76 doc[
"time"].set(tstring);
77 packet_len = serializeJson(doc,radiopacket);
78 Serial.println(radiopacket);
79 radiopacket[packet_len] = 0;
86 Serial.println(
"Transmitting...");
88 if (manager.sendtoWait((uint8_t *)radiopacket, packet_len,
SERVER_ADDRESS))
92 if (manager.recvfromAckTimeout((uint8_t *)radiopacket, &packet_len, 2000, &from))
94 Serial.print(
"got reply from : 0x");
95 Serial.print(from, HEX);
97 Serial.println(radiopacket);
98 Serial.print(
"RSSI: ");
99 Serial.println(rf95.lastRssi(), DEC);
103 Serial.println(
"No reply, is server running?");
107 Serial.println(
"sendtoWait failed");