ESP8266 Aptallar için WiFi Modülü

ESP8266 WiFi Modülüne Genel Bakış

ESP8266, cihazları İnternet üzerinden kontrol etmek için gerçekten kullanışlı, ucuz bir WiFi modülüdür. Arduino gibi bir mikro denetleyici ile çalışabilir veya kendi başına çalışacak şekilde programlanabilir.

Nesnelerin İnterneti (IoT) çok daha ucuz ve kolay hale getirildi!

ESP8266, standart “AT komutları” ile kontrol etmenizi sağlayan fabrikada kurulmuş ürün yazılımı ile birlikte gelir. Ayrıca kendi kodunuzu kolayca oluşturabilir ve yükleyebilirsiniz, bu da onu oldukça güçlü ve esnek hale getirir.

ESP8266 2014 yılında piyasaya sürüldü ve popülerliği hızla artıyor. Sadece bir ESP8266 işlemci var, ancak birçok farklı ara kartında bulunuyor. Bunların hepsi, hangi pinlerin maruz kaldığı ve flash belleğin boyutu vb. Bakımından farklılık gösterir. Bu koparma panoları yıllar içinde hızla gelişmiştir ve web'de çok fazla bilgi bulunmaktadır. Bazı tavsiyeler eski veya sadece düz yanlış olduğu için bu bir nimet ve bir lanet.

Sonuç olarak bir şey yapmak için 3 gün önce beni aldı! Bazı insanlar şanslı ama benim için her şeyin yolunda gitmesi bir savaştı. Bazen onu kırdığımı sanıyordum ama biraz azimle her zaman hayata döndü!

Sonunda şarkı söyleyip dans ettim ve düşündüğümden daha kolay çıktı!

Bulduğum tüm yararlı bilgileri tek bir yerde birleştirdim ve bunu öğretilebilir bir şekilde paylaşacağımı düşündüm. Bu, umarım ihtiyacınız olan tüm temel işlevlerle hızlı bir şekilde çalışmaya başlamanıza yardımcı olur.

Bu talimatta ESP-01 koparma panosuna bakıyorduk.

Ancak aynı yaklaşım, ESP'nin varyantlarının çoğuna (hepsi olmasa da) uygulanmalıdır.

Adım 1: Kısaca ESP-01

  1. 802.11 b / g / n protokolünü destekler
  2. Yönlendiricinize bağlanabilir ve istemci olarak çalışabilir veya bir erişim noktasının kendisi veya her ikisi de olabilir!
  3. IP adreslenebilir ve bir Web Sunucusu olabilir
  4. “Standart” versiyonda giriş veya çıkış için kullanılabilecek 2 dijital pin bulunur. Örn: LED'leri veya röleleri çalıştırmak için. Bu pimler PWM için de kullanılabilir. Diğer versiyonlarda daha fazla pin açıktır. Örneğin ESP-12, daha fazla iğneye ihtiyacınız varsa iyi bir seçenektir. Her iki şekilde de programlama hala aynı.
  5. Analog giriş ESP8266 yongasında (ADC / TOUT) da mevcuttur, ancak ESP-01'e bağlanmamıştır.
  6. Bir Arduino ile kombine edilebilir veya kendi başına çalışacak şekilde programlanabilir
  7. Programlamak için çeşitli araçlar ve geliştirme ortamları (IDE'ler) vardır.
  8. Ve daha fazlası var….

Bu demoda ESP8266, WiFi üzerinden etkileşimde bulunabileceğiniz bir Web Sayfası barındıran bir Web sunucusu olarak işlev görür.

Bu demo ile kendi ev otomasyon projenizi başlatabilir ve web üzerinden kontrol edebilirsiniz!

2. Adım: Gerekenler

Öncelikle işe koyup kuramayacağımızı görelim.

Birçok site, ürün yazılımının yeniden yanıp sönmesini ve çeşitli araçların kullanılmasını önerir. Bunu henüz yapmanıza gerek yok.

Ürün yazılımını kendi kodumuzla değiştireceğiz. Başka bir talimatta: ESP8266 Ürün Yazılımınızı Yanıp Sönmek için Basit Kılavuz Size güncelleştirilmiş bir fabrika sürümüne nasıl geri döndürüleceğini göstereceğim. ESP8266'yı yalnızca kendi kodunuzla programlayacaksanız - bu demoda yapacağımız gibi - fabrika yazılımına ihtiyacınız yoktur. Kodunuz bellenimdir.

Arduino IDE'yi programlama aracı olarak kullanacağız, ancak Arduino'nun kendisine ihtiyacımız yok. ESP8266 ihtiyacımız olan tüm işlevselliğe sahiptir.

Not: kendi kodunuzu yükledikten sonra ESP8266'nızın artık AT komutlarına yanıt vermeyeceğini unutmayın. Kodunuz ürün yazılımının yerini aldı. Kodunuzu ve Arduino IDE'deki ESP8266 kitaplığını kullanarak daha zengin bir komut kümesine erişebilirsiniz. Buradaki belgelere bakın: //www.arduino.cc/en/Reference/WiFi

İsterseniz AT komutlarına geri dönmek için ESP8266 üzerindeki ürün yazılımını geri yükleyebilirsiniz. Diğer talimatlara bakın: ESP8266 Yazılımınızı Yanıp Sönmek için Basit Kılavuz.

Not : Bu bir 3.3V modülü ve 5V değil. ESP-01 düşündüğümden daha sağlam, ancak özellikle 5V USB - Seri Programcı veya mikro denetleyici ile kullanıyorsanız, düzgün bir şekilde ayarlamanız gerekir, aksi takdirde kızartın!

Gerekenler:

  1. Elbette bir ESP8266 (ESP-01 varyantını kullanın veya kablolarınızı buna göre uyarlayın)
  2. Breadboard
  3. FTDI Basic gibi 3.3V USB - Seri Programcı (bazen UART olarak da bilinir: Evrensel Asenkron Alıcı / Verici). Bazılarında 5V ve 3.3V arasında geçiş yapmak için bir jumper bulunur.
  4. Breadboard Jumper Telleri
  5. Ayrı bir 3.3V Güç Kaynağı. ESP8266 çok fazla mA (bazen> 250mA) çiğneyebileceğinden birine ihtiyacınız var. Seri Programlayıcı veya Arduino'dan gelen 3.3V çıkış yeterli değildir . Ayrı bir güç kaynağı olmadan ESP'niz düzensiz olabilir ve kod yüklemeye çalışırken zaman kaybedersiniz.
  6. Led, basma düğmesi, 330 ohm direnç, 10k ohm direnç, güç kaynağınız boyunca .1µF kapasitör (standart uygulama olarak).
  7. 5V'de bir mikro denetleyici veya FTDI programlayıcı kullanıyorsanız devreye bir Mantık Seviyesi Dönüştürücü ekleyin

Dahili bir USB bağlantı noktasına sahip bir ESP8266'nız varsa, bu güçlüklerden herhangi birini geçmeniz gerekmez. Wemos D1 Mini iyi bir alternatiftir. Şuna bakın: //www.wemos.cc/product/d1-mini.html

3. Adım: Bileşenler Daha Ayrıntılı

ESP-01

ESP-01'imi //netram.co.za/2720-wifi-serial-transceiver-module-esp8266.html adresinden aldım.

Çeşitli sürümlere buradan göz atabilirsiniz: //www.esp8266.com/wiki/doku.php?id=esp8266-module-family


Breadboard Güç Kaynağı

İyi bir güç kaynağı ESP8266 için çok önemli bir unsur gibi görünmektedir. Bir breadboard güç kaynağı, özellikle karışık voltajlarla uğraşırken gerçekten yararlıdır. Burada gösterilen, 3.3V ve 5.5V sağlar ve doğrudan breadboard'unuza takılır. Uzun zaman önce bir tane almalıydım! ESP8266 çok fazla mA (bazen> 300mA) çiğneyebilir. ESP'niz yeniden başlatılırsa veya güvenilir değilse, ESP için ayrı bir güç kaynağına ihtiyacınız vardır (yine de ortak bir zeminde kalın). Ayrıca sivri uçları en aza indirmek ve küçük bir güç rezervuarı sağlamak için 3.3V ve topraklama arasında bir kapasitör bağlayın.

//netram.co.za/938-breadboard-power-supply-5v33v.html


USB - Seri programcı

3.3V'yi destekleyen veya 3.3V / 5V atlama kablosuna sahip olanı alın, aksi takdirde sadece 5V'niz varsa, programcı ile ESP8266 arasında iki yönlü bir Mantık Seviyesi Dönüştürücü kullanmalısınız. FTDI Basic'in arkasında 3.3V / 5V bir jumper bulunur:

//netram.co.za/2842-ftdi-basic-usb-to-ttl-programmer.html

//netram.co.za/2679-logic-level-converter-bi-directional.html


Mantık Seviyesi Dönüştürücü

Çift Yönlü 5V ve 3.3V. Bu, yalnızca 5V'luk bir seri programlayıcı kullanıyorsanız gereklidir.


Breadboard Kazakları

Bazı JST jumper'larını pinli modüllere takmak ve daha sonra bunları breadboard'a birleştirmek için kullanışlı olduklarından ekleyin. Bu amaçla erkek-dişi kabloları dahil edin. ESP-01 breadboard dostu değildir, bu yüzden bunlara ihtiyacınız olacaktır.

Adım 4: Breadboard Düzeni

Breadboard'a bakıldığında, FTDI programcısı üstte kırmızı kart ve altta ESP8266-01'dir. FTDI programcısı sadece 3 kabloya ihtiyaç duyar: topraklama kablosu ve ESP'de RX - TX ve TX - RX. Solda breadboard güç kaynağı var (normalde breadboard'a takılır).

Not: ESP'ye giden güç kaynağının kalitesi en önemli faktörlerden biridir. Ani yükselmeleri en aza indirmek için 3.3V ve Toprak üzerinde küçük bir kapasitör (.1uF) vardır. ESP'nizi programlama konusunda sorun yaşıyorsanız, güç kaynağınız iyi olabilir. Ne yardımcı olacak 3.3V ve Toprak arasında daha büyük bir kapasitör eklemek. örneğin: 10 uF.

Adım 5: ESP-01 Pinouts

ESP8266 pinouts'un üstündeki resim ağın her yerinde bulunur. Sanırım Neil “Kolban'ın ESP8266 Kitabı” dan kaynaklanmış olabilir. Bu harika bir kaynak ve pdf olarak indirilebilir: //leanpub.com/ESP8266_ESP32. 400 sayfa uzunluğunda, Kasım 2016'da güncellendi ve ciddi ESP8266 gelişimine giriyorsanız, bu kitap almak için. Ücretsizdir ancak yapabiliyorsanız bağış yapın.

Breadboard kablolama notları:

  • Teller, anlaşılır olması için ESP-01'in önüne bağlanır. Arkadan aynı pimlere takın. ESP-01 breadboard dostu değildir ve JST konnektör erkek-dişi jumperlar bağlamak için kullanışlıdır.
  • Programlama için GPIO 0 düşük tutulmalıdır. FTDI'yı çıkarırsanız ve ESP8266'yı kendi güç kaynağında çalıştırırsanız bu çıkarılmalıdır.
  • CH_PD her zaman yüksek tutulmalıdır.
  • RESET pimi 10k ohm'luk bir dirençle yüksek tutulur ve çipi yeniden başlatacak olan RESET düğmesiyle toprağa getirilir. Her kod yüklemeden önce ve GPIO 0'ı her bağladığınızda veya bağlantısını kestiğinizde RESET düğmesine basın. Sıfırlama düğmesi size çok fazla güç kazandıracaktır.

Devreye güç verdiğinizde ESP-01 üzerindeki kırmızı LED yanmalı ve mavi LED kısa süreliğine yanıp sönmelidir. Daha sonra ESP'ye kod yüklerken, işlem sırasında mavi LED sürekli yanıp sönmelidir. Diğer tüm LED kombinasyonları bir sorun olduğunu gösterir.

Not : Seri programlayıcıyı çıkarmak ve ESP'yi kendi başına çalıştırmak istiyorsanız, GPIO 0'ı topraktan ayırdığınızdan ve RESET düğmesine bastığınızdan emin olun, aksi takdirde ESP düzgün çalışmayabilir.

6. Adım: Şematik

Adım 7: Bir Seri Programcı Yerine Arduino Kullanımı

USB - Seri programcı yerine Arduino da kullanabilirsiniz.

Unutulmaması gereken birkaç nokta:

  1. 5V Arduino'da dijital çıkış 5V olacaktır ve bu ESP2866'nızı kızartır. 3.3V Arduino veya Logic Converter çipi kullanın.
  2. Arduino'daki 3.3V Vout, ESP8266'nızı sürmek için yetersizdir ve güvenilir olmayan sonuçlar alabilirsiniz. Tercihen başka bir 3.3V besleme kullanın.
  3. Önerilen bir uygulama olarak, öngörülemeyen sonuçlardan kaçınmak için başka bir cihaz bağlamadan önce her zaman Arduino'nuza boş bir taslak yükleyin. Boş bir çizimde boş kurulum () ve loop () işlevleri vardır.
  4. Arduino Uno kullanıyorsanız, sadece bir donanım TX&RX çifti vardır. ESP8266 ve Seri Monitör ile aynı anda iletişim kurmak için SoftwareSerial include dosyasını da kullanmanız gerekir. Baud hızı üzerinde bir sınırlama vardı, ancak şimdi teorik olarak 115200'e kadar bir baud hızını destekleyebilir. Bir Mega 2560 daha fazla donanım TX ve RX pinine sahiptir, bu yüzden bu daha iyi bir yol olabilir.
  5. Ve son olarak ve önemli olarak : Arduino'daki TX ve RX pinlerine yakından bakın. Yanlarında oklar olduğunu fark edeceksiniz. TX piminin ondan uzağa işaret eden bir oku vardır. Bunun söylediği TX IN! Bunun anlamı, TX pininin aslında RX pin olmasıdır! Ve aynı şekilde RX pin aslında TX pin! Bu yüzden Arduino'yu başka bir cihazla seri adaptör olarak kullanırken RX'i RX'e ve TX'i TX'e bağlamalısınız. Bu nüansı sadece birkaç saatlik acıdan sonra keşfettim! Neden-oh-neden böyle etiketlediler?

Soru sorurken: ESP-01'in neden bu kadar kullanışlı pinout ile üretildiğini görmek beni şaşırtıyor! Hala harika bir başlangıç ​​noktası ama daha fazlasına ihtiyacınız varsa ESP-12'yi tercih edin.

İşleri gerçekten kolaylaştırmak için, dahili bir USB'ye sahip bir ESP-12'yi deneyin:

//www.wemos.cc/product/d1-mini.html

Adım 8: Arduino IDE Kullanarak Programlama

ESP8266'yı programlamak için çeşitli araçlar vardır, ancak Arduino IDE (Entegre Geliştirme Ortamı) çoğu halk için en kolayıdır.

ESP8266'yı Arduino IDE ile programlamak için henüz sahip değilseniz en son sürümü indirmeniz ve ardından ESP8266 desteğini yüklemeniz gerekir. Yalnızca Arduino programlama ortamını kullandığınızı, herhangi bir Arduino donanımına ihtiyacınız olmadığını unutmayın.

Arduino IDE'yi indirmek için şu adrese gidin: //www.arduino.cc/en/Main/Software

Arduino IDE'yi başlatın ve Boards Manager'ı seçin.

Adım 9: ESP2866 Board Yöneticisini Kurun

Arduino IDE'yi başlatın ve Araçlar / Kart altından Boards Manager'ı seçin.

Adım 10: ESP2866 Board Yöneticisini Kurun

Esp8266'yı bulun, seçin ve Yükle'ye tıklayın.

Adım 11: Arduino Tercih Kurulumu

Dosyaya / Tercihlere Git

Adım 12: Boards Manager URL'leri

Ek Anakart Yöneticisi URL'leri alanına ESP8266 paketinin URL'sini girin:

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

Adım 13: IDE'de ESP8266 Kurulumu

“Generic ESP8266 Module” ü seçin ve tekrar Boards Manager'a dönün

Adım 14: ESP8266 Seçenekleri

Size ESP-01 seçeneklerini ayarlayın. PC'nize göre uygun COM portunu seçin.

Adım 15: ESP8266 ile konuşmak

ESP8266'nızda hala orijinal bellenim varsa, Seri Monitör ile konuşmayı deneyebilirsiniz.

  1. Arduino Seri Monitörünü açın:
  2. Genellikle 115200 olan, ancak ESP'deki bellenime bağlı olarak 9600'e kadar herhangi bir şey olabilecek uygun baud hızını seçin.
  3. Ayrıca “NL & CR” yi de seçin. Ie: Her yeni “Gönder” den sonra yeni Satır ve Satır Başı karakterleri.
  4. AT yazın ve enter tuşuna basın. ESP, OK ile geri dönmelidir. Değilse, RESET düğmesine basın veya USB kablosunu çıkarıp yeniden başlatmayı deneyin. Ayrıca, doğru COM bağlantı noktasını seçtiğinizden emin olun. Ayrıca ESP'nizde “standart” ürün yazılımı yoksa AT komut setini anlamayabilir. Bu, her zaman bir sorun değildir, çünkü bu talimatın ilerleyen bölümlerinde Arduino koduyla üzerine yazacaksınız.
  5. AT + GMR yazın. Bu, ESP'nizdeki ürün yazılımının sürüm numaralarıyla birlikte gelmelidir. Başka bir talimatta, “fabrika” ürün yazılımının en son sürümünü nasıl geri yükleyebileceğinizi göstereceğim (isterseniz).

Adım 16: ESP8266 Arduino Kodu

Kod dosyasını indirin (ESP8266_LED_Control.zip), sıkıştırmayı açın ve Arduino IDE'de açın.

Yönlendirici ayarını kendinize göre değiştirin. ie: SSID ve PASSWORD alanlarını değiştirin.

Breadboard'unuzun doğru ayarlandığından emin olun ve USB kablonuzu Seri Programlayıcıya bağlayın.

Not: Kodunuzdaki GPIO Pinlerini adreslerken GPIO numarasını kullanmalısınız. örneğin: GPIO 2 için 2, farklı olacak fiziksel pin numarası değil.

Ekler

  • ESP8266_LED_Control.zip İndirme

Adım 17: Kodunuzu ESP8266'ya Yükleme

Eğer kullanıyorsanız, TÜM Seri port monitörlerini aynı portta kapattığınızdan emin olun. Örneğin: CoolTerm gibi araçlar. Yüklendikten sonra ESP'nin IP adresini görmeniz gerekeceğinden Arduino Seri Monitörünü tekrar açın.

Not : Kodunuzu yüklemek için GPIO 0 topraklanmış olmalıdır. Kodunuzu tarayıcıda çalıştırırken orada bırakabilirsiniz. Her yüklemeden önce RESET düğmesine basın. Yükleme başarısız olursa, ayarlarınızı kontrol edin ve USB kablosunu çıkarıp yeniden takmayı deneyin. Ctrl & U'yu birkaç kez deneyin. Her şey başarısız olursa PC'nizi yeniden başlatmayı deneyin. Bazen COM bağlantı noktaları biraz dağınık olur.

Kod başarıyla yükleniyorsa, ESP üzerindeki mavi LED yanıp sönmelidir. Yüklemenin ilerlemesi yukarıdaki görüntülere benzemelidir.

Not : Seri programlayıcıyı çıkarmak ve ESP'yi kendi başına çalıştırmak istiyorsanız, GPIO 0'ı topraktan ayırdığınızdan ve RESET düğmesine bastığınızdan emin olun, aksi takdirde ESP düzgün çalışmayabilir.

ESP8266 yüklemeleriniz düzensiz çalışıyorsa, güç kaynağınızı iyileştirin.

Adım 18: Ne Yaptığını Görelim

Arduino Seri Monitöre geçin, ESP'nin IP Adresini görmelisiniz. Ayrıca Yönlendiricinize giriş yapabilir ve orada nelerin bağlı olduğunu kontrol edebilirsiniz. Cihaz, bağlı bir IP listesinde ESP_1A6C4A gibi bir adla görünecektir.

Yönlendiricinizdeyken ESP'nin IP adresini her zaman ayırabilir ve ESP'ye ofis dışında olduğu gibi ağınızın dışından bağlanabilmeniz için bazı Bağlantı Noktası Yönlendirme ayarlayabilirsiniz.

Yukarıdaki gibi bir şey görmelisin. Tarayıcınızda bu IP adresini kullanın.

Adım 19: Deneyelim

Birkaç bağlantıya tıkladıktan sonra LED'in yanıp söndüğünü göreceksiniz!

Ayrıca PWM yapabileceğini ve LED'in karartılabileceğini de görüyorsunuz.

ESP8266 dijital pinlerdeki Kesintileri de işleyebilir ve analog girişe sahiptir. Analog giriş pimi ESP-01'de açıkta olmasa da,

Internet Explorer iyi çalışıyor, ancak bir nedenle FireFox ESP ile çok yavaş görünüyor. Bunun HTTP üstbilgisinin kurulumu ile ilgisi olabilir.

Not: kendi kodunuzu yükledikten sonra ESP8266'nızın artık AT komutlarına yanıt vermeyeceğini unutmayın. Kodunuz ürün yazılımının yerini aldı. Kodunuzu ve Arduino IDE'deki ESP8266 kitaplığını kullanarak daha zengin bir komut kümesine erişebilirsiniz. Buradaki belgelere bakın: //www.arduino.cc/en/Reference/WiFi.

İsterseniz AT komutlarına geri dönmek için ESP8266 üzerindeki ürün yazılımını geri yükleyebilirsiniz. Diğer talimatlara bakın: ESP8266 Yazılımınızı Yanıp Sönmek için Basit Kılavuz.

Adım 20: ESP Kaynakları

Kasım 2016'da güncellenen "Kolban'ın ESP8266 Kitabı" ciddi meraklılar içindir.

470+ sayfa uzunluğunda ve inanılmaz miktarda ayrıntıya sahip. Ücretsiz olarak alabilirsiniz, ancak bağış yapabilirsiniz.

//leanpub.com/ESP8266_ESP32

Şimdi ESP32'yi ayırdı ve yeni bir kitap yayınladı:

//leanpub.com/kolban-ESP32

ESP32

"ESP8266 gibi, ESP32 de WiFi uyumlu bir mikrodenetleyicidir, ayrıca Bluetooth düşük enerjili (yani BLE, BT4.0, Bluetooth Smart) ve yaklaşık 30 G / Ç pini için destek ekler."

Bakınız: //www.sparkfun.com/products/13907

ESP Siteleri

//www.esp8266.com/wiki/doku.php?id=esp8266-module-family

//www.esp8266.com/

//iotbytes.wordpress.com/esp8266-pinouts/

//espressif.com/en/products/hardware/esp8266ex/resources


AT Komutları

//www.itead.cc/wiki/ESP8266_Serial_WIFI_Module#AT_Commands

//espressif.com/sites/default/files/documentation/4a-esp8266_at_instruction_set_en.pdf


Arduino Kurul Müdürü

//randomnerdtutorials.com/how-to-install-esp8266-board-arduino-ide/

//github.com/esp8266/Arduino


Bellenimin Yanıp Sönülmesi ile İlgili Notlar:

Fabrika yazılımını ESP8266'nıza nasıl yakacağınızı gösteren bir talimat yayınladım.

Bkz. //Www.instructables.com/id/The-Simple-Guide-to-Flashing-Your-ESP8266-Firmware/

İlgi̇li̇ Makaleler