İlan

Wi-Fi, Nesnelerin İnterneti (IoT) DIY projeleri için önemli bir kittir, ancak favori Arduino'muz Wi-Fi ile gelmez ve bir Wi-Fi kalkanı eklemek toplam maliyeti yaklaşık 40 dolara getirebilir. 10 $ 'dan daha düşük bir fiyata yerleşik Wi-Fi'ye sahip Arduino uyumlu bir geliştirme kartı olduğunu söylersem ne olur? Peki, var.

Arduino Katili ile tanışın: ESP8266. Taçın sevgili Arduino geliştirme kurulumuzun parlak kafasından çalınması sadece bir zaman meselesiydi. Bir devre kartına aşık olmak mümkün mü?

Akılda kalıcı isimler bir yana, ESP8266 (NodeMCU olarak da bilinir) başlangıçta düşük maliyetli bir Wi-Fi eklentisi olarak pazarlandı Arduino panoları için, bilgisayar korsanı topluluğu Arduino'yu denklemden çıkarabileceğini anlayana kadar Baştan sona.

Bir yıldan az bir sürede ESP8266 popülerlik kazandı ve şu anda o kadar iyi destekleniyor ve geliştiriliyor ki, şu anda Arduino kullanıyorsanız ayağa kalkmanız ve not almanız gerekiyor. Şimdi bir tane al, ESP8266'nızı programlamaya başlamak için bu kılavuzu takip edin - hepsi tanıdık Arduino IDE içinden.

instagram viewer

Elbette Arduino IDE'yi kullanmakla sınırlı değilsiniz - Lua ile de uyumlular (bu benim için zayıf bir Python gibi görünüyor) acemi gözler), ancak bunu Arduino'da öğrenmiş olanların bakış açısından ele aldığımız için, münhasıran bunu ele alacağız bugün.

Şu anda ESP8266'nın birkaç modeli var, ancak devam edip bunu tavsiye edeceğim: ESP-12E (NodeMCU 1.0 olarak da bilinir veya en yeni kardeş NodeMCU 2.0'dır).

Diğerlerinden biraz daha pahalıdır (4 $ 'a kıyasla 6,50 $!), Ancak çipi programlamak için gereken seri sürücüyü içerir ve yerleşik bir güç regülatörünün yanı sıra çok sayıda IO pinine sahiptir. Yaygın olarak desteklenir ve programlama veya güç için USB bağlantısından başka bir şeye ihtiyaç duymaz, bu yüzden çalışmak en kolayıdır. Başka bir ESP8266 kartı satın alırsanız, ayrı bir 3.3v güç regülatörüne ve programlama için uygun bir FTDI bağlantısına ihtiyacınız olabilir.

ESP8266-12E ve Arduino'ya Başlarken

İlk, seri sürücüleri yükle bu kurul için. Gerekebilir KEXT imzalamayı devre dışı bırak yeni güvenlik sistemleri nedeniyle El Capitan'ı çalıştırıyorsanız.

Ardından, Arduino IDE’nin yönetim kurulu yöneticisinden ESP8266 için desteği etkinleştirmemiz gerekiyor. Tercihler'i açın ve söylediği yere aşağıdaki URL'yi girin Ek Pano Yöneticisi URL'leri:

arduino yönetim kurulu yöneticisi URL'leri

Tamam'a basın, ardından Kurul Müdürü itibaren Araçlar -> Pano menüsünde esp8266'yı arayın ve platformu kurun. Şimdi NodeMCU 1.0 için bir seçim görmelisiniz.

pano seç

CPU'yu bırakın ve hızı olduğu gibi yükleyin ve yeni kurulan seri portunuzu seçin. Mac'te, bu şu şekilde görünür: cu. SLAB_USBtoUART.

İlk program olarak, basit bir Wi-Fi tarayıcı öneririm - Dosya -> Örnekler -> ESP8266WiFi -> WifiScan. Yüklemenin oldukça yavaş olduğunu, ancak sonunda "yükleme tamamlandı" diyecek ve bu noktada (daha önce değil veya yükleme işlemini kıracaksınız) Seri monitörü açabilirsiniz. Buna benzer bir şey görmelisiniz:

wifi tarama testi esp8266
Başarı! Şimdi birine bağlanmayı deneyelim.

İşte bir Kablosuz ağa bağlanmak için kesinlikle basit bir barebone kodu. Sadece bağlanmaktan başka bir şey yapmaz, ancak daha sonra ekleyebileceğiniz bir şeydir. YOUR_SSID ve YOUR_PASSWORD öğelerini Kablosuz ayrıntılarınıza değiştirmeyi unutmayın. Yükle, Seri konsolu açın ve bağlandığını görmelisiniz.

 #include const char * ssid = "YOUR_SSID"; const char * password = "YOUR_PASSWORD"; WiFiClient wifiClient; void setup () {Serial.begin (115200); Serial.print ("Bağlanıyor"); Serial.println (ssid); WiFi.begin (ssid, şifre); (WiFi.status ()! = WL_CONNECTED) {gecikme (500); Serial.print ( ""); } Seri.println (""); Serial.println ("WiFi bağlı"); Serial.println ("IP adresi:"); Serial.println (WiFi.localIP ()); void loop () {}

Bunun ne kadar gülünç derecede basit olduğu harika değil mi?

Devam etmeden önce pinout diyagramı - daha sonra kullanışlı olabilir. Kodda atıfta bulunulan pin numaralarının muhtemelen PCB'nizde yazılı olan D0-16 değil, GPIO numaraları olduğunu unutmayın. Bir sensörün neden çalışmadığını kesinlikle, olumlu bir şekilde anlayamıyorsanız, muhtemelen pin numaralarını karıştırmış olursunuz.

NodeMCU__v1.0_pinout

MQTT ve DHT11 ile Hızlı Akıllı Ev Sensörü

İşte evinizi izlemek için hemen kullanabileceğiniz pratik bir örnek. Bir DHT11 sıcaklık ve nem sensörü ekleyeceğiz, ardından değerleri MQTT protokolünü kullanarak bildireceğiz Wi-Fi ağı üzerinden, benim durumumda bir OpenHAB DIY ev otomasyon sistemine (eğer değilse, okumak isteyebilirsiniz) bizim yeni başlayanlar için bir Ahududu Pi OpenHAB kurma ve çalıştırma kılavuzu Raspberry Pi'de OpenHAB Ev Otomasyonuna BaşlarkenOpenHAB, çeşitli donanımlarda çalışan ve agnostik protokolü, yani piyasadaki neredeyse tüm ev otomasyon donanımlarına bağlanabilir bugün. Daha fazla oku ve özellikle ele alınan bölüm 2 MQTT sunucusu yükleme OpenHAB Başlangıç ​​Kılavuzu Bölüm 2: ZWave, MQTT, Kurallar ve GrafikAçık kaynaklı ev otomasyon yazılımı OpenHAB, piyasadaki diğer ev otomasyon sistemlerinin yeteneklerini fazlasıyla aşıyor - ancak kurulumu kolay değil. Aslında, düpedüz sinir bozucu olabilir. Daha fazla oku ).

Kablo tarafında, DHT sensörünü GND, 3.3v, ve ~ D4 (veya GPIO 2). Şimdilik ihtiyacımız olan bu.

İndir bu MQTT ve DHT kütüphaneleri. Zaten sahip olsanız bile, bunları zaten indirin, sahip olduklarınızı yedekleyin ve üzerine yazın. Adafruit'ten en son DHT11 kütüphanesi, hızı belirlemek için otomatik bir algoritma kullanır veriler sensörden okunur, ancak ESP8266'da hatalıdır ve zaman sonuçlarının% 90'ı başarısızlıkla sonuçlanır okumalar.

İndirmeye dahil ettiğim kütüphanenin eski 1.0 sürümü ile zamanlamayı manuel olarak değiştirebilirsiniz: 11 bu ESP2866 kartları için en iyi sonucu verir. Ayrıca MQTT kütüphanesinin bir kopyasını da iyi bulmaya çalıştım. geri aramak fonksiyonu, nihayet bir birine iniş dahil. Bunları değiştirdikten sonra Arduino IDE'yi yeniden başlatmanız gerekir.

Burada proje için tam kod. Üstte Wi-Fi ayrıntıları, MQTT sunucusu (bir URL kullanılabilir) dahil olmak üzere değiştirmeniz gereken tüm değişkenler bunun yerine bir bulut sunucusu kullanılıyor olsa da, kimlik doğrulaması mevcut değildir) ve üzerinde veri yayınlanacak kanallar bulunur.

Nasıl çalıştığı ve birkaç not:

  • Önce Wi-Fi'ye, ardından MQTT sunucusuna bağlanıyoruz, ardından ana döngü ().
  • Döngüde, DHT sensörünü 60 saniyede bir yoklar ve ilgili MQTT kanallarına okumalar yayınlarız. Yine, okumaların çoğunun bir hata mesajıyla sonuçlandığını görürseniz, DHT kütüphanesinin yanlış sürümüne sahipsiniz - v1.0'a düşürün.
  • ) (Client.loop denetimi MQTT kitaplığına ileterek gelen iletilere yanıt vermesini sağlar.
  • Orada bir mesaj alındı() Gelen iletileri işlediğimiz yerde çalışır - yükü beklediğiniz iletiyle karşılaştırmak için basit bir if ifadesi yapın. Örneğin, bir röleyi etkinleştirmek için bunu kullanabilirsiniz.
  • Bunları birkaç gün çalıştırdıktan sonra, rastgele çalışmayı bırakacaklarını gördüm - bunun bir tür bellek sızıntısı olduğunu varsayıyorum, ancak Bununla başa çıkacak kodlama yeteneğim yok ve çekirdek kütüphanelerde olabilir, her biri basit bir yumuşak sıfırlamayı seçtim gün. Sensör düğümleri ilk kez etkinleştirildikten bir gün sonra, kendilerini yeniden başlatırlar.
  • Bu ucuz DHT11 modüllerini 3.3v'den çalıştırırken, nem değerleri olması gerekenden çok daha düşüktür. Bunu basit bir çarpma ile çözdüm ve ticari bir sensöre karşı kalibre ettim. Okumalara dayanmadan önce kendi bilinen kaynağınıza da onay vermenizi tavsiye ederim. Alternatif olarak, 5V ile güçlendirin - ancak veri pimi ile ESP8266 arasına 5v-3.3v mantıksal seviye değiştirici yerleştirmelisiniz, yoksa ona zarar vereceksiniz.

Her şey yolunda giderse, şimdi MQTT brokerinizde sensör okumaları almalısınız ve bunları ayrıntılı olarak açıklandığı gibi OpenHAB'a bağlamaya devam edebilirsiniz. başlangıç ​​kılavuzumuzun 2. bölümü OpenHAB Başlangıç ​​Kılavuzu Bölüm 2: ZWave, MQTT, Kurallar ve GrafikAçık kaynaklı ev otomasyon yazılımı OpenHAB, piyasadaki diğer ev otomasyon sistemlerinin yeteneklerini fazlasıyla aşıyor - ancak kurulumu kolay değil. Aslında, düpedüz sinir bozucu olabilir. Daha fazla oku , burada da verileri nasıl grafiklendireceğimizi gösterdim.

Açıkhava gelen humdity grafiği

Elveda Arduino, seni çok sevdik. Şaka yapıyorum: Evimin her yerinde Wi-Fi bile bulunamıyor, bu yüzden bu noktalar için hala Arduino ve RF alıcıları ile bir örgü ağa ihtiyacım olacak.

Eğlenceli bir proje için göz atın ESP8266 ile Wi-Fi düğmesi nasıl yapılır ESP8266 ile Kendi Wi-Fi Bağlantı Düğmenizi Nasıl YapabilirsinizBu öğreticide, NodeMCU ve IFTTT kullanarak Wi-Fi özellikli bir düğmenin nasıl oluşturulacağını öğreneceksiniz. Daha fazla oku .

Peki ESP8266 ile ne yapacaksınız? MakeUseOf'ta yazılı olarak görmek istediğiniz ESP8266 kullanan herhangi bir proje var mı? Yorumlarda bize bildirin!

James Yapay Zeka alanında lisans derecesine sahiptir ve CompTIA A + ve Network + sertifikalıdır. MakeUseOf'un baş geliştiricisi ve boş zamanlarını VR paintball ve boardgames oynayarak geçiriyor. Çocukluğundan beri bilgisayar yapıyor.