// LoRa Simple Hello World Client with encrypted communications // In order for this to compile you MUST uncomment the #define RH_ENABLE_ENCRYPTION_MODULE line // at the bottom of RadioHead.h, AND you MUST have installed the Crypto directory from arduinolibs: // http://rweather.github.io/arduinolibs/index.html // Philippe.Rochat'at'gmail.com // 06.07.2017 #include #include #include RH_RF95 rf95; // Instanciate a LoRa driver Speck myCipher; // Instanciate a Speck block ciphering RHEncryptedDriver myDriver(rf95, myCipher); // Instantiate the driver with those two float frequency = 868.0; // Change the frequency here. unsigned char encryptkey[16] = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16}; // The very secret key char HWMessage[] = "Hello World ! I'm happy if you can read me"; uint8_t HWMessageLen; void setup() { HWMessageLen = strlen(HWMessage); Serial.begin(9600); while (!Serial) ; // Wait for serial port to be available Serial.println("LoRa Simple_Encrypted Client"); if (!rf95.init()) Serial.println("LoRa init failed"); // Setup ISM frequency rf95.setFrequency(frequency); // Setup Power,dBm rf95.setTxPower(13); myCipher.setKey(encryptkey, sizeof(encryptkey)); Serial.println("Waiting for radio to setup"); delay(1000); Serial.println("Setup completed"); } void loop() { uint8_t data[HWMessageLen+1] = {0}; for(uint8_t i = 0; i<= HWMessageLen; i++) data[i] = (uint8_t)HWMessage[i]; myDriver.send(data, sizeof(data)); // Send out ID + Sensor data to LoRa gateway Serial.print("Sent: "); Serial.println((char *)&data); delay(4000); }