/********* Pleasedontcode.com ********** Pleasedontcode thanks you for automatic code generation! Enjoy your code! - Terms and Conditions: You have a non-exclusive, revocable, worldwide, royalty-free license for personal and commercial use. Attribution is optional; modifications are allowed, but you're responsible for code maintenance. We're not liable for any loss or damage. For full terms, please visit pleasedontcode.com/termsandconditions. - Project: "Arduino Encryption" - Source Code compiled for: Arduino Uno - Source Code created on: 2023-12-11 16:23:15 ********* Pleasedontcode.com **********/ /****** SYSTEM REQUIREMENTS *****/ /****** SYSTEM REQUIREMENT 1 *****/ /* When I go to insert a message from the Arduino */ /* serial monitor, it will encrypt it according to */ /* Caesar's cipher with key = 5 and send it to a */ /* second Arduino */ /****** SYSTEM REQUIREMENT 2 *****/ /* Later, when the second arduino has received the */ /* encrypted message from the first arduino, it will */ /* decrypt the message and print it on its serial */ /* monitor */ /****** END SYSTEM REQUIREMENTS *****/ /****** DEFINITION OF LIBRARIES *****/ #include #include #include #include #include /****** FUNCTION PROTOTYPES *****/ void setup(void); void loop(void); void encryptMessage(String& message); void decryptMessage(String& message); /***** DEFINITION OF I2C PINS *****/ const uint8_t Monitor_SSD1306OledDisplay_I2C_PIN_SDA = A4; const uint8_t Monitor_SSD1306OledDisplay_I2C_PIN_SCL = A5; const uint8_t Monitor_SSD1306OledDisplay_I2C_SLAVE_ADDRESS = 0x3C; /****** DEFINITION OF LIBRARIES CLASS INSTANCES*****/ Adafruit_SSD1306 display(Monitor_SSD1306OledDisplay_I2C_SLAVE_ADDRESS); U8G2_FOR_ADAFRUIT_GFX u8g2_for_adafruit_gfx; /****** GLOBAL VARIABLES *****/ const int caesarKey = 5; void setup(void) { // Initialize I2C communication Wire.begin(); // Initialize SSD1306 display display.begin(SSD1306_SWITCHCAPVCC); u8g2_for_adafruit_gfx.begin(display); } void loop(void) { // Check for input from serial monitor if (Serial.available()) { String message = Serial.readString(); encryptMessage(message); Serial.println("Encrypted message: " + message); } // Check for received encrypted message from the first Arduino // and decrypt it // Once decrypted, print the message on the serial monitor // Example: if (receivedEncryptedMessage) { decryptMessage(receivedMessage); Serial.println("Decrypted message: " + receivedMessage); } } void encryptMessage(String& message) { for (int i = 0; i < message.length(); i++) { if (isAlpha(message[i])) { char baseChar = isUpperCase(message[i]) ? 'A' : 'a'; message[i] = ((message[i] - baseChar + caesarKey) % 26) + baseChar; } } } void decryptMessage(String& message) { for (int i = 0; i < message.length(); i++) { if (isAlpha(message[i])) { char baseChar = isUpperCase(message[i]) ? 'A' : 'a'; message[i] = ((message[i] - baseChar - caesarKey + 26) % 26) + baseChar; } } }