ESP8266 ile Kendi Wi-Fi Bağlantılı Düğmenizi Nasıl Yapabilirsiniz?

ESP8266 ile Kendi Wi-Fi Bağlantılı Düğmenizi Nasıl Yapabilirsiniz?

Nesnelerin İnterneti, geniş bir DIY potansiyeline sahiptir. Yeterli bilgi birikimi ve birkaç ucuz bileşenle, bağlı cihazlardan oluşan karmaşık bir sistem oluşturabilirsiniz.





Ancak bazen basit bir şey istersiniz. Zil veya ıslık yok, sadece tek bir görevi yerine getiren bir düğme. Günlük ev eşyalarını yeniden sıralamak için bir Amazon Dash düğmesi kullandıysanız, buna benzer bir şeye zaten aşina olabilirsiniz.





Bugün bir NodeMCU kullanarak Wi-Fi etkinleştirilmiş bir düğme oluşturacağız ve bunu IFTTT'yi kullanmak üzere programlayacağız… İsterseniz videonun ardından yazılı talimatlar.





Neye ihtiyacınız olacak

İhtiyacın olacak:

  • 1 x NodeMCU (ESP8266) kartı, AliExpress'te 2-3 Dolar
  • 1 x Buton
  • 1 x LED (isteğe bağlı)
  • 1 x 220 Ohm direnç (opsiyonel)
  • Breadboard ve bağlantı telleri
  • Programlama için mikro USB
  • Arduino IDE'nin kurulu olduğu bilgisayar

NodeMCU dışında, bu parçaların çoğunu herhangi bir Arduino başlangıç ​​kitinde bulabilmeniz gerekir. Bu öğretici, isteğe bağlı LED ve direnci kullandığınızı varsayacaktır, ancak bunlar zorunlu değildir.



Adım 1: Devreyi Kurma

Bu proje için donanım kurulumu çok basittir. Tahtanızı bu şemaya göre kurun.

Mor tel takılır D0 pimi düğmenin bir tarafına. Yeşil kablo, düğmenin diğer tarafını RST pimi . Mavi tel çalışır D1 pimi direnç ve LED'e. LED'in negatif ayağı, GND pimi NodeMCU'nun.





Breadboard kurulduğunda şöyle görünmelidir:

dizüstü bilgisayar wifi windows 10'a bağlanmayacak

Sadece bu küçük kablo parçalarını kullanarak LED'imi topraklama pimine nasıl bağladığımı merak ediyorsanız, hızlı breadboard hızlandırılmış kurs temizlemeye yardım etmeli! Kurulumunuzu kontrol edin ve NodeMCU'nuzu USB aracılığıyla bilgisayara bağlayın.





Adım 2: IDE'yi Ayarlama

Kodlamaya geçmeden önce bazı hazırlıklar yapmanız gerekiyor. Henüz yapmadıysanız, NodeMCU kartınızı tanımak için Arduino IDE'yi ayarlayın. üzerinden pano listenize ekleyebilirsiniz. Dosya > Tercihler .

Bu adımın daha ayrıntılı açıklamasını NodeMCU tanıtım makalemizde bulabilirsiniz.

Bu proje için iki kütüphane gereklidir. Şu yöne rotayı ayarla Çizim > Kitaplığı Dahil Et > Kitaplıkları Yönet . Aramak ESP8266WIFI Ivan Grokhotkov tarafından ve yükleyin. Bu kitaplık, NodeMCU kartı ile Wi-Fi bağlantıları yapmak için yazılmıştır.

için sonraki arama IFTTTWeb kancası John Romkey tarafından ve en son sürümü yükleyin. Bu kitaplık, web kancalarını IFTTT'ye gönderme işlemini basitleştirmek için tasarlanmıştır.

İhtiyacımız olan tüm hazırlık bu, hadi kod yazalım!

Kod Nasıl Çalışacak?

kullanacağız ESP8266WIFI Wi-Fi bağlantısı kurmak için kitaplık. NS IFTTTWeb kancaları kütüphane IFTTT'ye bir talepte bulunur --- bu durumda Twitter'a göndermek için. Ardından, güç tasarrufu yapmak için NodeMCU kartına kullanılmadığında uyku moduna geçmesi talimatını verin.

Düğmeye basıldığında, bağlantı kurulacaktır. D0 ve RST iğneler. Bu, kartı sıfırlar ve işlem tekrar gerçekleşir.

Bu eğitimdeki kodun çoğu, yeni başlayanlar için yeterince basittir. Bununla birlikte, yeni başlıyorsanız, aşağıdakileri izledikten sonra anlamanın çok daha kolay olduğunu göreceksiniz. Arduino başlangıç ​​kılavuzu .

Bu öğretici, anlamaya yardımcı olmak için kodu parçalar halinde inceler. Doğrudan işe başlamak istiyorsanız, şunları bulabilirsiniz: Pastebin'de tam kod . Bu kodun çalışması için Wi-Fi ve IFTTT kimlik bilgilerinizi yine de bu koda doldurmanız gerekeceğini unutmayın!

3. Adım: Derin Uykuyu Test Etme

Başlangıç ​​olarak, derin uykunun nasıl çalıştığını gösteren basit bir test oluşturacağız. Arduino IDE'de yeni bir çizim açın. Aşağıdaki iki kod parçasını girin.

#include
#include
#define ledPin 5
#define wakePin 16
#define ssid 'YOUR_WIFI_SSID'
#define password 'YOUR_WIFI_PASSWORD'
#define IFTTT_API_KEY 'IFTTT_KEY_GOES_HERE'
#define IFTTT_EVENT_NAME 'IFTTT_EVENT_NAME_HERE'

Burada, taslağımızda ihtiyaç duyacağımız birkaç değişkeni tanımlamanın yanı sıra kütüphanelerimizi de dahil ediyoruz. ledPin ve wakePin'in yukarıdaki Fritzing şemasına kıyasla burada farklı şekilde numaralandırıldığını fark edeceksiniz. NodeMCU, Arduino kartlarından farklı bir pin çıkışına sahiptir. Bu kullanışlı diyagram nedeniyle bu bir sorun değil:

Şimdi bir kurulum işlevi oluşturun:

void setup() {
Serial.begin(115200);
while(!Serial) {
}
Serial.println(' ');// print an empty line before and after Button Press
Serial.println('Button Pressed');
Serial.println(' ');// print an empty line
ESP.deepSleep(wakePin);
}

Burada seri portumuzu kuruyoruz ve başlayana kadar beklemek için bir while döngüsü kullanıyoruz. Sıfırla butonuna bastıktan sonra bu kod tetikleneceği için yazdırıyoruz 'Düğmeye Basıldı' seri monitöre. Ardından, NodeMCU'ya, cihazı bağlayan düğme gelene kadar derin uyku moduna geçmesini söyleriz. uyandırmaPini için RST pime basılır.

Son olarak, test için bunu ekleyin. döngü() yöntem:

void loop(){
//if deep sleep is working, this code will never run.
Serial.println('This shouldn't get printed');
}

Genellikle, Arduino eskizleri kurulumdan sonra döngü işlevini sürekli olarak çalıştırır. Kurulum bitmeden kartı uyku moduna gönderdiğimiz için döngü asla çalışmaz.

Çiziminizi kaydedin ve panoya yükleyin. Seri monitörü açın ve görmelisiniz 'Düğmeye Basıldı.' Düğme her tetiklendiğinde, kart sıfırlanır ve mesaj yeniden yazdırılır. İşe yarıyor!

Seri Monitör Hakkında Bir Not

Bazı projeleriniz sırasında seri monitörde bazı anlamsız karakterler fark etmiş olabilirsiniz. Bunun nedeni genellikle seri monitörün aynı baud hızına ayarlanmamasıdır. Seri.başla(XXXX) oran.

Birçok kılavuz, böyle bir proje için seri bağlantının 115200 baud hızında başlatılmasını önerir. Birçok kombinasyon denedim ve hepsinde seri mesajlardan önce ve sonra değişen derecelerde anlamsız sözler vardı. Çeşitli forum gönderilerine göre, bu hatalı bir pano veya yazılım uyumluluğu sorunu olabilir. Projeyi çok fazla etkilemediği için, olmuyormuş gibi davranmayı seçiyorum.

wifi geçerli bir IP'ye sahip değil

Seri monitörle ilgili sorun yaşıyorsanız, farklı baud hızlarını deneyin ve hangisinin sizin için en uygun olduğunu görün.

4. Adım: Wi-Fi'ye Bağlanma

Şimdi Wi-Fi ağınıza bağlanmak için bir işlev oluşturun.

void connectToWifi() {
Serial.print('Connecting to: SSID NAME'); //uncomment next line to show SSID name
//Serial.print(ssid);
WiFi.begin(ssid, password);
Serial.println(' ');// print an empty line
Serial.print('Attempting to connect: ');
//try to connect for 10 seconds
int i = 10;
while(WiFi.status() != WL_CONNECTED && i >=0) {
delay(1000);
Serial.print(i);
Serial.print(', ');
i--;
}
Serial.println(' ');// print an empty line
//print connection result
if(WiFi.status() == WL_CONNECTED){
Serial.print('Connected.');
Serial.println(' ');// print an empty line
Serial.print('NodeMCU ip address: ');
Serial.println(WiFi.localIP());
}
else {
Serial.println('Connection failed - check your credentials or connection');
}
}

Bu yöntem, aralarında bir saniye ile on kez ağınıza bağlanmayı dener. Bağlantının başarılı veya başarısız olması, seri monitöre yazdırır.

Adım 5: Bağlantı Yöntemini Çağırma

Şu anda, Wi-Fi'ye bağlan() asla çağrılmaz. 'Düğmeye Basıldı' mesajı ile kartın uyku moduna alınması arasında kurulum işlevinize bir çağrı ekleyin.

connectToWifi();

Bunun nereye uyduğunu merak ediyorsanız, şöyle görünmelidir:

Çizimin üst kısmındaki ssid ve parola Wi-Fi kimlik bilgilerinizle değişkenler. Çiziminizi kaydedin ve panoya yükleyin.

Şimdi kart önyüklendiğinde, kurulum işlevine dönmeden önce Wi-Fi ağınıza bağlanmaya çalışacaktır. Şimdi IFTTT entegrasyonunu ayarlayalım.

Adım 6: IFTTT Entegrasyonunu Ayarlama

IFTTT, çok çeşitli web hizmetleriyle entegrasyona izin verir. Yeni bir e-posta alındığında bir uyarı göndermek için Wi-Fi PC kulesi LED eğitimimizde kullandık. Bugün bunu bir düğmeye basarak tweet göndermek için kullanacağız.

Şuraya gidin: Uygulamalarım sayfasını seçin ve Yeni Uygulama

Tıklamak +bu ve bağlan Web kancaları . Seçme 'Bir web isteği alın' ve etkinliğinize bir ad verin. Basit tutun ! Etkinlik adını not edin, daha sonra NodeMCU kodunuza eklemeniz gerekecek. Tıklamak 'Tetikleyici Oluştur' .

Şimdi seçin +bu . Ara heyecan hizmet ve ona bağlanın---Twitter hesabınıza göndermesi için yetkilendirmeniz gerekir. Seçme 'Twit atın' ve mesajınızı seçin.

Bir sonraki ekran sizden uygulamayı gözden geçirmenizi isteyecektir. Bitir'i tıklayın. Bu kadar!

7. Adım: IFTTT Kimlik Bilgilerini Koda Ekleme

Arduino IDE'ye geri döndüğünüzde, IFTTT API anahtarınızı ve olay adınızı tanımlanmış değişkenlerinize eklemeniz gerekecektir. API anahtarını bulmak için şuraya gidin: Uygulamalarım ve seçin Web kancaları altında Hizmetler sekme. Seçme belgeler anahtarınıza erişmek için

Anahtarı ve olay adını, onlar için ayarlanmış geçici adları değiştirerek kodunuza kopyalayın.

#define IFTTT_API_KEY 'IFTTT_KEY_GOES_HERE'
#define IFTTT_EVENT_NAME 'IFTTT_EVENT_NAME_HERE'

Ters virgüllerin kalması gerektiğini, yalnızca metni değiştirmesi gerektiğini unutmayın.

aramak arasında Wi-Fi'ye bağlan() ve kartı uyku moduna göndererek, IFTTTWebhook kitaplık nesnesinin bir örneğini oluşturun. LED, derin uyku yeniden başlamadan önce görevin tamamlandığını bildirir.

en çok hangi teslimat hizmeti öder
//just connected to Wi-Fi
IFTTTWebhook hook(IFTTT_API_KEY, IFTTT_EVENT_NAME);
hook.trigger();
pinMode(ledPin, OUTPUT);
digitalWrite(ledPin, HIGH);
delay(200);
digitalWrite(ledPin, LOW);
//now sending board to sleep

üzerinde tetikleyici çağırma kanca nesne IFTTT uygulamasını başlatır ve Twitter hesabınıza göndermelidir. Çiziminizi kaydedin ve yükleyin. Artık tamamen işlevsel bir tweetleme düğmesine sahip olmalısınız.

Çalışmıyor gibi görünüyorsa, kodunuzu ve kimlik bilgilerinizi hatalar için dikkatlice kontrol edin. Gerçekten takılırsanız, yukarıdan tam kodu alın ve kendi kodunuzla karşılaştırın.

Tamamlandı! Nasıl Daha Fazla Geliştirebilirsiniz?

Bu, bir Wi-Fi düğmesinin temel bir sürümüdür, ancak iyileştirilebileceği birçok yol vardır. Basit olması için, burada güç için USB bağlantısı kullanılır. Bir pil, onu tamamen mobil hale getirecek ve devreyi tutan bir kasa, başlangıç ​​için mükemmel bir 3D baskı projesi olacaktır.

Derin uyku kullanmanıza rağmen, pilin oldukça çabuk biteceğini görebilirsiniz. Çok var Arduino güç tasarrufu ipuçları Bu tür projelerde yardımcı olan Bu öğreticiden daha zor olsa da, kendi güç bilincine sahip Arduino'nuzu sıfırdan yaptıysanız, pille çalışan bir Wi-Fi düğmesi aylarca sürebilir!

Bu proje, akıllı ev uygulamaları için bir uzaktan kumandayı mükemmel hale getirecektir. Zaten önemli miktarda ev otomasyon uygulamaları IFTTT'de mevcuttur. Temel bilgileri öğrendikten sonra, hayal edebileceğiniz herhangi bir hizmeti hemen hemen tetiklemek için hemen hemen her sensörü veya anahtarı kullanabilirsiniz.

Resim Kredisi: Vadmary / Depositphotos

Paylaş Paylaş Cıvıldamak E-posta 6 Sesli Alternatif: En İyi Ücretsiz veya Ucuz Sesli Kitap Uygulamaları

Sesli kitaplar için ödeme yapmaktan hoşlanmıyorsanız, onları ücretsiz ve yasal olarak dinlemenize izin veren bazı harika uygulamalar burada.

Sonrakini Oku
İlgili konular
  • kendin yap
  • Arduino
  • Kendin Yap Projesi Eğitimleri
Yazar hakkında Ian Buckley(216 Makale Yayınlandı)

Ian Buckley, Berlin, Almanya'da yaşayan serbest gazeteci, müzisyen, sanatçı ve video yapımcısıdır. Yazmadığı veya sahnede olmadığı zamanlarda çılgın bir bilim insanı olma umuduyla kendin yap elektroniği veya koduyla uğraşıyor.

Ian Buckley'dan Daha Fazla

Haber bültenimize abone ol

Teknik ipuçları, incelemeler, ücretsiz e-kitaplar ve özel fırsatlar için bültenimize katılın!

Abone olmak için buraya tıklayın