//wokwi.com/projects/459897776795004929
#if defined(CONFIG_IDF_TARGET_ESP32C6)
// ==========================================================
// ====== ΚΩΔΙΚΑΣ ΓΙΑ ΤΟΝ ΚΕΝΤΡΙΚΟ ΠΙΝΑΚΑ (ESP32-C6) ======
// ==========================================================
#include <WiFi.h>
#include <esp_now.h>
uint8_t broadcastAddress[] = {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF};
esp_now_peer_info_t peerInfo;
typedef struct struct_message {
char text[ 21 ];
} struct_message;
struct_message outgoingMsg;
void OnDataRecv(const esp_now_recv_info *info, const uint8_t *incomingData, int len) {
if (len == sizeof(char)) {
char receivedKey = (char)(*incomingData);
Serial.print("ΛΗΨΗ ΣΤΟΝ C6! Πατήθηκε το: ");
Serial.println(receivedKey);
String reply = "Got Key: ";
reply += receivedKey;
reply.toCharArray(outgoingMsg.text, 21);
esp_now_send(broadcastAddress, (uint8_t *) &outgoingMsg, sizeof(outgoingMsg));
}
}
void setup() {
Serial.begin(115200);
Serial.println("C6 Main Unit Ready");
WiFi.mode(WIFI_STA);
esp_now_init();
esp_now_register_recv_cb(OnDataRecv);
memcpy(peerInfo.peer_addr, broadcastAddress, 6);
peerInfo.channel = 0;
peerInfo.encrypt = false;
esp_now_add_peer(&peerInfo);
}
void loop() {
delay(10);
}
#elif defined(CONFIG_IDF_TARGET_ESP32C3)
// ==========================================================
// ========= ΚΩΔΙΚΑΣ ΓΙΑ ΤΟ ΤΕΡΜΑΤΙΚΟ (ESP32-C3) ==========
// ==========================================================
#include <WiFi.h>
#include <esp_now.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <Keypad.h>
LiquidCrystal_I2C lcd(0x27, 20, 4);
const byte ROWS = 4; const byte COLS = 4;
char keys[ROWS][COLS] = {
{'1','2','3','A'}, {'4','5','6','B'}, {'7','8','9','C'}, {'*','0','#','D'}
};
byte rowPins[ROWS] = {0, 1, 2, 3};
byte colPins[COLS] = {4, 5, 6, 7};
Keypad keypad = Keypad(makeKeymap(keys), rowPins, colPins, ROWS, COLS);
uint8_t broadcastAddress[] = {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF};
esp_now_peer_info_t peerInfo;
typedef struct struct_message {
char text[ 21 ];
} struct_message;
struct_message incomingMsg;
void OnDataRecv(const esp_now_recv_info *info, const uint8_t *incomingData, int len) {
memcpy(&incomingMsg, incomingData, sizeof(incomingMsg));
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Msg from C6:");
lcd.setCursor(0, 1);
lcd.print(incomingMsg.text);
}
void setup() {
Serial.begin(115200);
Wire.begin(8, 9);
lcd.init(); lcd.backlight();
lcd.print("C3 Terminal Ready");
WiFi.mode(WIFI_STA);
esp_now_init();
esp_now_register_recv_cb(OnDataRecv);
memcpy(peerInfo.peer_addr, broadcastAddress, 6);
peerInfo.channel = 0;
peerInfo.encrypt = false;
esp_now_add_peer(&peerInfo);
}
void loop() {
char key = keypad.getKey();
if (key) {
esp_now_send(broadcastAddress, (uint8_t *) &key, sizeof(key));
}
}
#endifLoading
esp32-c6-devkitc-1
esp32-c6-devkitc-1