- UniversalTelegramBot kütüphanesinin entegrasyonu, Telegram API ile HTTPS iletişimini basitleştirmeyi amaçlamaktadır.
- LED'ler gibi aktüatörleri çalıştırmak ve anahtar durumlarını okumak için GPIO pinlerinin uzaktan kontrolü.
- Sohbet kimliği doğrulaması ve SSL sertifikalarının kullanımı yoluyla güvenlik sağlanması.

Ev otomasyon cihazlarınızı koltuğunuzun rahatlığında, cep telefonunuzla kontrol etmeyi hiç düşündünüz mü? İşte, ESP32'yi Telegram üzerinden kontrol eden bir sistem kurmak , pahalı harici sunucular veya imkansız yapılandırmalarla hayatınızı karmaşıklaştırmadan ev otomasyon dünyasına girmenin en basit ve en güçlü yollarından biridir.
Sihir, kartınızı bir bottan gelen komutları dinleyen küçük bir sunucuya dönüştürmekte yatıyor. Programlama konusunda uzman olmanıza gerek yok, çünkü birkaç kütüphane ve biraz sabırla cihazınızın ışıkları açmasını veya bir sensörün durumu hakkında sizi gerçek zamanlı olarak, anlık kısa mesajlarla bilgilendirmesini sağlayabilirsiniz.
İhtiyaç duyacağınız malzemeler
Başlamak için servet harcamanıza gerek yok. En önemli şey bir ESP32 kartına sahip olmak ; eski bir model veya en yeni model olması fark etmez, çünkü uyumluluk tamamen aynıdır. Projenin beyni olan ESP32'nin yanı sıra, test için bazı temel bileşenlere de ihtiyacınız olacak:
- Her şeyin düzgün çalıştığını kontrol etmek için kullanılan bir ışık yayan diyot (LED).
- LED'in yanmasını önlemek için 220 ohm'luk bir direnç.
- Fiziksel durumları okumak için kullanılan bir basma düğmesi veya anahtar.
- Başlangıçta hiçbir şeyi lehimlemenize gerek kalmaması için bağlantı kabloları ve bir devre tahtası.
Elektronik devre montajı
Kodu düzenlemeden önce donanımı hazırlamanız gerekiyor. Bu örnekte, LED'i GPIO 33 pinine ve anahtarı GPIO 14 pinine bağlayacağız . Bu pinleri gerektiği gibi değiştirebileceğinizi, ancak bu değişikliği daha sonra programın sabitlerine yansıtmanız gerektiğini unutmamak çok önemlidir.
LED, koruma amacıyla ilgili direnciyle bağlanırken, basmalı düğme de ekstra kablolamayı önlemek için dahili olarak yapılandırılmıştır. Devreyi breadboard üzerinde kurduktan sonra , tüm işlemlerin gerçekleştiği yazılım kısmına geçebilirsiniz.
Telegram'da Bot Kurulumu
ESP32'nin kime itaat etmesi gerektiğini bilmesini sağlamak için öncelikle Telegram uygulaması içinde botun kimliğini oluşturmalıyız. Bu işlem çok önemlidir çünkü iki temel bilgi sağlar: botun belirteci (uzun bir sayı ve harf dizisi) ve kişisel kullanıcı kimliğiniz . Bu iki anahtar olmadan cihaz kendini doğrulayamaz veya kendisine komut verme yetkisinin kimde olduğunu belirleyemez.
Sohbetin herhangi bir noktada kaotik hale geldiğini hissederseniz, sağ üst menüden geçmişi her zaman temizleyebileceğinizi unutmayın . Bunu yapmak botu yeniden başlatacak ve mevcut komutlarla birlikte ana sayfaya geri döndürerek yeni bir başlangıç yapmanızı sağlayacaktır.
Geliştirme ortamının hazırlanması
Kodun çalışması için hayatımızı kolaylaştıran bir araç yüklememiz gerekiyor: UniversalTelegramBot kütüphanesi . Telegram API'sini yönetmek için yüzlerce satır kod yazmak yerine, bu kütüphane neredeyse her şeyi bizim için yapıyor.
Yüklemek için, Arduino IDE'nin kütüphane yöneticisine gidin, kütüphane adını yazın ve yükle'ye tıklayın. Ayrıca, ESP32'nin internete bağlanmasına ve güvenli iletişim için HTTPS protokolünü kullanmasına olanak tanıyan WiFi ve WiFiClientSecure kütüphanelerinin de kurulu olduğundan emin olun.
Kontrol kodu analizi
Program, WiFi ağınızın kimlik bilgilerini ve botun anahtarlarını tanımlayarak başlar. Örnek değerleri kendi değerlerinizle değiştirmeniz çok önemlidir. SSID ve parolaAyrıca belirteç ve sohbet kimliği de bulunur. Etkileşim için, bir değişken tanımlıyoruz. info Bu, botun tanıyacağı komutların listesini içerir; örneğin, /led_on veya /sw_state.
Mesaj ve komut yönetimi
Sistemin kalbi, yeni mesajları kontrol eden fonksiyondur. ESP32 bu yöntemi kullanır. getUpdates paragraf mesaj kuyruğunu kontrol edin Telegram'dan. Evinizi yabancıların kontrol etmesini önlemek için, kod gönderenin kimliğinin sizinkiyle tam olarak eşleştiğini doğrulayan bir filtre içerir. önceden tanımlanmış CHAT_ID.
Kullanıcı doğrulandıktan sonra, bot alınan metni analiz eder: eğer tespit ederse /led_onIşığı açmak için 33 numaralı pine dijital bir sinyal gönderir; eğer alırsa /led_off, onu kapatır. Ayrıca şu seçenek de mevcuttur: /led_toggleBu da çok pratiktir çünkü mevcut durumu tersine çevirir LED'in daha önce açık veya kapalı olduğunu bilmenize gerek kalmadan LED'i otomatik olarak yakar.
Sensör okuma ve tamamlama
Bot, komut vermenin yanı sıra bilgi de sağlayabilir. Komutu kullanarak /sw_stateESP32, 14 numaralı pinin durumunu okuyor. Pini şu şekilde yapılandırdığımız için: GİRİŞ_ÇEKMECihaz, düğmeye basılıp basılmadığını algılayacak ve bunu doğrulayan bir metin mesajı gönderecektir.
Önyükleme işlemi sırasında cihaz, kilitli bir şekilde Wi-Fi'ye bağlanır; yani bağlantı stabil hale gelene kadar hiçbir işlem yapmaz . Güvenliği daha da artırmak için Telegram'ın kök sertifikası kullanılır ve veri trafiğinin şifrelenmesi sağlanır. Ana döngü, sistemin çevik ve duyarlı kalmasını sağlamak için mesaj kontrolünü her saniye tekrarlar.
Bu sistemle, kablosuz bir iletişim köprüsü oluşturmak için donanım ve yazılımı başarıyla entegre ettik. Bir bot yapılandırdık, kimlikler ve sertifikalar kullanarak güvenliği yönettik ve internet bağlantısı olan her yerden fiziksel dünyayla etkileşim kurmak için GPIO pin yanıtlarını programladık.
Sık sorulan sorular
ESP32'yi Telegram'a bağlamak için hangi kütüphaneye ihtiyaç duyulmaktadır?
Telegram API ile etkileşimi basitleştiren ve mesaj gönderip almayı kolaylaştıran UniversalTelegramBot kütüphanesi kullanılmalıdır.
Botu sadece benim kontrol edebilmemi nasıl sağlayabilirim?
Bu kod, alınan mesajın sohbet kimliğini önceden tanımlanmış bir CHAT_ID ile karşılaştıran ve başka bir kullanıcıdan gelen komutları yok sayan bir filtre uygular.
Bot ile iletişim kurmak için HTTPS kullanmak gerekli mi?
Evet, Telegram güvenli bağlantılar gerektiriyor, bu nedenle WiFiClientSecure kullanılıyor ve Telegram kök sertifikasının ESP32 üzerinde yapılandırılması gerekiyor.
Kodda yer alan /led_toggle komutunun amacı nedir?
Bu komut, LED'in mevcut durumunu tersine çevirmek için kullanılır; kapalıysa açar, açıksa kapatır.
Anahtarlama işleminde INPUT_PULLUP neden kullanılır?
Bu, devre kartının dahili direncini etkinleştirmek için kullanılır ve böylece basmalı düğme devresine harici bir fiziksel direnç ekleme ihtiyacını ortadan kaldırır.
Bot token'ını ve kullanıcı kimliğini nereden alabilirim?
Token, Telegram'daki BotFather aracılığıyla bot oluşturularak elde edilir ve kullanıcı kimliği, profil kimliğini elde etmede uzmanlaşmış botlar aracılığıyla edinilebilir.



