ESP32 ESP-IDF Gomulu Yazilim Gelistirme Egitimi

3 Subat 2024'te basliyor...
Bu kurs, katilimcilarin ESP32 serisi mikrodenetleyicileri ESP-IDF kullanarak programlamayi ogrenmelerini hedeflemektedir. Kurs boyunca ogrenilecek konular gercek dunyadan uygulama ornekleri olacaktir, bu sayede bu kursu basariyla bitiren kisiler piyasa isteklerine cevap verebilir olacaklardir. Her kursiyer, bu kurs ile birlikte kendilerine ait ve bircok uygulama iceren bir Github profiline sahip olacaktir.

Kurs Bilgileri

Kurs, 10 kisilik grup halinde online olarak yapilmaktadir.

Kursumuz, 3 ay, haftada 14 saat, ayda 56 saat olmak uzere toplamda 168 saat surmektedir. Dersler, zoom uzerinden canli olarak yapilacaktir. Kurs boyunca haftalik odevler verilecektir. Kurs sureci baslangici ile birlikte sinirsiz sureli olarak discord grubumuzda erisim hakki verilecek ve buradan ogrencilerin sorulari yanitlanacaktir. Kursa kayit ile birlikte haftaicleri de discord grubu uzerinden egitim materyali paylasimi ve etkilesim devam edecektir. Kurs sonunda bitirme sertifikasi verilecektir.

Ders saatleri su sekildedir:
Cumartesi ve Pazar:
9.00-10.15- ders 1
10.15-10.30- mola 1
10.30-12.00- ders2
12.00-13.00- ogle arasi
13.00-14.15- ders 3
14.15-14.30- mola 2
14.30-16.00- ders 4
16.00-16.15- mola 3
16.15-17.00- ders 5

Kurs ucreti, KDV Dahil 12.000 TL'dir.

Iletisim icin: info@iotakademi.com

Whatsapp Chat Link

Kurs Mufredati

1- ESP32 ESP-IDF Gelistirme Ortamina Giris

1.1- ESP32 Mimarisi ve Gelistirme Kartlari: Kurs boyunca kullanilacak olan gelistirme kartlarinin tanitimi ve ozelliklerinin incelenmesi.
1.2- ESP-IDF Gelistirme Ortami Kurulumu: ESP32 Yazilim Gelistirme Framework'u olan ESP-IDF'nin Visual Studio Code ortaminda kurulumu.

2- ESP32 Programlamaya Giris

2.1- Loglama: Visual Studio Code gelistirme ortaminda konsola bilgi, uyari ve hata mesajlarinin yazilmasi.
2.2- Gecikmeler: FreeRTOS ile task icerisinde gecikme ve bekleme.
2.3- Rastgele Sayi Uretimi: Rastgele sayi uretimi ile elektronik zar uygulamasi.
2.4- LED Kontrol: Karasimsek uygulamasi.
2.5- Buton Kontrol: Buton ile LED kontrolu.

3- Temel C Programlama

3.1- Temel C Programlamaya Giris: Iki gunluk temel C programlama egitimi ve soru cozumleri.
3.2- Struct ve Pointer: Struct'larin karmasik yazilim projelerinde kullanimi ve pointer kullanimi ile hafiza erisimi.
3.3- Fonksiyon Gostericileri: Fonksiyon gostericileri ile tasinabilir device driver gelistirme.

4- ESP-IDF Temel Moduller

4.1- Kaynak ve Baslik Dosyalarinin Projeye Eklenmesi: Kaynak ve baslik dosyalarinin kullanimi ile moduler yazilim gelistirme.

5- FreeRTOS Temelleri

5.1- FreeRTOS'a Giris: FreeRTOS'a giris ve temel kullanim amaclarini ogrenme.
5.2- Task Yapisi: FreeRTOS Task'lari kullanarak moduler ve tekrar kullanilabilir gomulu yazilim gelistirme.
5.3- Task Bildirimleri: Task bildirimleri ile tasklar arasi haberlesme ve buton led projesi uygulamasi.
5.4- Mutex ve Binary Semaphore: Kritik islemler esnasinda guvenlik onlemleri.
5.5- Queue: FreeRTOS Queue yapisi ile sirali islemlerin uygulanmasi.
5.6- Event Groups: FreeRTOS Event Groups ile gerceklestirilen islemlerin state'lerinin saklanmasi.
5.7- Software Timers: FreeRTOS Software Timers ile yazilimsal zamanlayicilar ve periyodik islemler.

6- ESP-IDF Konfigurasyon

6.1- Menuconfig Kullanimi: ESP-IDF Menuconfig aracini kullanarak proje konfigurasyonlarini belirlemek.

7- ESP32 Hafiza Yapisi

7.1- Flash & RAM Mimarisi: Partition Table olusturmak icin ESP32 Flash ve Ram mimarisini anlamak.

8- Depolama

8.1- Dahili Flash'a Dosya Kaydetme: Dahili Flash'a ESP-IDF araclari yardimiyla binary dosya gommek.
8.2- NVS Yapisi ve Uygulamalari: NVS hafiza alaninin calisma mantigini anlamak ve saklanmasi gereken verilerin bu alanda saklanma uygulamalari.
8.3- SPIFFS Yapisi ve Uygulamalari: SPIFFS yapisini anlamak ve bir web site kaynak kodlarini ESP32 icerisinde barindirmak.
8.4- FATFS Yapisi ve Uygulamalari: FATFS genel yapisini anlamak ve FATFS uzerinden dosya olusturma, okuma, guncelleme ve silme uygulamalari.
8.5- SD Kart ve Uygulamalari: SD kart icerisine dosya yapisi insa etmek ve CRUD uygulamalari.

9- GPIO

9.1- GPIO Input/Output Uygulamalari: Buton ve LED uygulamasi ile ve GPIO cevre biriminin detayli incelenmesi.
9.2- Polling ve Interrupt Metodlari: Polling ve Interrupt metodlari ile buton okuma.
9.3- De-Bouncing Onlemleri: Donanimsal ve yazilimsal de-bouncing onlemleri uygulamalari.
9.4- DAC Cevre Birimi Uygulamalari: ESP32 ile dokunmatik capacitive butonlar ve dac cevre birimi uzerinden buzzer uygulamasi.
9.5- ADC Cevre Birimi ve Uygulamalari: Analog cevre birimi uzerinden potansiyometre ile gerilim okuma uygulamasi.
9.6- LEDC Cevre Birimi ve PWM Uygulamalari: LEDC cevre birimi ile pwm uzerinden led parlaklik kontrolu ve L298N motor surucu ile motor hiz kontrolu uygulamalari.
9.7- Touch Sensor Cevre Birimi ve Uygulamalari: Touch sensor cevre birimi ile dokunmatik butonlar ile led kontrolu.

10- I2C SPI UART I2S Cevre Birimleri

10.1- UART Cevre Birimi ve PC-ESP32 Haberlesme Uygulamasi
10.2- UART Cevre Birimi ve ESP32-GSM Modulu Haberlesme Uygulamasi
10.3- UART Cevre Birimi ve ESP32 Modbus Master-Slave Haberlesme Uygulamasi
10.4- I2C Cevre Birimi ve Sensirion SHT4x Sicaklik ve Nem Sensoru Uygulamasi
10.5- I2C Cevre Birimi ve Sensirion SGP40 Hava Kalitesi Sensoru Uygulamasi
10.6- SPI Cevre Birimi ve HopeRF RFM96W Lora Uzun Mesafe Haberlesme Uygulamasi

11- Uyku ve Guc Tuketimi Modlari

11.1- Uyku Modu Uygulamalari: Batarya ile calisan IOT cihazlarin enerji tuketimini yonetmek icin uyku modlarinin incelenmesi.
11.2- Light & Deep Sleep Modu Kullanimi: Light ve Deep sleep uyku modlarinin kullanimi.

12- Internet Uygulamari

12.1- Wifi Baglantisi Uygulamalari: ESP32 WiFi modlarinin incelenmesi.
12.2- HTTP Client ve Uygulamalari: HTTP client uygulamasi gelistirilmesi ve HTTP Client ile internetten veri cekme uygulamalari.
12.3- NTP Client ve Uygulamalari: NTP client ile internetten cekilen tarih ve saat ile I2C RTC'nin ayarlanmasi.
12.4- WiFi Scanner Uygulamalari: Cevredeki WiFi aglarinin taranmasi ve I2C OLED LCD ekranda gosterilmesi.
12.4- WiFi Station ve Uygulamalari: WiFi Access Point baglantisi kurulmasi ve internet erisimi.
12.5- WiFi Access Point ve Uygulamalari: ESP32'nin WiFi Access Point moduna alinmasi ve station'larin yonetilmesi.

13- Internet HTTP Server Uygulamari

13.1- HTTP Server Uygulamalari: ESP32 uzerinde HTTP Server kurup, modem ssid ve sifresinin kullanicidan alimnmasi.
13.2- MDNS ve Lokalde Web Sitesi Yayinlama: Sicaklik ve Nem sensoru degerlerinin lokalde ESP32 uzerinde calisan web sitede yayinlanmasi.
13.3- HTTP Metodlari: ESP32 uzerinde calisan HTTP server uzerinde POST/GET/PUT/DELETE API'larin gelistirilmesi.
13.4- WebSocket Haberlesmesi: Sicaklik ve nem sensoru degerlerinin degisiminin anlik olarak lokalde ESP32 uzerinde calisan web sitede yayinlanmasi.

14- Internet HTTP Server Web Sitesi Uygulamari

14.1- Web Sitesi Barindirma ve Yayinlama: ESP32 uzerinde statik HTML/CSS website barindirma ve yayinlama.

15- MQTT Haberlesme Uygulamari

15.1- MQTT Server Kurulumu ve Test Uygulamalari: MQTT protokolune giris, Mosquitto MQTT Broker kurulumu ve Python ile MQTT Client uygulamasi gelistirmek.
15.2- MQTT Haberlesme Uygulamalari: ESP32 ESP-IDF ortaminda gelistirilmis bir client ile Python ile gelistirilmis masaustu MQTT client'in karsilikli haberlestirilmesi.
15.3- ESP32 ve Flutter ile Mobil Uygulama Uzerinden MQTT ile DC Motor Kontrol Uygulamasi: Mobil uygulama ile ESP32 arasinda MQTT uzerinden cift tarafli haberlesme ile dc motor yon ve hiz kontrolu.

16- Bluetooth Haberlesme Uygulamari

16.1- Bluetooth Giris: Bluetooth Low Energy mimarisinde servis karakteristik yapisi.
16.2- Bluetooth Haberlesme Uygulamalari: Flutter ile MQTT haberlesme mobil uygulama entegrasyonu.
16.3- ESP32 ve Flutter ile Mobil Uygulama Uzerinden Bluetooth ile DC Motor Kontrol Uygulamasi: DC motorun hiz ve yon kontrolu.

17- OTA Yazilim Guncelleme

17.1- OTA Yapisina Giris: ESP32'nin flash hafizasinin incelenmesi ve iki adet yazilimin ayni anda ESP32 uzerinde barindirilmasi icin Partition Table'in ayarlanmasi.
17.2- Google Drive ile ESP32 Yazilim Guncelleme: Google Drive uzerinden alinan yazilimin versiyonu ESP32 uzerindeki yazilim versiyonundan buyuk ise ESP32 yazilimin guncellenmesi.