Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /********* 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 <Arduino.h>
- #include <Wire.h>
- #include <Adafruit_GFX.h>
- #include <Adafruit_SSD1306.h>
- #include <U8g2_for_Adafruit_GFX.h>
- /****** 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;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement