Espressif firmasının efsanevi Wi-Fi çipi ESP8266 ADC modülü sayesinde, analog sinyalleri ölçebilmek için özel bir donanımsal yeteneğe sahiptir. Bu özellik, sensörlerden (sıcaklık, ışık, basınç vb.) gelen değişken voltaj değerlerinin dijital veriye dönüştürülerek işlenmesini sağlar. Bu kapsamlı rehberimizde; Arduino IDE, MicroPython ve Lua (NodeMCU) platformlarını kullanarak ESP8266 üzerinde analog okuma (ADC) işlemlerinin nasıl gerçekleştirileceğini tüm teknik detaylarıyla inceleyeceğiz.

ADC konseptini pratikte göstermek amacıyla, bir potansiyometreden analog voltaj değerini okuyup dijitale dönüştüreceğiz. Bu çalışmayı üç ana platform başlığı altında ele alacağız:
- Arduino IDE ile ESP8266 Analog Okuma Protokolü
- MicroPython ile ESP8266 Analog Okuma Yaklaşımı
- Lua / NodeMCU Platformunda ESP8266 Analog Okuma
ESP8266 mimarisine daha derinlemesine hakim olmak isterseniz, hazırladığımız şu teknik içeriklere de göz atmanızı önemle tavsiye ederiz:
- NodeMCU Nedir? Detaylı Geliştirme Rehberi
- NodeMCU Arduino IDE Desteği ve Firmware Yükleme
- ESP8266 Kullanımı ve Fonksiyonları: Bölüm 1 – WiFi İşlemleri
- NodeMCU ESP8266 Kullanımı ve Fonksiyonları: Bölüm 2 – Uzaktan Röle Kontrolü
- NodeMCU ESP8266 ile WiFi Jammer (Sinyal Kesici) Yapımı
ESP8266 ADC Donanım Özellikleri
ESP8266 kart şemalarında veya çip bacak bağlantılarında (pinout) analog pine atıfta bulunurken kullanılan ADC (Analog-to-Digital Converter), TOUT, Pin6, A0 ve Analog Pin 0 terimlerinin tamamı aslında fiziksel olarak aynı tek bir analog giriş pinini ifade eder.
ESP8266 ADC Çözünürlüğü
ESP8266 çipinde entegre olarak bulunan donanımsal analog-dijital dönüştürücü 10-bit çözünürlüğe sahiptir. Bu çözünürlük limitleri dahilinde, okunan analog voltaj değeri yazılım tarafında 0 ile 1023 (210 – 1) arasında ölçeklenerek dijital bir sayısal değere dönüştürülür.
ESP8266 Giriş Voltaj Limitleri
Çıplak ESP8266 entegre çipinin (SoC) kendisini doğrudan tasarımlarınızda kullanıyorsanız, analog giriş pini (TOUT) maksimum 0V ila 1V aralığındaki voltaj sinyallerini kabul eder. Ancak NodeMCU veya WeMos D1 Mini gibi hazır geliştirme kartlarında, bu pinden önce kart üzerine yerleştirilmiş dahili bir gerilim bölücü direnç ağı bulunur. Bu ağ sayesinde kartın A0 pinine uygulanabilecek güvenli voltaj aralığı 0V ila 3.3V seviyesine yükseltilmiştir. Özetlemek gerekirse:
- Hazır Geliştirme Kartları (NodeMCU, WeMos vb.): Ölçüm aralığı 0V ila 3.3V’tur.
- Çıplak Entegre Çipler (ESP-07, ESP-12E vb.): Ölçüm aralığı doğrudan 0V ila 1V ile sınırlıdır.
ESP8266 Analog Bacak (A0 Pinout) Bağlantısı
ESP8266 12-E NodeMCU kiti ve benzeri hazır modüllerde A0 pinine erişmek oldukça kolaydır. Ekstra bir devre elemanına ihtiyaç duymadan doğrudan bağlantı kablosunu pin yuvasına yerleştirebilirsiniz:

Ancak ESP8266-07 veya ESP-12E gibi endüstriyel çıplak modülleri kullanıyorsanız, ilgili pin (TOUT/ADC) doğrudan çip çerçevesindeki lehim petlerinde yer alır ve buraya fiziksel olarak lehimleme yapılması gerekir:

Gerekli Devre Elemanları
Farklı yazılım platformlarında analog okuma testlerini gerçekleştirebilmek için kuracağımız potansiyometre devresinde şu donanımlara ihtiyacımız olacaktır:
- ESP8266 NodeMCU Geliştirme Kartı veya Çıplak ESP8266 Çipi ile FTDI Seri Programlayıcı
- Dirençler: Sadece çıplak çip kullanacaklar için gerilim bölücü amaçlı 100Ω ve 220Ω
- 10kΩ veya 1kΩ Potansiyometre
- Breadboard (Devre Tahtası)
- Bağlantı Kabloları (Jumper)
Uygulama Devre Şeması
Eğer hazır bir NodeMCU kartı kullanıyorsanız, potansiyometrenizin kenar bacaklarını sırasıyla 3.3V ve GND pinlerine, orta bacağını ise doğrudan kart üzerindeki A0 pinine bağlamanız yeterlidir:

Analog giriş limiti maksimum 1V olan çıplak bir ESP8266 çipi kullanıyorsanız, A0 bacağına uygulanan voltajın kesinlikle 1V sınırını aşmaması gerekir. Bu güvenliği sağlamak için aşağıda şemalandırılan basit bir gerilim bölücü devresini kurmalısınız:

Burada 100 Ohm ve 220 Ohm standart direnç değerlerini kullanarak potansiyometreden gelen 3.3V tepe voltajını A0 pini için maksimum 1V seviyesine güvenli bir şekilde düşürüyoruz:

ESP8266 entegrelerinin pin konfigürasyonları ve kullanım kısıtlamaları hakkında detaylı bilgi edinmek isterseniz hazırladığımız ESP8266 Pin Referansı Rehberi içeriğimizi inceleyebilirsiniz.
1. Bölüm: Arduino IDE ile ESP8266 Analog Okuma
Arduino geliştirme ekosistemini kullanarak ESP8266 kartlarında analog ölçüm işlemlerini gerçekleştirmek son derece pratiktir.
Arduino IDE ESP8266 Kart Desteği Kurulumu
Arduino IDE arayüzüne ESP8266 kart kütüphanelerini henüz eklemediyseniz, kodlama işlemine geçmeden önce gerekli paketleri kurmanız gerekir. Kurulum adımları için aşağıdaki kılavuzumuzu inceleyebilirsiniz:
ESP8266 NodeMCU Arduino IDE Kart Desteği Kurulum Rehberi
Arduino Kaynak Kodu
Kod yapısı oldukça sadedir. İlk olarak analog okuma yapacağımız pini tanımlıyoruz:
const int analogInPin = A0; // ESP8266 Analog Giriş Bacağı
Okunan veriyi hafızada saklayabilmek için tam sayı tipinde bir değişken tanımlıyoruz:
int potDegeri = 0;
setup() fonksiyonu içerisinde, ölçüm sonuçlarını bilgisayar ekranından izleyebilmek için seri haberleşme protokolünü başlatıyoruz:
void setup() {
Serial.begin(115200);
}
Ana program döngüsü olan loop() içerisinde analogRead() fonksiyonunu kullanarak A0 pinindeki voltaj değerini okuyor ve kaydettiğimiz değişkeni Seri Monitör ekranına yazdırıyoruz:
potDegeri = analogRead(analogInPin);
Serial.print("Ölçülen Değer: ");
Serial.println(potDegeri);
Yazılımın Karta Yüklenmesi
Hazırladığınız kodu ESP8266 kartınıza yüklemeden önce port ve kart ayarlarını kontrol edin. Araçlar (Tools) > Kart (Board) menüsünden kullandığınız ESP8266 modülünü (Örn: NodeMCU 1.0 ESP-12E Module) seçin:

Ardından Araçlar > Port menüsünü açarak kartınızın bilgisayara bağlı olduğu COM portunu belirleyin ve yükle (Upload) butonuna basın:

Ölçüm Sonuçları
Yükleme işlemi tamamlandıktan sonra Seri Monitör ekranını açıp haberleşme hızını (baud rate) 115200 seviyesine ayarlayın. Potansiyometreyi çevirdikçe değerlerin 0 ile 1023 arasında dinamik olarak değiştiğini göreceksiniz:

2. Bölüm: ESP8266 MicroPython ile Analog Okuma
MicroPython, mikrodenetleyiciler için optimize edilmiş hafif ve kararlı bir Python 3 yorumlayıcısıdır. Bu platformda analog pin okuma işlemleri nesne yönelimli olarak çok daha hızlı kurulabilmektedir.
Koda geçmeden önce kartınızda MicroPython belleniminin kurulu olması gerekir. IDE kurulumu ve yazılım yükleme kılavuzlarımıza aşağıdaki bağlantılardan ulaşabilirsiniz:
- Thonny IDE Kurulumu ve Kullanımı
- esptool.py ile MicroPython Firmware Flashlama
- uPyCraft IDE Kurulum Kılavuzu
- uPyCraft IDE ile Bellenim Kurulumu
MicroPython Kaynak Kodu
A0 bacağından analog veri alıp terminal ekranına yazdıran standart MicroPython betiği:
from machine import Pin, ADC
from time import sleep
pot = ADC(0)
while True:
pot_value = pot.read()
print(pot_value)
sleep(0.1)
Kodun Analizi
Donanımla haberleşmek için machine kütüphanesinden Pin ve ADC sınıflarını dahil ediyoruz. Zaman gecikmeleri oluşturabilmek için de time kütüphanesinden sleep metodunu çağırıyoruz:
from machine import Pin, ADC
from time import sleep
Ardından 0 numaralı ADC kanalını (A0 pini) temsil eden pot isimli bir nesne oluşturuyoruz:
pot = ADC(0)
Sonsuz döngü içerisinde read() metodunu çağırarak analog sinyali okuyor ve 100 milisaniyelik periyotlarla terminale (Shell) yazdırıyoruz:
pot_value = pot.read()
print(pot_value)
sleep(0.1)
Sonuç
Yazdığınız betiği Thonny veya uPyCraft IDE kullanarak kartınıza gönderdikten sonra, geliştirme ortamının terminal (Shell) penceresinden analog okuma verilerini anlık olarak takip edebilirsiniz:

3. Bölüm: ESP8266 Lua (NodeMCU) ile Analog Okuma
Lua script dili, NodeMCU ekosisteminin orijinal ve son derece hafif yazılım platformudur. Cihaz içi hızlı sorgulama ve kompakt IoT sistemleri için mükemmel performans sunar.
Lua/NodeMCU Bellenim Kurulumu
ESP8266 kartınızı Lua tabanlı NodeMCU firmware’i ile programlamak için öncelikle bellenim flaşlama işlemlerini gerçekleştirmelisiniz. Bu sürece ait rehberimize aşağıdaki bağlantıdan ulaşabilirsiniz:
NodeMCU Orijinal Firmware Yükleme Kılavuzu
Lua betikleri yazıp ESP8266’ya anlık komut gönderebilmek için Java tabanlı popüler geliştirme ortamı ESPlorer IDE programını kullanmanız önerilir. ESPlorer kurulumu için sırasıyla şu adımları izleyin:
- ESPlorer indirme sayfasına buradan erişerek yazılımı bilgisayarınıza indirin.
- İnen arşiv (.zip) klasörünü dışarı çıkartın.
- Bilgisayarınızda Java Runtime Environment (JRE) veya JDK paketinin kurulu olduğundan emin olun.
- Klasör içerisindeki
ESPlorer.jardosyasını çift tıklayarak çalıştırın.
ADC Bacağını ESPlorer Üzerinden Test Etme
Kartınızla seri bağlantı kurarak anlık komut göndermek için şu adımları uygulayın:
- Kartınızı USB kablosuyla bilgisayara bağlayın.
- ESPlorer üzerindeki haberleşme hızını (Baud rate) 9600 olarak seçin.
- Kartın bağlı olduğu aktif COM portunu seçin.
- Open butonuna basarak bağlantıyı aktifleştirin.

Bağlantı sağlandıktan sonra sağ alt köşedeki komut gönderme satırına şu Lua kodunu yazıp Send butonuna basın:
print(adc.read(0))

Bu komuttan sonra konsol ekranında 0 ile 1024 arasında sayısal bir değer çıktı olarak dönecektir. Potansiyometrenizin konumunu değiştirip komutu tekrar göndererek değerin voltaja göre dinamik olarak güncellendiğini doğrulayabilirsiniz.
Genel Özet
Bu kapsamlı rehberimizde, ESP8266’nın donanımsal analog bacağını (A0) en çok tercih edilen üç farklı platform olan Arduino IDE, MicroPython ve Lua kullanarak nasıl okuyacağımızı detaylıca inceledik. Donanım tasarımı yaparken çıplak ESP çiplerinin (0-1V) ve hazır geliştirme kartlarının (0-3.3V) giriş voltajı limit farklılıklarına kesinlikle dikkat edilmelidir. Güvenli limitlerin üzerindeki gerilim ölçümleri için mutlaka harici gerilim bölücü veya tampon (buffer) devreleri entegre edilmelidir.
Umarız bu öğretici ESP8266 projelerinizde analog ölçüm gerektiren tasarımlarınıza ışık tutar. Mikrodenetleyici dünyasında daha fazla uzmanlaşmak ve ileri seviye projeler geliştirmek için hazırladığımız diğer içeriklerimizi inceleyebilirsiniz:
NodeMCU Detaylı Donanım İncelemesi
NodeMCU Arduino IDE Bağlantı Rehberi
ESP8266 WiFi İstasyon Kurulumu ve Yönetimi
ESP8266 ile Röle Kontrol Sistemleri
ESP8266 ile Ağ Analiz Sistemleri
Yorum yapma özelliği, forum tarafından gelen istek sebebiyle kapatılmıştır. Lütfen tartışmalar ve sorularınız için topluluk forumumuza katılın.
