- ESP8266 nedir?
- WiFi Teorisinin Temelleri:
- ESP8266 ile programlama türleri:
- ESP8266 Modülünü Programlamak İçin Donanım:
- Gerekli malzemeler:
- Devre Açıklaması:
- ESP8266 Programlama Kurulu Oluşturma:
Nesnelerin İnterneti ve Ev Otomasyonu son günlerde gerçekten heyecanlı bir konu oldu. World Wide Web ile iletişim kurabilen ve dünyanın her yerinden erişilebilen kendi başımıza bir şey inşa etmek kulağa gerçekten harika geliyor değil mi?
Fakat bekle!!! Ayrıca kulağa karmaşık geliyor ???….
Benim için de öyle yaptım, internet ile etkileşime girebilecek şeyler inşa etmenin çok zaman ve beceri gerektireceğini düşündüm. HAYIR, Espressif Systems'ın ESP8266 adlı bu harika modülü sayesinde tamamen yanılmışım. Artık bu modül sayesinde IoT Projeleri için kapılarınızı kolayca açabilirsiniz. Bu düşük maliyetli, küçük boyutlu modül harikalar yaratabilir ve doğru adımları izlediğimiz sürece gerçekten basit ve kullanımı kolaydır.
Bu eğitimler, size bu ESP8266-01 modülünü tanıtmayı ve onu kullanmaya başlamanıza yardımcı olmayı amaçlamaktadır. Belki de modülünüzü zaten getirmişsinizdir ve kullanmaya çalışırken takılı kaldınız. Öyleyse, yalnız değilsiniz, endişelenmeyin, birçok kişi modüle başlamakta çok zorlanıyor çünkü bu modül için uygun rehberlik veya dokümantasyon yok. Bu öğreticiyi yapmanın nedeni budur. Buradaki talimatları izleyin ve ESP8266-01 modülünüzü kısa sürede çalışır duruma getirebilmelisiniz, burada ESP8266'yı programlamak için FTDI USB - TTL Seri Adaptör Modülünü kullanacağız. Eğitimin sonundaki ayrıntılı Videoyu kontrol edin.
Konuya girmeden önce ESP8266-01 Modülü hakkında bazı temel bilgileri ele alalım.
ESP8266 nedir?
Çoğu kişi ESP8266'yı WIFI modülü olarak adlandırır, ancak bu aslında bir mikro denetleyicidir. ESP8266, merkezi Şangay merkezli Espressif Systems tarafından geliştirilen mikrodenetleyicinin adıdır. Bu mikrodenetleyici, WIFI ile ilgili aktiviteleri gerçekleştirme yeteneğine sahiptir, bu nedenle yaygın olarak bir WIFI modülü olarak kullanılır.
ESP8266-01'den ESP8266-12'ye kadar birçok ESP8266 modülü türü mevcuttur. Eğitimde kullandığımız ESP8266-01'dir çünkü en ucuz olanı ve kolayca elde edilebilir olanıdır. Bununla birlikte, tüm ESP modüllerinin yalnızca bir tür ESP işlemcisi vardır, farklı olan yalnızca kullanılan koparma çubuğunun türüdür. ESP8266-01'in koparma kartı yalnızca 2 GPIO pinine sahipken, diğer kartlarda daha yüksek olacaktır.
Modülün tüm özellikleri aşağıdaki tabloda verilmiştir.
Voltaj |
3.3V |
Anlık tüketim |
10uA-170mA |
Yanıp sönme sırasında maksimum akım tüketimi |
800mA |
Flash Bellek |
16MB (512K normal) |
İşlemci |
Tensilica L106 32 bit |
İşlemci hızı |
80-160 MHz |
Veri deposu |
32.000 + 80.000 |
GPIO |
17 (ancak çoğu multiplekslidir) |
Analogtan dijitale dönüştürücü |
1 (10 bit) |
Maksimum TCP bağlantısı |
5 |
Tamam, spesifikasyon hakkında sizi şaşırtabilecek birkaç şey, EVET ESP8266 modülünün bir ADC Dönüştürücüsü ile birlikte gelmesi ve cihazınızın yanıp sönmesi sırasında 0,8 A gibi çok yüksek bir akım tüketmesidir.
Ayrıca çeşitli ESP8266 tabanlı ilginç IoT Projelerimizi de inceleyin.
WiFi Teorisinin Temelleri:
Transfer Kontrol Protokolü (TCP), İnternet Protokolü (IP), Kullanıcı Datagram Protokolü (UDP), Erişim Noktası (AP), İstasyon (Sta), Hizmet Seti Tanımlayıcı (SSID), Uygulama Programlama Arayüzü (API), Web Sunucusu…..
Yukarıdaki tüm terimler size mantıklı geliyor mu?
Eğer evetse. Daha sonra BINGO bu kısma atlayabilir ve bir sonraki bölüme geçebilirsiniz.
Eğer hayırsa. Öyleyse, tüm bunlarla ilk tanıştığımda yaptığım gibi, bu terimlerin çoğunu gözlerini kırpıştıran birçok elektrik öğrencisinden biri olmalısın. Öyleyse, tüm bu terimleri hızlı bir şekilde inceleyelim, çünkü ancak o zaman IOT dünyasına giriş yapabiliriz.
Transfer Kontrol Protokolü (TCP):
Çoğumuz bunun ne anlama geldiğini biliriz. Evet, bunlar internetin çalıştığı kurallar dizisidir. ESP8266, WIFI bağlantılarını kurma yeteneğine sahip olduğundan. Yüksek düzeyde Wi-Fi, bir kablosuz bağlantı üzerinden TCP / IP bağlantılarına katılma yeteneğidir. ESP'nizin TCP / IP protokolü veya UDP protokolü üzerinde çalışmasını sağlayabilirsiniz.
Kullanıcı Datagram Protokolü (UDP):
UDP ayrıca başka bir internet protokolü türüdür. Bu tür bir iletişim TCP'den daha hızlıdır ancak daha az doğrudur. Bunun nedeni, TCP'nin iletişimi sırasında bir Alındı Bildirimi kullanması, ancak UDP'nin kullanmamasıdır. TCP, daha çok yüksek güvenilirlik gerektiren ağlarda kullanılır. UDP, hızın güvenilirlikten daha öncelikli olduğu yerlerde kullanılır. Örneğin, video konferansında UDP kullanılır, çünkü orada bazı pikseller iletilmese bile video kalitesini o kadar etkilemeyecektir ama hız çok önemlidir.
ESP8266 projelerinin ve kodlarının çoğu TCP / IP etrafında çalışır, UDP en az rahatsız olur.
Erişim Noktası (AP) ve İstasyon (STA):
ESP modülü ile çalışmaya başladığınızda bu iki terimle sık sık karşılaşacaksınız. Diyelim ki siz ve arkadaşınız akıllı telefonlarınızdan internette gezinmek istiyorsunuz ama aktif bir internet bağlantısı olmadığı için hotspot'unuzu açmaya karar veriyorsunuz ve arkadaşınız ona bağlanıyor. Burada internet bağlantısını sağlayan telefonunuz Erişim Noktasıdır (AP) ve internet kullanan arkadaşınızın telefonuna İstasyon (STA) denir.
ESP8266 modülü üç modda, AP modunda, STA modunda veya hem STA hem de AP modunda (birleşik) kullanılabilir.
Hizmet Kümesi Tanımlayıcı (SSID):
Bu oldukça basit bir terimdir. Hemen hemen hepimiz WIFI kullandık. Wi-Fi Ağının adı SSID olarak adlandırılır. Bir istasyonun bağlanması için birden fazla erişim noktamız olduğunda, istasyonun hangi erişim noktasına bağlanması gerektiğini bilmesi gerekir, bu nedenle her Erişim Noktasına (AP) SSID adı verilen bir kimlik verilir.
Uygulama Programlama Arayüzü (API):
Basitçe söylemek gerekirse bir API, isteklerinizi alan, işleyen ve sisteminize istenen sonucu döndüren bir mesajlaşma aracıdır. İnternette yaptığımız etkinliklerin çoğu, örneğin bir uçuş rezervasyonu yaptığınızda, çevrimiçi bir satın alma yaptığınızda vb. Gibi API'leri kullanır. Her web sitesi sizi, kaydolma, ödeme yapma vb. İşlerin bir kısmının sizin için yapıldığı bir API'ye bağlar. Orada.
ESP8266, İnternet dünyasıyla konuşmak için API kullanır. Örneğin, saati, iklimi veya ilgili web sitesine bir API biçiminde talep etmesi gereken şeyi bilmek istiyorsa. Bu web sitesi talebi alacak ve istenen sonucu ESP modülümüze geri verecektir.
Web sunucusu:
Web Sunucusu, bir web sitesinin içeriğini görüntülemekten sorumlu olan bir şeydir. Söz konusu web sitesinin tüm içeriği web sunucusuna yüklenecektir. Görevi yalnızca bir web sunucusu görevi gören özel bilgisayarlar vardır. Ayrıca ESP8266'mızı bir web sunucusu olarak çalışacak ve dünyanın herhangi bir yerinden ona bağlanacak şekilde programlayabiliriz.
Tamam, başlamamız için bu yeterli. Şimdi, donanıma el atalım.
ESP8266 ile programlama türleri:
ESP8266 modülünüzle çalışmanın iki yolu vardır. Bu eğitim, her ikisine de başlamanıza yardımcı olacaktır. Bunun bir yolu AT komutlarını kullanmaktır. Diğer yol ise Arduino IDE'yi kullanmaktır. Ne anlama geldiğini anlayalım.
Fabrikadan sevk edilen tüm ESP8266 modüllerinin içine yüklenmiş varsayılan bir ürün yazılımı (SDK + API) olacaktır. Bu aygıt yazılımı, ESP8266 modülünü AT komutları aracılığıyla programlamanıza yardımcı olacaktır.
Diğer yol ise ESP8266 modülünü Arduino IDE (kart gerekli değildir) ve kitaplıklarını kullanarak doğrudan programlamaktır. Tüm projeler her iki yöntemde de yapılabilir. Ancak, ESP8266'nızı programlamak için Arduino IDE'yi kullanmaya başlarsanız, AT komutlarını kullanamayabilirsiniz çünkü varsayılan SDK bozulmuş olabilir. Bu durumda, ESP'nizi varsayılan ayarlarla flaş etmeniz gerekir. Bunu başka bir derste ele alacağız.
ESP8266 Modülünü Programlamak İçin Donanım:
ESP8266, 8 terminalli bir modüldür. Aynı pim aşağıda gösterilmiştir.
Ne yazık ki, bu modül devre tahtası dostu değildir ve bu nedenle onu doğrudan devre tahtasına monte edemeyiz. Ayrıca Arduino'dan farklı olarak, dahili USB'den Seri sürücüye sahip değildir; dolayısıyla onunla iletişim kurmak için “FTDI USB'den TTL'ye Seri Adaptör Modülü” kullanmalıyız. FTDI kartının da 3.3V'de çalışabileceğinden emin olun; bu öğreticide kullandığımız aşağıda gösterilmektedir.
Şimdi, bildiğimiz gibi ESP8266'yı 3,3V ile çalıştırmalıyız. Ancak akım tüketimi 0,8A'dır, bu nedenle FTDI bağlantı panomuzdan güç alırsa beklendiği gibi çalışmayabilir. Bu nedenle kendi güç devremizi inşa etmeliyiz. Burada güç sağlamak için LM317 kullandık; tam donanımı yapmak için ayrıntılar daha sonraki bölümlerde verilmektedir.
Gerekli malzemeler:
- Perf Kurulu
- ESP8266-01
- FTDI koparma kurulu
- LM317
- 0.1 uf kapasitör
- 10 uf Kapasitör
- Namlu Jack
- Bergstik Erkek ve Kadın
- Butona basınız
- Bağlantı telleri
- Panele güç sağlamak için 12V Adaptör.
Devre Açıklaması:
Kartın Şemaları aşağıda gösterilmiştir
Bazıları ESP'nizi doğrudan FTDI'nizden çalıştırmayı denemiş ve çalıştırmış olabilir, ancak aşağıdakiler birkaç ek bileşenle kendi kartınızı oluşturmanın nedenleridir:
- Yalnızca birkaç FTDI kartı, ESP modülü için yeterli akımı sağlayabilir. Yanıp sönme sırasında birkaç ESP modülü diğerinden yüksek akım tüketebilir. Bu nedenle , kendi güç kaynağınızın olması her zaman güvenlidir ve güç devresini devre tahtası yerine Nokta Panosuna entegre etmek daha kolay olacaktır.
- Kodu yüklemeden önce her zaman ESP modülünü sıfırlamalıyız, kendi kartımızı oluşturmak modülü kolayca sıfırlamamıza yardımcı olacaktır. ESP8266'yı Sıfırlamak için Basmalı Düğme kullandık.
- GPIO0 pini, Arduino kullanarak programlama yaparken topraklanmalı ve AT komutlarını kullanırken boş bırakılmalıdır, kendi kartımızı oluşturursak bu kolayca değiştirilebilir. AT komutları modu ile Arduino IDE Programlama modu arasında geçiş yapmak için bir Jumper kullandık.
- Tüm programlama Seri iletişim kullanılarak yapılır , eğer bir devre tahtası kullanıyorsanız, bazı gevşek terminaller yarı yolda bir hataya neden olabilir ve bizi tekrar çalışmak için modülü flaş etmeye zorlayabilir.
Bununla birlikte, bir devre tahtası kullanmakla modülü programlamak için kendi kartınızı yapmak arasında seçim yapabilirsiniz. Yine de devre tahtasını kullanmak istiyorsanız, yukarıda gösterilen aynı devre devre tahtanızı kullanarak oluşturulabilir. Yalnızca görünüm farklı olacaktır, bu eğitimdeki diğer tüm talimatlar aynı şekilde uygulanacaktır.
ESP8266 Programlama Kurulu Oluşturma:
İşte burada, ESP8266'yı çalıştırmak için kendi güç devresine sahip olan ESP8266 modülünü programlamak için kartı inşa ediyoruz.
Dediğim gibi modülümüz programlanırken yaklaşık 800mA gerektirecektir. Bu nedenle, LM317'nin kaynak akımı neredeyse 1.2A olduğundan, LM317 değişken voltaj regülatörü kullanarak kendi güç modülümüzü oluşturduk. LM317'nin giriş voltajı, 12V 2A duvar montaj adaptörü kullanılarak verilecek olan 12V olacaktır. LM317'nin çıkışı 220ohm ve 360ohm dirençler kullanılarak sürekli olarak 3,3V'a ayarlanacaktır. LM317 hakkında daha fazla bilgi edinmek için LM317 kullanan Pil Şarj Devresimizi de kontrol edin.
LM317'nin çıkış voltajını hesaplamak için kullanılan formüller aşağıda verilmiştir:
Vout = 1,25 * (1+ (R2 / R1))
Nerede, R1 220ohm ve R2 360ohm'dur.
ESP8266 Modülü, aşağıdaki tabloda gösterilen pimlere göre bağlanır.
Pin No. |
ESP pin adı |
Bağlı |
1 |
Zemin |
FTDI modülünün zemini |
2 |
GPIO2 |
Serbest bırakılır veya ileride kullanım için berg çubuğuna bağlı |
3 |
GPIO0 |
Programlama modları arasında geçiş yapmak için geçiş yapın |
4 |
Rx |
FTDI modülü Tx |
5 |
Tx |
Rx of FTDI modülü |
6 |
CH_PH |
LM317'den 3,3V |
7 |
Sıfırla |
Modülü sıfırlamak için basma düğmesi |
8 |
Vcc |
LM317'den 3,3V |
AT komut modu ile Arduino Programlama modu arasında kolayca geçiş yapmak için, Arduino IDE'yi kullanırken GPIO 0'ı toprağa çekecek ve AT komutlarını kullanırken yüzer halde bırakacak bir anahtar (jumper) yerleştirdim.
Basıldığında ESP modülünü sıfırlayacak bir basma düğmesi vardır. Bu, ESP modülünün RST pimini düğme aracılığıyla topraklama rayına basitçe bağlayarak yapılır. ESP modülümüzü her programlamadan önce onu sıfırlamamız gerekir.
Devreyi bir kez monte ettikten sonra, aşağıdaki gibi görünmelidir.
Bir Perf panosu kullandım, ancak ilgileniyorsanız bir devre tahtası da kullanabilirsiniz (yukarıda tartışıldığı gibi). Tam yapı ve açıklama aşağıdaki videoda gösterilmektedir.
Bağlantılarla bir kez bitti. Kartı ESP & FTDI kartları olmadan çalıştırın ve ESP modülleri pozisyonunun Vcc ve Toprak terminallerinde düzgün şekilde 3.3V alıp almadığımızı kontrol edin. Şimdi FTDI kartınızın 3.3V modunda olduğundan emin olun ve FTDI ve ESP modüllerinizi kartınıza bağlayın.
Adaptörünüzü açın ve kartınıza bağlayın, ESP modülü kırmızı renkte yanmalıdır.
Ardından, FTDI kartınızı bir mini-USB - USB kablosu kullanarak bilgisayarınıza bağlayın ve bilgisayarınızdaki Aygıt yöneticisine gidin ve aşağıda gösterildiği gibi COM bağlantı noktanıza bağlı FTDI kartını bulmalısınız:
Şimdi, ESP8266 modülümüzü programlamaya başlama zamanı. AT komutlarını kullanarak başlayabilir ve ardından Arduino IDE'yi kullanmaya başlayabilirsiniz. Diğer ESP8266 tabanlı Projelerimizi incelemeyi unutmayın.