#include <CayenneLPP.h>
#include <DHT.h>
#include <LoRaWan.h>
#define DHTPIN A0 // the pin we're connected the temperature and humidity sensor
#define DHTTYPE DHT11 // DHT 11
DHT dht(DHTPIN, DHTTYPE);
#define moisture A2 // the pin we're connected the moisture sensor
int mval;
unsigned char data[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 0xA,};
char buffer[256];
CayenneLPP lpp(51);
void setup(void)
{
dht.begin();
SerialUSB.begin(115200);
pinMode(moisture,INPUT);
while(!SerialUSB);
lora.init();
memset(buffer, 0, 256);
lora.getVersion(buffer, 256, 1);
SerialUSB.print(buffer);
memset(buffer, 0, 256);
lora.getId(buffer, 256, 1);
SerialUSB.print(buffer);
// void setID( char *DevAddr, char *DevEUI, char *AppEUI);
//lora.setId(NULL, "xxxxxxxxxxxxxxx" , "xxxxxxxxxxxxxxxxx");
//setKey(char *NwKSKey, char *AppSKey, char *AppKey);
lora.setKey(NULL, NULL, "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx");
// lora.setKey("xxxxxxxxxxxxxxxxxxxxxxxx", "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx");
lora.setDeciveMode(LWOTAA);
lora.setDataRate(DR0, EU868);
lora.setChannel(0, 868.1);
lora.setChannel(1, 868.3);
lora.setChannel(2, 868.5);
lora.setReceiceWindowFirst(0, 868.1);
lora.setReceiceWindowSecond(869.5, DR3);
lora.setDutyCycle(false);
lora.setJoinDutyCycle(false);
lora.setPower(14);
while(!lora.setOTAAJoin(JOIN));
}
void loop(void)
{
bool result = false;
delay(1000);
int temperature = dht.readTemperature();
int humidity = dht.readHumidity();
mval = analogRead(moisture);
lpp.reset();
lpp.addTemperature(1, temperature);
lpp.addRelativeHumidity(2, humidity);
lpp.addAnalogInput(3, mval);
result = lora.transferPacket(lpp.getBuffer(), lpp.getSize(), 10);
SerialUSB.print("Temperature: "+String (temperature));
SerialUSB.print("humidity: "+String (humidity));
SerialUSB.print("moisture: "+String (mval));
if(result)
{
short length;
short rssi;
memset(buffer, 0, 256);
length = lora.receivePacket(buffer, 256, &rssi);
if(length)
{
SerialUSB.print("Length is: ");
SerialUSB.println(length);
SerialUSB.print("RSSI is: ");
SerialUSB.println(rssi);
SerialUSB.print("Data is: ");
for(unsigned char i = 0; i < length; i ++)
{
SerialUSB.print("0x");
SerialUSB.print(buffer[i], HEX);
SerialUSB.print(" ");
}
SerialUSB.println();
}
}
}