ESP8266 NODEMCU kullanarak WiFi üzerinden makine kontrolü. Bağlantı özellikleri Wi-Fi modülü ESP8266 Arduino'ya

Firmware, güncellemeleri ve diğer verileri lehimleme demir ve kablolarla iletir - Arduino için en iyi çözüm değil. Bununla birlikte, Arduino Wi-Fi için mikrodenetleyiciler kimse yoktur ve her zaman onlar için ihtiyaç yoktur, neden kullanıcıların ihtiyaç duymadan projelerinde kullanmalarını tercih ederler.

Ancak bir sonraki Çin ürünü piyasayı ele geçirdi, Wi-Fi Jammer ESP8266 Arduino Kuruluna veya diğer sisteme eklenebilir ve alacaksınız. kararlı bağlantı başka bir avantajla. Öyleyse Arduino UNO Wi-Fi ile başa çıkalım ve bu modülü satın almaya değer mi, aynı zamanda Wi-Fi Arduino'da da benzer bir mikrodenetleyiciyi temsil etmeye değer.

Artık Kullanıcıların çoğu Arduino artık bu tür cihazların fiyatı hakkında endişelenmiyor, ancak 3 yıl önce Arduino Wi-Fi modülü lüks olarak kabul edildi. Bütün bunlar, üreticilerin pazara mükemmel bir şekilde tanıtılan Wi-Fi Jammer ESP8266 sayesinde yeni ürünBu, işlevselliğini etkiler ve aynı zamanda oldukça ucuz olan, bu da önemli bir katkı sağlayan ve bu yönde rekabet yaratan.

Böylece, Arduino Wi-Fi ESP8266, şimdi pazardaki en uygun modül ve tüm arkadaşı olarak kabul edilmektedir. Böylece, yabancı sitelerdeki fiyatı, paketlerin bu modülleri satın almalarını ve binlerce kez yeniden yansıtılmamasına, performansı korumak için kişileri üst geçit etmelerini sağlayan 2 dolardan başlar.

İlk bu Wi-Fi Arduino modülü, çoğunlukla Arduino Wi-Fi kalkanı olarak kullanılmış, en ucuz seçeneğiydi ve orijinal olanı etkilemedi. Cihaz gerçekten pratik olarak efsanevidir, çünkü maliyeti için ağırlıklı eksi bulunmaz. Kullanıcı dahil birçok kütüphane vardır ve aynı zamanda seri lastikler ve en basit ve + ekibinde çalışmaları da destekliyor. Bunun sayesinde, C99'u yok, çoğu zaman diğer üçüncü taraf mikrodenetleyicilerle birlikte olduğu gibi, çalışmaya gerek yok.

Buna göre, yeni gelenler bile saniyeler bitecek ve profesyonel hasat kütüphaneleri uygulayabilecektir. Diğer avantajlar:

  1. İşlemci 160 MHz'dir, ancak belirli bir performans izini uygulayan 32 bittir. Ancak, modülün hala Arduino panoları olan bir pakette kullanıldığını, kendileri yüksek frekansları kesen ve ne için bilinmeyen kaynakların çoğunu yediğini hatırlamaya değer.
  2. Wi-Fi Modülü ESP8266'yı yayınlayan üretici, ilginç projeler bunu bitirdi ve şimdi doğrulanmış kalitede bir bütün mikrodenetleyici hattı var.
  3. Modern ağ koruma standartları. Tabii ki, WPA ve WPA2, istediğimiz kadar güvenli değildi, ama onların varlığı böyle ucuz bir kontrolörde sevinir.
  4. 10-bit dahil 16 çıkış portu, tahta ile denemeye izin verir.

Daha da önemlisi, 4 megabayt'ın kalıcı hafızası, kartın türüne bağlı olarak sizi kutuyla bekliyor ve bu, büyük kütüphaneler ve hatta bazı medya dosyalarıyla çalışmayı basitleştirir. Sonuçta, çoğu Arduino panolarında ve 1 megabayt, eksik bir lüks olarak kabul edilir.

ESP8266 Wi-Fi'nin özellikleri kesinlikle, özellikle daha pahalı rakipleriyle karşılaştırıldığında, ancak daha önce bu ücretlerle ilgili deneyimsiz olan kullanıcının nasıl bağlanacağını sorgulayacaktır. Gerçek şu ki, modülün yeni gelenleri görmek için kullanılanlardan çok daha fazla pime sahip olması ve buna göre panik başlar. Ancak, durumu anlarsanız, bu konuda karmaşık bir şey yoktur. Tamamen çorap ve lehimleme demir ve talimatları okuyun.

Wi-Fi modülünü Arduino'ya nasıl bağlayabilirsiniz?

ESP8266 ESP 12E'nin bağlantısına bakalım ve ESP8266 nedir? wi-Fi Köprüsü UART. Sonuçta, en fazla soruya neden olan modülün bağlantı ve konfigürasyonudur.


İlk önce, mikrodenetleyicinin hangi sürümünün elinizde olduğuna karar verin. İlk olarak, LED'ler pinlerin yanında yerleşmiştir ve ikincisinde, son zamanlarda üretmeye başlayan, sinyal lambaları antenin yakınına yakındır.

Bağlanmadan önce yüklemelisiniz son ürün yazılımıİkinci olarak 9600 birim bilgiye kadar paketlerin değişim oranını arttırmanıza izin vermek. Ayrıca, USB-TTL kablosu ve karşılık gelen terminalin Coolterm'den kontrol edeceğiz.


Yukarıdaki kablo standardını bağlamak için pimler, ancak gıda Arduino ile 3.3 Gerilim IDU'tan geçer. Muhalifin maksimum gücünün oluştuğunu, 150 mA'yı ve ESP8266 ESP 07 ve ESP8266 esprili Bulut Wi-Fi modülü olduğunu, Arduino için 240 mA gerektirdiğini hatırlamak önemlidir.

Ancak, başka bir akım kaynağı yoksa, Standart sürümünü Arduino'dan kullanabilirsiniz, ancak destek gücü acı çekecektir. Her ne kadar güçlü bir yük olmasa da, yeterli ve 70 mA, mikrodenetleyicinin yükün tepe noktalarındaki ani yeniden başlatmalar için hazırlanın ve sırasıyla yazılımı yazın, böylece süzülür ve tahtayı aşırı yüklemeden dosyaları kırılır.


Başka bir bağlantı seçeneği aşağıdadır. ÖNEMLİ - RX-TX temasları crosshair ile bağlanır. ESP8266 3.3B modülünün sinyallerinin düzeyleri ve Arduino 5B, sinyal seviyesini dönüştürmek için dirençli bir voltaj bölücüsü kullanmamız gerekir.

Biz Arduino'da Wi-Fi modülünü kaydederiz

Bildiğiniz gibi, uygun bir deneyimle, ESP8266 EX 12E ile bir akıllı telefon ile eşleşebilir, ancak yeni gelenler ve Arduino sisteminde ESP8266 ESP 12'nin tescili zorluklara neden olabilir. Aslında, modülü bağlamak ve performansını kontrol etmek için yeterlidir, hata ayıklama menüsünden komutlarda birkaç standart atar.

Örneğin, normal bir LED ile yanıp sönmeyi ekleyebilirsiniz (yukarıdaki bağlantı şeması için):

#Define TXD 1 // GPIO1 / TXD01 VOID SETUP () (PINMODE (TXD, Çıkış);) VOID LOOP () (DigitalWrite (TXD, HIGH); Gecikme (1000); Digitalwrite (TXD, Low); Gecikme (1000); Gecikme (1000); ;)

Ücret, sistemde bir mikrodenetleyici gördüğünü onaylar doğruladığı anda, tam çalışmaya başlayabilirsiniz. Bununla birlikte, Arduino Kurulu'nun projede yalnızca bu denetleyiciyi bağlamak için kullanılması durumunda - bu irrasyoneldir.

Bir USB-UART dönüştürücü yeterlidir, çünkü ESP8266 Arduino'nun "beynini" kullanmadığından ve flash belleğinin temel kitaplık ve ürün yazılımı çifti depolaması için yeterlidir. Buna göre, bir iştiraki üzerinde bir kez daha harcama konusunda hiçbir şey yok, eğer dönüştürücüye düşebilir ve projede daha fazla kullanabilirsiniz. Aynı zamanda, yardımcı güç kaynağını bağlayarak ve sistemin gücünün yetersizliğinden dolayı verilerin en sorumlu anla iletilmesini engelleyerek endişelenmeyin.

Önemli Not! Son kroki devresi için, Arduino'da her zamanki gibi yükleyin, ancak ESP8266 modülü Rehber 0 ve 1'e bağlandığından, programlama imkansız hale gelir. Derleyici bir hata gösterecektir. Rehber 0 ve 1'den ESP8266'ya giden tellerin bağlantısını kesin, programlama yapın ve ardından kişileri konumuna getirin ve Reset düğmesini Arduino'ya tıklayın.

İyi günler!

Son zamanlarda yaratma fikri ile ilgileniyor " akıllı ev" Elimdeki gerekli bileşenlerden beri, şu ana kadar yalnızca Arduino ve Android'deki telefon, bir kontrol panelinin oluşturulmasıyla ve sistemin geri kalanıyla bağlantısı ile başlamaya karar verildi.

Sistemin vizyonum şöyle görünüyor:

Bence ev ve web sunucularını birleştirmeye, statik bir Apishnik satın almaya değer, ancak ilk kez aşağı inecek. LED'leri ve LCD ekranı uzaktan kontrol etmek için basit bir - öğrenelim.

Web sunucusu
Bir web sunucusunda, iki tablo ile bir veritabanı oluşturun - LED'ler ve metinler oluşturun. LED'ler tablosu 2 alan içerir - Kimlik ve Durum. LED'in gerçek haliyle bir giriş içerir. Tablo metinleri 2 alanlar - kimlik ve metin içerir. Ayrıca, şu anda LCD ekranda görüntülenen metinle bir giriş içerir.

Şimdi telefondan arayacak birkaç komut dosyası yazın ve veritabanına bilgi iletin. PHP'ye yazıyoruz.

LED.php Script (LED kontrol):

Msg.php komut dosyası (LCD ekran):

Bence yorumlardan, bu komut dosyalarının nasıl çalıştığı açık. Web sunucusunda hepsi bu. Şimdi ev sunucusuna döneriz (ya da daha kolay, Arduino'nun bağlı olduğu bilgisayar).

Ev sunucusu.
Programı sürekli çalışacaktır (hatta bir arka plana bile), veritabanına istekleri gönderebilir ve bilgilerin orada olduğunda, karşılık gelen komutu Arduino ile COM portuna gönderir. Program işlem yapacak:

İthalat işleme. * *; // COM Port Import De.Bezier.Data.SQL ile çalışmak için kütüphane. *; // MySQL seri port veritabanıyla çalışmak için kütüphane; Mysql dbconnection; İnt prevledstate \u003d 0; // String Prev'in önceki durumu \u003d "" LED; // Önceki metin, void kurulumunda () LCD ekranında depresif (port \u003d yeni seri (bu, "COM4", 9600); // COM bağlantı noktasını 4 (Arduin tetiklenmedi), döviz kuru 9600 BODE bağlantı noktasıdır. Bufferuntil ("\\ n"); string user \u003d "username"; string pass \u003d "şifre"; dize veritabanı \u003d "name_bd"; dbconnection \u003d yeni mysql (bu, "your_domen.ru", veritabanı, kullanıcı, pas); / / DBConnection.connect veritabanı ile bağlanın;) geçersiz çekme () (// DBConnection.query veritabanındaki LED ile ilgili bilgileri izleyin ("ID \u003d" "1"); // LED'lerin tablosuna bir istek yapınız. (dbconnection.next ()) // Örneği sorgu sonucu ("Durum") ile karşılaştırın; // Önceki "inceliğe kıyasla değişmişse, durumdan (n! \u003d prevledstate) // durumdan değeri alın. "Programın, ardından COM portuna bir komut gönderin (PrevledState \u003d n; port.write (" 1 "); // İlk iletilen sembol, işlemin kodunu ifade eder: 1 - LED kontrol, 2 - LCD kontrol lem port.write (n); )) // DBConnection.query veritabanındaki LCD ekranı hakkında bilgi edinmek için izleyin. // tablo sırasında metinlere bir istek yap. Prevs \u003d s; port.write ("2"); port.writ (ler);)) gecikme (50); // sürekli istekleri göndermemek için 50 ms gecikme yapın)
Bu kodu da açıklamayacağım, her şey çok anlaşılabilir.
1 tane daha Önemli an. Böylece bilgisayarımızdaki programın üzerinde bulunan veritabanına dönüşebilir. uzak sunucu, çözmek için gereklidir. IP'nize izin verilen listeye giriyoruz:

Telefon uygulaması
Onun için bir telefon android var ve yazarım. Ayrıntılara çok fazla gitmeyeceğim (programlama ortamının kurulumu kadar çok iyi ve ilk başvurunun yazılması bu makalede yazılı olarak yazılmıştır).

Uygulamanın görünümü oldukça mütevazı görünüyor, ancak bu durumda önemli değil:

Android kodunun sadece geçişlerini vereceğim. LED'i kontrol eden komut dosyasını arayan fonksiyon:
Halka arz void changeled () (deneyin (URL URL1 \u003d Yeni URL ("http: / rash_domom.u./led.php"); httpurlconnection URL1. );) Son olarak (URLConnection.Disconnect ();)) Catch (istisna e) ())
LCD ekranda görüntülenecek metin gönderme işlevi:
Halka açık void subtionsg () (final editts tt \u003d (editText) findviewbyId (r.id.edittext1); deneyin (URL URL1 \u003d Yeni URL ("http: //vash_domen.ru/msg.php? Msg \u003d" + tt.gettext ()); Httpurlconnection URLConnection \u003d (httpurlconnection) url1.Omnenconnection (); deneyin (InPutstream \u003d New BuffedInputputstream ());) Son olarak (URLConnection.Disconnect ();)) Catch (İstisna E) ()))
Peki, olay işleyicilerinin düğmelerine bir bağlanması olduğu ana fonksiyon:
Kamu boşluğu onsreate (Super.oncreate (savedinstantaj); SETCONTENTVIEW (R.LAYOUT.main); Final Button BTN1 \u003d (düğme) FindViewbyID (r.id.button1); BTN1.SetonclickListener (Yeni Button.OnclickListener () (view v) // düğmesine tıklayın (Changeled ();)); Son düğme BTN2 \u003d (düğme) FindViewbyID (r.id.button2); btn2.setonclickListener (yeni buton.onclicklistener () (view v) // (GazetelerG ());) için tıklayınız);)
Ve daha önemli bir nokta, uygulamaya internete izin eklemektir. Bunu yapmak için, androidmanifest.xml dosyası (Android uygulamamızın dizinlerinde) bir satır eklemeniz gerekir:

Bizim başvurumuza ihraç ediyoruz dosya apk Ve telefona yükleyin. Uzaktan kumanda akıllı ev Hazır!

Arduino.
Sonunda, son fakat değerli değil, Arduino'nun ve bellenimin bağlantısıdır. Arduino Uno LED'e LCD ekran ve LED devresi şöyle görünür:

Direnç 220 ohm alır. Burada LCD ekranı bağlama hakkında daha fazla bilgi edinebilirsiniz - link

Ama hepsi gerçekte nasıl görünüyor:

Gerçek güzel?

Arduino'nun görevi, iblis programının üzerindeki gerçeğini dinliyor ev sunucusu. Arduino'nun bağlı olduğu COM bağlantı noktasına gönderilir (gerçekte bağlantı bir USB kablosu üzerinden geçmesine rağmen, bilgisayar seri bağlantı noktası olarak tanır). Bilgisayardan herhangi bir veri aldıktan sonra, iletilen bilgilerin ilk karakterindeki denetleyici, komut kodunu (yani, şimdi yönetilecek olan, LCD ekran veya LED) tanır. Ayrıca, koda ve aşağıdaki bilgilere bağlı olarak, LED'i açma / kapatma veya görüntülenen mesaja çıktı yapılır. Yani, işte gerçek kod:

#Dahil etmek. // Dahili kütüphane LCD ekranla çalışmak için Boolean Isexecuting \u003d FALSE; // Biraz komutun bir komutunun olduğunu yansıtan değişken // Caspusa'nın neden gerekli olduğunu açıklayacaktır. Her "TOPTUT" için döngü döngüsü Arduino, COM portundan bir sembolün kodunu okur. // Bu nedenle, dize birkaç saat için iletilecektir. Aynı zamanda iki tanesinin her birinden önce olası takımlar (LED'in durumunu ve ekrana metin iletiminin durumunu değiştirme // bu komutun kodunu geçer (sırasıyla 1 ve 2). Komut kodlarını iletilen diğer bilgilerden ayırmak için (ekranın LED veya Metin Durumu), // bu değişken kullanılır. Liquidcrystal LCD (4,5,10,11,12,13); // ekran başlatma int ledpin \u003d 8; // Int PrevledStatus \u003d 0 LED'in bağlı olduğu sayı Pina Arduino; // önceki LED durumu (açık / kapalı) int newledstatus \u003d 0; // yeni statü Led int cmd \u003d 0; // void kurulumunun kodu () () (Serial.Begin (9600) komutu (9600); // COM bağlantı noktası başlatma (9600 - Bodache döviz kuru) Pinmode (LEDPIN, çıkış); // 8. Pina Arduino'nun başlatılması LCD çıkışı. Başlangıç \u200b\u200b(20.4); // LCD ekranın başlatılması (20 karakterden oluşan 4 satır)) Void Loop () (eğer (Serial.Available ()\u003e 0) // Bazı bilgiler COM portuna geldiğinde (eğer (iSexecuting \u003d\u003d false) // şu anda hiçbir komut gerçekleştirilmezse (cmd \u003d serial.read () - "0"; // iSexecuting \u003d true komutunun kodunu okuyun, // Şimdi Değişken, yürütme işlemini gösterir. Komutun başına başladı) eğer (cmd \u003d\u003d 1) // led kontrolü (newledstatus \u003d (int) serial.read (); // ise eğer LED'in yeni durumunu okuyun (newledstatus! \u003d prevledstatus) // değiştirdiyse Mevcut durumla karşılaştırıldığında, mevcut durumu değiştirin (digitalwrite (ledpin, newledstatus); prevledstatus \u003d newledstatus;)))) Ben herhangi bir takım (LCD.CLEAR (); // Ekranı temizleyin) Diğer (LCD.Print (char) serial.read ()); // Ekrandaki sembolü görüntüleyin)))) Başka hiçbir bilgi COM portuna gelmediyse (gecikme (50); // eğer 50 ms gecikme yaparız (Serial.Available ()<= 0) //если информации по-прежнему нет isExecuting = false; //считаем, что никакая команда не выполняется } }
Bence, açıklama gerektirmez, çünkü yorumlarda her şeyi detaylı olarak boyudum. Dikkat edilmesi gereken tek şey, gösterilecek şekilde iletilen çizgilerdeki bazı kısıtlamalardır. Boşluklar içermemelidir (bu kısıtlama, algoritmamın kusuruyla uygulanır) ve Kiril içermemelidir (çünkü tüm ekranlar tarafından değil, desteklenirse desteklenirse, sembol kodlarının kendi kodlamasında bulaşmasını gerektirir, istemede olmayan karakterleri dönüştürün).

Sonuç
Bu kadar. Oldukça basit olduğu ortaya çıktı.
Her şeyin nasıl çalıştığı videosu:

ESP8266 çip, akıllı bir evin projelerinde kablosuz iletişim kurulması için en popüler araçlardan biridir. Kablosuz bir denetleyici kullanarak, Internet'e erişmek için Arduino projeleri ve uzaktan kumanda ve veri toplama yeteneğine erişmek için Arduino projeleri sağlayarak iletişimi düzenleyebilirsiniz. ESP8266'ya göre, Wemos ve Nodemcu gibi popüler panoların yanı sıra çok sayıda ev yapımı proje oluşturulur. Bu yazıda, Çeşitleri, Arduino IDE'de esp8266 ile nasıl çalışılacağı, esp82266'dan kendinizden öğreniyoruz.

ESP8266, programları flash belleğinden yürütme yeteneğine sahip olan bir WiFi mikrodenetleyicidir. Cihaz 2014 yılında Çin espressifi tarafından serbest bırakıldı ve hemen hemen popüler oldu.

Kontrolör ucuzdur, az sayıda dış elemana sahiptir ve aşağıdaki teknik parametrelere sahiptir:

  • Wi-Fi 802.11 B / G / N protokollerini WEP, WPA, WPA2 ile destekler;
  • 14 giriş ve çıkış portu, SPI, I2C, UART, 10 bit ADC'ye sahiptir;
  • 16 MB'a kadar harici belleği destekler;
  • Gerekli güç, 2.2 ila 3,6 V, seçilen moda bağlı olarak 300 mA'a kadar akım tüketmiştir.

Önemli bir özellik, kristalde kullanıcı değişmeyen bellek eksikliğidir. Program, gerekli program öğelerinin dinamik yüklenmesini kullanarak harici SPI ROM'dan yürütülür. Dahili çevreye erişim, belgelerden, ancak Kütüphane ayarının API'sinden elde edilemez. Üretici yaklaşık RAM miktarını gösterir - 50 KB.

Özellikler ESP8266 Ücreti:

  • Bir bilgisayara uygun bağlantı - USB kablosu üzerinden, bundan güçlendirilmiş;
  • Dahili bir voltaj dönüştürücünün varlığı 3.3V;
  • 4 MB flash belleğin kullanılabilirliği;
  • Yeniden başlatma ve yanıp sönen yerleşik düğmeler;
  • Tüm bağlantı noktaları, iki tarak üzerinde 2,5 mm olan iki tarak üzerinde kaldırılır.

ESP8266 Modül Uygulamaları

  • Otomasyon;
  • Akıllı ev için çeşitli sistemler: kablosuz kontrol, kablosuz prizler, sıcaklık kontrolü, sinyal sistemlerine ek olarak;
  • Mobil Elektronik;
  • Etiket Kimliği;
  • Çocuk oyuncakları;
  • Ağ ağı.

Pickup ESP8266.

ESP8266 modülünün çok büyük bir çeşit var. Şekil bir kısmını gösterir. En popüler seçenek ESP 01'dir.

Programın yürütülmesi Güç kaynağı bittiğinde, GPIO0, GPIO2 ve GPIO15 bağlantı noktalarını ayarlamak için gereklidir. 2 Önemli modlar vurgulanabilir - Kod UART (GPIO0 \u003d 0, GPIO2 \u003d 1 ve GPIO15 \u003d 0) flaş kartını (GPIO0 \u003d 0, GPIO2 \u003d 1 ve GPIO15 \u003d 0) yürütüldüğünde ve Dış ROM'dan (GPIO0 \u003d 1, GPIO2 \u003d 1 ve GPIO15) \u003d 0) Normal modda.

ESP01 için PINOUT, resimde gösterilir.

İletişim Açıklaması:

  • 1 - Dünya, 8 - Yemekler. Dokümantasyonla, voltaj 3,6 V'ye verilir - Arduino ile çalıştığında göz önünde bulundurulması önemlidir, üzerinde 5 V.
  • 6 - RST, düşük mantıksal seviye gönderildiğinde mikrodenetleyiciyi yeniden başlatmak için gereklidir.
  • 4 - CP_PD, ayrıca cihazı enerji tasarrufu moduna çevirmek için kullanılır.
  • 7 ve 0 - RxD0 ve TXD0, bu, modülün yanıp sönmesi için gereken bir donanımdır.
  • 2 - TXD0, LED, GPIO1'de düşük bir mantık seviyesine ışık tutup UART'a veri iletirken bu kişiye bağlanır.
  • 5 - GPIO0, giriş ve çıkış bağlantı noktası, cihazı programlama moduna çevirmenize olanak sağlar (bağlantı noktasını düşük mantıksal seviye ve voltaj kaynağına bağlarken).
  • 3 - GPIO2, giriş portu ve çıkışı.

Pickup ESP-12

Ana Farklar Arduino, ESP8266'dan

  • ESP8266, daha geniş bir flaş hafızasına sahiptir, ESP8266'nın uçucu olmayan bir belleği yoktur;
  • ESP8266 işlemci Arduino'dan daha hızlı;
  • ESP8266'da Wi-Fi'nin varlığı;
  • ESP8266 Arduino'dan daha fazla akım tüketir;

Arduino IDE'de ESP8266 Programlama

ESP8266 Geliştirici Yazılım Kiti şunları içerir:

  • GNU Derleyici Koleksiyonu paketinden derleyici.
  • Kütüphaneler, WiFi yığınları, TCP / IP protokolleri.
  • Denetleyici programında bilgi indirme aracı.
  • Kullanım IDE.

Başlangıçta, ESP8266 modülleri üreticiden ürün yazılımı ile birlikte verilir. Bununla birlikte, modülü Wi-Fi ile modem olarak uygulamak için modülü harici bir mikrodenetleyiciden kontrol edebilirsiniz. Diğer birçok bitmiş ürün yazılımı da var. Bazıları, Web arayüzünü kullanarak modülün çalışmasını özelleştirmenize izin verir.

Arduino IDE ortamından programlayabilirsiniz. Yardım edildiğinde, esp8266'da, Arduino panosunun kendisi gerekli olsa da, esp8266'da kolayca yazıp esp8266'da indirebilirsiniz. Arduino IDE, ESP8266 modüllerinin her türünü destekler.

Şu anda, ESP8266 için aşağıdaki işlevleri uygulayabilirsiniz:

  • Kablolama dilinin ana işlevleri. GPIO bağlantı noktalarını Arduino panosundaki pimlerle aynı şekilde kontrol edebilirsiniz: Pinmode, DigitalDead, DigitalWrite, Analogwrite. Analogread (A0) komutu, ADC değerlerini saymanıza olanak sağlar. Analogwrite (PIN, VALE) komutunu kullanarak, PWM'yi istediğiniz GPIO çıkışına bağlayabilirsiniz. Değeri \u003d 0 ile, PWM kapanır, maksimum değer 1023'e eşit bir sabite ulaşır. Ektörtüsüz fonksiyonlarıyla, detachinterrupt, 16 hariç herhangi bir GPIO bağlantı noktasına kesintiye uğrayabilir.
  • Zamanlama ve gecikme. Millis ve Micros komutlarını kullanarak, başlangıçtan bu yana geçen MS ve ISS döndürebilirsiniz. Gecikme, programın yürütülmesini doğru zamanda duraklatmanızı sağlar. Ayrıca, gecikme (...) işlevi, 50 ms'den fazla gerçekleştirilen eskizlerde büyük elemanlar mevcutsa, normal Wi-Fi işlemini korumanızı sağlar. Verim (), gecikme fonksiyonunun (0) analogudur.
  • Seri ve Seri1 (UART0 ve UART1). ESP8266'daki seri çalışma Arduino üzerinde çalışmaya benzer. FIFO 128 bayt ise ve 256 bayt için yazılım tamponunun doldurulması durumunda veri bloğu kodu yürütme kaydını ve okunması. Seri nesnesi, Donanım UART0'dan hoşlanır, GPIO1 (TX) ve GPIO3 (RX) yerine PINS GPIO15 (TX) ve GPIO13 (RX) ayarlayabilirsiniz. Bunu yapmak için, seriel.begin () işlevinden sonra; Serial.swap () olarak adlandırmanız gerekir; Benzer şekilde, seri1 transfer üzerinde çalışan UART1'i kullanır. Bu GPIO2 için gerekli PIN.
  • Makro progmem. Çalışmaları Arduino'da çalışmaya benzer. Yalnızca okunurluk verileri ve dizgiyi Flash belleğinde hareket ettirmenizi sağlar. Aynı zamanda, aynı sabitler ESP8266'da kaydedilmez, bu da flash belleğin ek bir bölümüne yol açar.
  • I2C. I2C veriyolu ile çalışmaya başlamadan önce, tel.PINS işlevi (INT SDA, INT SCL) kullanılarak lastikler seçilir.
  • SPI, onewire - tamamen desteklenir.

WiFi tarafından Arduino iletişimi için ESP8266 kullanarak

Arduino'ya bağlanmadan önce, ESP8266 besleme voltajının 3,6'dan yüksek olamayacağını, arduino gerginliğinde, voltajın 5 V'dadır. Modülü bağlamadan önce, ESP8266'yı seçilen Pinout ile tanışmanız gerekir. Esp8266-01 için bağlantı şeması şekilde sunulmuştur.

ARDUINO - ESP8266 modülündeki VCC & CH_PD'de 3.3 V, Arduino ile Arsa - ESP8266, 0 - TX, 1 - RX.

Kararlı işlemi desteklemek için, ESP8266, 3,3 V ile sabit bir voltaj kaynağı ve 250 mA maksimum akım gerektirir. Güç USB-TTL dönüştürücüsünden gelirse, arızalar oluşabilir ve arızalanabilir.

ESP8266 için Wi-Fi kütüphanesiyle çalışmak, sıradan kalkanı için bir kütüphaneye benzer. Birkaç özellik var:

  • mod (M) - Üç moddan birini seçmek için: Bir seferde istemci, erişim noktası veya her iki mod.
  • açık erişim noktası oluşturmak için Softap (SSID) gereklidir.
  • sUPERAP (SSID, Şifre) - En az 8 karakterden oluşması gereken bir şifre erişim noktası oluşturur.
  • Wifi.macaddress (Mac) ve WiFi.SoftapmaCaddress (Mac) - MAC adresini belirler.
  • Wifi.localip () ve wifi.softapapip () - IP adresinin tanımı.
  • printdiag (seri); - Teşhis verilerini bilmeyi öğrenin.
  • Wifiudp - Müşteri modunda çok noktaya yayın paketinin transfer ve alımı için destek.

İş, aşağıdaki algoritmaya göre yapılır:

  • USB-TTL'yi USB ve ESP'ye bağlama.
  • Arduino IDE'yi başlatın.
  • Araçlar menüsünde istediğiniz bağlantı noktası, ücreti, frekansı ve flaş belleğinin boyutunu seçin.
  • Dosya - Örnekler - ESP8266WIFI - WiFiWebserver.
  • SSID kroki ve Wi-Fi şifresini yazın.
  • Derleme ve indirme kodunu başlatın.
  • Ürün yazılımı işleminin sonunu bekleyin, GPIO0'u yeryüzünden ayırın.
  • 115200 hızını koyun.
  • Bir bağlantı bağlanacak, IP adresi kaydedilecektir.
  • Tarayıcıyı açın, adres çubuğundaki IP / GPIO / 1 numarasını girin
  • LED GPIO2 çıkışına bağlıysa, bağlantı noktası monitörünü görüntüleyin, yanmalıdır.

NODEMCU ESP8266'ya göre

NODEMCU, ESP8266 modülüne dayanan bir platformdur. Şemayı Wi-Fi ile İnternet'ü kullanarak bir mesafede kontrol etmek için kullanılır. Kurul küçük, kompakt, ucuz, ön tarafta bir USB konektörü var. Mikrodenetleyiciyi hata ayıklamak ve yeniden başlatmak için düğmeye yakın. ESP8266 çip de kurulur. Tedarik voltajı - 5 ila 12 V arasında, 10 V'den fazla göndermek istenir.

Kurulun büyük avantajı, küçük enerji tüketimidir. Genellikle otonom yiyeceklerle şemalarda kullanılırlar. Kurulda sadece 11 genel liman portu var, bazılarında özel fonksiyonlar var:

  • D1 ve D2 - I2C / TWI arayüzü için;
  • D5-D8- SPI arayüzü için;
  • D9, D10 - UART için;
  • D1-D10 - PWM olarak çalışabilir.

Platform, donanım girişi ve çıkışı için modern bir API'ye sahiptir. Bu, ekipmanla çalışırken ve yapılandırıldığında eylem sayısını azaltmanıza olanak sağlar. NODEMCU ürün yazılımını kullanarak, cihazı hızlı bir şekilde geliştirmek için tüm çalışma potansiyelini kullanabilirsiniz.

ESP8266'ya dayanan Wemos

Wemos, ESP8266 mikrodenetleyicisine dayanan başka bir platform türüdür. Buna göre, bir Wi-Fi modülü vardır, Arduino IDE desteklenir, harici bir anten konektörü var. Tahtanın 11 dijital giriş / çıkış, (D0 hariç), kesme / PWM / I2C / tek kabloyu destekleyin. Maksimum besleme voltajı 3.3 V'a ulaşır. Ayrıca platformda bir USB konektörü var. Analog giriş 1 maksimum 3.2V voltajı ile.

Modülle çalışmak için CH340 sürücüsünü kurmanız ve Arduino IDE'yi ESP8266 altında yapılandırmanız gerekir. Bunu yapmak için, ayarlar menüsündeki "Ek Bağlantı" menüsünde http://arduino.esp8266.com/stable/package_esp8266com_esp8266 adresini eklemeniz gerekir.

Bundan sonra, ESP8266'yı ESP8266 paketi ile bulmak ve yüklemek istiyorsunuz. Daha sonra menüdeki WEMOS D1 R2 mikrodenetleyici araçlarını seçmeniz ve istediğiniz kroki yazmanız gerekir.

Sonuçlar Esp8266.

ESP8266 yongasına dayanan panoların kullanılması, "büyük internet" nin fırsatını projelerinize ekleyebilir, onları çok daha akıllı hale getirebilirsiniz. Uzaktan Kumanda, Sunucuda Veri Toplama ve Analizi, Ses İşleme ve Görüntü Çalışması - Bütün bunlar WiFi projemizi İnternet'e bağladığımızda kullanılabilir. Aşağıdaki makalelerde, ESP8266 veritabanı cihazlarının programının nasıl programlanacağını ve ayrıca Wemos ve Nodemcu gibi popüler ödemelere nasıl dikkat çekeceğini düşüneceğiz.

Baştan başlamak.

Yonga Esp. 8266

ESP8266 çip özel olarak "şeylerin interneti" için tasarlanmıştır. Bu çipi kullanmak için iki seçenek vardır. Birincisi, bir mikrodenetleyici ve komutların kontrolünü kontrol etmek için bir UART-WIFI köprüsü olarakdır. İkinci seçenek - çipin kendisi denetleyicinin rolünü yürütür. Elektronik sevenler ortamındaki tahminlerime göre, çip genellikle bir kontrol cihazı olarak kullanılır.

Chip özellikleri:

  • Destek 802.11 B / G / N
  • Dahili 32-bit MCU düşük güç tüketimi
  • Dahili 10 bit ADC
  • Dahili TCP / IP Yığını
  • Dahili WF Sinyal Amplifikatörü
  • Antenlerin ayrılması için destek
  • WiFi 2.4 GHz, WPA / WPA2 desteği
  • STA / AP / STA + AP modu desteği
  • SDIO 2.0, (H) SPI, UART, I2C, I2S, IR Uzaktan Kumanda, PWM, GPIO
  • STBC, 1x1 Mimo, 2x1 Mimo
  • A-MPDU ve A-MSDU Agregation & 0.4S Muhafız Aralığı
  • 802.11b modunda çıkış gücü +20 dBm

Çip, WiFi ile çalışmak için son derece entegre bir çözümdür. Çipin içinde ihtiyacınız olan her şeyi yerleştirmeyi başardı. Çalışmak için tipik minimal olarak gerekli, çipin tıkanması yedi elementin tümünden oluşur.

Benzer çözümlerin bileşenlerinin sayısını karşılaştırmak için fotoğraflar.

Tüm bu cazibeye göre, 32-bit CPU Xtensa LX106 çekirdeği, diğer verilere göre, Tensilica'nın L106 elmasına göre yönetilir. Mikroskop altında, ilgili elementlerden bir şehir olarak bir çip gibi görünüyor.

En önemli özelliklerden biri güç tüketimidir. ESP8266 Sadece Şaşırtıcı:

  • Sürekli şanzıman modunda 215mA.
  • Erişim noktası ile bağlantı modunda 1mA
  • Gerçek zamanlı saatli derin uyku modunda 10UA
  • 0.5UA Kapanma modunda

Uyanış için gereken süre ve paketin devresinin başlangıcı 2ms'den azdır. Örneğin, sıcaklığı her 100 saniyede bir ölçülürken ve erişim noktasına bağlanırken ve biriken verilerin her 300 saniyede bir aktarılması (yonga uyuyor) ortalama akım yaklaşık 1mA olacaktır. Bu, 2600mA / H kapasiteli üç parmak pilinden üç aydan fazla çalışma.

Modüller Hakkında Esp.

Şu anda, ESP8266 cipsindeki en popüler modüller ESP-01, ESP-02, ESP-03, ESP-04, ESP-05, ESP-06, ESP-07, ESP-08, ESP-09, ESP-10, ESP-11, ESP-12, ESP-12E. Seyreltilmiş pimler, harici bir anten, boyutları bağlamak için bir konektörün varlığı miktarında farklılık gösterirler.

Şimdi zaten ESP8266 ağabeyi bulabilirsiniz - bu bir ESP-32 modülüdür. Aliexpress'de, sadece iki satıcı bu modülleri var. ESP-12E için 110 ruble karşı yaklaşık 250 ruble fiyatı. Yeni modül daha fazla çörek olacak.

ESP-32'nin ana özellikleri. (Detaylar için tıklayın)

Wifi
- 802.11 B / G / N / E / I
- 802.11 n (2.4 GHz), 150 Mbps'ye kadar
- 802.11 i Güvenlik Özellikleri: Önceki Doğrulama ve TSN
- 802.11 E: QoS trafiğini tam olarak kullanmak için çoklu sıra yönetimi
- Wi-Fi Korumalı Erişim (WPA) / WPA2
- Wi-Fi Korumalı Kurulum (WPS)
- UMA uyumlu ve sertifikalı
- Anten Çeşitliliği ND
- A-MPDU ve A-MSDU Agregation
- WMM Gücü ve U-APSD
- parçalanma ve birleştirme
- Wi-Fi Direct (P2P), P2P Keşif, P2P Grup Sahibi Modu ve P2P Güç Yönetimi
- Altyapı BSS İstasyonu Modu / Yumuşak AP Modu
- Otomatik Beacon İzleme / Tarama
- Donanım hızlandırıcıları ile SSL yığınları

Bluetooth
- CMOS tek çip tam entegre radyo ve temel bant
- Bluetooth Piconet ve Scatternet
- Bluetooth 4.2 (BR / EDR / BLE)
- Uyarlanabilir frekans atlamalı (AFH)
- SMP.
- Sınıf-1, Sınıf-2 ve Sınıf-3 Verici Ruhsat Exter Al Güç Amplifikatörü
- +10 DBM TRA BOYUN GÜCÜ
- -90 DBM Hassasiyetli NZIF Alıcısı
- 4 MBPS Yüksek Hızlı UART HCI
- SDIO / SPI HCI
- CVSD ve SBC
- Düşük güç tüketimi
- Minimum harici bileşen

CPU ve hafıza.
- Xtensa® çift çekirdekli 32-bit LX6 MICR PR CESS RS, 400MIPS'ye kadar
- 128 KB ROM
- QSPI Flash / SRAM, 4 x 16 MB'a kadar
- Güç kaynağı: 2.5V ila 3.6V
- 416 KB SRAM

Saatler ve zamanlayıcılar.
- 2 MHz ila 40 MHz kristal osilatör
- Kalibrasyonu olan Dahili 8 MHz osilatörü
- Kalibrasyonu olan RTC için harici 32 kHz osilatörü
- Kalibrasyonu olan dahili RC osilatör
- Her grupta 3 x 64 bit zamanlayıcı ve 1 x bekçi köpeği dahil iki zamanlayıcı grubu
- Alt ikinci doğrulukla RTC zamanlayıcı
- RTC Watchdog.

Gelişmiş çevre birimi arayüzleri.
- 12 bit SAR ADC'ye kadar 16 kanala kadar
- 2 x 10-bit D / A Dönüştürücüler
- 10 x Dokunmatik Sensörler
- Sıcaklık sensörü (-40 + 125 ° C)
- 4 x SPI
- 2 x i2s
- 2 x i2C
- 2 x uart
- 1 Ana Bilgisayar (SD / EMMC / SDIO)
- 1 köle (SDIO / SPI)
- Özel DMA ve IEEE 1588 destekli Ethernet Mac arayüzü
- CAN 2.0.
- IR (TX / RX)
- Motor PWM.
- LED PWM'ye kadar 16 Channes'a kadar

Güvenlik
- IEEE 802.11 Standart Güvenlik Özellikleri WFA, WPA / WPA2 ve WAPI dahil tüm desteklenir
- Güvenli Önyükleme
- Flash şifreleme
- 1024-bit OTP, müşteriler için 768 bit
- Cryptographcc donanım ivmesi:
- AES 128/192/256
- Hash (SHA-2) Kütüphanesi
- RSA.
- Radom numarası jeneratörü

Özellikle Can otobüsünün beyan edilen desteğiyle ilgilenir. Yakında araba sistemlerini kontrol etmek ve WiFi'yi doğrudan mobil cihazdan teşhis etmek mümkün olacaktır.

Ancak ESP-12E'ye geri dönün. NODEMCU platformu bu modül temelinde inşa edilmiştir.

Platform Hakkında

Platform, ESP-12 modülünün yeteneklerini kullanır, kendi mikrodenetleyicisi yoktur. Çinliler, farklı arayüz dönüştürücülere sahip birçok klon üretir ve platformların kendileri farklı boyutlara sahiptir.

Varsayılan olarak, NODEMCU firmware, LUA komut dosyası dili tercümanı için destekle platforma indirilir. Komut dosyaları, tahtanın davranışını ayarlar.

Arduino IDE kullanarak programı yazıp dökün. Platformla çalışmak için kütüphaneler kurmalısınız. Kütüphaneler çok sayıda program örneğidir.

Çarşamba günü kütüphaneleri yükleme Arduino. İde İş için S. Nodemcu. .

Kütüphaneleri ayarlamak için, Arduino IDE ayarlarına gitmeniz ve http://carduino.esp8266.com/package_esp8266) adresini girmeniz gerekir.

Listeyi aşağı indirin ve ESP8266 ESP8266 topluluğunu bulun ve kütüphaneler kurun.

"Yönetim Kurulu Yöneticisi" ye kapatın. "Araçlar" a gidin ve Versiyonunuza göre NODEMCU kartını seçin.

Hangi modülün kurulduğunuzu ve hangi sürümü seçeceğinizi anlamak için modüle bakın. Üzerindeki kişiler üç tarafta bulunursa - bu, sadece ikisi ESP-12 ise, ESP-12E'dir.

Nodemcu platformu sonuçları

Kütüphaneler tarafından desteklenen fonksiyonlar Arduino. İde .

Tam Açıklama Burada okuyabilirsiniz https://github.com/nodemcu/nodemcu-firmware/wiki/nodemcu_api_ru_ru ve Rusça. Temel işlevler hakkında konuşacağım.

GPIO kontrolü Arduino ile aynı şekilde gerçekleştirilir. Pinmode, DigitalDead, DigitalWrite, Her zamanki gibi analogwrite işlevi. Analogread (A0), ADC değerini sırasıyla A0'lu bir analog girişten okur. Analogwrite, yazılım pwm içerir. 1 KHz siparişinin PWM frekansı. PWM, 0 ila 1023 arası Arduino, hatırladığımız gibi, 255'e kadar. Kesintiler, GPIO16 hariç herhangi bir GPIO'da da desteklenir. Millis () ve Micros () işlevleri, modülün başlangıcından geçen milisaniye ve mikrosaniyelere iade edilir. Nodemcu'dan Gecikme () işlevi Arduino'dan farklı çalışıyor. Burada, gecikmenin uygulanması açıktır ve hatta büyük programlarda bile gereklidir. Modül WiFi bağlantısını desteklediğinde, krokunun dışında birçok arka plan görevini gerçekleştirmek zorundadır. SDK kütüphanelerinin WiFi ve TCP / IP işlevleri, döngü () işlevinizin her bir döngüsünü tamamladıktan sonra veya gecikme (...) yürütülmesi sırasında kuyruktaki tüm olayları işleme kabiliyetine sahiptir. Kodunuzun 50'den fazla milisaniye çalıştıran parçaları varsa, WiFi yığınının normal performansını korumak için gecikme (...) kullanmak gerekir. Ancak DelayMicroseconds (), diğer görevlerin yürütülmesini engeller ve 20 milisaniyeden daha fazla gecikmeler için önerilmez. Seri, PIO1 (TX) ve GPIO3 (RX) üzerinde çalışan bir donanım UART0 kullanır.

Bir mobil uygulamadan dört röleyi yönetme programı

Kütüphaneler platforma ayarlandıktan sonra, sırasıyla GPIO 5, 4, 0, 2'ye karşılık gelen D1, D2, D3, D4'e 4 röleye bir blok bağlarız. Sonra gücü platforma ve röle ünitesine bağlarız. Bir röle bloğum var bir özellik var. Röleyi açmak için pimi toprağa sıkmanız gerekir. Yani, mantık 0 röleleri içerir ve 1 kapanır.

Röle bloğunu kontrol etmek için üç seçenek olduğunu düşüneceğim.

İlk program Https://github.com/marcoschwartz/arest'in popüler kütüphanesini kullanır.

Bu, bir API işleyici kütüphanesidir, GPIO'yu http://192.168.0.10/digital/6/1 türünün HTTP istekleri ile yönetmenizi sağlar. Özellikleri: GPIO'yu dijital veya analog (PWM) olarak yükleyin, 0 veya 1'i pim Dijital modda, değişkenleri döndürün ve pimlerin durumunu okuyun.

Programı derledim ve kütüphaneyle birlikte giden örneklerden indirdim. Kullanım açısından - daha kolaydır.

Kurulumda, COM portu aracılığıyla bildirildiği gibi bir bağlantı erişim noktasına ayarlanır. Ve döngü böyle görünüyor:

void loop () (

Wificlient Client \u003d Server.Available ();

if (! Müşteri) (

Dönüş;

}

Süre (! Client.Available ()) (

Gecikme (1);

}

Rest.Handle (müşteri);

}

Her şey. Neler oluyor belli değil. Çalışır, ancak aslında hiçbir şey programlamıyoruz. Sadece programı çalıştırın, her şey kütüphaneyi yapar. Ancak GPIO "Elleri" ile nasıl çalışacağını öğrenmek daha ilginç. Evet, bu arada, belirsiz bir zamandan sonra bir programım vardı. Bazen 40 dakika sonra, bazen 5-6 saat içinde. 8 saatlik işten sonra eve geliyor, programın çalışmadığını her zaman keşfettim. Aynı zamanda, yönlendirici WIFI istemcisinin bağlandığını ve IP adresini verildiğini gösterir. Kütüphaneme olan ilgim hızla ortadan kayboldu. Rus konuşan forumlarda hırsızın asılı tutulmasında şikayetleriyle karşılamadı. Nodemcu veya dengesiz yemekler üzerinde günahkildim, ancak daha fazla deneyler durumumda programın suçlu olduğunu kanıtladı. Büyük olasılıkla özel bir durumum var. Kütüphanenin çalışmadığını iddia etmiyorum.

Arest ile sıralanmış.

İkinci program Yazılı bağımsız olarak yalnızca bir bağlı kütüphane kullanır #include . Program basit ve net bir şekilde pimleri web istekleri ile yönetmeyi gösterir. Bu program yalnızca D1-D4 sonuçlarında yalnızca mantıksal durumları yönetebilir ve programın çalışma süresi hakkında bir test sorgusu olarak bilgi görüntüleyebilir. Eğer bir ihtiyaç varsa, GPIO'nun geri kalanı için bir program ekleyebilirsiniz, "Öğretmek", PWM'ye, vb. D4 çıkışına, ESP-12E modülüne mavi bir LED bağlanır. Tahsisattan sonra, arestin askıda bulunduktan sonra, röle 4'ü D4'ten ve programımda bu LED'in yanıp sönmesi için birkaç çizgiyi bitirdim. İşten sonra eve geldim - izledim - yanıp söner, sonra çalışır. Mobilden kontrol edildi - tam olarak çalışır. Program donmadan 8 gün çalıştı, daha uzun süre çalışacak, ama ben bir Nodemcu var, bu yüzden çalışmaya devam ettim ve durmam gereken programı yerine getirdim.

Programı seri bağlantı noktası monitörüne derledikten ve indirdikten sonra, programın erişim noktasından alacağı bağlantı durumu ve IP adresini bildirir.

Bu iki program için röle ünitesini kontrol etmek için, Android işletim sistemi ile bir cep telefonunda bir uygulama oluşturuldu. Uygulama çok basittir, uygulama Mucit 2'de oluşturuldu. Uygulamanın uygulamasını daha sonra açıklayacağım. İlk olarak, röle yönetimi çözümünün üçüncü versiyonu.

Üçüncü seçenek karmaşık. Bir geliştiriciden firmware platformu ve Android programı. Blynk servisi kullandım. Grafik kontrol panelleri oluşturmak için bir bulut hizmetidir ve çok çeşitli mikrobilgisayarlar ve mikrodenetleyici için uygundur.

Kendi projenizi Blynk kontrolü ile oluşturmak için, bir miktar ihtiyacınız var: Uygulamayı yükleyin (iOS ve Android için kullanılabilir) veya Web formunu kullanın. Bu, bir adımda kayıt gerektirecektir - e-posta ve şifreyi girin. Gerçek şu ki, Blynk bir bulut çözümüdür ve kayıt olmadan, herhangi bir kullanıcı demir parçası üzerinde kontrol alabilir.

Dilek, sunucuyu yerel olarak yükleyebilir. Bu durumda, internete erişim gerekli değildir.

İşlemin kendisini tanımlayacağım. İki bölümden oluşur.

İlk kısım. Google Play ile Blynk'i indirin. Programı kurun ve çalıştırın

  1. "Yeni Proje Oluştur" tuşuna basın
  2. Projenin adının tadını çıkarın ve Donanım Modeli alanında Nodemcu'yu seçin. Auth belirteci Kalple öğrenin veya bir kağıda yazın, kendinizi postaya gönderin. "Oluştur" düğmesine tıklayın.
  3. Köşedeki "+" düğmesine tıklayın.
  4. "Düğme" i seçin. Zaten dikkat çektiğiniz gibi, projeye eklenen her bir öğe enerjiye değerdir. Varsayılan olarak, 2000 yılına göre verilir. Enerji widget'ları eklendikçe, enerji harcanır. Daha fazla widget yerleştirmeniz gerekiyorsa, para için enerji satın almalıyım.

  1. Böylece düğmemiz ortaya çıktı. Üstüne tıkla. Ayarlar açılacaktır.
  2. Adını, hareket edeceği PIN, düğmenin modunu veya anahtarın modunu, "Etkin" ve "Kapalı" durumunun adı seçin. Sinyali tersine çevirerek ters çevrilemez. Rölelerim için: Düğme kapanır - 0 çıkışta, röle açılır ve bunun tersidir. Mantıksal çalışma kurallarını yazabilirsiniz. Sunucuyu yerel bilgisayara yükleyebilirsiniz.
  3. Sonra, yukarıdaki üçgenlere basın. Program, işe düzenleme biçiminden geçer.
  4. Düğmeler çalışır. Multitouch dikkat çekicidir. Aynı anda 6 düğmeye basmaya çalıştım. Her şey çalışıyor (telefonda 10 dakika tıklama noktası).

İkinci kısmı - Bu, NODEMCU ürün yazılımıdır. Blynk kütüphanelerini indirin ve yükleyin https://github.com/blynkkk/blynk-library. Başlat Arduino IDE - Dosya - Örnekleri - Blynk - BoardSandshields - ESP8266_STANDALONE.

Gizli bir posta kağıdına sahip kimlik belirteci örneğinin tadını çıkarın. Ayrıca WiFi ağınızı ve şifrenizi erişiminizi de SSID.

Her şey. Derlemek ve dikin. Her şey ilk kez kazandı. Bulut hizmeti internete kullanımına tabi olarak, hem bir cep telefonuna hem de NODEMCU'ya erişilmelidir.

Bir Uygulama Oluşturma B.App. Mucit.

Uygulama Enventor - Android Uygulaması, Kullanıcı En az programlama bilgisini gerektiren görsel geliştirme ortamı. Başlangıçta Google Labs'ta tasarlanan, bu laboratuvarın kapatılmasından sonra Massachusetts teknolojik enstitüsüne devredildi. Uygulama Mucitinde programlama için, grafiksel bir arayüz kullanılır, görsel bir programlama dili çizik diline ve Starlogo TNG'ye çok benzer. Bir uygulama yazmakla ilgilenmek çok zor değil. Rusça yararlı belgeler bulamadım, ancak YouTube'da birçok video.

Hizmetin iki ana sekmesine sahiptir. Birincisi "tasarımcı", burada görsel editörde bileşenler yerleştirilir. Uygulama Mucit hizmetinin bir özelliği nedeniyle arayüz geliştirme hızı çok yüksektir. MIT App Inventor 2 Companion uygulamasını mobil cihaza yüklemeniz gerekir. Koş. Sitede Bağlan - AI Companion'u seçin. QR kod ekranında üretilecek ve görüntülenecektir. Uygulamada "QR Kodu Tara" ve tarama kodunu tıklamanız gerekir. Birkaç saniye sonra, uygulama mobil cihazın ekranında görünecektir. Yeni elementler veya bir saniye boyunca tam anlamıyla herhangi bir değiştirilmiş veri, bir mobil cihazda taramak için kullanılabilir hale gelir.

Ekranda yerleştirilir: IP adresini girmek için giriş alanı, kurulum düğmesi ve test sorgusunu gönderin. Aşağıda "WebViewer" bileşenidir, NODEMCU sayfasından yanıt olarak gösterilecektir. Aşağıda, röleyi kapsayan ve kapanan 4 grup iki gruptur. Ayrıca bir "TinyDB" bileşenine ihtiyacınız var, bir sorgu oluşturmak için bir değişkeni saklayacağız. Ayrıca, röleleri sesli komutlarla yönetebilmek için bir ses tanıma bileşeni eklemiyorum. Metin tanındığında eylem algoritmasını tanımlamak için, bu işlevi kullanmanın son derece uygunsuz olduğu için olmaz. Öncelikle düğmeye tıklamanız gerekir, ardından pencere Google'dan "Speak" yazısı ile görüntülenir, sonra takım telaffuz edilir. Ve ekibin telaffuzunun sona ermesinden sonra, tanıma sistemi bir süre bekliyor, sonra her şeyin dediği gibi görünüyor. Sonra bir konuşma tanınması var ve metin tepkisi geliyor. Önceden hasat cümleleri ile karşılaştırılmalıdır. Ve sadece bundan sonra komut yürütülür. Düğmeye dokunmak daha kolay.

İkinci sekme "bloklar" denir. Burada, uygulamanın tüm "program" kısmının tamamı blok şeklinde belirtilmiştir.

Burada, bloklar programın çalışma algoritmasından oluşur. Algoritmanın ana kısmı ekran görüntüsündedir. Burada neler olduğunu açıklayacağım.

  • Set.Click - "SET" düğmesine basıldığında, IP işlevini arayın
  • Sonraki IP işlevinin kendisi gelir. IP adresini TinyDB'deki giriş alanından kaydeder, önce "http: //" ekler. Sonra WebViewer.Gotourl adresi TinyDB'den alır, sonunda "/ Test" ekler ve bu adreste geçer. "Http://192.168.0.1/test" alıyorum. WebViewer'da, testin geçtiğini ve NODEMCU'nun sürekli çalışması görüntülenir ekranda bilgi yüklenir. IP adresi yanlış girildiyse, sayfayı açamamak için bir mesaj alırız.
  • On1.Click (On1 Bu düğme adı) ON1 işlevini çağırır.
  • ON1 özelliği, adresi TinyDB'den alır, "/ D1 / 0" ekler, "http:///192.168.0.1/d1/0" olarak ortaya çıkar ve bir istek gönderir. NODEMCU, bu talebi aldıktan sonra, D1'i Pin'e 0 yüklemeniz Gerekenler. WebViewer'da gördüğümüz "GPIO SET OK" cevabını gerçekleştirir ve gönderir.
  • Bir sonraki Kapalı1 düğmesi aynı yapar, ancak sonunda "/ D1 / 1" ekler. PIN D1'de mantıksal 1 ayarlar. Röle kapalı.

Kalan düğmeler aynı şekilde hareket eder, istek sayısının ve gerekli durumun değiştirilmesi.

Her şey kontrol edildikten ve çalıştırıldıktan sonra, Yap - Uygulama (Bilgisayarıma .Apk'yı kaydet) tıklayın. Bir derleme ve bir apk dosya uygulaması indirme. Üçüncü taraf kaynaklarından uygulamaların kurulmasına izin veren ayarlarda mobil cihaza monte edilmelidir. Şimdi başvuru bağımsız olarak başlar. AI Companion artık gerekli değil ve internet ile iletişim.

Bu, WiFi ağındaki yükü kontrol etmek için Android cihaz için bir uygulamanın oluşturulması mümkündür.

NODEMCU ve cep telefonu bir ev yönlendiricisine bağlı. WiFi erişim noktası olmadığı yerlerde, NODEMCU, bir mobil cihazı doğrudan ESP8266'ya bağlamak için erişim noktası işlevlerini gerçekleştirebilir. Örneğin, garaj kapısının açılmasını ve ışığın garajda dahil edilmesini yönetmek.

P.S. Platformdaki erişim noktasını yükseltin, ancak başaramadım. Bir örnek kütüphanelerle birlikte gelir. Arduino IDE basitçe derleme sürecinde asılacaktır. Hala bununla başa çıkmam gerekiyor.

P.S. Platformun üzerindeki nokta kaldırdı, ancak yeterli iş henüz başarılmadı. Komutlar, birkaç saniye içinde veya bir sürede bir gecikme yapıldı veya hiç yapılmadı. Modülün çalışması askıya alınırken. Meşgul araba servisi.

Bu yazıda, tankınızı bir web kamerası ile donatılmış ve WiFi yönlendirici tarafından yönetilebilir.

Gerekli malzemeler:

  1. İnternet kamerası.
  2. TP-Link TL-MR3020 Router
  3. Servolar SG90 - 2 adet
  4. Kamera platformu titreşim önleyici
  5. Akümülatör 7.2V 5000mAh
  6. Batarya 5V 2000mAh
  7. Nano 3.0 Atmel ATMEGA328
  8. L298N motor sürücüsü.
  9. Teller, termal tüpler, USB hub, diyotlar ve daha fazlası.
  10. Tadı için platform, DD1-1'i seçtim

Canavarımın montajı
MR3020 yönlendiricisini ayarlama.
Her şeyden önce, yönlendiriciyle başlayalım. Uzun zamandır ya da wrt veya cyberwrt seçmek için düşündüm. AR-WRT ayarlarında esneklikler, ancak ayarlarınızın düzenlenmesi ve ayarlanması, Macun Programı'nın yardımı ile terminal aracılığıyla gerçekleştirilir. Ve bu annelerde terminalden çalışmaktan korktuğumdan beri, grafiksel bir arayüzün cyberwrt olduğu yerde seçtim, ayrıca USB portu üzerinden bağlanmak mümkündür.
Yönlendiricimizin bellenimini değiştirmek için, CyberWrt MR3020 ürün yazılımını indirmeniz gerekir.

İndirdiğimiz gibi, aşağıdakileri yapın:

1) Yönlendiriciyi açın ve indirmeyi bekleyin.
2) 192.168.0.254'te gidin ve oturum açın (Varsayılan Yönetici \\ admin)
3) Sol sistem araçlarındaki menüde bulun, sistem yükseltme noktası var ve üretici yazılımını Web Formu üzerinden dökün.
4) Yeniden başlatmayı bekleyin (yaklaşık 4 dakika)
Yönlendirici yapılandırmaya hazırdır.

Modlardan birini seçebilirsiniz: "Erişim noktası" ve "Wi-Fi Ağ İstemcisi". İstemci modunu yapılandırmak için:
- Wi-Fi Ağ İstemcisi Modunu seçin
- Cihazınızın IP adresi (Cihazınız bu adreste mevcut olacaktır. Kullanılmamış bir IP seçmeye çalışın. Örneğin: 192.168.1.100)
- Alt ağ maskesi (255.255.255.0)
- Ağ Geçidi (örneğin, ev yönlendiricinizin IP veya Gateway - 192.168.1.1)
- Şifreleme türü (ev ağınızda kullanılan şifreleme türü)
- Şifre (Şifre, ev ağınıza erişim)

Her şeyi doğru yaptıysanız, ekranın altındaki RSS dizesini gideceksiniz.

Her şey kazandığında, bir bölüm modülüne sahip olacaksınız, orada "Robot" modülünü bulursunuz. Yüklemek. Hazır.

L298N, Arduino Nano, MR3020, kamera ve diğerlerini bağlayın

Resimde, her şey açıkça gösteriliyor, ama sadece yazacağım durumunda.

Arduino Digital 4 - In1 modül çamı.
Arduino Dijital 5 Çıktı - IN2 Modül Çamına.
Sonuç Arduino Digital 6 - IN3 PIN modülü.
Sonuç Arduino Digital 7 - in4 modül çamı.
Arduino GND çıkışı - GND modül terminaline.
GND Clem Module - eksi pil.
7.2V modül terminali - artı pil.
RM Modül Clem, doğru motordur.
LM modülü Clem - sol motor.
USB Arduino Port - USB Hub'a Bağlan
Web Kamerası - USB Hub'a Bağlan
USB HUB - USB yönlendiriciye bağlanın

Yemekler, ikinci pil tarafından gerçekleştirilen lojistik de söyleyin. Yönlendiriciyi yakmamak için kapasite 2000 MA / H 5V. Evet ve iki pille, robot kararlı çalışıyor. Böylece, sadece mikro USB konektörüne bağlıyoruz. Rootette beslenmeye bağlı bir USB hub'tan zaten kamerayı ve Arduux'umuzu alır.

Arduino nano için kroki
Cyberlib kütüphanesini indirmeniz gerekir, sadece ATMEGA 328 için tasarlanmıştır.

/ * Sürüm 1.5 WiFi Tanka DD1-1'de uygulandı: 1) X ve y2 ile kamera hareketi 2) BEEP 3) Farlar 4) Ses Etkinleştirildiğinde * / #include // kütüphaneyi bağla #include // servo myservo1 servo sürücü kütüphanesini bağlayın; Servo myservo2; Uzun ömürlümillis; // int ledstep \u003d 0 zamanlayıcısına ihtiyacım var; // led int i için sayacı; #define robot_go (d4_high; d5_low; d6_low; d7_high;) #define robot_back (d4_low; d5_high; d6_high; d7_low;) #define robot_stop (d4_low; d5_low; d6_low; d7_low;) #define robot_rotation_right (d4_high; d5_low; d6_high; d7_low ;) #define robot_rotation_left (d4_low; d5_high; d6_low; d7_high;) #define led_on (d13_high;) #define led_off (d13_low;) #define headlamp_on (d8_low;) #define headlamp_off (d8_high;) #define zil (11) , 494, 500);) #define init (d4_out; d5_out; d6_out; d7_out; d8_out; d13_out;) uint8_t inbyte; void kurulum () () (myservo1.attach (9); // servo sürücülerini bağlantı noktasına bağlama myservo2.attach (10); // servo sürücüleri bağlantı noktasına bağlamak için D11_OUT; D11_LOW; // FACTLAPT_OFF Hoparlör; // Alev varsayılan farlar \u003d 0; ben<12; i++) beep(80, random(100, 2000)); //звуковое оповещение готовности робота init; // Инициализация портов //Buzzer; // Инициализация портов динамика UART_Init(57600);// Инициализация порта для связи с роутером wdt_enable (WDTO_500MS); } void loop() { unsigned long currentMillis = millis(); // Обновление таймера if (LedStep == 0 && currentMillis - previousMillis > 500) (// gecikme 0.5 sn. ÖncekiMillis \u003d currentmillis; // led_on; // ledstep \u003d 1; // adım sayacını aç) ifstep \u003d\u003d 1 && currentmillis - öncekiMillis\u003e 500) (// gecikme 0,5 sn. ÖncekiMillis \u003d currentmillis; // zamanlayıcı led_off güncellenmesi; // ledstep \u003d 2; // adım sayacını kapatın) ifstep \u003d\u003d 2 && currentmillis - previoSmillis\u003e 500) (// gecikme 0.5 sn. LEDstep \u003d 0; // adım sayaç) (UART_READBYTE (BBYTE)) // Exly bir şey geldi (hangi takımın "x": // Osontovka robot_stop robotu; Break; vaka "W": // İleri taşıyın robot_go; kırılma; dava "D": // sol robot_rotation_left için salınım; kırılma; durum "a": // robot_rotation_right, kırılma; durum "S": // hareket arka robot_back; kırılma; vaka "u": // servo yükselir myservo1. (I - \u003d 20) yazma (i - \u003d 20); kırılma; "J": // servo, myservo1.write (i + \u003d 20) tarafından indirilir (I + \u003d 20); Break; "H": // servo döner myservo2. Yaz (i + \u003d 20); Kırmak; Kılıf "K": // servo sağ myservo2.write (i - \u003d 20) döndürülür; Kırmak; Case "y": // servo döner 85 myservo1.write (85); Myservo2.write (85); Kırmak; Kılıf "F": // Headlamp_on farlarını etkinleştirin; Kırmak; Vaka "v": // Headlamp_off farlarını kapatın; Kırmak; CASE "I": // Buzzer Hodk; Kırmak; )) wdt_reset (); )

Yönlendiricide değişiklik yapma
Kameraları kontrol etmek için yönlendirici kütüphanesindeki değişiklikler yapıldı. Değiştirilen kodu indirmeniz ve kaynak dosyaları kendilerine değiştirmeniz gerekir.

Konuya devam ediyor:
Aygıtlar

Çevrimiçi Galaxy Invaders oyununu (Galaxy Invaders) ile tanışın - Space Invaders türünün (uzay işgalcileri) en iyi retro oyununun modern versiyonu. Bu eski bir iyi ...