Yeni başlayanlar ve kendini geliştirmek isteyenler

ESP32-WROOM ile AI Uygulaması

ESP32-WROOM ile AI Uygulaması

Gerekli Parçalar

  • 1x ESP32-WROOM

Açıklama

ESP32-WROOM-32D, Espressif tarafından üretilen popüler bir mikrodenetleyici modülüdür ve özellikle IoT (Internet of Things) uygulamaları için yaygın olarak kullanılır. ESP32, çift çekirdekli bir işlemciye ve çok sayıda özellik sunan bir Wi-Fi ve Bluetooth yongasıdır. ESP32-WROOM-32D, bu serinin farklı modüllerinden biridir ve çeşitli pin çıkışları ve özellikleri sunar.

ESP32-WROOM-32D Özellikleri:

  1. Çip Seti:
    1. Çip: ESP32
    1. CPU: Çift çekirdekli 32-bit LX6 işlemci
    1. Maksimum Hız: 240 MHz
  2. Bellek ve Depolama:
    1. RAM: 520 KB SRAM
    1. Flash Bellek: 4 MB (genellikle 4 MB depolama ile gelir, ancak daha fazla bellek de kullanılabilir)
  3. Wi-Fi ve Bluetooth:
    1. Wi-Fi: 802.11 b/g/n, 2.4 GHz
    1. Bluetooth: Bluetooth v4.2, BLE (Bluetooth Low Energy)
  4. Pin Sayısı ve Pin Yapısı:
    1. Pin Sayısı: 38 pin (bunun 34’ü kullanılabilir, geri kalanı güç, GND vb. pinlerdir)
    1. Pinler: GPIO, ADC, DAC, I2C, SPI, UART, PWM, ve daha fazlasını destekler.
  5. Analog Giriş (ADC):
    1. 12-bit ADC çözünürlüğü ile 18 kanal analog giriş.
    1. ADC1: 8 kanal (GPIO32, GPIO33, GPIO34, GPIO35, GPIO36, GPIO39, GPIO34, GPIO13 vb.)
    1. ADC2: 10 kanal (GPIO0, GPIO2, GPIO4, GPIO12, GPIO14, GPIO15, GPIO16, GPIO17, GPIO18, GPIO19)
  6. Dijital Giriş/Çıkış (GPIO):
    1. GPIO Pinleri: 34 dijital giriş/çıkış pinleri (GPIO0 – GPIO39)
    1. Bazı pinler ADC, DAC, I2C, SPI, UART gibi özel fonksiyonları destekler.
  7. PWM (Pulse Width Modulation):
    1. Birçok GPIO pini PWM çıkışı için kullanılabilir.
  8. I2C, SPI, UART İletişimi:
    1. I2C: İki hatlı iletişim (SDA, SCL) ile cihazlar arasında veri aktarımı yapılabilir.
    1. SPI: Seri veri iletimi için kullanılabilir.
    1. UART: Seri haberleşme için kullanılabilir.
  9. DAC (Digital to Analog Converter):
    1. 2 kanal 8-bit DAC çıkışı sağlar.
  10. Güç Tüketimi:
    1. Düşük güç modu desteği sayesinde pil ile çalışan cihazlar için uygundur.
    1. Çalışma gerilimi: 3.3V (çalışma voltajı, pinler 5V ile doğrudan sürülmemelidir).
  11. Diğer Özellikler:
    1. RTC (Real-Time Clock) desteği.
    1. Internal Temperature Sensor: İç sıcaklık sensörü.
    1. Cryptographic hardware accelerator: Şifreleme desteği.
    1. I2S, CAN bus, SDIO, Ethernet MAC gibi ekstra iletişim seçenekleri.
  12. Fiziksel Boyutlar:
    1. Modül Boyutu: Yaklaşık 18 mm x 25.5 mm
    1. Montaj Tipi: SMD (Surface Mount Device)

Pin Çıkışları:

ESP32-WROOM-32D modülünün pin çıkışları, çoğu zaman GPIO pinlerini destekleyen uygulamalar için son derece esnektir. Örnek olarak, aşağıdaki pinlerin bazılarını kullanabilirsiniz:

  • GPIO0 – GPIO19: Dijital giriş/çıkış pinleri, PWM, SPI, UART, I2C, ADC gibi fonksiyonlar için kullanılabilir.
  • GPIO34 – GPIO39: Sadece dijital giriş olarak kullanılabilir, bu pinler PWM, ADC, vb. için kullanılabilir.

Bu projede ESP32-WROOM-32D kullandık ama siz herhangi bir ESP32 mikroişlemci kullanabilirsiniz. Aşağıdaki örneğimizi çalıştırmadan önce Arduino™ IDE’mizi açıyoruz. Manage Libraries aracılığıyla “ESP Mail Client by Mobizt” ve “ArduinoJson by Benoit Blanchon” kütüphanelerini kuruyoruz. Library Manager ile kütüphane kurulumu hakkında detaylı bilgi için http://www.arduno.com.tr/index.php/2024/03/31/arduino-ide-library-manager-kullanimi/ yazımızı okuyabilirsiniz.

Projemizi çalıştırabilmek için details.h ve html_docs.h dosyalarımızın kodumuzun bulunduğu .ino dosyası ile aynı klasörde bulunması gerekmektedir. Kod bölümünde, web sayfasından alınan metin konusu ile Gemini API’ye istek yapılarak bir metin üretilir ve bu metin aynı sayfadan alınan e-posta adresine iletilir.

ÖNEMLİ NOT: Kodu ESP32’nize yüklemeden önce Tools -> Partition Scheme -> “HUGE APP (3 MB No OTA/1MB SPIFFS)” seçeneğini seçmeniz gerekiyor.

Gemini API İçin Nasıl API Key Alınır?

E-Posta Gönderimi İçin Nasıl Uygulama Şifresi Oluşturulur?

Kod

esp32geminitextgenerator.ino

details.h

html_docs.h

Aylin Biçmen avatarı

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir