ESP8266 ADC Kullanımı ve Arduino IDE, MicroPython, Lua

ESP8266 ADC kullanımı için uygun pinlere sahiptir. Bu, ESP8266 kartlarının analog sinyalleri okuyabileceği anlamına gelir. Bu içeriğimizde, Arduino IDE, MicroPython veya Lua bellenimini(firmware/donanım yazılımı) kullanarak ESP8266 ile analog okumanın nasıl yapılacağını göstereceğiz.

ESP8266 ADC Kullanımı ve Arduino IDE, MicroPython, Lua esp8266 adc

Örnek olarak, bir potansiyometreden analog değerlerin nasıl okunacağını göstereceğiz. Bu gönderi üç bölüme ayrılmıştır:

  • Arduino IDE ile ESP8266 Analog Okuma
  • ESP8266 MicroPython ile Analog Okuma
  • ESP8266 Lua/NodeMCU ile Analog Okuma

Ayrıca ESP8266’yı detaylı incelediğimiz bu içeriklere bakmanızı öneriyoruz:

ESP8266 ADC Özellikleri

  • ADC (Analogtan-dijitale çevirici)
  • TOUT
  • Pin6
  • A0
  • Analog Pin 0

Tüm bu terimler, bir sonraki bölümde vurgulanan ESP8266’daki aynı pine atıfta bulunur.

ESP8266 ADC Çözünürlüğü

ADC pini 10 bit çözünürlüğe sahiptir, bu da 0 ile 1023(210-1) arasında değerler alacağınız anlamına gelir.

ESP8266 Giriş Voltaj Aralığı

Doğrudan çıplak şekilde çipi kullanıyorsanız, ESP8266 ADC pin giriş voltajı aralığı 0 ila 1V’dir. Ancak, çoğu ESP8266 geliştirme kartı dahili bir voltaj bölücü ile gelir, bu nedenle giriş aralığı 0 ila 3,3V’dir. Yani, özetle:

  • ESP8266 Geliştirme Kartları(NodeMCU, WeMos D1 Mini gibi), 0V ve 3.3 aralığındadır.
  • ESP8266 Çipi(ESP-07, ESP-12E gibi) 0V ve 1V aralığındadır.

ESP8266 Analog Pin

ESP8266 12-E NodeMCU kiti ve diğer ESP8266 geliştirme kartları ile A0’a erişmek çok kolaydır, sadece pine bir bağlantı kablosu bağlamanız yeterlidir (aşağıdaki şekle bakın).

ESP8266 ADC Kullanımı ve Arduino IDE, MicroPython, Lua esp8266 adc
NodeMCU V3

ESP8266-07 gibi bir ESP8266 çipi kullanıyorsanız, bu pine lehimleme ile bağlantı kurmanız gerekir.

ESP8266 ADC Kullanımı ve Arduino IDE, MicroPython, Lua esp8266 adc
ESP8266-07

Gerekli Malzemeler

ESP8266 ile analog okumayı nasıl kullanacağınızı göstermek için, bir potansiyometreden değerleri okuyacağız. Bunun için kartınıza bir potansiyometre bağlamanız gerekir.

  • ESP8266 NodeMCU Geliştirme Kiti ya da ESP8266 Çipi ve FTDI programlayıcı
  • Dirençler: Doğrudan çip kullanıyorsanız gereklidir, 110Ω ve 220Ω
  • 1kΩ Potansiyometre
  • Devre kartı(breadboard)
  • Bağlantı kabloları(jumper)

Devre Şeması

ESP8266 ADC Kullanımı ve Arduino IDE, MicroPython, Lua esp8266 adc

0V ila 1V giriş voltajı aralığına sahip bir çıplak ESP8266 çipi kullanıyorsanız, A0 pinindeki giriş voltajının 1V’u geçmediğinden emin olmanız gerekir. Bu nedenle, aşağıda gösterildiği gibi bir voltaj bölücü devresine ihtiyacınız var.

ESP8266 ADC Kullanımı ve Arduino IDE, MicroPython, Lua esp8266 adc

100 Ohm ve 220 Ohm direnç kullanıyoruz, böylece Vout 1V olur.

ESP8266 ADC Kullanımı ve Arduino IDE, MicroPython, Lua esp8266 adc

ESP8266 kullanırken hangi pin ne işe yarıyor bilmiyorsanız, önerdiğimiz içerik: ESP8266 Pin Referansı Giriş ve Çıkış Pinleri

ESP8266 Arduino IDE ile Analog Okuma

Bu bölüm, Arduino IDE kullanarak ESP8266 ile analog değerlerin nasıl okunacağını gösterir.

Arduino IDE’ye ESP8266 Desteği Kurulması

ESP8266’nıza kod yüklemek için, henüz yapmadıysanız, önce ESP8266 eklentisini Arduino IDE’ye yüklemeniz gerekir. İlgili yazıya aşağıdaki bağlantıdan erişebilirsiniz.

ESP8266 NodeMCU Arduino IDE Desteği

Arduino Kodu

const int analogInPin = A0;  // ESP8266 Analog Pin ADC0 = A0

int potDegeri = 0;  // potansiyometre degerlerinin tutulacagi yer

void setup() {

  Serial.begin(115200);
}

void loop() {
  // analog okuma
  potDegeri = analogRead(analogInPin);
 
  // seri ekrana baski
  Serial.print("sensor = ");
  Serial.print(potDegeri);
  
  delay(1000);
}

Kod, analogInPin değişkeninde ESP8266 analog pinini bildirerek başlar:

const int analogInPin = A0;  // ESP8266 Analog Pin ADC0 = A0

Potansiyometre değeri, potDegeri değişkeninde saklanır:

int potDegeri = 0;

setup() içinde, hata ayıklama amacıyla Seri Monitör başlatılır:

void setup() {
  Serial.begin(115200);
}

loop()’da, analogRead() işlevini kullanarak ve analogInPin’i argüman olarak ileterek analog değeri okuruz. Değer, potDegeri değişkenine kaydedilir:

 potDegeri = analogRead(analogInPin);

Son olarak, okumalar Seri Monitörde görüntülenir, böylece gerçekten neler olup bittiğini görebilirsiniz.

Serial.print(potDegeri);

Kodun Yüklenmesi

Önceki kodu ESP8266’ya yükleyin. Doğru kartı ve COM bağlantı noktası seçimine sahip olduğunuzdan emin olun. Tools> Boards’a gidin ve kullandığınız ESP8266 modelini seçin. Bizim durumumuzda ESP8266 12-E NodeMCU Kitini kullanıyoruz.

ESP8266 ADC Kullanımı ve Arduino IDE, MicroPython, Lua esp8266 adc

Tools Port‘a gidin ve ESP8266’nın bağlı olduğu COM bağlantı noktasını seçin.

ESP8266 ADC Kullanımı ve Arduino IDE, MicroPython, Lua esp8266 adc

Arduino IDE’de yükleme düğmesine basın.

Not: ESP-07 veya ESP-12E çipini çıplak şekilde kullanıyorsanız, kodu yüklemek için bir FTDI programlayıcıya ihtiyacınız vardır.

Sonuç

Kodu yükledikten sonra, Seri Monitörü 115200 baud hızında açın. Analog okumalar görüntülenmelidir.

ESP8266 ADC Kullanımı ve Arduino IDE, MicroPython, Lua esp8266 adc

Potansiyometreyi çevirin ve artan veya azalan değerleri görün.

ESP8266 MicroPython ile Analog Okuma

Bu bölüm, MicroPython bellenimi kullanılarak ESP8266 ile analog değerlerin nasıl okunacağını gösterir.

Bu öğreticiyi yapabilmek için ESP8266 kartınıza kurulu MicroPython ürün yazılımına(firmware, bellenim) ihtiyacınız var. Ayrıca kodu yazıp kartınıza yüklemek için bir IDE’ye ihtiyacınız var. Thonny IDE veya uPyCraft IDE kullanmanızı öneririz:

MicroPython Kodu

ESP8266 için aşağıdaki komut dosyası, A0 pininden analog değerleri okur.

from machine import Pin, ADC
from time import sleep

pot = ADC(0)

while True:
  pot_value = pot.read()
  print(pot_value)
  sleep(0.1)

Analog girişleri okumak için, machine modülünden Pin sınıfına ek olarak ADC sınıfını içe aktarın. Ayrıca sleep yöntemini de içe aktarıyoruz.

from machine import Pin, ADC
from time import sleep

Ardından, A0 pininde pot adlı bir ADC nesnesi oluşturduk,

pot = ADC(0)

Döngüde, pot değerini okutup ardından pot_value değişkenine kaydediyoruz. Pottan değeri okumak için pot nesnesindeki read() yöntemini kullandık.

pot_value = pot.read()

Ardından, pot_value değerini yazdırdık,

print(pot_value)

Sonunda, 100 ms’lik bir gecikme ekliyoruz.

sleep(0.1)

Özetle:

Bir analog değeri okumak için ADC sınıfını kullanırsınız;
Bir ADC nesnesi oluşturmak için ADC(0)’ı çağırmanız yeterlidir.
Analog değeri okumak için ADC nesnesindeki read() yöntemini kullanırsınız.

Sonuç

Kodu Thonny IDE veya uPyCraft IDE kullanarak ESP8266 kartına yükledikten sonra potansiyometreyi döndürün.

Potansiyometreden değerleri okumak için MicroPython IDE’nizin terminalini kontrol edin.

ESP8266 ADC Kullanımı ve Arduino IDE, MicroPython, Lua esp8266 adc

ESP8266 Lua/NodeMCU ile Analog Okuma

Bu bölüm, ESP8266 ile analog değerleri okumak için NodeMCU yazılımının nasıl kullanılacağını gösterir.

ESP8266’ya Lua/NodeMCU Bellenimini Kurmak

İlk olarak, ESP’lerinizi NodeMCU bellenimi ile flaş etmeniz gerekir. Bu işlem için buradaki içeriğimize bakabilirsiniz.

ESP8266’nıza komut göndermek için 4refr0nt tarafından oluşturulmuş bir program olan ESPlorer IDE‘yi kullanmanızı öneririz.

ESPlorer IDE’yi indirmek ve kurmak için şu talimatları izleyin:

  1. ESPlorer’ı indirmek için buraya tıklayın
  2. İnen .zip klasörünü çıkartın
  3. Çıkarılan klasöre gidin
  4. ESPlorer.jar’ı çalıştırın (bilgisayarınızda java’nın kurulu olması gerekir)
  5. ESPlorer’ı açın

ADC Pinini (A0) Test Etme

ESPlorer IDE ile komut göndermek için ESP’niz ile seri iletişim kurmanız gerekir, şu talimatları izleyin:

  1. ESP-12E veya FTDI programlayıcınızı bilgisayarınıza bağlayın
  2. Baud hızını 9600 olarak ayarlayın
  3. ESP-12E veya FTDI programlayıcı bağlantı noktanızı seçin (örneğin COM3)
  4. Open/Close’a basın
ESP8266 ADC Kullanımı ve Arduino IDE, MicroPython, Lua esp8266 adc

Ardından aşağıdaki komutu yazın:

print(adc.read(0))

Aşağıda gösterildiği gibi “Send” düğmesine tıklayın.

ESP8266 ADC Kullanımı ve Arduino IDE, MicroPython, Lua esp8266 adc

0 ile 1024 arasında bir değer döndürmelidir. Potansiyometreyi döndürün ve potansiyometre değerini almak için birkaç kez daha print(adc.read(0)) komutunu gönderin.

Potansiyometreniz 0V’a yakın olduğunda 0 yazdırır ve 3.3V’a ulaştığında 1024 yazdırmalıdır.

Özetle

Bu içerikte, ESP8266 analog pinini (A0) kullanarak analog değerleri nasıl okuyacağınızı gösterdik. Dikkat edilmesi gereken önemli bir nokta, ESP8266 analog giriş aralığının çıplak bir çip kullanıyorsanız 0-1V veya bir geliştirme kartı kullanıyorsanız 0-3,3V olmasıdır.

Her iki durumda da, önerilen maksimum voltajı aşmamaya her zaman dikkat etmelisiniz. Daha yüksek bir giriş voltajı aralığına ihtiyacınız olduğunda bir voltaj bölücü devre eklemeyi düşünebilirsiniz.

Umarız bu öğreticiyi faydalı bulmuşsunuzdur. ESP8266’ya yeni başlıyorsanız, aşağıdaki kaynakları öneririz:

NodeMCU Nedir?
NodeMCU Arduino IDE Desteği ve Firmware Flashlama
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ı