Robotik Kodlama

Robotik Kodlama
Ana Sayfa

İLGİNİZİ ÇEKEBİLECEK LİNKLER :

28 Nisan 2021 Çarşamba

I2C İletişimi İki Arduino Kartı Arasında

 

I2C İletişimi - İki Arduino Kartı Arasında 


Bu eğitimde, Arduino'nun I2C iletişim portunu kullanmayı öğreneceğiz. Farklı Arduino, en az bir I2C bağlantı noktasını destekler. Benzer şekilde, Arduino Uno'nun da bir I2C portu vardır. Arduino'yu bir I2C master ve bir I2C slave cihazı olarak yapılandırmayı öğreneceğiz. Sonunda tanıtım amaçlı olarak iki Arduino kartı arasında i2c iletişimi gerçekleştireceğiz.  

Not: Bu eğitimde Arduino Uno kullanacak olsak da. Ancak kavramlar ve kodlama örnekleri, Arduino Mega, nano, mikro gibi diğer Arduino kartlarında çalışacaktır. 

I2C Giriş 

I2C, entegre devre iletişim protokolü anlamına gelir. Kısa menzilli veri aktarım uygulamaları için 2 kablolu bir seri iletişim protokolüdür. I2C tabanlı sensörler, rakamlı ekranlar ve iletişim modülleri arasında arayüz oluşturmak için gömülü projelerde kullanılan çok popüler bir iletişim protokolüdür 

Her biri ile iletişim kurmak isteyen cihazlar bir I2C veri yolu üzerinden bağlanır. I2C veri yolu, birden çok bağımlı aygıtı ve birden çok ana aygıtı destekler. 

Birçok Sensör, verilerini mikro denetleyicilere aktarmak için bu seri iletişim protokolünü kullanır veya bu protokol aracılığıyla farklı bağımlı devreler ana devrelerle iletişim kurabilir. Yalnızca kısa mesafeli veri aktarımı için geçerlidir.

I2C Pimleri

I2C'nin SPI üzerinden ayırt edici özelliği, iletişimi gerçekleştirmek için yalnızca iki kablo kullanmasıdır. Bir kablo, cihazlar arasında veri aktarımını senkronize eden SCL'dir (seri saat hattı) ve diğer kablo, iletilecek gerçek verileri taşıyan SDA'dır (seri veri). Bu hatlar açık tahliye hatlarıdır, bu da cihazların düşük aktif olması durumunda dirençleri yukarı çekmek için bağlanmaları gerektiği anlamına gelir. Veriyoluna bağlanan her bir bağımlı cihaz, benzersiz bir 8 bitlik adrese sahip olacaktır. 

İki kablo kullanan belirli cihazlar arasındaki iletişim, her bir cihazın kendi benzersiz cihaz kimliğine veya adresine sahip olması ve bu adresin kullanılmasıyla sağlanır; Master, iletişim kurmak için herhangi bir belirli cihazı seçebilir.  

I2C Sistemi

Bu resim, I2C veriyoluna bağlı ana ve bağımlı cihazları gösterir.Bu resimde Arduino ve Raspberry Pi bir master, MPU6050 sensör cihazları ise slave gibi davranmaktadır .

I2C veriyolu, bağımlı ve ana Bağımlı cihazlar gibi birden fazla cihazdan oluşur.

Bağlı Cihazlar

Her bağlı cihaz, veriyolundaki cihazı tanımak için kullanılan benzersiz bir adrese sahiptir. Başka bir deyişle, bağlı adres, ana cihazın veriyolu üzerindeki belirli bir bağlı cihaza bilgi göndermesine yardımcı olur .

Ana cihazlar

Master cihazlar bilgi gönderip alabilir. Slave, bir ustanın gönderdiği her şeye tepki verir. Bu sisteme bilgi gönderirken, bir seferde sadece tek bir cihaz
bilgi gönderebilir .

Kısacası, verileri aktarmak veya farklı sayıda cihazla iletişim kurmak için yalnızca iki kabloya ihtiyacımız var. Hepimizin Arduino'nun sınırlı pinlere sahip olduğunu bildiğimiz gibi, I2C aynı anda birden fazla cihazla bağlantı kurmaya izin verir. Tek eksiklik, bu protokolü uzun mesafeli veri aktarımı için kullanamayacak olmanızdır.

I2C iletişim Veriyolu

Bir kablo (SDA hattı) boyunca seri olarak bit veri aktarımı. Gibi SPI , I2C bit çıkış paylaşılan bir saat sinyali ile bit testine senkronize edilir, eş zamanlı olan
master-slave.

Arduino I2C iletişim Pinleri

I2C iletişimi için, Arduino'nun farklı kartlarında SDA ve SCL pinleri olarak ayrılmış farklı pinler bulunur. Aşağıdaki liste bu pin numaralarını farklı panolarda göstermektedir.

  1. Arduino UNO'da                          Pin A4 = SDA ve Pin A5 = SCL
  2. Arduino Mega2560 ,                   Pin 20 = SDA ve Pin 21 = SCL
  3. Arduino Leonardo'da                  Pin 2 = SDA ve Pin 3 = SCL
  4. İçin Arduino Due                         Pin 20 = SDA ve Pin 21 = SCL, sda1, SCL1

Aşağıdaki şekil, bu yazıda kullanılacak Arduino UNO'daki SDA ve SCL pinlerini göstermektedir.

Arduino I2C Pinleri

Arduino I2C Haberleşme Kütüphanesi 

"Wire" kütüphanesi, Arduino'da I2C iletişimi için kullanılır. Aşağıdakiler bu kütüphanenin önemli işlevleridir.

Wire.begin (adres)

Tel kitaplığı bu komut kullanılarak başlatılır ve I2C veriyoluna ana veya bağlı olarak katılır. Adres isteğe bağlıdır. Bu adres, bağlı cihazlar için yedi bitten oluşur.  Belirtilmemesi halinde; cihaz otobüse Master olarak katılır.

Wire.requestFrom (adres, miktar) 

Bu komut, bir bağlı cihazdan bayt talep etmek için Ana cihaz tarafından kullanılır. Daha sonra bu baytları toplamak için "Available ()" ve "read ()" işlevleri kullanılabilir. "Adres", bir talebin yapılacağı belirli bir bağlı aygıtın adresidir ve "miktar", talep edilecek bayt sayısını belirtir.

Wire.beginTransmission (adres)

Bu komut, verilen adresin slave cihazı ile baytların iletimini başlatır. Daha sonra iletilecek baytlar write () işlevi kullanılarak sıraya alınır ve bu baytlar endTransmission () işlevi kullanılarak iletilir.

Wire.endTransmission ()

Wire.beginTransmission () işlevi kullanılarak başlatılan baytların iletimi bu komut kullanılarak sonlandırılır. 

Bu işlev bir argüman kabul eder. Eğer argüman DOĞRU ise, stop komutu baytların aktarılmasından ve I2C veriyolundan ayrıldıktan sonra gönderilir.

Argüman YANLIŞ ise, baytları ilettikten sonra bir yeniden başlatma komutu gönderir ve veri yolu korunmaz ve başka bir ana aygıtın mesajlar arasında iletilmesini engeller.

Wire.Write ()

Bu komut aynı anda 2 işlevden birini gerçekleştirir. 

  1. Master tarafından bir talep yapıldığında, bu fonksiyon slave cihazdan veri yazar.
  2. BeginTransmission () işlevi ile endTransmission () işlevinin çağrıları arasında, bu komut iletim için baytları kuyruğa almak için kullanılır.  

Wire.read ()

RequestFrom () komutundan sonra, slave cihazdan ana cihaza veya master cihaza slave cihaza aktarılan baytlar; bu komut kullanılarak okunur. 

Wire.available ()

Bu işlev, read () işlevi çağrıldıktan sonra alınabilecek bayt sayısını döndürür. Ana cihazda requestFrom () fonksiyonundan sonra, bağımlı cihazda ise onReceive () fonksiyonunda çağrılır. 

Wire.onReceive (işleyici)

Bu, ana cihazdan aktarım ikincil cihaz tarafından alındığında çağrılan bir işlevi kaydeder. Çağrılan işlev, eylemci tarafından temsil edilir.

İki Arduino Kartı Arasında I2C İletişimi

Bu bölümde, I2C veri yolunu kullanarak iki Arduino kartı arasında veri aktarmak için örnek bir kod göreceğiz. Bir Arduino kartını bir I2C ana cihazı ve diğer bir Arduino kartını bir I2C slave cihazı olarak yapılandıracağız. Master, 0 - 6 arasındaki sayıları sırayla ikincil cihaza aktaracaktır. Slave cihaz tarafından alınan sayı 3'ten küçükse, slave Arduino'nun D13 pinine bağlı bir LED açık kalacaktır, aksi takdirde LED kapalı kalacaktır.

Bu programı oluşturmak için aşağıdaki bileşenlere ihtiyacımız var:

  • İki Arduino (Master ve slave)
  • LED-Master
  • LED köle
  • Teller

Şimdi önce Arduino ana cihaz kodunu tartışalım.

Arduino I2C Master Cihaz Kodu

Burada tel kitaplığı dahil edildi ve değişken x başlatıldı. Bu değişkenin değeri, bağımlı cihaza iletilecektir.

#include <Wire.h>
int x = 0;

Burada wire.begin () işlevi çağrılmıştır. Detay yukarıdaki bölümde bulunabilir. Ayrıca dahili tampon başlatıldı.

void setup() 
{
  Wire.begin(); 
  Serial.begin(9600);
  pinMode(LED,OUTPUT);
}

Burada iletim, bağımlı adres 9 ile başlatılmıştır. Bundan sonra, x'in değeri I2C veriyolu üzerinden iletim için kuyruğa alınmıştır. Wire.write () işlevi I2C veriyolunda 'x'in mevcut değerini iletir. Son olarak, x'in değeri iletildi ve veriyolu, endTranmission () komutu kullanılarak kurtarıldı. 

Wire.beginTransmission(9);
Wire.write(x);              
Wire.endTransmission();

X'in değeri, 200 milyon saniyelik bir gecikmeyle döngüde 1'lik adımlarla artırılır, eğer x değeri 6'dan büyükse, bu değer 0'a sıfırlanır ve tekrar 0'dan artırılır. 

x++;
if (x > 6) 
  {
    x = 0;
  }
delay(200);

Eksiksiz Master Arduino Kodu

#include <Wire.h>
int LED=13;
int x = 0;

void setup() 
{
  Wire.begin(); 
  Serial.begin(9600);
  pinMode(LED,OUTPUT);
}

void loop() 
{
  Wire.beginTransmission(9);
  Wire.write(x);              
  Wire.endTransmission();
 
  x++;
  if (x > 6) 
  {
    x = 0;
  }
  delay(200);
}

Arduino I2C Slave Cihaz Kodu

Öncelikle Arduino'nun D13 pininin sembolik adını tanımlıyoruz. Pin D13, bir ana cihazdan alınan değere bağlı olarak açılıp kapanacaktır. Ayrıca, bir x değişkenini sıfır ile bildirir ve başlatırız. Bu x değişkeni, ana Arduino'dan alınan değeri saklamak için kullanılacaktır. 

#include <Wire.h> // add i2c library 
int LED = 13;
int x = 0;

Kurulum işlevinin içinde, pinMode () işlevini kullanarak LED pini çıkış pini olarak ayarlayın. Ayrıca Arduino'nun slave adresini 9 olarak ayarlayın.

 pinMode(LED, OUTPUT);
 Wire.begin(9); 
 Wire.onReceive(receiveEvent);
 Serial.begin(9600);

Bildirimler ve işlev çağrısı yukarıdaki bölümde tanımlandığı gibi gerçekleştirilmiştir. Burada ReceEvent () işlevi onReceive (işleyici) işlevi çağrılarak kaydedildi.

void receiveEvent(int bytes) 
{
  x = Wire.read();
}

Bu reciveEvent () işlevi burada tanımlanmıştır. Ana cihaz tarafından gönderilecek olan 1'den 6'ya kadar olan değeri okur; ve sonra bu değeri programın kurulum işlevinde bildirilen x değişkeninde saklar.

void loop() 
{
  if (x <= 3) 
  {
    digitalWrite(LED, HIGH);
  }
  else 
  {
    digitalWrite(LED, LOW);
  }
}

Ana aygıttan alınan x değeri 3'ten küçük veya eşitse, pim 13'teki LED AÇIK olacak ve x değeri 3'ten büyükse pim 13'teki LED KAPALI olacak şekilde ayarlanır. 


Eksiksiz Bağlı Cihaz Kodu

#include <Wire.h>
int LED = 13;
int x = 0;

void setup() 
{
  pinMode (LED, OUTPUT);
  Wire.begin(9); 
  Wire.onReceive(receiveEvent);
  Serial.begin(9600);
}

void receiveEvent(int bytes) 
{
  x = Wire.read();
}

void loop() 
{
  if (x <= 3) 
  {
    digitalWrite(LED, HIGH);
  }
  else 
  {
    digitalWrite(LED, LOW);
  }
}

İki Arduino Kartı arasında I2C bağlantısı 

Aşağıdaki şekil, iki Arduino kartı arasındaki I2C bağlantılarını gösterir. Ayrıca, Arduino'nun D13'ü ile bir LED'in bağlantısını gösterir.

  1. Öncelikle, bir ana Arduino üzerindeki A4 ve A5
    pinlerini slave Arduino'daki benzer pinlere bağlayacağız .
  2. Bundan sonra, jumper kabloları kullanarak her iki
    Arduino kartının zeminini ortak hale getireceğiz .
  3. Bağlantıları yaptıktan sonra, hem slave hem de master kodlarını Arduino kartlarına yükleyin.
İki Arduino kartı simülasyonu arasında I2C iletişimi

Program Çıkışı

Master Arduino sürekli olarak I2C veriyolu üzerinden veri iletecek ve veriler 0-6 arasında olacaktır. Slave cihaz tarafından alınan verilere ve yukarıda belirtilen koşullara bağlı olarak pin 13'teki led açılır ve kapanır.

İki Arduino kartı arasında I2C iletişimi

I2C İletişim Uygulamaları ve Fikirler

  • Bu iletişim, monitörlerde renk dengesi, kontrast ve tonu değiştirmek için kullanılır.
  • Akıllı hoparlörde, bu iletişim yöntemi kullanılarak ses seviyesi değiştirilir.
  • Bilgisayarlarda fan hızı gibi teşhis sensörlerinin okunmasında kullanılır.
  • Sistem bileşenlerinde güç kaynağını Açma ve Kapatma.
  • Kullanıcı ayarlarını tutan gerçek zamanlı saatlere ve NVRAM yongalarına erişim.

I2C iletişiminin avantajları ve dezavantajları

Avantajları

Uyarlanabilir çünkü birden fazla ana ve birden çok bağımlı
iletişimini destekler. Yalnızca iki kablo kullanın Çok yönlüdür Farklı bağımlı aygıtların gereksinimlerine kolayca uyarlanabilir
ACK / NACK, her bir kenarın etkili bir şekilde gönderildiğini onaylar. Cihazlar
otobüste tanıtılabilir veya kaldırılabilir.

Dezavantajları

Uzun mesafeli iletişim için geçerli değildir Yalnızca iki kablo kullanın
Düşük hıza sahiptir Dirençlerin kullanımı nedeniyle daha fazla alan gerektirir
Cihaz sayısı arttıkça karmaşıktır.

ANA SAYFAYA DÖN

Bahadır ÖZGEN
Electronic Robotic Coding Research and Development 1975 - ∞
Learn Forever
If you want, let's learn together...
https://roboticcode2020.blogspot.com/
bahadirozgen1975@gmail.com
facebook    robotic.code
instagram    @roboticcode


Sayfalarımı ziyaret ettiğiniz için teşekkür ederim.Bu sitede mevcut olan içerikler kendi oluşturduğum projeler yazı,resim ve videolardan oluşmaktadır.İçerik oluşturmak çok uzun sürdüğü için bazı projelerde yurtdışı kaynaklardan faydalandım.Buradaki amacım ticari değildir.Kaynağı belli olan ve bizim kaynağına ulaşabildiğimiz materyal (yazı, fotoğraf, resim, video v.b.) için ilgili konularda fotoğraflarda logo varsa v.b. not olarak gösterilecektir.Sitemizde yayınlanan tüm içerik, bizim tarafımızdan ve internet üzerinden youtube, facebook ve blog gibi paylaşıma sunulmuş kaynak sitelerden alındığı için, sitemiz yasal yükümlülüğe tabi tutulamaz. Sitemizde telif haklarının size ait olduğu bir içerik varsa ve bunu kaldırmamızı isterseniz, iletişim sayfamızdan bizimle iletişime geçtiğiniz takdirde içerik yayından kaldırılacaktır.Bu konu ve modüller ile uğraşarak, ileride çok güzel makine ve elektronik aletler yapabilirsiniz.

ESP8266 Wifi Modül

ESP8266 Wifi Modul 


Merhaba, nesnelerin interneti ve ESP8266 modülü ile ilgilenen herkesin elinin altında olması gereken pratik ve önemli detayları bu dökümanda sade basit bir dilde anlatmaya çalıştım.Ayrıca sık kullanılan komutları da elimden geldiği kadar göstermeye çalışacağım.Bahadır ÖZGEN








































Bu modülün en çok kullanım alanları:

Akıllı Güç Fişi
Ev otomasyonu
Örgü ağ
Endüstriyel kablosuz kontrol
Bebek monitörü
Ağ Kamerası
Sensör ağları
Giyilebilir elektronik
Kablosuz konuma duyarlı cihazlar
Güvenlik kimliği etiketi
Kablosuz konumlandırma sistemi sinyalleri

Modül AI-THINKER firmasına, komut seti ise ESPRESSIF firmasına aittir.Modül ilk kullanımında 115200 baud hızına set edilmiştir.

ESP-01 Modul Özellikleri  http://www.ai-thinker.com

• 802.11 b / g / n
• Entegre düşük güçlü 32-bit MCU
• Tümleşik 10 bit ADC
• Entegre TCP / IP protokol yığını
• Entegre TR anahtarı, balun, LNA, güç amplifikatörü ve eşleşen ağ
• Entegre PLL, regülatörler ve güç yönetimi birimleri
• Anten çeşitliliğini destekler
• Wi-Fi 2,4 GHz, WPA / WPA2 desteği
• STA / AP / STA + AP çalışma modlarını destekler
• Hem Android hem de iOS cihazlar için Akıllı Bağlantı İşlevini Destekleyin
• Hem Android hem de iOS cihazlar için Akıllı Bağlantı İşlevini Destekleyin
• SDIO 2.0, (H) SPI, UART, I2C, I2S, IRDA, PWMBahadır ÖZGEN




































Eğer kendi kendine güç verildiğinde direk olarak çalışmasını istiyorsanız; modülün flash’ına NODEMCU flash programını yüklemelisiniz. Bu program yüklendiğinde modülü 9600baud hızında kullanabilirsiniz. NODEMCU programını yüklediğinizde modül içerisindeki LUA programına göre otomatik olarak çalışır. Bu durumda AT komut setini kullanamazsınız.

Öncelikle ESP modülünüzün çalıştığını kontrol etmemiz gerekecektir. Bunun için elimizde usb seri çevirici olması gerekir. Bunu satın aldığınız standart çeviriciler ile kullanabilirsiniz.Ayrıca Arduino kartını seri çevirici olarak kullanarak da ESP modülümüzü Arduino üzerinden bilgisayara bağlayıp kontrol edebiliriz.

ESP8266 programlanmasında kullanabileceğiniz bir kaç yöntem ve modül bulunmaktadır.Ben ilk modülü kullanıyorum.Bu modüller elinizde yoksa Arduino kartlarını kullanarak da programlama yapabilirsiniz.Bahadır ÖZGEN












































USB-SERİ çevirici kullanacaksanız çeviricinizin üzerinde 3.3V sisteme uyarlayan jumper olmasına dikkat etmeliyiz.ESP8266 modül 3.3V ile çalışır.












ESP8266 AT Komutları Basit Örnekli Türkçe Açıklamalar





























ESP8266 komutlarını kullanabilmek için Arduino Programında bazı ayarlamalar yapılması gereklidir.Bu ayarların neler olduğunu yazıya dökmeden direk ekran görüntüleri ile açıklayacağım.AT komutlarını kullanabilmek için çok kolay ulaşabileceğimiz ve Arduino programı ile programlama yapacağız. Arduino yazılımının Seri Port Arayüzünü kullanabilmek için aşağıdaki ayarlamaları önce yapmamız ve ayarlama ve programlamaya hazır hale getirmemiz gereklidir.Bahadır ÖZGEN

Arduino IDE Programı olmayanlar için gerekli Arduino IDE Software indirme linki.












Kodların Kullanımı :

Modülü programlamak veya tasarladığımız sistemlere uygun hale getirmek için AT komutları ile modülü ayarlamamız gereklidir.Hangi AT komutuna ihtiyacımız olduğunu belirlememiz gerekiyor.Komutları yazarken komutlarından sonra "+" işaretlerinin aralarına boşuluk bırakmadan yazmamız gerekiyor.Eğer hatalı yazarsak "Error" uyarısını ekranda görürüz.Bahadır ÖZGEN

Bazı komutlar ile modüle sorular sorar (komutun sonunda "=?" işareti bulunur.) gelen modül cevapları ile modülün hangi modda çalıştığını anlayabiliriz.Bu nedenle aynı komutların bir kaç farklı kullanım şekli ve yazılışı olabilir.

AT

AT+RST : ESP8266 modülünü resetleyen komuttur bu komut modülü kullanıma hazırlar.




AT+GMR: Wifi modülünü yazılım versiyonunu öğrenmek için kullanılır.



AT+CIFSR: Modülün yerel IP adresini çıktı olarak verir.Bahadır ÖZGEN



AT+RESTORE: Modülü fabrika ayarlarına ve varsayılana geri döndüren komuttur.




AT+CWLAP: Bu komutu kullandığımızda ortamdaki tüm ağlar taranıp listelenmiş bir şekilde modülümüzün algılayabildiği ağları gösterir.



AT+CWMODE=?: Komutu ile modülümüzü hangi modda kullandığımızı öğrenebiliriz. Modül bize1,2 veya 3 yanıtları ile dönüş yapacaktır.

1 yanıtı gelirse; Station mode (STA) modunda yani başka ağlara bağlanabilecek şekilde kullanıyoruz anlamına gelmektedir.

2 yanıtı gelirse; Access Point mode(AP) olarak kullanılabilmektedir. Bu mod ile modul bir ağ oluşturur.Diğer WiFi cihazları modülümüze bağlanabilir.

3 yanıtı gelirse; Hem Station mode (STA) hem de Access Point mode(AP) olarak çalışmaktadır.

Modülü STA moduna sokmak için AT+CWMODE=1 komutunu vermemiz gerekmektedir. Diğer modlar için de ilgili sayıyı yazmak yeterli olacaktır. Eğer ortamdaki ağlara bağlanmak istiyorsak STA modunda çalıştırmamız gereklidir.



AT+CIPSTATUS: Modülün bağlantı durumunu gösterir. 0 ise modül bir istemci(client) olarak çalışmaktadır, 1 ise sistem bir sunucu(server) olarak çalışmaktadır.Detaylarını aşağıda Espressif firmasının pdf kataloğunda basit bir şekilde bulabilirsiniz.Ayrıca ekstra bir detay olarak; TCP/ IP protokolü ile ilişkili AT komutlarının hepsin CIP ön adı ile başlamaktadır.




AT+CWSAP: Wifi modülü 2. yada 3.moda ayarlandığı zaman bu AT kodu ile gerekli parametler ayarlanır. AT+CWSAP= ssid,pwd,chl,ecn şeklinde kullanılır. "ssid" kurulacak ağın adı, "pwd" şifresi, "chl" kanalı ve "ecn" şifreleme türüdür.
AT+CWSAP="esp_87423","3815test",5,3
AT+CWSAP? => +CWSAP:"esp_87423","3815test",5,3
ecn şifrelemenin açılımı ise aşağıdaki parametreleri kapsar
0 OPEN
2 WPA_PSK
3 WPA2_PSK
4 WPA_WPA2_PSK
Not olarak ise bu komutun sonunda detay 2 parametre mevcut komut daha vardır.Bunun kullanımına burada değinmeyeceğim.En sondaki PDF linklerinden ulaşabilirsiniz.Bahadır ÖZGEN
 

AT+CWJAP: Connect to AP(Access Point)Bir ağa bağlanmak için AT+CWJAP? sorusu sorulur gelen yanıta göre; AT+CWJAP=”wifi-adı”,”wifi-sifresi” şeklinde bir komut kullanıyoruz. Örnek olarak ismi Test2020 şifresi de Aslan123 olan bir ağa bağlanmak için AT+CWJAP=”Test2020”,”Aslan123” yazmamız yeterli olacaktır. Eğer modülümüz WiFi ağına bağlanırsa, OK yanıtını görürüz.Bahadır ÖZGEN

AT+CWQAP: Modülünün bağlı olduğu ağdan çıkış yapmak için kullanılır.

AT+SLEEP: Modülün uyku modlarını seçen komuttur. 0 uyku modunu kapatır.1 hafif uyku modu. 2 ise modem uyku modudur.Bu komut sadece station modda kullanılabilir.

AT+GSLP : Modülün derin uyku modudur.

ESP8266 Chip Güç Yönetimi ve Uyku Modları

Not olarak burada belirttiğim değerler ESP-01 modülüne ait değildir.Fakat değerler birbirine yakındır.ESP-01Modülü ile ilgili detay bilgiye bu linkten AiThinker ESP-01 ulaşabilirsiniz. 

Eğer Modülü pil ile birlikte kullanmak isterseniz; pilin ömrünü uzatmak için güç ledini devre dışı bırakıp, modülün çekilen akımı mikro Amper seviyelerine çekilebilir.

ESP8266EX, gelişmiş güç yönetimi teknolojileriyle tasarlanmıştır ve aşağıdakiler için tasarlanmıştır:
mobil cihazlar, giyilebilir elektronikler ve Nesnelerin İnterneti uygulamaları.
Düşük güç mimarisi aşağıdaki modlarda çalışır:
• Aktif mod: Çip radyo sinyali ile açılır.Çip veri alabilir, iletebilir veya dinleyebilir.

• Modem uyku modu: CPU çalışır.Wi-Fi ve radyo sinyali devre dışı bırakılır.Modem uyku modu, PWM veya PWM'de olduğu gibi CPU'nun çalışmasını gerektiren uygulamalarda kullanılır.I2S uygulamaları, 802.11 standartlarına göre (U-APSD gibi), Wi-Fi Modemi kapatır, gücü optimize etmek için veri iletimi olmayan bir Wi-Fi bağlantısını korurken devre tüketimidir. Örneğin, DTIM3'te, almak için 3 ms'lik bir uyanma döngüsüyle 300 ms'lik bir uykuyu sürdürme Aralıklı AP'nin Beacon paketleri yaklaşık 15 mA akım gerektirir.Bahadır ÖZGEN

• Hafif uyku modu: CPU ve tüm çevre birimleri duraklatılır. Herhangi bir uyandırma olayı (MAC, ana bilgisayar, RTC zamanlayıcı veya harici kesintiler) çipi uyandıracaktır.Hafif uyku modu sırasında, Wi-Fi anahtarı gibi uygulamalarda CPU askıya alınabilir. Olmadan veri iletimi, Wi-Fi Modem devresi kapatılabilir ve güç tasarrufu için CPU askıya alınabilir.802.11 standartlarına (U-APSD) göre tüketim. Örneğin. DTIM3'te Aralıklı AP'nin Beacon paketlerini almak için 3 ms'lik uyanma ile 300 ms yaklaşık 0,9 mA gerektirir akım.

• Derin uyku modu: Yalnızca RTC çalışır durumda ve çipin diğer tüm parçaları güç kapatıldı.Derin uyku modunda, Wi-Fi kapalıdır. Veriler arasında uzun zaman gecikmeleri olan uygulamalar için iletim, ör. Her 100 saniyede bir sıcaklığı algılayan, 300 saniye uyuyan bir sıcaklık sensörü ve AP'ye bağlanmak için uyanır (yaklaşık 0,3 ~ 1 saniye sürer), genel ortalama akım 1'den azdır.mA. 20 μA akım 2,5 V voltajda elde edilir.














ESP8266 chip hakkında detay teknik bilgiler için bu dökümana ESP8266EX bakabilirsiniz. 

Bir çok ESP modül mevcuttur.Kullanım alanları, port sayıları, güç tüketimi ve daha farklı özelliklerine ayrıca başka bir sayfa da değineceğim...












Modül de bu kodları kullanabilmek için Sayın Fırat devecinin oluşturduğu çok pratik bir program daha var.Bu programa da şu linkten ulaşabilirsiniz.Yardımcı Program Link

























Sık kullanılan komutları derli toplu 1 sayfa da görebilmeniz için bu dosyayı indirebilirsiniz ESP8266AT Command Set PDF

Buradaki dosya da ise çok daha detaylı fakat yine en sade 70 sayfa kadar olan ESP8266 AT Instruction Set PDF kitapçığını bulabilirsiniz.

ANA SAYFAYA DÖN

Bahadır ÖZGEN
Electronic Robotic Coding Research and Development 1975 - ∞
Learn Forever
If you want, let's learn together...
https://roboticcode2020.blogspot.com/
bahadirozgen1975@gmail.com
facebook    robotic.code
instagram    @roboticcode


Sayfalarımı ziyaret ettiğiniz için teşekkür ederim.Bu sitede mevcut olan içerikler kendi oluşturduğum projeler yazı,resim ve videolardan oluşmaktadır.İçerik oluşturmak çok uzun sürdüğü için bazı projelerde yurtdışı kaynaklardan faydalandım.Buradaki amacım ticari değildir.Kaynağı belli olan ve bizim kaynağına ulaşabildiğimiz materyal (yazı, fotoğraf, resim, video v.b.) için ilgili konularda fotoğraflarda logo varsa v.b. not olarak gösterilecektir.Sitemizde yayınlanan tüm içerik, bizim tarafımızdan ve internet üzerinden youtube, facebook ve blog gibi paylaşıma sunulmuş kaynak sitelerden alındığı için, sitemiz yasal yükümlülüğe tabi tutulamaz. Sitemizde telif haklarının size ait olduğu bir içerik varsa ve bunu kaldırmamızı isterseniz, iletişim sayfamızdan bizimle iletişime geçtiğiniz takdirde içerik yayından kaldırılacaktır.Bu konu ve modüller ile uğraşarak, ileride çok güzel makine ve elektronik aletler yapabilirsiniz.