Herkese merhaba Bugün sizlerle yakın zamanda deneyimlemeye başladığım ve kullanmaktan büyük keyif aldığım BambuLab’ın yeni...
Nesnelerin İnterneti için NodeMCU!
Kemal İKİZOĞLUHerkese merhaba,
İnternetin hayatımıza girmesiyle birlikte istediğimiz her şey elimizin altına gelmeye başladı. Merak ettiğimiz bir şeyi gidip yerinde görüyorken şimdi görmeden gerçekleştirebiliyoruz. İstenilen şeyler için araştırmayı dergi, gazete ve kütüphanelerde yapıyorken şimdi her şeyi internette araştırıyoruz. Pazarları, marketleri, mağazaları yürüyerek dolaşırken şimdi yürümeye gerek kalmadan internet sayesinde birkaç işlemle satın alabiliyoruz. Bilim ve Teknolojide yapılan araştırma ve geliştirmelerin hayata aktarılması günümüzde insanlığın teknolojiyle entegrasyonunu en iyi noktaya taşıdı. Şimdi bunu biraz daha ileriye götürmek için yapılan bazı hazırlıklar var. Çevremizde gördüğümüz her bir elektronik cihazı internete bağlayıp bu cihazları kontrol edebilmek için çalışmalar yapılıyor. Çıkan her bir ürün birbiriyle haberleşebilecek altyapıyla donatılıyor. Bugünkü yazım da bunların nasıl olabileceğini anlatan küçük bir cihazı tanıtmakla başlıyor olacak.
Daha önce yayınladığım Arduino yazılarımda sensörlerin kullanımı ve bunların hayatımızı nasıl farklılaştırabileceğini yazmıştım. Beni heyecanlandıran en muhteşem kısmı da sensörleri kullanarak hazırladığınız devrenizi bir wifi modülü kullanarak internete açıp devrenizi dünyanın herhangi bir yerinden internet üzerinden kontrol edebilmektir! Tıpkı karşınızda duran bir robota seslendiğinizde sizi anlaması gibi bir mutluluk yaşatan bir şey bu =) Hemen ESP8266 Arduino wi-fi modülüne sahip olup kurulum yapmaya başladığınızda işlerin önceki gibi kolay gitmediğini fark edeceksiniz. Arduino’da devre elemanlarını kolayca kullanabilirken bu modülün diğerlerinden farklı olduğunu göreceksiniz.
ESP8266 modülü tek başına kullanılamamaktadır. ESP8266’yı kullanabilmeniz için bir Arduino’ya ihtiyacınız bulunmaktadır. Aynı zamanda programlayabilmeniz için önce modülü devreye ayrı bir kart olarak tanıtmanız devamında ise sunucuyu kurup sonrasında yapacağınız uygulamayı yapacağınız işe göre programlamanız gerekmektedir. Sürecin bu kadar uzun ve zahmetli olması ister istemez daha kolay ve basit programlanabilir bir kart arayışına yol açtı.
NodeMCU Nedir?
ESP8266 Opensource Community yani ESP8266 Açık Kaynak Topluluğu tarafından geliştirilmiş düşük ücretli açık kaynaklı Internet Of Things (Nesnelerin İnterneti) platformudur. Resmi sitesinde “Birkaç Lua komut satırıyla IOT ürününüzü prototiplemenize yardımcı olan açık kaynaklı bir ürün yazılımı ve geliştirme kiti” olarak tanımlayan firma kolay bağlantı, basit, ve ucuz olmasıyla kartın daha popüler olmasını sağlamış. Node (düğüm) ve MCU (micro controller unit) sözcüklerinin birleşimiyle oluşmuş olan kartımızı incelemeye devam edelim.
Peki Neden NodeMCU ?
Arduino’da IoT için ekstra wi-fi modülünün satın alınmasının yanında uygulama süreçlerinin daha uzun ve zahmetli olması kullanıcıları daha pratik ürünlere sevk etmiştir. NodeMCU, Arduino gibi açık kaynaklı olması yanında, düşük maliyetli, basit, akıllı, tümleşik ESP8266 wifi modülüne sahip olması ve API yapısını kullanarak interaktif, programlanabilir olması daha çok tercih edilmesine yardımcı olmuştur. NodeMCU üzerinde ESP-12 modülünü kullanılarak tasarlanmıştır. Devrenin wi-fi ağına bağlanması için kullanılan kodlarına bakacak olursak:
//NodeMCU Baglantı Kodu
print(wifi.sta.getip())
--nil
wifi.setmode(wifi.STATION)
wifi.sta.config("SSID","password")
print(wifi.sta.getip())
--192.168.18.110
//Arduino ESP8266 Baglantı Kodu
#define ag_ismi "WifiAdres"
#define ag_sifresi "WifiPass"
void setup()
{
Serial.begin(115200);
Serial.println("AT");
pinMode(13,OUTPUT);
delay(3000);
if(Serial.find("OK")){
Serial.println("AT+CWMODE=1");
delay(2000);
String baglantiKomutu=String("AT+CWJAP=\"")+ag_ismi+"\",\""+ag_sifresi+"\"";
Serial.println(baglantiKomutu);
delay(5000);
}
Serial.print("AT+CIPMUX=1\r\n");
delay(200);
Serial.print("AT+CIPSERVER=1,80\r\n");
delay(1000);
}
iki ürün arasındaki farkı çok daha iyi görebiliyoruz. NodeMCU’nun tanıtım ücreti olarak 5 $ gibi cüzi bir ücret belirlenmiş. Arduino Nano IoT kendi sitelerinde 16€ belirlenmiş ki aradaki farkın ne kadar olduğunu görebiliyoruz.
NodeMCU Pin Yapısı
Arduino Nano yapısına benzer küçük bir geliştirme kartı olan NodeMCU bağlantı pinlerine bir göz atalım.
Kart üzerinde yer alan pin adları çoğunlukla size aşina gelecektir: D0, D1, D2, D3, D4, GND, A0, D5, D6, D7, D8, Tx, Rx, Vin gibi.. “D” ile başlayan pinler Dijital pinlerimiz. “A” ile başlayan tek pinimiz olan A0 analog pinimiz.
Arduino Uno’da kullanılan pinlerin NodeMCU karşılığını yukarıdaki görselde görmektesiniz. Dikkatinizi çeken bir noktayı söylemek isterim: Neden 1 tane A0 Analog pini mevcut? diye hiç düşündünüz mü?
Hatırlarsanız Arduino’da dijital olup da Analog çıktı verebilen PWM pinleri vardı. NodeMCU üzerinde PWM olarak kullanılan pinler de görselde gördüğünüz gibi D1 ile D8 arası olan pinlerdir. Bu kart hazırlanırken daha fazla pin ihtiyacını giderebilmek adına böyle bir çözüm bulunmuş. Böylelikle pin sayısı ihtiyacınızı karşılayabilecek bir düzeye çıkmış oldu.
NodeMCU üzerinde 2 adet LED bulunmaktadır. USB girişi yanında bulunan LED GPIO16 pin ile, diğer LED ise GPIO2 ile kontrol edilmektedir.
Bir kullanıcının yapmış olduğu testler sonrası şu sonuçlara ulaşmış:
NodeMCU üzerinde giriş – çıkış pinlerini test ederken dikkat edilmesi gereken şu sonuçları elde ettik:
digitalWrite GPIOs 6, 7, 8, 11, and ADC (A0) pinleriyle çalışmaz.
digitalRead GPIOs 1, 3, 6, 7, 8, 11, and the ADC (A0) pinleriyle çalışmaz.
analogWrite GPIOs 6, 7, 8, 11, and ADC (A0) pinleriyle çalışmaz. (GPIOs 4, 12, 14, 15 have hardware PWM, and the others are by software)
analogRead sadece ADC (A0) Analog pini ile çalışmaktadır.
https://www.instructables.com/id/NodeMCU-ESP8266-Details-and-Pinout/
6, 7, 8, 11 pinleri yukarıdaki 4 komutu da çalıştırmaz.
NodeMCU Neler Yapılabilir?
Bu geliştirme kartını kullanılmasının asıl amacı üzerinde tümleşik wi-fi modülünüe sahip olmasıdır. Üzerinde dijital ve analog pinlerin olması, Arduino IDE uygulamasını kullanması Arduino’da yapılabilecek her şeyi bu kart ile gerçekleştirebilme imkanı vermektedir. Programlanan kart yerel olarak size büyük yarar sağlamaktadır. Seri Port ekranı, LCD ekranlar ya da bluetooth yardımıyla yakın mesafede mobil cihaza veri aktarımı ile bilgi takibini yapabiliyor olsak da asıl istenen daha özgür bir ortam sunabilmesi.
Yerel ev-ofis ağınız içerisinde kontrol ettiğiniz cihazlarınızı internet ağına çıkartarak her nerede olursanız olun kontrol ve müdahale edebilme imkanına sahip oluyorsunuz. Evden çıkarken kombinizi açık bıraktınız. Yolun yarısında aklınıza geldiğinde ister istemez evde birinin olup olmadığı ya da en kısa sürede kim geçebilir diye düşünmeye başlayacaksınız. “Ya keşke şöyle şu an eve gitmeden kontrol edebileceğim bir şey olsa da boş yere geri dönmesem!” diye kurduğunuz cümleleri somut hale dönüştürebilmenin en zevkli yolu aslında kendi ürününüzü ortaya çıkartmak. Bu kombi yerine kamera sistemleri, kettle, elektrik – pil – powerbank ile çalışan herhangi bağlantıda olan bir cihaz da olabilir. Ağa bağlanmış cihazları uzaktan kontrol edip yaşamı kolaylaştırmanın en basit ve güzel yolu bu geliştirme kartı ile aklınızdan geçenleri ürüne dönüştürebilmek..
Güncelleştirmeler – Firmware
NodeMCU için güncelleştirmeler Github sayfasından yayınlanmaktadır. https://nodemcu.readthedocs.io/en/master/ adresini ziyaret ettiğinizde ihtiyacınız olan güncelleme dosyası ve bilgisayarınıza uygun Flash uygulamasını indirebilirsiniz.
Sizlerle NodeMCU devre kartına kısa bir giriş yaptık. NodeMCU hakkında artık bir bilgiye sahipsiniz. Paylaşacağım yazılarımda yeni projelerle çalışmalar yapmaya devam ediyor olacağız.
Bir sonraki yazımda görüşmek dileğiyle..
Kolay gelsin.
Kaynaklar:
http://www.nodemcu.com/index_en.html#fr_54747361d775ef1a3600000f
https://en.wikipedia.org/wiki/NodeMCU
https://lastminuteengineers.com/esp8266-nodemcu-arduino-tutorial/
https://www.instructables.com/id/NodeMCU-ESP8266-Details-and-Pinout/
https://microcontrollerslab.com/esp8266-pinout-reference-gpio-pins/
Son Yorumlar..