Node MCU Nedir Ak kaynak kodlu bir kontrol
Node. MCU Nedir? • Açık kaynak kodlu bir kontrol ünitesidir. Geniş bir kullanım alanı olan ünite; “nesnelerin interneti” dediğimiz alanda kullanılarak birçok sorunun çözülmesini sağlar. • bir mikro çip olan Node. MCU; ESP 8266 türü bir mikro çip setinin üzerinde bulunur. Boyutları bir madeni para kadar olan Node. MCU; içinde bir yazılım bulundurur. Bu yazılım sayesinde de akıllı hale gelmiş olur, yani işlem yapabilir hale gelir. Node. MCU; bir anlamda mikro bir bilgisayar gibidir.
Arduino ile Farkı Nedir? • Node. MCU, Kod yazım şekli Arduino cihazlarda olduğu gibidir. Yani o cihazlardaki yapıya çok benzerdir. Fakat Node. MCU, Arduino cihazlara nazaran daha etkileşimlidir. Node. MCU‘da Arduino'larda olmayan Wi. Fi özeliği vardır. Node. MCU kontrol ünitesi sayesinde kendinize bir uzaktan kumandalı araba, otomatik olarak açılıp kapanan kapılar, perdeler ve pencereler gibi aklınıza gelebilecek birçok şeyi yapabilirsiniz. Akıllı ev sistemleri denilen ve yeni gelişip yayılan bu teknolojilerde de bir Node. MCU kontrol ünitesi yer alıyor. Node. MCU‘lar, sizinle nesne arasındaki veri alışverişini sağlayacak olan bir donanımdır.
Neler Yapılabilir? • Node. MCU Esp 8266 modülü ile neler yapabiliriz; • 1 -Modülümüzü evimizde bulunan kablosuz internet yada akıllı telefonumuzun internetine bağlayarak istediğimiz yerden Node. MCU yu kontrol edebiliriz. • 2 -Node. MCU ya Web Sever kurarak akıllı ev sistemi hazırlayıp evimizdeki cihazları internete bağlı herhangi bir cihazla kontrol edebiliriz. • 3 -Node. MCU ya yükleyeceğimiz arduino programı ile uzaktan kumandalardan bağımsız olarak internetin olduğu her yerden Drone larımızı kontrol edebiliriz.
Node. MCU yapısı
Node. MCU ESP 12 E modülümüzü nasıl Arduino IDE ile programlayacağız? • 1 -Önce Arduino IDE mizi açıyoruz ve Dosya---Tercihler bölümüne giriyoruz burada en altta Additional Board manager URLs in yanındaki kutucuğa http: //arduino. esp 8266. com/stable/package_esp 8266 com_index. json linkini yapıştırıyoruz.
• 2 -Arduino IDE de Araçlar---Kart-Board Manager'a tıklayıp
• Çıkan kutucuğa ESP 8266 yazıp arama yapıyoruz. e insatall deyip kuruyoruz. Daha sonra Arduino IDE yi kapatıp tekrar açıyoruz.
• 4 -Node. MCU ESP 8266 12 E modülümüzü bilgisayarımıza bağlıyoruz. Eğer tanımadıysa USB driverını yada sizdeki cp 2102 ise driver ı internetten indirip kuruyoruz. • Arduino IDE nin Araçlar---port kısmına girip Node. MCU ESP 8266 12 E kartımızın kağlı olduğu COM u seçiyoruz.
• 5 -Daha sonra Arduino IDE den Araçlar----Lartlar bölümünden Node. MCU 1. 0 seçiyoruz.
ESP 8266 Wi. Fi iletişim modları • ESP 8266 Wi. Fi üzerinde 2 modda iletişim kurar. Varolan kablosuz hot spot, Access noktasına telefon ve internete bağlanır gibi bağlanır. Buna “station” mod denir. Station modunda ESP 8266 intenete bağlanır ve diğer cihazlarla iletişime geçer.
ESP 8266 Wi. Fi station mod kod örneği #include <ESP 8266 Wi. Fi. h> const char* ssid = "ESP 8266"; //replace this with your Wi. Fi network name const char* password = "ESP 8266 Test"; //replace this with your Wi. Fi network password void setup() { delay(1000); Serial. begin(115200); Wi. Fi. begin(ssid, password); Serial. println(); Serial. print("Connecting"); while (Wi. Fi. status() != WL_CONNECTED) { delay(500); Serial. print(". "); } Serial. println("success!"); Serial. print("IP Address is: "); Serial. println(Wi. Fi. local. IP()); } void loop() { }
Kodu ESP 8266 modüle yükleyince, serial monitor açın ve and module reset buton a basıp modulu yeniden başlatın. Aşağıdaki gibi bir çıktı görmeniz lazım:
ESP 8266 Wi. Fi Soft Access Point (Soft AP) örneği • ESP 8266 , Wi-Fi access points (AP) olarak kullanılırsa hub gibi davranır. An access point kablolu olarak internete bağlıdır ve bir router ile integre edilmiştir. Bir Access noktası internete kablolu bağlanmışsa «soft Access point» adını alır. • ESP 8266 modulu soft access point (Soft AP) olarak görev yapabilir ve and 5 taneye kadar Wi-Fi client cihaz bağlanabilir.
ESP 8266 Wi. Fi Soft Access Point (Soft AP) kod örneği #include <ESP 8266 Wi. Fi. h> /* Your Wi. Fi Soft Access Point settings */ const char* ssid = "ESP 8266"; //this will be the network name const char* password = "ESP 8266 Test"; //this will be the network password void setup() { delay(1000); Serial. begin(115200); Serial. println(); Serial. print("Configuring Wi. Fi access point. . . "); /* You can remove the password parameter if you want the AP to be open. */ boolean result = Wi. Fi. soft. AP(ssid, password); if(result==true) { IPAddress my. IP = Wi. Fi. soft. APIP(); Serial. println("done!"); Serial. println(""); Serial. print("Wi. Fi network name: "); Serial. println(ssid); Serial. print("Wi. Fi network password: "); Serial. println(password); Serial. print("Host IP Address: "); Serial. println(my. IP); Serial. println(""); } else { Serial. println("error! Something went wrong. . . "); } } void loop() { Serial. printf("Number of connected devices (stations) = %dn", Wi. Fi. soft. APget. Station. Num()); delay(3000); }
Kodu ESP 8266 modüle yükleyince , aşağıdaki gibi bir çıktı görmeniz lazım:
Telefonunuzu açıp açık Wi-Fi bağlantılarını kontrol edin. Password vererel bağlanabilirsiniz ve bağlı olan cihazları aşağıdaki gibi görebilirsiniz.
ESP 8266 ve Arduino kullanarak Wi. Fi Kontrollü LED
#include <ESP 8266 Wi. Fi. h> const char* ssid = "MODI"; const char* password = "8826675619"; int led. Pin = 13; // GPIO 13 ---D 7 of Node. MCU Wi. Fi. Server server(80); void setup() { Serial. begin(115200); delay(10); pin. Mode(led. Pin, OUTPUT); digital. Write(led. Pin, LOW); // Connect to Wi. Fi network Serial. println(); Serial. print("Connecting to "); Serial. println(ssid); Wi. Fi. begin(ssid, password); } while (Wi. Fi. status() != WL_CONNECTED) { delay(500); Serial. print(". "); } Serial. println(""); Serial. println("Wi. Fi connected"); // Start the server. begin(); Serial. println("Server started"); // Print the IP address Serial. print("Use this URL to connect: "); Serial. print("http: //"); Serial. print(Wi. Fi. local. IP()); Serial. println("/");
void loop() { // Check if a client has connected Wi. Fi. Client client = server. available(); if (!client) { return; } // Wait until the client sends some data Serial. println("new client"); while(!client. available()){ delay(1); } // Read the first line of the request String request = client. read. String. Until('r'); Serial. println(request); client. flush(); // Match the request int value = LOW; if (request. index. Of("/LED=ON") != -1) { digital. Write(led. Pin, HIGH); value = HIGH; } if (request. index. Of("/LED=OFF") != -1) { digital. Write(led. Pin, LOW); value = LOW; } // Set led. Pin according to the request //digital. Write(led. Pin, value); // Return the response client. println("HTTP/1. 1 200 OK"); client. println("Content-Type: text/html"); client. println(""); // do not forget this one client. println("<!DOCTYPE HTML>"); client. println("<html>"); client. print("Led is now: "); if(value == HIGH) { client. print("On"); } else { client. print("Off"); } client. println(" "); client. println("<a href="/LED=ON""><button>On </button></a>"); client. println("<a href="/LED=OFF""><button>Off </button></a><br />"); client. println("</html>"); delay(1); Serial. println("Client disonnected"); Serial. println(""); }
Kodu kart ve port seçip yükleyin.
URL koyarak web browser’dan bağlanın.
hotspot üzerinden mobil bağlantı paylaşma • 1. Adım: Telefonunuzun hotspot'unu açın • Telefonunuzun Ayarlar uygulamasını açın. • Ağ ve internet ve sonra Hotspot ve tethering'e dokunun. • Kablosuz hotspot'a dokunun. • Kablosuz hotspot'u açın. • Ad veya şifre gibi bir hotspot ayarını görmek veya değiştirmek için ayara dokunun. Gerekirse ilk olarak Kablosuz hotspot kurulum yap'a dokunun. (SSID : telefonun network adı(genelede Android. AP))
Thing. Speak’e Sıcaklık Yollama • Thing. Speak Sitesinde Hesap Açma: Kayıt olup giriş yaptıktan sonra üstteki Channels menüsünden My Channels seçeneği seçildiğinde karşımıza aşağıdaki gibi bir menü geliyor.
• Bu menüye geldiğinizde New Channel sekmesine tıklayın ve karşımıza gelen menü ile yeni bir kanal açmaya hazırız.
• Gelen sayfada Name yazan yere kanalımızın ismini yazıyoruz. Önemli olan Türkçe karakter kullanmamamız. • Birden çok LM 35 sensörü ile evin tamamının sıcaklığını ölçme ya da sıcaklık haricinde başka veriler de yollamak isterseniz Field 2, Field 3 gibi başka grafikler de oluşturabilirsiniz. Bilgileri girip Save Channel ‘a tıkladığımızda kanalımız oluşturuluyor ve aşağıdaki gibi bir sayfaya yönlendiriliyoruz.
#define ag_ismi "Wi. Fi_Ismi" #define ag_sifresi "Wi. Fi Sifresi" #define IP "184. 106. 153. 149" //thingspeak. com IP adresi float sicaklik; void setup() { Serial. begin(115200); //Seriport'u açıyoruz. Güncellediğimiz //ESP modülünün baud. Rate değeri 115200 olduğu için bizde Seriport'u 115200 şeklinde seçiyoruz Serial. println("AT"); //ESP modülümüz ile bağlantı kurulup kurulmadığını kontrol ediyoruz. delay(3000); //ESP iletişim için 3 saniye bekliyoruz. analog. Reference(INTERNAL); if(Serial. find("OK")){ //esp modülü ile bağlantıyı kurabilmişsek modül "AT" komutuna "OK" komutu ile geri dönüş yapıyor. Serial. println("AT+CWMODE=1"); //esp modülümüzün Wi. Fi modunu STA şekline getiriyoruz. Bu mod ile modülümüz başka ağlara bağlanabilecek. delay(2000); String baglanti. Komutu=String("AT+CWJAP="")+ag_ismi+"", ""+ag_sif resi+"""; Serial. println(baglanti. Komutu); delay(5000); } }
void loop(){ float sicaklik = analog. Read(A 0) / 9. 31; Serial. println(sicaklik); sicaklik_yolla(sicaklik); // dakikada 1 güncellenmesi için 1 dakika bekle delay(60000); } void sicaklik_yolla(float sicaklik){ Serial. println(String("AT+CIPSTART="TCP", "") + IP + "", 80"); //thingspeak sunucusuna bağlanmak için bu kodu kullanıyoruz. //AT+CIPSTART komutu ile sunucuya bağlanmak için sunucudan izin istiyoruz. //TCP burada yapacağımız bağlantı çeşidini gösteriyor. 80 ise bağlanacağımız portu gösteriyor delay(1000); if(Serial. find("Error")){ //sunucuya bağlanamazsak ESP modülü bize "Error" komutu ile dönüyor. Serial. println("AT+CIPSTART Error"); return; } String yollanacakkomut = "GET /update? key=64 T 0 OS 3 R 1 OEAYUML&field 1="; // Burada 64 T 0 OS 3 R 1 OEAYUML yazan kısım bizim API Key den aldığımız Key. Siz buraya kendi keyinizi yazacaksınız. yollanacakkomut += (int(sicaklik)); // Burada ise sıcaklığımızı float değişkenine atayarak yollanacakkomut değişkenine ekliyoruz. yollanacakkomut += "rn"; // ESP modülümüz ile seri iletişim kurarken yazdığımız komutların modüle iletilebilmesi için Enter komutu yani delay(3000); // /r/n komutu kullanmamız gerekiyor. Serial. print("AT+CIPSEND="); //veri yollayacağımız zaman bu komutu kullanıyoruz. Bu komut ile önce kaç tane karakter yollayacağımızı söylememiz gerekiyor. Serial. println(yollanacakkomut. length()+2); //yollanacakkomut değişkeninin kaç karakterden oluştuğunu. length() ile bulup yazırıyoruz. delay(1000); if(Serial. find(">")){ //eğer sunucu iletişim sağlayıp komut uzunluğunu gönderebilmişsek ESP modülü bize ">" işareti ile geri dönüyor. // arduino da ">" işaretini gördüğü anda sıcaklık verisini esp modülü ile thingspeak sunucusuna yolluyor. Serial. print(yollanacakkomut); Serial. print("rn"); } else{ Serial. println("AT+CIPCLOSE"); } }
- Slides: 30