Nesnelerin Interneti MQTT NodeMCU Virtuino

     shiftr.io MQTT server kullanarak NodeMCU (ESP8266) ile android tarafta Virtuino kullanarak veri alışverişini gerçekleştirdiğim video 'ya yazının sonunda ulaşabilirsiniz. Video da yazdığım kod şu şekilde


#include <ESP8266WiFi.h>
#include <MQTT.h>
#include <MQTTClient.h>

const char* ssid = ""; // bağlanılanacak Wifi Adı
const char* pwd = ""; // wifi ağının şifresi
WiFiClient net;

const char* broker = ""; // shiftr erişim adresi
char mqttUsername[] = ""; // shiftr kullanıcı adı
char mqttPass[] = ""; // shiftr secret token
MQTTClient client;

void setup() {

Serial.begin(115200);
WiFi.begin(ssid,pwd);
Serial.print("Wifi ağına bağlanılıyor");
pinMode(LED_BUILTIN, OUTPUT);
digitalWrite(LED_BUILTIN, HIGH); // HIGH yazınca led sönük oluyor.
while (WiFi.status() != WL_CONNECTED)
{
  Serial.print(".");
  delay(500);
}
Serial.print(" bağlantı başarılı. \n");
client.begin(broker, net);
char clientID[] = "NodeMCU"; // shiftr de görünmesini istediğimiz isim
while(!client.connect(clientID, mqttUsername, mqttPass))
{
  Serial.print(".");
  delay(500);
}
Serial.print("Shiftr bağlantısı başarılı.\n");

client.subscribe("LEDSTATUS");
client.subscribe("mesaj");

client.onMessage(messageReceived);
}

void loop() {
  // put your main code here, to run repeatedly:
  client.loop();
  delay(10); //<- fixes some issues with wifi stability

  int Temp = random(18,30);
  int Humi = random(25, 55);
  client.publish("Temp",String(Temp));
  client.publish("Humidity",String(Humi));
  client.publish("mesaj","MSGNodeMCU");
 delay(5000);
}

void messageReceived(String &topic, String &payload)
{
  if (topic == "LEDSTATUS")
  {
    int LEDVAL = payload.toInt();
    digitalWrite(LED_BUILTIN, LEDVAL);
  }
  else if (topic == "mesaj")
  {
    String msg = payload;
    Serial.print("[MGS from Virtuino] ");
    Serial.print(msg);
  }
}








Arduino UNO güç özellikleri

    Bu yazımızda Arduino UNO 'nun güç bölümünü inceliyoruz. Bu hemen hemen aynı yapıda olan arduino kartları için benzer özellikler gösterir. 



Yazıda yukardaki görseli kullanacağız. USB B Type ismindeki bağlantı noktasından Arduino 'ya nasıl enerji verebiliriz, seçeneklerimiz nelerdir, sırasıyla bakalım: 

Arduino UNO Bilgisayara Nasıl Bağlanır?



B tipindeki bir USB kablo ile bilgisayara bağlanabilir, kablonun hem bilgisayara bağlanan tarafında hem de arduino karta bağlanan kısmında dikey yönü önemlidir. Karta bağlanan kısmın bir tarafında köşelerin keskin diğer tarafında eğimli olduğuna dikkat edin, kartın üzerindeki giriş de aynı şekildedir, kart ile kablonun uyumlu tarafları karşılıklı gelecek şekilde bağlayabilirsin ters ya da yan takmanız mümkün değildir ancak zorlarsanız da kablonuzu ya da kart üzerindeki konnektörü bozabilirsiniz. Bilgisayara bağladığınız kısımda ise bir tarafta pinlerin olduğu beyaz plastik bir parça vardır, ters takmanız yine mümkün değildir takarken kolayca girmiyorsa zorlamayın ve sadece kablonun oraya nasıl uyumlu şekilde bağlanabileceğine bakarak takın :)

Arduino UNO 'yu Şarj Aletiyle Kullanabilir miyim?

    Evet,  Arduino UNO 'yu ya da USB B tip bağlantı noktasına sahip herhangi bir elektronik cihazı 5V çıkış veren şarj aletlerine yukarıdaki mavi kabloyu kullanarak bağlayabilirsiniz. Herhangi bir sorun olmayacaktır.


Arduino ile hangi adaptörler uyumlu?

    Arduino 'ya güç verebileceğiniz ikinci seçenek 2.11mm 'lik jack girişidir. Bu jack girişi orta pini + kenar pini - olacak şekilde tasarlanmıştır, ve maksimumda tavsiye edilen giriş voltajı 9V 'tur. Minimum voltaj gereksinimi ise 6.7V 'tur.




    Yukarıdaki resimde özelliklerini gördüğünüz adaptör, 9V çıkış vermesi ve 1A akım sağlayabilmesi bakımından oldukça yeterli ve uygun bir adaptördür. Kırmızıyla işaretlediğim kısımda adaptörün orta pininin artı olduğuna dikkat edin. Şebeke voltajının 100V ~ 240V arasında değiştiği ve frekansın 50/60Hz sınırları arasında olduğu tüm ülkelerde ve sistemlerde güvenle kullanabilirsiniz. 9V üzerinde bir adaptör kullanabilir miyim? bence arduino 'yu üzmeyin :)

Arduino' ya ters voltaj verirsek ne olur?

    İlk görselde yer alan Arduino UNO kartında kırmızıyla işaretlenmiş bir diyot mevcut, bu diyotun görevi Arduino karta ters enerji verilmesini engellemek, dolayısıyla bu konuda bir korumaya sahibiz zira yine de ters voltaj vermenizi kesinlikle önermiyoruz

Arduino 'ya 9V luk pil nasıl bağlanır?



    Yukarıda gördüğünüz iki tip kabloyu edinip, birbirine kırmızıyı kırmızıya siyahı siyaha olacak şekilde (siyahla kırmızının birbirine değip kısa devre olmamasına dikkat edin, izole bantla ayrı ayrı bantlamanızı öneririm) bağlayıp Arduino UNO 'ya 2.1m jack girişinden bağlayabilirsiniz.

Arduino 'ya VIN girişinden voltaj verilebilir mi?

    Evet verilebilir, bu pin jack girişinin orta pinine bağlıdır. 2.1mm jack için geçerli olan tüm yöntemler VIN girişi için de geçerlidir, yani minimumda 6.7V maksimumda 9V bağlayabilirsiniz. VIN girişinden 5V vererek kartınızı çalıştıramazsınız. 

Arduino 5V luk adaptörle çalışır mı?

    Arduino UNO 'yu jack girişine 5V 'luk adaptör bağlayarak çalıştıramazsınız. Çünkü jack girişinin + ucu 5V 'luk bir regülatöre bağlıdır, ve üzerinde yaklaşık 1.25V voltaj düşümü yaşanır, ayrıca reverse protection için devrede var olan diyot üzerinde de 0.4 ~ 0.6V gibi bir voltaj düşümü olacağından toplam da 5 + 1,25 + 0,75 gibi kabul edersek ; en az 7 V luk giriş gerektiği söylenebilir. 

    Ancak kart üzerinde bulunan 5V pinine ya da IOREF pinine 5'u bağlayarak kartınızı çalıştırabilirsiniz. Bu pinler jacktan 7v ve üzeri bir gerilimle beslediğiniz durumda size 5v çıkış sağlarlar, jack girişinize bağlı bir kaynak yoksa da 5v yazan pinlerin birinden 5v uygulayarak kartı çalıştırabilirsiniz. Ancak unutmayın sadece 5v, 6 ya da 4 değil :)

Arduino 3.3V çıkışı var mı?

Evet güç pinleri arasında 3.3V yazan pinden 3.3v luk çıkış alabilirsiniz.

Merak ettiğiniz bir şey olursa lütfen yorumlarda sormaktan çekinmeyin, Konuyla alakalı çektiğim videoyu yazının sonunda bulabilirsiniz.

Herkese Kolay Gelsin.



Led Direnç Hesaplama

LED DİRENCİ NASIL HESAPLANIR?    

Elektronik devrelerde ledleri kullanırken çoğu zaman seri bir direnç ile bağlandıkları dikkatinizi çekmiştir. Led devrelerindeki seri direnç nasıl hesaplanır bu yazımıza konu oluyor. Nasıl ki her elektronik cihaz bir çalışma voltajına sahipse ledler de bir çalışma voltajına sahiptir. Minimum ve maksimum voltaj değerlerine ve üzerinden geçebilecek maksimum akım değerine ledlerin bilgi kağıtlarından ulaşmak mümkündür. Ancak her led için bilgi kağıdına ulaşmak biraz zor olabilir, çünkü üzerinde seri numarası, ürün kodu, üretici gibi bilgiler fiziksel olarak yer almamaktadır. Aşağıdaki şekilde 3mm 'lik kırmızı bir led için üzerine düşen voltaj ve içinden geçen akım için bir eğri paylaşıyorum.

Led Voltaj Akım Eğrisi


    Bu eğriye bakarak ledimizin hangi voltaj seviyesinde ne kadar akım çekeceği görülmekte. Aynı zamanda bilgi kağıdında yer alığına göre maksimum forward akımı 20mA olarak belirtilmiş. Bu ledimizin sorunsuzca çalışacağı son noktadır. Bu sebeple led akımının bu değeri aşmaması kritik önem arzeder. Tipik bir hareketle ledimizin üzerinden 10mA geçmesine izin verelim. Eğriye göre 1.8v, bu talebi karşılıyor olacak. Takip eden resimde led devre şeması görülmektedir;

Led devre şeması



    VIN kaynağı yukarıdaki devre için, devreye 5v sağlıyor, devre üzerinde iki tane (direnç ve led) tüketici var, devremizin seri olması sebebiyle kaynak voltajı bu iki tüketici üzerinde toplanmak zorundadır, yani;

VIN = VR + VLED  eşitliğini elde ederiz; bu durumda VR üzerindeki gerilimi hesaplamak için kaynak voltajından led üzerine düşen voltajı (1.8v olduğunu belirlemiştik) çıkartarak ulaşabiliriz;

VR = VIN - VLED => VR = 5 - 1.8 = VR = 3.2V olarak hesaplanmış olur. Bu direnç üzerindeki voltaj değeridir.

Ohm yasası denklemini hatırlarsak => V = I . R 'dir, burdan R 'yi elde etmek için denklemin her iki tarafını I 'ya böler R = V / I  'ya ulaşmış oluruz. Son adımda R yi hesaplamak için değerleri yerine koyalım.

R = 3.2v / 0.010A (10mA = 0.010A) => 320 ohm olarak karşımıza çıkar. Pazarda bu değere yakın 330 ohm 'luk direnç bulunup devrede kullanılabilir.

    Düşük kaynak gerilimleri için hesaplamaya değmeyecek olsa da, kaynak gerilimi yükseldikçe direnç üzerine düşecek voltaj da artacaktır bu durumda direncin güç kaybı hesaplanıp, kullanılacak direncin bunu karşılayıp karşılamadığı kontrol edilmelidir.

    Güç hesaplama için P = I . V formülü kullanılır. P (watt) gücü, I(Amper) akımı, V(volt), piyasada çokça bulunan THT film dirençler 1/4 w (250mW) gücündedir. Yukarıdaki devre için hesaplamak gerekirse 

P = 0.010A * 3.2 'den 32mW değeri elde edilir ki bu da 250mW 'dan küçüktür.

    Bu boyutta bir direnç için giriş voltajını ne kadar arttırabiliriz onu hesaplamamız gerekirse de devre akımımız 10mA, gücümüz maksimumda 250mW olduğuna göre direnç üzerine maksimum düşürebileceğimiz voltaja erişebiliriz, bulduğumuz değere de VLed 'i ekleyerek maksimum kaynak voltajına erişmiş olacağız;

P = I . V =>  V ye ulaşabilmek için denklemin her iki tarafını I ya bölelim;

V = P / I , değerlerimizi yerine koyalım => V = 0,25/0,010 'dan 25V değerine ulaşırız  ki bu da direncimizin üzerine düşürebileceğimiz maksiumum voltaj değeridir. VLed için 1.8V belirlemiştik bunu da bu değere eklediğimizde 25 + 1.8 = 26.8V a kadar 1/4w gücünde film direnç kullanarak bu devreyi sorunsuz çalıştırabiliriz. Giriş voltajı değiştiğinde direncin değerinin de değişeceğini unutmayın ;)  25V'luk bir VR  için  25/0,01 den 2,5K değerinde direnç kullanmak gerekecektir.

    Kaynak voltajının daha yüksek olması gereken devrelerde yine hesaplamaları yapılarak 1/4 lık dirençler seri bağlanarak üzerlerine düşecek voltajlar maksimumda 25 voltu geçmeyecek şekilde seçilerek devre tasarımı yapılabilir.

    Son olarak eğer küçük ledinizin değerlerine ulaşamıyorsanız şöyle bir tavsiye verebilirim, ayrıca bu ledinizin devrenizde hangi parlaklıkta yanacağını seçmenize de olanak sağlayacaktır. Akım gösteren bir güç kaynağına sahipseniz ve güç kaynağınızın çıkış voltajını hassas (0.1V luk hassasiyet yeterli olacaktır) ayarlayabiliyorsanız 1.5 v seviyelerinde ayarlayıp ledi güç kaynağına bağlayın, 0,1 voltluk adımlarla arttırmaya başlayın lediniz bir noktada yanmaya başlayacaktır, arttırmaya devam edin, parlaklık konusunda evet bu iyidir dediğiniz noktadaki akımı ve voltajı kaydedip yukarıdaki hesaplamayı yaparak direncinizi bağladığınızda ledinizin aynı seviyede yandığını göreceksiniz. Ayrıca ledler için maksimum değerlerin olduğunu ve üzerine çıktığınızda ledinizin ısınıp bozulabileceğini unutmayın! Internette farklı kaynaklarda led voltaj seviyelerini bulmanız mümkün ancak burada bahsettiğim method sizin için en iyisi olacağından emin olabilirsiniz. Ben tombul ledimi (10mm) 2.77V 'da 10mA akımla çalıştırdım. 

Led dirrenci hesaplama


Eğer bu da imkanınız dahilinde değilse son tavsiyem direncinizi giriş voltajına göre ayarlamak olacaktır, benim bildiğim hiçbir led 20mA akım seviyesinin altında sorun yaratmaz, dolayısıyla

R = VIN / 0,02 'den hesapladığınız direnci, (güç sınırlarına dikkat edin) güvenle devrede kullanabilirsiniz..

Kafanıza takılan bir şey olursa lütfen yorumlarda sormaktan çekinmeyin!

Konuyla alakalı kanalımda bir video yayınlamıştım dilerseniz onu da izleyebilirsiniz. 



Herkese Kolay Gelsin.


DIY Wifi Çekim Alanını Genişlet | wifi repeater

NodeMCU Wifi Repeater

NodeMCU IoT geliştirme kartını kullanarak bir wifi repeater uygulaması gerçekleştirebilirsiniz. Bu sayede evinizde ya da iş yerinizde wifi sinyalinin zayıfladığı yerlere geliştirme kartını mikro usb uçlu bir telefon şarjına takarak wifi çekim alanınızı sorunsuz bir şekilde genişletebilirsiniz. Pinlerin açıkta olması ve bir şekilde kısadevre olmaması için pinlerin olduğu bölüme pinleri kapatacak uzunluğa sahip sert bir sünger takabilirsiniz. Uğraşmayı seven biriyseniz pleksi glass ya da benzeri bir ürünle bir kutu da tasarlayıp içerisine yerleştirebilrsiniz, bu durumda geliştirme kartının anten kısmının dışarda kalmasına özen gösterin, ayrıca metal kutular kullanmanın da performansını olumsuz yönde etkileyeceğini unutmayın. Aşağıda videoda yapılışını izleyebileceğiniz proje ESP8266 ve ESP8285 ile uyumludur. Keyifli seyirler dilerim.


Türksat Saat Kanalı ve IRIG-B Time Code

Türksat Saat Kanalından Saat Bilgisi Nasıl Alınır? Uyduda kanalları dolaşırken, şu Türksat Saat kanalı hep dikkatimi çekmiştir. Özellikle  S...