Arduino UNO'ya WiFi ekle

ESP8266 WiFi Modülünü ekleyerek mini kontrol cihazınızı internete bağlayın!

ESP8266 Wifi modülü, Seri İletişim veya UART arayüzü üzerinden basit bağlantısıyla herhangi bir mikrodenetleyici tabanlı tasarıma servis Wi-Fi adaptörü, kablosuz internet erişimi arayüzü olarak kolayca bağlanabileceğiniz eksiksiz bir WiFi ağıdır.

Bu modülü Arduino UNO'nuza eklemek sizi daha ve heyecan verici projelere açacak

Adım 1: Devre Oluştur

Ekli Pin tablosunda daha ayrıntılı olarak açıklanan pinleri bağlayın

Bu adımları takip et.

  • kırmızı kabloyu VIN'e (3.3V) mikrodenetleyiciden + 3.3V gücüne bağlayın.
  • siyah teli zemine bağlayın.
  • yeşil kabloyu Wifi modülü ve mikro denetleyicinin TX'ine bağlayın
  • sarı wite'ı wifi modülü ve mikrodenetleyicinin RX'ine bağlayın

Devre hakkında

ESP8266 sadece 3, 3 V'a güç veriyor. Bundan daha fazlası modülü yok edecek.

ÖNEMLİ 3.3V'dan daha yüksek voltajlar kullanmayın!

Gücü açmak için VIN'i 3.3v'ye ve modülü etkinleştirmek için ENABLE pimine bağlayın.

TX, RX'e bağlanır, yani ESP8266'da İletmek istediğimiz her şey Arduino UNO tarafından alınır. Ve RX'den TX'e tersi. Bu devreyi inşa ettikten sonra, şimdi Arduino UNO ile WIFI'yi başlatmaya hazırız.

2. Adım: Modülle Konuşun

ESP8266 ile iletişim Dikkat Komutu veya AT Komutları aracılığıyla yapılır.

Kodları gözden geçirmek için ekteki AT Komutları tablosuna bakın.

Tahtanızı ayarlama

1. Buraya eklenen çizim örneğini Arduino UNO'nuza yükleyin.

2. Android için Telnet İstemcisi'ni indirin

3. ESP8266 Wifi cihazınıza bağlayın

4. Bağlandıktan sonra IP adresini alın

5. Android telefonda Telnet İstemcisi'ni açın.

6. bağlan, IP ekle ve bağlantı noktası 80'i tıklatarak bağlantı oluşturun.

Bağlandıktan sonra şunu yazarak gönderme isteği:

 esp8266: 

Veya komut kullanarak yerleşik LED'i açın

 LEDON 

Veya komut kullanarak yerleşik LED'i kapatın

 LEDOFF 

Veya sadece söyle

 MERHABA 

Ekler

  • esp8266Sample.ino İndir

3. Adım: Kod Hakkında

Tüm isteğimiz loop () işlevinde okunacak ve ayrıştırılacaktır

Eğer (wifiSerial.available ()> 0) {

Dize iletisi = readWifiSerialMessage (); if (find (message, "esp8266:")) {Dize sonucu = sendToWifi (message.substring (8, message.length ()), responseTime, DEBUG); if (find (sonuç, "Tamam")) sendData ("\ n" + sonuç); else sendData ("\ nErrRead"); // Başarısız Yürütme deyimi için ERROR CODE komutunda} else if (find (message, "HELLO")) {// wifi sendData'dan HELLO alır ("\\ nHI!"); // arduino, HI} başka ise (find (message, "LEDON")) {digitalWrite (13, HIGH); } else if (find (mesaj, "LEDOFF")) {digitalWrite (13, DÜŞÜK); } else {sendData ("\ nErrRead"); // OKUNAMIYOR için HATA KODU komutu}}

Arduino UNO ile iletişim kurmak veya bir şeyler yapmak istiyorsanız, sadece durumunuzu ekleyin

if ( "(iletiyi bulmak")) {
// burada bir şeyler yapar

}

ESP8266 ile iletişim kurmak için bazı fonksiyonlar ekledim.

/ *
* Ad: sendData
* Açıklama: cipsend kullanarak tcp istemcisine dize göndermek için kullanılan işlev * Params: * Döndürür: void * / void sendData (String str) {String len = ""; uzunluk + = str.length (); sendToWifi ( "AT + CIPSEND = 0, " + len, responseTime, DEBUG); gecikmesi (100); sendToWifi (str, responseTime, DEBUG); gecikmesi (100); sendToWifi ( "AT + CIPCLOSE = 5", responseTime, DEBUG); }

/ * * Ad: find * Açıklama: İki dizeyi eşleştirmek için kullanılan işlev * Params: * Döndürür: başka bir eşleşme yanlışsa true * / boolean find (Dize dizesi, Dize değeri) {if (string.indexOf (değer)> = 0) geri dönüş; yanlış döndür; }

/ * * Ad: readSerialMessage * Açıklama: Arduino Seri'den veri okumak için kullanılan işlev. * Params: * Döndürür: Arduino'nun yanıtı (bir yanıt varsa) * / String readSerialMessage () {char value [100]; int dizin_sayısı = 0; while (Serial.available ()> 0) {değer [index_count] = Serial.read (); index_count ++; değer [index_count] = '\ 0'; // Boş dizeyi sonlandır} String str (value); ) (Str.trim; dönüş str; }

/ * * Ad: readWifiSerialMessage * Açıklama: ESP8266 Seri'den veri okumak için kullanılan işlev. * Params: * Döndürür: esp8266'dan gelen yanıt (yanıt varsa) * / String readWifiSerialMessage () {char value [100]; int dizin_sayısı = 0; while (wifiSerial.available ()> 0) {değer [index_count] = wifiSerial.read (); index_count ++; değer [index_count] = '\ 0'; // Boş dizeyi sonlandır} String str (value); ) (Str.trim; dönüş str; }

/ * * Ad: sendToWifi * Açıklama: ESP8266'ya veri göndermek için kullanılan işlev. * Params: komut - gönderilecek veri / komut; zaman aşımı - yanıt için beklenecek süre; debug - Seri pencereye yazdır? (true = yes, false = no) * İade: esp8266'dan gelen yanıt (bir yanıt varsa) * / String sendToWifi (String komutu, const int timeout, boolean debug) {String response = ""; wifiSerial.println (komut); // okuma karakterini esp8266 uzunluğuna gönder int int time = millis (); while ((zaman + zaman aşımı)> millis ()) {while (wifiSerial.available ()) {// esp veri içeriyor, bu nedenle çıktısını seri pencereye görüntüle char c = wifiSerial.read (); // sonraki karakteri oku. cevap + = C; }} if (hata ayıklama) {Serial.println (yanıt); dönüş yanıtı; }

/ * * Ad: sendToUNO * Açıklama: UNO'ya veri göndermek için kullanılan işlev. * Params: komut - gönderilecek veri / komut; zaman aşımı - yanıt için beklenecek süre; debug - Seri pencereye yazdır? (true = yes, false = no) * İade: UNO'dan gelen yanıt (bir yanıt varsa) * / String sendToUno (String komutu, const int timeout, boolean debug) {String response = ""; Serial.println (komut); // okuma karakterini esp8266 uzunluğuna gönder int int time = millis (); while ((zaman + zaman aşımı)> millis ()) {while (Serial.available ()) {// esp verilere sahiptir, bu nedenle çıktısını seri pencereye görüntüler char c = Serial.read (); // sonraki karakteri oku. cevap + = C; }} if (hata ayıklama) {Serial.println (yanıt); dönüş yanıtı; }

Bu kadar! Artık ESP8266 ile nasıl iletişim kuracağınızı öğrendiğinize göre, artık daha fazla Nesnelerin İnterneti projelerini keşfedebilirsiniz. Bu WiFI modülünün gücünü en üst düzeye çıkarın ve bir Maker olun !.
Github Repo'uma revizyon eklemekten çekinmeyin

İlgi̇li̇ Makaleler