Οδηγός για τη δημιουργία ενός bot Telegram με το ESP32

Τελευταία ενημέρωση: 15/11/2026
Συγγραφέας: Ισαάκ
  • Ενσωμάτωση της βιβλιοθήκης UniversalTelegramBot για την απλοποίηση της επικοινωνίας HTTPS με το Telegram API.
  • Τηλεχειρισμός των ακίδων GPIO για τη λειτουργία ενεργοποιητών όπως LED και την ανάγνωση καταστάσεων διακόπτη.
  • Υλοποίηση ασφάλειας μέσω επικύρωσης Chat ID και χρήσης πιστοποιητικών SSL.

Πλακέτα μικροελεγκτή συνδεδεμένη σε πλακέτα ψεκασμού με αναμμένη λυχνία LED, ιδανική για την απεικόνιση του αποτελέσματος του έργου ESP32.

Έχετε σκεφτεί ποτέ να ελέγχετε τις συσκευές αυτοματισμού του σπιτιού σας από την άνεση του καναπέ σας χρησιμοποιώντας το κινητό σας τηλέφωνο; Λοιπόν, η ρύθμιση ενός συστήματος για τον έλεγχο ενός ESP32 μέσω Telegram είναι ένας από τους απλούστερους και πιο ισχυρούς τρόπους για να μπείτε στον κόσμο του αυτοματισμού σπιτιού χωρίς να περιπλέξετε τη ζωή σας με ακριβούς εξωτερικούς διακομιστές ή αδύνατες διαμορφώσεις.

Η μαγεία έγκειται στη μετατροπή της μητρικής πλακέτας σας σε έναν μικρό διακομιστή που ακούει εντολές από ένα bot. Δεν χρειάζεται να είστε ειδικός στον προγραμματισμό, επειδή με μερικές βιβλιοθήκες και λίγη υπομονή μπορείτε να κάνετε τη συσκευή σας να ανάβει τα φώτα ή να σας ειδοποιεί για την κατάσταση ενός αισθητήρα σε πραγματικό χρόνο, όλα μέσω άμεσων μηνυμάτων κειμένου.

Υλικά που θα χρειαστείτε

Λεπτομέρεια πρωτοκολλικής πλακέτας με καλώδια και ηλεκτρονικά εξαρτήματα, χρήσιμη για την ενότητα των απαιτούμενων υλικών.

Για να ξεκινήσετε, δεν χρειάζεται να ξοδέψετε μια περιουσία. Το πιο σημαντικό είναι να έχετε μια πλακέτα ESP32 . Δεν έχει σημασία αν είναι παλαιότερο μοντέλο ή ένα από τα πιο πρόσφατα, καθώς η συμβατότητα είναι απόλυτη. Εκτός από τον εγκέφαλο του έργου, θα χρειαστείτε ορισμένα βασικά εξαρτήματα για τις δοκιμές:

  • Μια δίοδος εκπομπής φωτός (LED) για να ελέγχετε ότι όλα λειτουργούν.
  • Μια αντίσταση 220 ohm για να αποφευχθεί το κάψιμο του LED.
  • Ένα κουμπί ή διακόπτης για την ανάγνωση φυσικών καταστάσεων.
  • Σύνδεση καλωδίων και μιας πλακέτας ψωμιού, ώστε να μην χρειάζεται να κολλήσετε τίποτα στην αρχή.

Ηλεκτρονική συναρμολόγηση κυκλώματος

Χέρια που συναρμολογούν ηλεκτρονικά εξαρτήματα και καλώδια σε ένα breadboard για συναρμολόγηση κυκλώματος.

Πριν επεξεργαστείτε τον κώδικα, πρέπει να προετοιμάσετε το υλικό. Για αυτό το παράδειγμα, θα συνδέσουμε τη λυχνία LED στον ακροδέκτη 33 του GPIO και τον διακόπτη στον ακροδέκτη 14 του GPIO. Είναι σημαντικό να θυμάστε ότι μπορείτε να αλλάξετε αυτούς τους ακροδέκτες ανάλογα με τις ανάγκες, αλλά θα πρέπει να αντικατοπτρίσετε αυτήν την αλλαγή αργότερα στις σταθερές του προγράμματος.

  Το Telegram δεν λειτουργεί σωστά. Αιτίες, λύσεις και εναλλακτικές λύσεις

Η λυχνία LED συνδέεται με την αντίστοιχη αντίσταση για προστασία, ενώ το κουμπί είναι διαμορφωμένο εσωτερικά για να αποφεύγεται η επιπλέον καλωδίωση. Μόλις συναρμολογήσετε το κύκλωμα στην πλακέτα breadboard , μπορείτε να προχωρήσετε στο τμήμα λογισμικού, όπου συμβαίνουν όλες οι ενέργειες.

Ρύθμιση bot στο Telegram

Κοντινό πλάνο ενός ατόμου που χρησιμοποιεί smartphone για την αποστολή μηνυμάτων, προσομοιώνοντας την αλληλεπίδραση με το bot του Telegram.

Για να μπορέσει το ESP32 να γνωρίζει ποιον να ακούει, πρέπει πρώτα να δημιουργήσουμε την ταυτότητα του bot μέσα στην ίδια την εφαρμογή Telegram. Αυτή η διαδικασία είναι κρίσιμη επειδή παρέχει δύο βασικές πληροφορίες: το διακριτικό του bot (μια μακρά σειρά αριθμών και γραμμάτων) και το προσωπικό σας αναγνωριστικό χρήστη . Χωρίς αυτά τα δύο κλειδιά, η συσκευή δεν μπορεί να επαληθεύσει τον εαυτό της ή να προσδιορίσει ποιος είναι εξουσιοδοτημένος να της δίνει εντολές.

Αν οποιαδήποτε στιγμή νιώσετε ότι η συνομιλία έχει γίνει χαοτική, να θυμάστε ότι μπορείτε πάντα να διαγράψετε το ιστορικό από το μενού επάνω δεξιά. Με αυτόν τον τρόπο, το bot θα επανεκκινηθεί και θα επιστρέψει στο κουμπί αρχικής οθόνης με τις διαθέσιμες εντολές, επιτρέποντάς σας να ξεκινήσετε από την αρχή.

Προετοιμασία του περιβάλλοντος ανάπτυξης

Φορητός υπολογιστής με κώδικα προγραμματισμού στην οθόνη, που αντιπροσωπεύει τη φάση ανάπτυξης στο Arduino IDE.

Για να λειτουργήσει ο κώδικας, πρέπει να εγκαταστήσουμε ένα εργαλείο που θα μας διευκολύνει τη ζωή: τη βιβλιοθήκη UniversalTelegramBot . Αντί να γράφει εκατοντάδες γραμμές κώδικα για να χειρίζεται το API του Telegram, αυτή η βιβλιοθήκη κάνει σχεδόν τα πάντα για εμάς.

Για να το εγκαταστήσετε, απλώς μεταβείτε στον διαχειριστή βιβλιοθηκών του Arduino IDE, πληκτρολογήστε το όνομα της βιβλιοθήκης και κάντε κλικ στην επιλογή εγκατάσταση. Επίσης, βεβαιωθείτε ότι έχετε εγκαταστήσει τις βιβλιοθήκες WiFi και WiFiClientSecure , καθώς αυτές επιτρέπουν στο ESP32 να συνδέεται στο διαδίκτυο και να χρησιμοποιεί το πρωτόκολλο HTTPS για ασφαλή επικοινωνία.

Ανάλυση κώδικα ελέγχου

Το πρόγραμμα ξεκινά ορίζοντας τα διαπιστευτήρια του δικτύου WiFi σας και τα κλειδιά του bot. Είναι ζωτικής σημασίας να αντικαταστήσετε τις τιμές-παραδείγματα με τις δικές σας. SSID και κωδικός πρόσβασηςκαθώς και το διακριτικό και το αναγνωριστικό συνομιλίας. Για διαδραστικότητα, ορίζουμε μια μεταβλητή που ονομάζεται info η οποία περιέχει τη λίστα εντολών που θα αναγνωρίσει το bot, όπως /led_on ή /sw_state.

  Πώς να αυτοματοποιήσετε απαντήσεις και έρευνες στο Telegram χρησιμοποιώντας bots

Διαχείριση μηνυμάτων και εντολών

Η καρδιά του συστήματος είναι η λειτουργία που ελέγχει για νέα μηνύματα. Το ESP32 χρησιμοποιεί τη μέθοδο getUpdates για ελέγξτε την ουρά μηνυμάτων από το Telegram. Για να αποτρέψετε οποιονδήποτε άγνωστο από το να ελέγχει το σπίτι σας, ο κώδικας περιλαμβάνει ένα φίλτρο που επαληθεύει ότι το αναγνωριστικό του αποστολέα ταιριάζει ακριβώς με το δικό σας. προκαθορισμένο CHAT_ID.

Μόλις ο χρήστης επικυρωθεί, το bot αναλύει το ληφθέν κείμενο: εάν εντοπίσει /led_onΣτέλνει ένα ψηφιακό σήμα στον ακροδέκτη 33 για να ανάψει το φως. Εάν λάβει /led_off, το απενεργοποιεί. Υπάρχει επίσης η επιλογή να /led_toggleκάτι που είναι πολύ πρακτικό επειδή αντιστρέφει την τρέχουσα κατάσταση της λυχνίας LED χωρίς να χρειάζεται να γνωρίζετε αν ήταν προηγουμένως αναμμένη ή απενεργοποιημένη.

Ανάγνωση και ολοκλήρωση αισθητήρα

Εκτός από την έκδοση εντολών, το bot μπορεί επίσης να παρέχει πληροφορίες. Χρησιμοποιώντας την εντολή /sw_stateΤο ESP32 διαβάζει την κατάσταση του ακροδέκτη 14. Εφόσον έχουμε διαμορφώσει τον ακροδέκτη ως ΕΙΣΟΔΟΣ_ΑΝΑΔΡΟΜΗΗ συσκευή θα ανιχνεύσει εάν το κουμπί είναι πατημένο ή όχι και θα μας στείλει ένα μήνυμα κειμένου που θα το επιβεβαιώνει.

Κατά τη διάρκεια της διαδικασίας εκκίνησης, η συσκευή συνδέεται στο Wi-Fi με κλειδωμένο τρόπο, που σημαίνει ότι δεν θα κάνει τίποτα μέχρι να σταθεροποιηθεί η σύνδεση . Για περαιτέρω ενίσχυση της ασφάλειας, χρησιμοποιείται το πιστοποιητικό ρίζας του Telegram, διασφαλίζοντας ότι η κίνηση δεδομένων είναι κρυπτογραφημένη. Ο κύριος βρόχος απλώς επαναλαμβάνει τον έλεγχο μηνυμάτων κάθε δευτερόλεπτο για να διατηρεί το σύστημα ευέλικτο και ευαίσθητο.

Με αυτό το σύστημα, έχουμε ενσωματώσει με επιτυχία υλικό και λογισμικό για να δημιουργήσουμε μια ασύρματη γέφυρα επικοινωνίας. Έχουμε διαμορφώσει ένα bot, έχουμε διαχειριστεί την ασφάλεια χρησιμοποιώντας αναγνωριστικά και πιστοποιητικά και έχουμε προγραμματίσει απαντήσεις GPIO pin για αλληλεπίδραση με τον φυσικό κόσμο από οπουδήποτε με σύνδεση στο διαδίκτυο.

Ισαάκ

Isaac

Παθιασμένος συγγραφέας για τον κόσμο των byte και της τεχνολογίας γενικότερα. Μου αρέσει να μοιράζομαι τις γνώσεις μου μέσω της γραφής, και αυτό θα κάνω σε αυτό το blog, θα σας δείξω όλα τα πιο ενδιαφέροντα πράγματα σχετικά με τα gadget, το λογισμικό, το υλικό, τις τεχνολογικές τάσεις και πολλά άλλα. Στόχος μου είναι να σας βοηθήσω να περιηγηθείτε στον ψηφιακό κόσμο με απλό και διασκεδαστικό τρόπο.

  Πώς να στέλνετε διασταυρούμενα μηνύματα μεταξύ WhatsApp και Telegram

Συχνές ερωτήσεις

Ποια βιβλιοθήκη χρειάζεται για να συνδέσω το ESP32 με το Telegram;

Θα πρέπει να χρησιμοποιηθεί η βιβλιοθήκη UniversalTelegramBot, η οποία απλοποιεί την αλληλεπίδραση με το API του Telegram και διευκολύνει την αποστολή και λήψη μηνυμάτων.

Πώς μπορώ να διασφαλίσω ότι μόνο εγώ μπορώ να ελέγξω το bot;

Ο κώδικας εφαρμόζει ένα φίλτρο που συγκρίνει το αναγνωριστικό συνομιλίας του ληφθέντος μηνύματος με ένα προκαθορισμένο CHAT_ID, αγνοώντας τυχόν εντολές που προέρχονται από άλλον χρήστη.

Είναι απαραίτητο να χρησιμοποιήσω HTTPS για να επικοινωνήσω με το bot;

Ναι, το Telegram απαιτεί ασφαλείς συνδέσεις, επομένως χρησιμοποιείται το WiFiClientSecure και το πιστοποιητικό ρίζας του Telegram πρέπει να ρυθμιστεί στο ESP32.

Ποιος είναι ο σκοπός της εντολής /led_toggle στον κώδικα;

Αυτή η εντολή χρησιμοποιείται για την αντιστροφή της τρέχουσας κατάστασης του LED, ενεργοποιώντας το εάν ήταν σβηστό ή απενεργοποιώντας το εάν ήταν αναμμένο.

Γιατί χρησιμοποιείται η συνάρτηση INPUT_PULLUP για τον διακόπτη;

Χρησιμοποιείται για την ενεργοποίηση της εσωτερικής αντίστασης της πλακέτας, αποφεύγοντας έτσι την ανάγκη προσθήκης εξωτερικής φυσικής αντίστασης στο κύκλωμα του κουμπιού.

Πού μπορώ να βρω το διακριτικό bot και το αναγνωριστικό χρήστη;

Το διακριτικό αποκτάται δημιουργώντας το bot μέσω του BotFather στο Telegram και το αναγνωριστικό χρήστη μπορεί να ληφθεί μέσω bots που ειδικεύονται στην απόκτηση της ταυτότητας προφίλ.