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: Button Control
- - Source Code compiled for: ESP32 DevKit V1
- - Source Code created on: 2024-04-15 10:18:19
- ********* Pleasedontcode.com **********/
- /****** SYSTEM REQUIREMENTS *****/
- /****** SYSTEM REQUIREMENT 1 *****/
- /* Use esp now to turn on anoutput as long as the */
- /* button is pressed add power saving */
- /****** END SYSTEM REQUIREMENTS *****/
- /****** DEFINITION OF LIBRARIES *****/
- #include <EasyButton.h> // Library for handling buttons
- #include <esp_now.h> // Library for ESP Now communication
- #include <WiFi.h> // Library for WiFi functionality
- /****** FUNCTION PROTOTYPES *****/
- void setup(void);
- void loop(void);
- void onButtonPressed(); // Callback function for button press event
- /***** DEFINITION OF DIGITAL INPUT PINS *****/
- const uint8_t Up_PushButton_PIN_D4 = 4;
- const uint8_t Down_PushButton_PIN_D13 = 13;
- const uint8_t Lift_PushButton_PIN_D14 = 14;
- const uint8_t Drop_PushButton_PIN_D16 = 16;
- /****** DEFINITION OF LIBRARY CLASS INSTANCES *****/
- EasyButton upButton(Up_PushButton_PIN_D4);
- EasyButton downButton(Down_PushButton_PIN_D13);
- EasyButton liftButton(Lift_PushButton_PIN_D14);
- EasyButton dropButton(Drop_PushButton_PIN_D16);
- /****** DEFINITION OF ESP NOW VARIABLES *****/
- const uint8_t broadcastAddress[] = {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF}; // Broadcast address for ESP Now
- uint8_t outputPinState = LOW; // Initial state of the output pin
- const uint8_t outputPin = 2; // Output pin to control
- void setup(void)
- {
- // put your setup code here, to run once:
- Serial.begin(115200);
- // Initialize ESP Now
- if (esp_now_init() != ESP_OK) {
- Serial.println("ESP Now initialization failed");
- while (true);
- }
- // Register callback function for ESP Now data reception
- esp_now_register_recv_cb([](const uint8_t* mac, const uint8_t* data, int len) {
- // Handle received data if needed
- });
- // Set ESP Now peer address to broadcast address
- esp_now_peer_info_t peerInfo;
- memcpy(peerInfo.peer_addr, broadcastAddress, 6);
- peerInfo.channel = 0;
- peerInfo.encrypt = false;
- // Add ESP Now peer
- if (esp_now_add_peer(&peerInfo) != ESP_OK) {
- Serial.println("Failed to add ESP Now peer");
- while (true);
- }
- // Set output pin as output
- pinMode(outputPin, OUTPUT);
- // Set callback function for button press event
- upButton.onPressed(onButtonPressed);
- downButton.onPressed(onButtonPressed);
- liftButton.onPressed(onButtonPressed);
- dropButton.onPressed(onButtonPressed);
- }
- void loop(void)
- {
- // put your main code here, to run repeatedly:
- upButton.read();
- downButton.read();
- liftButton.read();
- dropButton.read();
- // Send ESP Now message to control the output pin
- esp_now_send(broadcastAddress, &outputPinState, sizeof(outputPinState));
- delay(100);
- }
- void onButtonPressed()
- {
- // Toggle the output pin state
- outputPinState = !outputPinState;
- digitalWrite(outputPin, outputPinState);
- // Print button pressed message
- Serial.println("Button pressed");
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement