// ΔΕΝ ΑΛΛΑΖΟΥΜΕ ΑΥΤΕΣ ΤΙΣ ΠΡΩΤΕΣ ΓΡΑΜΜΕΣ ΚΩΔΙΚΑ #include int dataReceived = 0; void OnDataRecv(const esp_now_recv_info *mac, const unsigned char *incomingData, int len) { struct_message message; memcpy(&message, incomingData, sizeof(message)); Serial.println(message.text); dataReceived = 0; if (message.text[0] == '1') { Serial.println("SOS button pressed!"); dataReceived = 1; } if (message.text[0] == '2') { Serial.println("Other button pressed!"); dataReceived = 2; } }; // ΑΠΟ ΕΔΩ Κ ΚΑΤΩ ΑΛΛΑΖΟΥΜΕ - ΣΥΜΠΛΗΡΩΝΟΥΜΕ // Όταν πατάει το SOS κουμπί θα στέλνεται το 1 // Όταν πατάει το άλλο κουμπί θα στέλνεται το 2 // Οι MAC διευθύνσεις πρέπει να αλλάξουν αναλόγως των συσκευών uint8_t myMAC[] = { 0xE8, 0x06, 0x90, 0x94, 0xE7, 0xBC }; uint8_t receiverMAC[] = { 0xE8, 0x06, 0x90, 0x95, 0x69, 0x30 }; // Ορίζουμε ποια pins θα χρησιμοποιηθούν για τα κουμπιά // Εδώ θέλει αλλαγή σύμφωνα με το κύκλωμα #define buttonPin1 6 // prasino #define buttonPin2 7 // kokkino //Ορίζουμε ποια pins θα χρησιμοποιηθούν για τα led // Εδώ θέλει αλλαγή σύμφωνα με το κύκλωμα #define ledPin1 1 #define ledPin2 2 //Δημιουργία αντικειμένων, συμπληρώνουμε όσα χρειάζονται button b1(buttonPin1); led l1(ledPin1); esp comm(myMAC); void setup() { // Για να μπορούμε να βλέπουμε πληροφορίες στο serial monitor Serial.begin(9600); // Αρχικοποίηση των αντικειμένων // Εδώ θέλει συμπλήρωση b1.init(); l1.init(); bool rc = comm.init(receiverMAC, OnDataRecv); if (rc == false) // αν δεν πέτυχε η σύνδεση { // τα led θα αναβοσβήσουν 10 φορές flashLights(10); return; } flashLights(3); // αν πέτυχε η σύνδεση, τα led } // θα αναβοσβήσουν 3 φορές void loop() { // έλεγχος αν πατήθηκε το κουμπί b1 // θέλει αλλαγή σύμφωνα με την εφαρμογή, καθώς // και συμπλήρωση για τα υπόλοιπα κουμπιά bool x = b1.isPressed(); if (x == true) { Serial.println("Button pressed 1"); comm.send("1"); l1.ledON(); l2.ledOFF(); } // έλεγχος αν ήρθε το μήνυμα 1 // θέλει αλλαγή σύμφωνα με την εφαρμογή, καθώς // και συμπλήρωση για τα υπόλοιπα μηνύματα if (dataReceived == 1) { l1.ledOFF(); l2.ledOFF(); dataReceived = 0; } delay(100); } // end loop // Η συνάρτηση flashLights() τι κάνει;; void flashLights(int times) { for (int i = 0; i < times; i++) { l1.ledON(); l2.ledOFF(); delay(500); l1.ledOFF(); l2.ledON(); delay(500); } l1.ledOFF(); l2.ledOFF(); }