ESP8266 WiFi Modülü: Kurulum ve Proje Kılavuzu

ESP8266, IoT ve ev otomasyonu projeleri için uygun bir Wi-Fi modülüdür. Arduino serisi kartlarda olduğu gibi giriş ve çıkışları kontrol etmenizi sağlar, ancak bunu Wi-Fi üzerinden yapar. Bu nedenle, ev otomasyonu/IoT uygulamaları için son derece uygundur.

ESP8266'yı piyasadaki diğer Wi-Fi çözümleriyle karşılaştırdığımızda, çoğu "Nesnelerin İnterneti" projesi için mükemmel bir seçimdir. Bu makalede, ESP8266 kartının temel kavramlarını, pin dizilimini ve programlama örneklerini tanıtacağız.

ESP8266'ya Giriş

ESP8266, elektronik ve IoT (Nesnelerin İnterneti) dünyasında popülerlik kazanmış, güçlü ve çok yönlü bir Wi-Fi özellikli mikrodenetleyicidir. Espressif Systems tarafından geliştirilen ESP8266, cihazları internete bağlamak ve birbirleriyle iletişim kurmalarını sağlamak için uygun maliyetli bir çözüm sunar. Dahili bir Wi-Fi modülü, güçlü bir işlemci ve harici bileşenleri bağlamak için GPIO pinlerine sahiptir. ESP8266, çeşitli programlama dilleri kullanılarak programlanabilir, bu da onu hem yeni başlayanlar hem de deneyimli geliştiriciler için erişilebilir kılar. Düşük güç tüketimi ve kompakt boyutu, onu ev otomasyonu, kablosuz sensör ağları ve akıllı cihazlar dahil olmak üzere çok çeşitli uygulamalar için ideal hale getirir. Örneğin, ESP8266, kullanıcıların evlerinin sıcaklığını uzaktan kontrol etmelerini sağlayan akıllı bir termostat oluşturmak için kullanılabilir.

ESP8266 Pin Dizilişi

ESP8266 Pinout
ESP8266 pin dizilimi

Pin şemasında, bazı pinlerin GPIO dışında başka kullanım alanları da vardır. Örneğin, D1 pini sadece GPIO5 değil, aynı zamanda LCD ekranın ilgili SCL pinine bağlanabilen bir SCL arabirimi de işlevi görür.

Aşağıdaki tablo, kart üzerindeki etiketler ile GPIO numaraları arasındaki ilişkiyi, projelerde hangi pinlerin en iyi şekilde kullanılabileceğini ve hangi pinlerin dikkat gerektirdiğini göstermektedir. Yeşil renkle vurgulanan pinler kullanıma hazırdır. Sarı renkle vurgulananlar kullanılabilir, ancak özellikle başlangıçta beklenmedik davranışlar sergileyebileceğinden dikkat gerektirir. Kırmızı renkle vurgulanan pinlerin giriş veya çıkış olarak kullanılması önerilmez.

Kart etiketiGPIOGirişÇıkışNotlar
D0GPIO16Dijital; ESP8266 Arduino core içinde GPIO kesmesi yokDijital; Arduino core içinde yazılımsal PWMDerin uykudan uyanmak için GPIO16 ile RST’yi bağlayın; kart devresini kontrol edin.
D1GPIO5DijitalDijitalArduino core içindeki yaygın I2C saat ataması; yazılımla yapılandırılabilir.
D2GPIO4DijitalDijitalArduino core içindeki yaygın I2C veri ataması; yazılımla yapılandırılabilir.
D3GPIO0Flash’tan başlamak için reset sırasında HIGH tutunBaşlatma sonrası dijitalReset sırasında LOW, UART yüklemesini seçer; kartın FLASH düğmesi bağlantısını kontrol edin.
D4GPIO2Reset sırasında HIGH tutunBaşlatma sonrası dijitalLED bağlantısı karta bağlıdır; GPIO2’yi doğrudan VCC’ye bağlamayın.
D5GPIO14DijitalDijitalSPI atandığında HSPI saat hattı (SCLK).
D6GPIO12DijitalDijitalSPI atandığında HSPI veri girişi (MISO).
D7GPIO13DijitalDijitalSPI atandığında HSPI veri çıkışı (MOSI).
D8GPIO15Reset sırasında LOW tutunBaşlatma sonrası dijitalHSPI yonga seçimi (CS); reset sırasında harici yukarı çekme direncinden kaçının.
RXGPIO3UART0 RX veya dijital girişUART kullanmıyorsa dijitalUSB-UART köprüsüyle ortak olabilir; başlatma modunu seçen bir pin değildir.
TXGPIO1UART kullanmıyorsa dijitalUART0 TX veya dijital çıkışBaşlatma iletileri buradan çıkar; başlatma modunu seçen bir pin değildir.
A0ADC0Analog girişYokYonga ADC aralığı 0–1,0 V’tur; karttaki A0 bölücüsü izin verilen aralığı değiştirebilir. Şemayı kontrol edin.

ESP8266 ile mikrodenetleyici bağlantı ve başlatma listesi

ESP8266 Wi-Fi modülünü mikrodenetleyiciye veya Arduino sınıfı karta bağlarken güç, lojik seviyeleri ve önyükleme strap’lerini ayrı ayrı doğrulayın. UART ya da firmware hatası sanılan birçok sorun besleme çökmesi veya geçersiz başlangıç durumudur. Geliştirme kartında regülatör ve pull dirençleri bulunabileceğinden tam modül şemasını kontrol edin.

  • Kararlı 3,3 V sağlayın: regülatör ve yolları Wi-Fi akım darbelerine göre boyutlandırın; genellikle en az 500 mA geçici kapasite ayırın ve modül yanında bulk ile yüksek frekans bypass kullanın.
  • Lojik pinleri koruyun: 3,3 V uyumlu sinyaller kullanın, 5 V host çıkışını ESP8266 girişinden önce seviye dönüştürün ve toprakları düşük empedansla birleştirin.
  • UART’ı doğru bağlayın: host TX’i modül RX’e, host RX’i modül TX’e çaprazlayın; bilinen baud seçin ve seri pinleri LED ya da güçlü pull ağıyla yüklemeyin.
  • Boot strap’lerini ayarlayın: yaygın ESP-12 donanımında EN ile GPIO2 yüksek, GPIO15 düşük olmalıdır; normal açılışta GPIO0 yüksek, flash için reset sırasında düşük tutulur.
  • Kademeli başlatın: 3,3 V ve reset dalgasını ölçün, boot kaydını alın, AT veya özel firmware’i belirleyin ve sensörlerden önce tek komut ya da paket deneyin.

Arduino IDE ile ESP8266 nasıl programlanır?

ESP8266'yı programlamanın birçok yolu vardır:

  1. Geliştirme için Arduino IDE'yi kullanın, Arduino'nun geliştirme stilini takip edin, kullanımı kolaydır;
  2. ESP8266 resmi SDK geliştirmesini kullanın;
  3. Geliştirme için MicroPython kullanın, Python programlama stilini takip edin (bu yöntem için önce kart için özel bir ürün yazılımı yazmanız gerekir);

Burada ilk seçeneği tercih ediyoruz, çünkü Arduino programlama basit ve kullanımı kolaydır.

1. Adım: Arduino IDE'yi yükleyin

IDE'yi Arduino'nun resmi web sitesinden indirin: https://www.arduino.cc/en/software. Şu anda kullandığım sürüm Arduino IDE 1.8.3'tür. (Arduino IDE'nin en son sürümü olan 2.1.1'in ESP8266 kaynak paketini çevrimiçi olarak yükleyemediğini belirtmek isterim.)

Install Arduino IDE 1.8.3
Arduino IDE 1.8.3 kurulumu

2. Adım: ESP8266 Paketini Yükleyin

Arduino IDE, varsayılan olarak Arduino geliştirme kartı için kullanıldığından, varsayılan olarak yalnızca Arduino geliştirme kartına yönelik kaynaklar mevcuttur. Arduino IDE'de ESP8266'yı kullanmak için ESP8266 geliştirme paketini manuel olarak yüklememiz gerekir. İki yükleme yöntemi vardır: çevrimiçi yükleme ve çevrimdışı paket yükleme; burada ilkini seçeceğiz.

Öncelikle, Arduino IDE menüsünde “Dosya -> Tercihler” seçeneğini bulun: 

Open Preferences in Arduino IDE
Arduino IDE’de tercihleri açma

Ardından, "Ek Kart Yöneticisi URL'leri" alanına aşağıdaki bağlantıyı girin:

http://arduino.esp8266.com/stable/package_esp8266com_index.json

Setting Additional boards manager URLs in Preferences
Tercihlerde ek kart yöneticisi URL’lerini ayarlama

Ardından, şunu tıklayarak açın: Araçlar -> Pano -> Pano Yöneticisi.

Open Boards Manager in Arduino
Arduino’da kart yöneticisini açma

Alana "esp8266" yazıp arama yapın; karşınıza bir esp8266 paketi çıkacaktır. Çevrimiçi yüklemeyi başlatmak için "Yükle" düğmesine tıklayın.

Search and Install the ESP8266 Board
ESP8266 kartını arama ve yükleme
Installing ESP8266 packages
ESP8266 paketlerini yükleme

Kurulum tamamlandıktan sonra, esp8266 kartıyla ilgili tüm kaynakları "Araçlar->Kart" menüsünde bulabilirsiniz.

ESP8266 Boards Resource (3.1.2 Version)
ESP8266 kart kaynakları (3.1.2 sürümü)

3. Adım: ESP8266 Programlama

Burada ESP8266 kartı için basit bir ağ bağlantısı test programı yazıyoruz; program kodu şu şekildedir:

				
					void setup() {
  Serial.begin(9600);
  Serial.println("esp8266 test");
  initWiFi();

}

void loop() {
  Serial.println("hello esp8266");
  delay(1000);

}

#include <ESP8266WiFi.h>

constchar ssid[] = "xxxxx";      //WiFi Name
constchar pass[] = "xxxxx";       //WiFi Password

WiFiClient client;

//Initialize WIFI
void initWiFi()
{
   Serial.print("Connecting WiFi...");
   WiFi.mode(WIFI_STA); //Configure WIFI as Station mode
   WiFi.begin(ssid, pass); //Incoming ssid and password of WIFI hotspot
   while (WiFi.status() != WL_CONNECTED) //Waiting for successful connection
   {
     delay(500);
     Serial. print(".");
   }

   Serial.println("");
   Serial.println("WiFi connected");
   Serial.println("IP address: ");
   Serial.println(WiFi.localIP()); //print your own IP address
}
				
			

Notlar: setup işlevi, seri bağlantı noktasının başlatılması
için kullanılır. Örneğin, "Serial.begin(9600);" ifadesi, seri bağlantı noktasının başlangıç baud hızının 9600 olduğunu belirtir.

Loop işlevi, tek çipli mikrobilgisayar geliştirmedeki main işlevindeki while(1){} ifadesine benzer; burada program mantık kodlarını yazabiliriz.

WIFI işlevini kullanmak için "ESP8266WiFi.h" başlık dosyasını eklemeniz gerekir.

WIFI başlatma süreci 3 adımdan oluşur:

  1. WIFI'yi Station moduna yapılandırın, yani ESP8266'mız bir WIFI cihazı olarak kullanılır;
  2. ESP8266'nın erişim noktasına bağlanabilmesi için WIFI erişim noktasının ssid ve şifresini girin;
  3. WIFI bağlantı durumunu okuyun ve bağlantının başarılı olmasını bekleyin.

ESP8266 geliştirme kartınızın modelini ve seri numarasını seçin:

Choose Board NodeMCU 1.0 (ESP-12E Module)
NodeMCU 1.0 (ESP-12E modülü) kartını seçme

Şimdi, kodu derleyip ESP8266WiFi kartına yazabiliriz.

Compile and Upload the code to ESP8266 WiFi Module
Kodu derleme ve ESP8266 WiFi modülüne yükleme

Paylaş:

Yukarı Çık

Instant Quote

Anında Fiyat Teklifi