Rehber İki Arduino arası kablolu "Serial" haberleşme

İki geliştirme kartı arasında kablolu ve kablosuz bağlantı kurmak için birçok yöntem vardır. Kablolu bağlantılardan en popüleri ise Serial haberleşmedir. Seri haberleşme, aynı zamanda Arduino gibi kartları, bilgisayar aracılığıyla programlarken de kullanılır.

Bu rehberde, internete bağlanamayan ama port seçenekleri bol Arduino Nano ile, Wi-Fi ağına bağlanabilen ama port seçenekleri kısıtlı ESP8266 Node MCU geliştirme kartını birbirine bağlayacağız. Rehberdeki amacımız, basitçe Node MCU kartından Arduino Nano'ya seri port kullanarak veri göndermek. Buna ek olarak, gönderilen veriyi Arduino Nano'da göstermek için LCD ve sayaç kullanacağım.

Bağlantılar oldukça basit,
  • Node MCU'da bulunan Rx portu, Arduino Nano'da bulunan Tx portuna,
  • Arduino Nano'da bulunan Tx portu, Node MCU'da bulunan Rx portuna,
bağlanmalı. Benim gibi I2C kullanarak LCD ekran bağlayacaksanız, I2C modülünün 4 pinlik bağlantısını da yapmanız gerek,
  • VCC, Arduino Nano'da 5V portuna,
  • GND, Arduino Nano'da GND portuna,
  • SDA, Arduino Nano'da A4 portuna,
  • SCL , Arduino Nano'da A5 portuna,
bağlanmalı.

Tüm bağlantılar yapıldığında, buna benzer bir devre çıkacak:

20201113_223845.jpg


Gönderici kart için kod:

C:
#define LED D1           

char mystr[6] = "Hello";

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

void loop() {
  digitalWrite(LED, HIGH);
  Serial.write(mystr,5);
    
  delay(100);
  digitalWrite(LED, LOW);
    
  delay(3000);
}

Alıcı kart için kod:

C:
#include <Wire.h>
#include <LiquidCrystal_I2C.h>

int value = 0;

char mystr[10];

LiquidCrystal_I2C lcd(0x27, 16, 2);

void setup()
{
  lcd.begin();
 
  Serial.begin(115200);
  pinMode(LED_BUILTIN, OUTPUT);
  lcd.backlight();
  lcd.print("Waiting...");
}

void loop()
{
  if (Serial.available() > 0) {
    lcd.clear();
    digitalWrite(LED_BUILTIN, HIGH);
    
    ++value;
    
    Serial.readBytes(mystr,5);
    lcd.print(mystr);
      
    lcd.setCursor(6, 0);
    lcd.print(value);
    
    digitalWrite(LED_BUILTIN, LOW);
  }
}

Gönderici karta, bir de LED ekledim. Bu sayede her seri porttan veri gönderildiğinde, LED yanarak geri bildirim verecek. Arduino Nano koduna ise, gelen veriye ek olarak bir sayaç ekledim. Bu sayede gelen mesajın kaçıncı mesaj olduğunu da bilmiş olacağız.

Son durumda sistem şu şekilde çalışacak:

VideoCapture_20201113-224813.jpg


Seri haberleşme, iletişim yöntemlerinden sadece bir tanesi. Eğer benim gibi farklı özellikte, Wi-Fİ'ye bağlanan ve bağlanamayan iki kartınız varsa, serial haberleşme ve ek bir Arduino ile, internet bazlı uygulamalarınızı daha kullanışlı hale getirebilirsiniz. Özellikle de port sıkıntısı çekiyorsanız.
 
Eki Görüntüle 736886

Ben de küçük bir uyarı yapayım; her geliştirme board'unda olduğu gibi, bunda da replika olayı söz konusu. Bulabiliyorsanız ortadaki versiyondan alın, bulamıyorsanız da en ucuzunu alın. Birkaç ay önce satın aldığımda sağdaki versiyondan geldi, çalışıyor ama üretim kalitesi gerçekten leş.

Bende görseldeki 3 ürün de olmak üzere 10 - 11 farklı geliştirme kartı mevcut, ESP8266 ve ESP 32 olmak üzere.

Bu projede kullandığın ortadaki mesela, bu CP2102 seri kontrolcü kullanıyor. Sağdaki de orijinal aslında, Node MCU V3 olarak geçiyor, CH340 seri kontrolcü kullanıyor. :) İkisinin de çakması var tabii. :)

Bendeki birkaç karttan, sırasıyla soldan sağa:

  • CH340 kontrolcü kullanan, Node MCU V3,
  • ESP32 DevKit C V4,
  • CP2120 kullanan Node MCU,

Ej7iEXFXkAYEUkM.jpg
 
Şu an adını hatırlayamasam da popüler sayılabilecek bir siteden satın almıştım, ürün görselinde CP2102 kullanan sürüm olmasına rağmen çakma olan ve CH340 kullanan sürümden göndermişlerdi. İade edip farklı bir yerden aldığımda da aynı, çakma üründen gönderilmişti. Çakma olanların arasından orijinalini bulmak zor yani, en iyisi en ucuzunu almak🤭.
 

Yeni konular

Geri
Yukarı