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

  • Michael Fisher
  • 0
  • 4819
  • 221
reklâm

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

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

Bugün bir NodeMCU kullanarak Wi-Fi özellikli bir düğme yapacağız ve bunu yapmak için IFTTT'yi kullanacak şekilde programlayacağız. İsterseniz videoyu izleyen yazılı talimatlar.

Neye İhtiyacınız Var?

İhtiyacın olacak:

  • 1 x NodeMCU (ESP8266) kartı, 2-3 $ için kullanılabilir AliExpress'te
  • 1 x Buton
  • 1 x LED (isteğe bağlı)
  • 1 x 220 Ohm direnç (isteğe bağlı)
  • Breadboard ve bağlantı telleri
  • Programlama için mikro USB
  • Arduino IDE yüklü bilgisayar

NodeMCU dışında, bu parçaların çoğunu herhangi bir Arduino başlangıç ​​kitinde bulabilmelisiniz. 4 Arduino Yeni Başlayanlar İçin En İyi Başlangıç ​​Kitleri 4 Arduino Yeni Başlayanlar İçin En İyi Başlangıç ​​Kitleri Başlamak için kullanabileceğiniz çok sayıda harika başlangıç ​​Arduino projesi var. ama önce bir Arduino ve bazı bileşenlere ihtiyacınız olacak. İşte bizim için en iyi başlangıç ​​kitlerinden 4'ünü seçiyoruz. Bu öğretici, isteğe bağlı LED ve rezistörü kullandığınızı varsayacaktır, ancak bunlar zorunlu değildir.

Adım 1: Devreyi Kurmak

Donanım kurulumu bu proje için çok basittir. Tahtanızı bu şemaya göre ayarlayın.

Mor tel ekleri pim D0 düğmenin bir tarafına Yeşil kablo, düğmenin diğer tarafını RST pimi. Mavi tel kaçar pim D1 direnç ve LED. LED'in negatif ayağı GND pimi NodeMCU’nun.

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

LED'imi nasıl sadece bu küçük kablo parçalarını kullanarak topraklama pimine soktuğumu merak ediyorsanız, hızlı breadboard çarpışma kursumuz Breadboard Nedir ve Nasıl Çalışır? Hızlı Bir Çarpışma Kursu Breadboard Nedir ve Nasıl Çalışır? Hızlı Bir Çarpışma Kursu DIY elektronik öğrenmek ister misiniz? Başlangıç ​​kitinize bir breadboard almış olabilirsiniz. Fakat bir breadboard nedir ve nasıl çalışır? temizlemeye yardımcı olmalı! Kurulumunuzu kontrol edin ve NodeMCU'nuzu USB üzerinden bilgisayara bağlayın.

Adım 2: IDE'yi ayarlama

Kodlamaya başlamadan önce bazı hazırlıklar yapmanız gerekir. Henüz yapmadıysanız, Arodeino IDE'yi NodeMCU kartınızı tanıyacak şekilde ayarlayın. Bunu panolar listenize ekleyebilirsiniz. Dosya> Tercihler.

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

Bu proje için iki kütüphane gereklidir. Şu yöne rotayı ayarla Eskiz> Kütüphaneyi Dahil Et> Kütüphaneleri Yönet. Aramak ESP8266WIFI Ivan Grokhotkov tarafından ve yükleyin. Bu kütüphane NodeMCU kartı ile Wi-Fi bağlantısı kurmak için yazılmıştır..


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

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

Kod Nasıl Çalışacak?

Kullanacağız ESP8266WIFI Wi-Fi bağlantısı kurmak için kütüphane IFTTTWebhooks kütüphane IFTTT'den bu durumda Twitter'a gönderilmesini talep eder. Ardından, NodeMCU kartına, güç tasarrufu için kullanılmadığında uyumasını söyleyin.

Düğmeye basıldığında, D0 ve RST iğneler. Bu anakartı sıfırlar ve işlem tekrar olur.

Bu eğitimdeki kodların çoğu yeni başlayanlar için yeterince basit. Bununla birlikte, eğer başlarsanız, Arduino yeni başlayanlar rehberimizi takip ettikten sonra anlamanız çok daha kolay olacaktır..

Bu öğretici, anlaşmaya yardımcı olmak için kodlardaki parçalardan geçer. Doğrudan işe gitmek istiyorsanız, tüm kodu Pastebin'de bulabilirsiniz. Wi-Fi ve IFTTT kimlik bilgilerinizi bu kodda çalışması için yine de doldurmanız gerekeceğini unutmayın.!

Adım 3: Derin Uyku Testi

Başlamak için, derin uyku nasıl çalıştığını göstermek için 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 parolası "YOUR_WIFI_PASSWORD" #define IFTTT_API_KEY "IFTTT_KEY_GOES_HERE" 

Burada kütüphanelerimizi ve çizimimizde ihtiyaç duyacağımız birkaç değişkeni tanımlayarak ekliyoruz. LedPin ve wakePin'in yukarıdaki Fritzing diagramına göre farklı numaralandırıldığını fark edeceksiniz. NodeMCU, Arduino kartlarına göre farklı bir çıkışa sahiptir. Bu kullanışlı şema nedeniyle bu bir sorun değil:

Şimdi bir kurulum işlevi oluşturun:

geçersiz kurulum () Serial.begin (115200); while (! Serial)  Serial.println (""); // Button Press'ten önce ve sonra boş bir satır yazdırın Serial.println ("Button Pressed"); Serial.println (""); // boş bir satır yazdırın ESP.deepSleep (wakePin);  

Burada seri portumuzu kurduk ve başlayana kadar beklemek için bir süre döngüsü kullanıyoruz. Sıfırlama düğmesine basıldıktan sonra bu kod tetikleneceğinden, “Düğmeye Basıldı” Seri monitöre Ardından, NodeMCU’ya, düğmeyi bağlayana kadar derin uykuya girmesini söyleriz. wakePin -e RST pim basıldı.

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

void loop () // derin uyku çalışıyorsa, bu kod asla çalışmayacak. Serial.println ("Bu yazdırılmamalıdır");  

Genellikle, Arduino skeçleri kurulumdan sonra sürekli döngü fonksiyonunu çalıştırır. Kurulum sona ermeden panoya uyku gönderdiğimize göre, 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ü aynı baud hızına ayarlamak değildir. Serial.begin (XXXX) oran.

Birçok rehber, böyle bir proje için seri bağlantının 115200 baud hızında başlatılmasını önermektedir. Birçok kombinasyon denedim ve hepsinin seri mesajlardan önce ve sonra çeşitli derecelerde anlamsız sözleri vardı. Çeşitli forum yayınlarına göre bu, hatalı bir pano veya yazılım uyumluluğu sorununa bağlı olabilir. Projeyi çok kötü etkilememesi nedeniyle, gerçekleşmemiş gibi davranmayı seçiyorum.

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

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

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

void connectToWifi () Serial.print ("Bağlanıyor: SSID ADI"); // SSID adını göstermek için sonraki satırda uncomment //Serial.print(ssid); WiFi.begin (ssid, şifre); Serial.println (""); // boş bir satır yazdırın Serial.print ("Bağlanmaya çalışılıyor:"); // 10 saniye bağlanmayı dene int i = 10; while (WiFi.status ()! = WL_CONNECTED && i> = 0) gecikme (1000); Serial.print (i) Seri baskı (","); ben--;  Serial.println (""); // boş bir satır yazdırın // eğer bağlantı sonucu yazdırın eğer (WiFi.status () == WL_CONNECTED) Serial.print ("Connected."); Serial.println (""); // boş bir satır yazdırın Serial.print ("NodeMCU ip address:"); Serial.println (WiFi.localIP ());  else Serial.println ("Bağlantı başarısız - bilgilerinizi veya bağlantınızı kontrol edin");  

Bu yöntem, arasında bir saniye olacak şekilde ağınıza on kez bağlanmaya çalışır. Bağlantının başarılı veya başarısız olması seri monitöre yazdırılıyor.

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

Şu an connectToWifi () asla denmez. Ayarlama işlevinize aramaya bir çağrı ekleyin. “Düğmeye Basıldı” mesaj panosu gönderilir ve gönderilir.

connectToWifi (); 

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


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

Pano açıldığında kurulum işlevine geri 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 servisleriyle entegrasyona izin verir. Wi-Fi PC kule LED eğitimimizde, yeni bir e-posta alındığında uyarı göndermek için kullandık. Bugün bir düğmeye basarak tweet göndermek için kullanacağız.

Şuraya git Benim appletleri sayfa seçin ve Yeni Uygulama

Tıklamak +bu ve bağlan Webhooks. seçmek “Bir web isteği al” ve etkinliğinize isim verin. Basit tutmak! Etkinlik adını not edin, daha sonra NodeMCU kodunuza eklemeniz gerekir. Click “Tetikleyici Oluştur”.


Şimdi seç +o. İçin ara heyecan servis yapın ve bağlanın-Twitter hesabınıza gönderilmesi için yetkilendirmeniz gerekir. seçmek “Tweet gönder” ve mesajınızı seçin.


Bir sonraki ekran sizden uygulamayı incelemenizi isteyecektir. Sona tıklayın. Bu kadar!

Adım 7: IFTTT Kimlik Bilgilerini Koda Ekleme

Arduino IDE'ye geri döndüğümde 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: Benim appletleri ve seç Webhooks altında Hizmetler sekmesi. seçmek belgeleme anahtarınıza erişmek için.

Anahtar ve olay adını kodunuza kopyalayın, bunlar için ayarlanan geçici adları değiştirin..

#define IFTTT_API_KEY "IFTTT_KEY_GOES_HERE" #define IFTTT_EVENT_NAME "IFTTT_EVENT_NAME_HERE" 

Not, ters çevrilmiş virgüllerin kalması gerekir, yalnızca metni değiştirin.

Aramak arasında connectToWifi () ve kartı uykuya göndermek, IFTTTWebhook kütüphane nesnesinin bir örneğini oluşturun. LED, derin uyku tekrar başlamadan önce görevlerin tamamlandığını bildirir.

// sadece Wi-Fi IFTTTWebhook kancasına bağlı (IFTTT_API_KEY, IFTTT_EVENT_NAME); hook.trigger (); pinMode (ledPin, ÇIKIŞ); digitalWrite (ledPin, YÜKSEK); gecikmesi (200); digitalWrite (ledPin, DÜŞÜK); // şimdi uyumak için tahta gönderiyor 

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

İşe yaramazsa, kodunuzu ve kimlik bilgilerinizi hatalar için dikkatlice kontrol edin. Gerçekten sıkışırsanız, yukarıdaki kodun tamamını alın ve kendi kodunuzla karşılaştırın..

Bitti! Daha Nasıl İyileştirebilirsin?

Bu bir Wi-Fi düğmesinin temel bir versiyonudur, ancak geliştirilmesinin birçok yolu vardır. Basit olması için, USB bağlantısı burada güç için kullanılır. Bir pil onu tamamen harekete geçirir ve devreyi tutan bir durum mükemmel bir başlangıç ​​3D baskı projesi olur.

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

Bu proje akıllı ev uygulamaları için uzaktan kumanda için mükemmel bir çözüm olacaktır. Zaten önemli miktarda ev otomasyonu uygulaması var Akıllı Ev Otomasyonu için En İyi IFTTT Tariflerinin 10'u Akıllı Ev Otomasyonu için En İyi 10 IFTTT Tarifinin Akıllı Eviniz için doğru IFTTT tarifleri size zaman, emek ve enerji tasarrufu sağlayabilir. İşte başlamanız için favorilerimizden on tanesi. IFTTT'de mevcuttur. Temel bilgileri çözdükten sonra, neredeyse hayal edebileceğiniz herhangi bir hizmeti tetiklemek için hemen hemen tüm sensörleri veya geçişleri kullanabilirsiniz..

Resim Kredisi: Vadmary / Depositphotos




Henüz no comments

Modern teknoloji hakkında basit ve uygun fiyatlı.
Modern teknoloji dünyasında rehberiniz. Her gün bizi çevreleyen teknolojileri ve araçları nasıl kullanacağınızı ve Internet'te ilginç şeyleri nasıl keşfedeceğinizi öğrenin.