<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Mustafa Topal &#8211; Robo90 &#8211; Blog</title>
	<atom:link href="https://blog.robo90.com/yazar/mustafa-topal/feed/" rel="self" type="application/rss+xml" />
	<link>https://blog.robo90.com</link>
	<description>Arduino, 3D Yazıcı, Elektronik, Yazılım ve Teknoloji Hakkında Yüzlerce İçerik!</description>
	<lastBuildDate>Tue, 14 Nov 2023 10:20:27 +0000</lastBuildDate>
	<language>tr</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	

<image>
	<url>https://blog.robo90.com/wp-content/uploads/2023/09/cropped-robo90-blog-favicon-robot-1-32x32.png</url>
	<title>Mustafa Topal &#8211; Robo90 &#8211; Blog</title>
	<link>https://blog.robo90.com</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>ESP-NOW ile RGB LED Kontrolü 🎛️</title>
		<link>https://blog.robo90.com/esp-now-ile-rgb-led-kontrolu/</link>
					<comments>https://blog.robo90.com/esp-now-ile-rgb-led-kontrolu/#respond</comments>
		
		<dc:creator><![CDATA[Mustafa Topal]]></dc:creator>
		<pubDate>Fri, 04 Aug 2023 09:09:43 +0000</pubDate>
				<category><![CDATA[Genel]]></category>
		<category><![CDATA[IoT Projeleri]]></category>
		<guid isPermaLink="false">https://blog.robo90.com/?p=7878</guid>

					<description><![CDATA[<p>Bir önceki yazımızda ESP-NOW protokolünü kullanarak iki adet ESP32 kartı ile tek yönlü iletişim gerçekleştirmiştik. Bu yazımızda da bir önceki yazımızdaki kodumuzu revize ederek bir RGB LED ‘i kontrol edeceğiz. Ancak bu sefer farklı kartların birbirleri ile haberleşmesini istediğimiz için bir adet ESP32 kartı ile bir adet ESP32-CAM kartını haberleştireceğiz. Siz dilerseniz tekrar önceki yazıdaki [...]</p>
<p><a rel="nofollow" href="https://blog.robo90.com/esp-now-ile-rgb-led-kontrolu/">ESP-NOW ile RGB LED Kontrolü 🎛️</a> yazısı ilk önce <a rel="nofollow" href="https://blog.robo90.com">Robo90 - Blog</a> üzerinde ortaya çıktı.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Bir önceki yazımızda ESP-NOW protokolünü kullanarak iki adet ESP32 kartı ile tek yönlü iletişim gerçekleştirmiştik. Bu yazımızda da bir önceki yazımızdaki kodumuzu revize ederek bir RGB LED ‘i kontrol edeceğiz. Ancak bu sefer farklı kartların birbirleri ile haberleşmesini istediğimiz için bir adet ESP32 kartı ile bir adet ESP32-CAM kartını haberleştireceğiz. Siz dilerseniz tekrar önceki yazıdaki gibi iki adet ESP32 geliştirme kartı kullanabilirsiniz.</p>



<p class="wp-block-paragraph">Eğer bu projeyi yapmayı amaçlıyorsanız “ Yeni başlayanlar için ESP-NOW ” adlı blog yazımı incelemenizi tavsiye ederim. Koddaki ESP-NOW protokolüne ait tüm komutların açıklamaları o blog yazımda mevcut.</p>



<figure class="wp-block-embed is-type-wp-embed is-provider-robo-90-blog wp-block-embed-robo-90-blog"><div class="wp-block-embed__wrapper">
<blockquote class="wp-embedded-content" data-secret="J4MilMSikf"><a href="https://blog.robo90.com/yeni-baslayanlar-icin-esp-now/"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f4e1.png" alt="📡" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Yeni başlayanlar için ESP-NOW</a></blockquote><iframe class="wp-embedded-content" sandbox="allow-scripts" security="restricted"  title="&#8220;&#x1f4e1; Yeni başlayanlar için ESP-NOW&#8221; &#8212; Robo90 - Blog" src="https://blog.robo90.com/yeni-baslayanlar-icin-esp-now/embed/#?secret=rwctKEJqdb#?secret=J4MilMSikf" data-secret="J4MilMSikf" width="600" height="338" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe>
</div></figure>



<h2 class="wp-block-heading">1. Adım: İhtiyaç Listesi</h2>



<h3 class="wp-block-heading">İsteğe bağlı ESP kartları</h3>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph"><strong>ESP32-Wroom-32 Wifi ve Bluetooth Geliştirme Kartı:</strong> <a href="https://www.robo90.com/esp32-wroom-32-wifi-ve-bluetooth-gelistirme-karti" target="_blank" rel="noreferrer noopener">https://www.robo90.com/esp32-wroom-32-wifi-ve-bluetooth-gelistirme-karti</a></p>
</blockquote>



<hr class="wp-block-separator has-alpha-channel-opacity is-style-wide"/>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<h3 class="wp-block-heading">Altyazı</h3>



<p class="wp-block-paragraph">Eğer elinizde ESP32-CAM modülünüz yoksa veya satın almak istemiyorsanız bu yazılımların hepsi ESP32 işlemcisine sahip tüm cihazlarda çalışacaktır. ESP32-CAM modülü de adından da anlaşılabileceği gibi ESP32 işlemcisi taşımaktadır. Sadece ESP32-CAM modülünün bacak sayısı daha az olduğu için verici kodunda çıkışını 0 ve 5V yani HIGH ve LOW yapabildiğiniz herhangi bir pini değiştirip ESP32 kartında da aynı yazılımı kullanabilirsiniz. Ancak minimum 2 adet ESP kartı olmalı. </p>
</blockquote>



<hr class="wp-block-separator has-alpha-channel-opacity is-style-wide"/>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph"><strong>ESP32-CAM Wifi Bluetooth Geliştirme Kartı ve OV2640 Kamera Modülü: </strong><a href="https://www.robo90.com/esp32-cam-wifi-bluetooth-gelistirme-karti-ve-ov2640-kamera-modulu" target="_blank" rel="noreferrer noopener">https://www.robo90.com/esp32-cam-wifi-bluetooth-gelistirme-karti-ve-ov2640-kamera-modulu</a></p>
</blockquote>



<h3 class="wp-block-heading">Gerekli Yan Malzemeler</h3>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">10mm RGB LED 4 Bacaklı Ortak Katot: <a href="https://www.robo90.com/10mm-rgb-led-4-bacakli-ortak-katot" target="_blank" rel="noreferrer noopener">https://www.robo90.com/10mm-rgb-led-4-bacakli-ortak-katot</a></p>
</blockquote>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">Mini Breadboard &#8211; 170 Pin &#8211; Yeşil &#8211; Çıkıntısız: <a href="https://www.robo90.com/mini-breadboard-170-pin-yesil-cikintisiz" target="_blank" rel="noreferrer noopener">https://www.robo90.com/mini-breadboard-170-pin-yesil-cikintisiz</a></p>
</blockquote>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">220R Direnç Paketi &#8211; 1/4 W &#8211; 10 Adet: <a href="https://www.robo90.com/220r-direnc-paketi-1-4-w-10-adet" target="_blank" rel="noreferrer noopener">https://www.robo90.com/220r-direnc-paketi-1-4-w-10-adet</a></p>
</blockquote>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">40lı Ayrılabilen Dişi-Erkek Jumper Kablo &#8211; 20cm &#8211; Arduino Uyumlu: <a href="https://www.robo90.com/40li-ayrilabilen-disi-erkek-jumper-kablo-20cm-arduino-uyumlu" target="_blank" rel="noreferrer noopener">https://www.robo90.com/40li-ayrilabilen-disi-erkek-jumper-kablo-20cm-arduino-uyumlu</a></p>
</blockquote>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">6X6 8mm Tach Buton (2 Bacak): <a href="https://www.robo90.com/6x6-8mm-tach-buton-2-bacak" target="_blank" rel="noreferrer noopener">https://www.robo90.com/6&#215;6-8mm-tach-buton-2-bacak</a></p>
</blockquote>



<p class="wp-block-paragraph"></p>



<h2 class="wp-block-heading">2. Adım: Nasıl Kodlarız ?</h2>



<h3 class="wp-block-heading">Verici ( TX ) kodu</h3>



<div id="wp-block-themeisle-blocks-accordion-85cc3432" class="wp-block-themeisle-blocks-accordion exclusive">

<details class="wp-block-themeisle-blocks-accordion-item"><summary class="wp-block-themeisle-blocks-accordion-item__title"><div><strong><em>Kodun Tamamı;</em></strong></div></summary><div class="wp-block-themeisle-blocks-accordion-item__content">

<pre class="wp-block-code"><code>#include &lt;esp_now.h&gt;
#include &lt;WiFi.h&gt;
//kanal belirliyoruz alıcı ve verici aynı kanalda olmalı 
#define CHANNEL 1
#define BUTTON_PIN 21  // GIOP21 pin connected to button
#define BUTTON_PIN_1 19  // GIOP21 pin connected to button
#define BUTTON_PIN_2 18  // GIOP21 pin connected to button
//Alıcının MAC adresini esp_now_peer_info yapısına tanıttığımız kod
esp_now_peer_info_t slave;
//göndermek istediğimiz veri
uint8_t data=0; 
int lastState = LOW;  // the previous state from the input pin
int currentState;     // the current reading from the input pin
int lastState_1 = LOW;  // the previous state from the input pin
int currentState_1;     // the current reading from the input pin
int lastState_2 = LOW;  // the previous state from the input pin
int currentState_2;     // the current reading from the input pin
void setup ()
{
  pinMode(BUTTON_PIN, INPUT_PULLUP);
  pinMode(BUTTON_PIN_1, INPUT_PULLUP);
  pinMode(BUTTON_PIN_2, INPUT_PULLUP);
  Serial.begin(115200);
  WiFi.mode(WIFI_STA);
  esp_now_init();
  esp_now_register_send_cb(OnDataSent);
  ScanForSlave();
  esp_now_add_peer(&amp;slave);
}
void loop(){
  currentState = digitalRead(BUTTON_PIN);
  if (lastState == HIGH &amp;&amp; currentState == LOW)
    esp_now_send(slave.peer_addr, &amp;data, sizeof(data));
  else if (lastState == LOW &amp;&amp; currentState == HIGH)
    Serial.println("The button is released");
  lastState = currentState;
  currentState_1 = digitalRead(BUTTON_PIN_1);
  if (lastState_1 == HIGH &amp;&amp; currentState_1 == LOW){
    data=1;
    esp_now_send(slave.peer_addr, &amp;data, sizeof(data));
  }
  else if (lastState_1 == LOW &amp;&amp; currentState_1 == HIGH){
    Serial.println("The button is released");
    data=0;
  }
  lastState_1 = currentState_1;
  currentState_2 = digitalRead(BUTTON_PIN_2);
  if (lastState_2 == HIGH &amp;&amp; currentState_2 == LOW){
    data=2;
    esp_now_send(slave.peer_addr, &amp;data, sizeof(data));
  }
  else if (lastState_2 == LOW &amp;&amp; currentState_2 == HIGH){
    Serial.println("The button is released");
    data=0;
  }
  lastState_2 = currentState_2;
  
  
}
//CallBack fonksiyonu
void OnDataSent(const uint8_t *mac_addr, esp_now_send_status_t status ) {
  Serial.print("Datayı gönderdim-&gt;");
  Serial.println(data);
}
void ScanForSlave() 
{
  int16_t scanResults = WiFi.scanNetworks(); // Scan only on one channel
  
    for (int i = 0; i &lt; scanResults; ++i) 
    {
      // Print SSID and RSSI for each device found
      String SSID = WiFi.SSID(i);
      String BSSIDstr = WiFi.BSSIDstr(i);
      // Check if the current device starts with `Slave`
      if (SSID.indexOf("RX") == 0) 
      {
        int mac[6];
        if ( 6 == sscanf(BSSIDstr.c_str(), "%x:%x:%x:%x:%x:%x",  &amp;mac[0], &amp;mac[1], &amp;mac[2], &amp;mac[3], &amp;mac[4], &amp;mac[5] ) ) {
          for (int ii = 0; ii &lt; 6; ++ii ) {
            slave.peer_addr[ii] = (uint8_t) mac[ii];
          }
        }
        slave.channel = CHANNEL; // pick a channel
        slave.encrypt = 0; // no encryption
        break;
      }
    }
}</code></pre>

</div></details>

</div>



<p class="wp-block-paragraph"></p>



<p class="wp-block-paragraph">Gördüğünüz gibi bir önceki yazımızdaki tüm ESP-NOW komutlarını bu yazımızda da kullandık. Farklı olarak “ <em>#define BUTTON_PIN 21 </em>” ile butonlarımızı tanımladık. Sonrasında “ <em>lastState </em>” ve “ <em>currentState </em>” gibi değişlenlerle butonlara bastığımız anı ve çektiğimiz anı kaydetmek için tanımladık. Setup kısmında ise “ <em>pinMode(BUTTON_PIN, INPUT_PULLUP); </em>” komutu sayesinde BUTTON_PIN pinini giriş olarak belirledik ve PULL_UP yaptık. Bu sayede butonumuza dışarıdan bir direnç yardımıyla pull up yapmamıza gerek kalmadı.</p>



<p class="wp-block-paragraph">Sonrasında loop kısmında “ currentState = digitalRead(BUTTON_PIN); ” komutu ile currentState değişkenimizi BUTTON_PIN pinimize yani IO21 numaralı pinimize eşitledik. Diğer butonlar için de aynı işlemi yaptık.</p>



<pre class="wp-block-code"><code> currentState = digitalRead(BUTTON_PIN);
  if (lastState == HIGH &amp;&amp; currentState == LOW)
    esp_now_send(slave.peer_addr, &amp;data, sizeof(data));
  else if (lastState == LOW &amp;&amp; currentState == HIGH)
    Serial.println("The button is released");
  lastState = currentState;
</code></pre>



<p class="wp-block-paragraph"></p>



<p class="wp-block-paragraph">Kodumuzun yukarıdaki kısmında ise eğer BUTTON_PIN yani IO21 numaraya bağlı butonumuza basılırsa “ <em>esp_now_send(slave.peer_addr, &amp;data, sizeof(data)); </em>” komutumuzun çalışması gerektiğini kodladık. Bir önceki blog yazımızdan hatırlarsak bu kod “ <em>slave.peer_addr</em> ” MAC adresine sahip alıcı cihazımıza “ <em>&amp;data, sizeof(data)</em> ” komutları ile <em>data </em>verimizi ve datamızın boyutunu gönderir. Diğer buton kodlamalarında ise data verisini “ <em>data=1;</em> ” kodu sayesinde bir sayısına eşitleriz. Bu değer her buton için farklıdır. Bu sayede alıcı cihaza hangi butona basıldıysa onun numarasını gönderebiliriz ve ona göre RGB LED’ imizi kontrol edebiliriz.</p>



<p class="wp-block-paragraph">Sonradan “ <em>else if</em> ” komutu ile butondan parmağımızı çektiğimizi algılarız ve tekrar “ <em>data “</em> değişkenimizi sıfıra eşitleriz. Bu sayede herhangi bir karışıklık olmasının önüne geçeriz.</p>



<p class="wp-block-paragraph">Verici kodumuz bu kadardı. Şimdi alıcı kodumuzu inceleyelim.</p>



<h3 class="wp-block-heading">Alıcı ( RX ) kodu</h3>



<div id="wp-block-themeisle-blocks-accordion-953c80ff" class="wp-block-themeisle-blocks-accordion exclusive">

<details class="wp-block-themeisle-blocks-accordion-item"><summary class="wp-block-themeisle-blocks-accordion-item__title"><div><strong><em>Kodun tamamı:</em></strong></div></summary><div class="wp-block-themeisle-blocks-accordion-item__content">

<pre class="wp-block-code"><code>#include &lt;esp_now.h&gt;
#include &lt;WiFi.h&gt;
#define CHANNEL 1 
#define LED_PIN 12   
#define LED_PIN_1 13
#define LED_PIN_2 15    
int data_1;
void setup() {
  Serial.begin(115200);
  WiFi.mode(WIFI_AP);
  WiFi.softAP("RX_1","RX_1_Password",CHANNEL, 0);
  esp_now_init();
  esp_now_register_recv_cb(OnDataRecv);
  pinMode(LED_PIN, OUTPUT);
  pinMode(LED_PIN_1, OUTPUT);
  pinMode(LED_PIN_2, OUTPUT);
}
void loop() {
  if(data_1==0){
    digitalWrite(LED_PIN,HIGH);
    delay(1000);
    digitalWrite(LED_PIN,LOW);
  }
    digitalWrite(LED_PIN,HIGH);
  if(data_1==1){
    digitalWrite(LED_PIN_1,HIGH);
    delay(1000);
    digitalWrite(LED_PIN_1,LOW);
  }
  if(data_1==2){
    digitalWrite(LED_PIN_2,HIGH);
    delay(1000);
    digitalWrite(LED_PIN_2,LOW);
  }
}
void OnDataRecv(const uint8_t *mac_addr, const uint8_t *data, int data_len){
  data_1=*data;
  Serial.print(data_1);
}</code></pre>

</div></details>

</div>



<p class="wp-block-paragraph"></p>



<p class="wp-block-paragraph">Alıcı kodumuzda da bu sefer RGB LED pinlerinin ESP kartımızın hangi pinleri ile kontrol edeceğimizi tanımladık. Sonrasında ise tekrar data_1 adlı bir değişken oluşturduk. Bunu neden yaptığıma değineceğim.</p>



<p class="wp-block-paragraph">Setup kısmında ise LED pinlerimizin pin durumlarını çıkış olarak ayarladık. Sonrasında önceki yazımızda bahsettiğimiz ESP-NOW komutlarımızı çalıştırdık.</p>



<p class="wp-block-paragraph">OnDataRecv fonksiyonuna bakacak olursak da önceki blog yazısından da hatırlayacağımız gibi <em>data </em>değişkeni bize geliyordu. Bu değişkeni ise bir arttırıp seri monitöre yazdırıyorduk. Şimdi ise bu değişkenden gelen verileri kontrol ederek RGB LED yakıp söndüreceğimiz için bu değişkeni kendi blog satırından loop satırına almamız gerekir. Ancak değişken sadece OnDataRecv fonksiyonu içerisinde tanımlanmıştır. Bunun önüne geçmek için kütüphaneleri de tanımladığımız tüm fonksiyonların dışındaki alana bir “ <em>data_1</em> ” değişkeni tanımlayıp data değişkenini bu değişkene eşitledim. Bu sayede gelen verileri diğer tüm fonksiyonlarda kullanabileceğim. Sonrasında da “ <em>Serial.print(data_1);</em> ” komutu ile alıcı cihazımıza gelen verileri seri monitöre yazdıralım.</p>



<p class="wp-block-paragraph">Loop kısmında ise daha önceden oluşturduğumuz data_1 değişkenini kullanaraka if komutları oluşturduk. Hatırlarsanız verici kısmında butonlara basıldığında sırasıyla 0, 1 ve 2 komutları alıcı cihazımıza geliyordu. Bu verileri kullanarak eğer data_1 değişkeni 1 sayısına eşitse RGB LED’in kırmızı bacağını kontrol et, eğer data_1 değişkeni 0 a eşitse mavi LED ‘i kontrol et gibi if komutları yazabiliriz.</p>



<p class="wp-block-paragraph">Şimdi ise kodlarımızı sırasıyla alıcı ve verici cihazlarımıza yüklemeniz gerekmekte. Eğer daha önce ESP32 veya ESP32-CAM modüllerine kod yüklemediyseniz ve nasıl yükleneceğini bilmiyorsanz sırasıyla aşağıdaki blog yazılarımı da inceleyebilirsiniz. Bu yazımda kodun nasıl yükleneceğine değinmeyeceğim.</p>



<figure class="wp-block-embed is-type-wp-embed is-provider-robo-90-blog wp-block-embed-robo-90-blog"><div class="wp-block-embed__wrapper">
<blockquote class="wp-embedded-content" data-secret="ouDuOFxs1P"><a href="https://blog.robo90.com/%f0%9f%a7%91%f0%9f%92%bb-esp32-ye-program-nasil-yazilir-nelere-dikkat-etmemiz-gerekir/"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f9d1-200d-1f4bb.png" alt="🧑‍💻" class="wp-smiley" style="height: 1em; max-height: 1em;" /> ESP32 &#8216;ye Program Nasıl Yazılır?</a></blockquote><iframe class="wp-embedded-content" sandbox="allow-scripts" security="restricted"  title="&#8220;&#x1f9d1;&#x200d;&#x1f4bb; ESP32 &#8216;ye Program Nasıl Yazılır?&#8221; &#8212; Robo90 - Blog" src="https://blog.robo90.com/%f0%9f%a7%91%f0%9f%92%bb-esp32-ye-program-nasil-yazilir-nelere-dikkat-etmemiz-gerekir/embed/#?secret=JFI6AisTlY#?secret=ouDuOFxs1P" data-secret="ouDuOFxs1P" width="600" height="338" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe>
</div><figcaption class="wp-element-caption">ESP32 modülüne kod atmak için</figcaption></figure>



<figure class="wp-block-embed is-type-wp-embed is-provider-robo-90-blog wp-block-embed-robo-90-blog"><div class="wp-block-embed__wrapper">
<blockquote class="wp-embedded-content" data-secret="tMiPM1aXHj"><a href="https://blog.robo90.com/esp32-cam-ile-yemekleriniz-yanmasin/">ESP32-CAM ile Yemekleriniz Yanmasın <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f958.png" alt="🥘" class="wp-smiley" style="height: 1em; max-height: 1em;" /></a></blockquote><iframe class="wp-embedded-content" sandbox="allow-scripts" security="restricted"  title="&#8220;ESP32-CAM ile Yemekleriniz Yanmasın &#x1f958;&#8221; &#8212; Robo90 - Blog" src="https://blog.robo90.com/esp32-cam-ile-yemekleriniz-yanmasin/embed/#?secret=C5RjpAqtCZ#?secret=tMiPM1aXHj" data-secret="tMiPM1aXHj" width="600" height="338" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe>
</div><figcaption class="wp-element-caption">ESP32-CAM modülüne kod atmak için. </figcaption></figure>



<h2 class="wp-block-heading">Donanım Kısmı ve Blog Şeması</h2>



<div id="wp-block-themeisle-blocks-progress-bar-f0ef2c03" class="wp-block-themeisle-blocks-progress-bar" data-percent="50" data-duration="2"><div class="wp-block-themeisle-blocks-progress-bar__area"><div class="wp-block-themeisle-blocks-progress-bar__area__title"><span>Skill</span></div><div class="wp-block-themeisle-blocks-progress-bar__area__bar"></div><div class="wp-block-themeisle-blocks-progress-bar__progress wp-block-themeisle-blocks-progress-bar__number">50%</div></div></div>



<p class="wp-block-paragraph">Eğer bu kısma kadar geldiyseniz harika bir iş çıkardınız. Şimdi devre şemamızı sırasıyla alıcı ve verici cihazlarımız için inceleyelim.</p>



<h3 class="wp-block-heading">Verici Devre Şeması</h3>


<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><img fetchpriority="high" decoding="async" src="https://blog.robo90.com/wp-content/uploads/2023/08/TX-Device-Circuit-Diagram.jpg" alt="ESP32 geliştirme kartı ve breadboarda bağlı butonlar arasındaki bağlantıyı gösteren şema fotoğrafı. " class="wp-image-7879" width="675" height="361" title="ESP-NOW ile RGB LED Kontrolü &#x1f39b; 1" srcset="https://blog.robo90.com/wp-content/uploads/2023/08/TX-Device-Circuit-Diagram.jpg 747w, https://blog.robo90.com/wp-content/uploads/2023/08/TX-Device-Circuit-Diagram-300x160.jpg 300w, https://blog.robo90.com/wp-content/uploads/2023/08/TX-Device-Circuit-Diagram-150x80.jpg 150w, https://blog.robo90.com/wp-content/uploads/2023/08/TX-Device-Circuit-Diagram-450x240.jpg 450w" sizes="(max-width: 675px) 100vw, 675px" /><figcaption class="wp-element-caption">Fotoğraf 1.0</figcaption></figure>
</div>


<p class="wp-block-paragraph">Gördüğünüz gibi yukarıdan aşağıya doğru sırasıyla D21, D19, D18 pinlerini butonlara bağladık. Sonrasında butonların diğer bacaklarını da ESP32 kartımızın GND bacağına bağladık. Bu sayede butona basğtığımızda seçtiğimiz pinler GND ‘ye çekilerek butona basıldığını anlayacağız. Şimdi Alıcı cihazımızın devre şemasını inceleyelim. ( <strong>Fotoğraf 1.0</strong> )</p>



<p class="wp-block-paragraph"></p>



<h3 class="wp-block-heading">Alıcı Devre Şeması</h3>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img decoding="async" width="889" height="452" src="https://blog.robo90.com/wp-content/uploads/2023/08/ESP32-CAM-RX-device-circuit-diagram.jpg" alt="ESP-NOW ile RGB LED Kontrolü &#x1f39b; - Robo90 - Blog 1" class="wp-image-7880" title="ESP-NOW ile RGB LED Kontrolü &#x1f39b; 2" srcset="https://blog.robo90.com/wp-content/uploads/2023/08/ESP32-CAM-RX-device-circuit-diagram.jpg 889w, https://blog.robo90.com/wp-content/uploads/2023/08/ESP32-CAM-RX-device-circuit-diagram-300x153.jpg 300w, https://blog.robo90.com/wp-content/uploads/2023/08/ESP32-CAM-RX-device-circuit-diagram-768x390.jpg 768w, https://blog.robo90.com/wp-content/uploads/2023/08/ESP32-CAM-RX-device-circuit-diagram-150x76.jpg 150w, https://blog.robo90.com/wp-content/uploads/2023/08/ESP32-CAM-RX-device-circuit-diagram-450x229.jpg 450w" sizes="(max-width: 889px) 100vw, 889px" /><figcaption class="wp-element-caption">Fotoğraf 1.1</figcaption></figure>
</div>


<p class="wp-block-paragraph">Gördüğünüz gibi sırasıyla RGB LED’imizin pinlerini ESP32-CAM modülünün IO12, IO13, IO15 numaralı pin bacaklarına bağladık. RGB LED imiz ortak katot yapısına sahip olduğu için bir direnç yardımıyla ESP32-CAM modülümüzün GND bacağına bağladık. Bu sayede seçtiğimiz pinlerden herhangi birsini HIGH yaparsak ( yani 0V’dan 5V ) RGB LED in kırmızı mavi ve yeşil renklerinden birisi yanacaktır. Alıcı cihazımızın devre şeması da bu kadardı. Şimdi isterseniz projemizi test kısmına geçelim. ( <strong>Fotoğraf 1.1</strong> )</p>



<h2 class="wp-block-heading">Test Kısmı</h2>



<p class="wp-block-paragraph">Şimdi iki cihazımız da ayrı ayrı bilgisayarıma bağlı ve ayrı Arduino IDE programında açıklar. Bu sayede hangi verinin nereye nasıl gittiğini görebileceğim.</p>


<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><img decoding="async" src="https://blog.robo90.com/wp-content/uploads/2023/08/BLUE-LED-ON-WORK-2.jpg" alt="ESP32 cihazına bağlı butonlardan birisine bastığımda ESP32-CAM cihazına bağlı RGB LED &#039;in mavi ışığı yanıyor. " class="wp-image-7887" width="779" height="779" title="ESP-NOW ile RGB LED Kontrolü &#x1f39b; 3" srcset="https://blog.robo90.com/wp-content/uploads/2023/08/BLUE-LED-ON-WORK-2.jpg 735w, https://blog.robo90.com/wp-content/uploads/2023/08/BLUE-LED-ON-WORK-2-300x300.jpg 300w, https://blog.robo90.com/wp-content/uploads/2023/08/BLUE-LED-ON-WORK-2-150x150.jpg 150w, https://blog.robo90.com/wp-content/uploads/2023/08/BLUE-LED-ON-WORK-2-450x450.jpg 450w" sizes="(max-width: 779px) 100vw, 779px" /><figcaption class="wp-element-caption">Fotoğraf 1.2</figcaption></figure>
</div>


<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="268" src="https://blog.robo90.com/wp-content/uploads/2023/08/Arduino-IDE-ESP-NOW-Serial-Monitor-2-1024x268.jpg" alt="ESP32 cihazına bağlı olan butona bastığımda Arduino IDE programında basıldığı ve 0 datasını gönderdiği yazıyor. Alıcı cihazına bağlı Arduino IDE programında ise 0 datasının geldiği görülüyor. " class="wp-image-7888" title="ESP-NOW ile RGB LED Kontrolü &#x1f39b; 4" srcset="https://blog.robo90.com/wp-content/uploads/2023/08/Arduino-IDE-ESP-NOW-Serial-Monitor-2-1024x268.jpg 1024w, https://blog.robo90.com/wp-content/uploads/2023/08/Arduino-IDE-ESP-NOW-Serial-Monitor-2-300x79.jpg 300w, https://blog.robo90.com/wp-content/uploads/2023/08/Arduino-IDE-ESP-NOW-Serial-Monitor-2-768x201.jpg 768w, https://blog.robo90.com/wp-content/uploads/2023/08/Arduino-IDE-ESP-NOW-Serial-Monitor-2-150x39.jpg 150w, https://blog.robo90.com/wp-content/uploads/2023/08/Arduino-IDE-ESP-NOW-Serial-Monitor-2-450x118.jpg 450w, https://blog.robo90.com/wp-content/uploads/2023/08/Arduino-IDE-ESP-NOW-Serial-Monitor-2.jpg 1049w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">Ve evet ! İlk butona bastığım anda mavi LED’imin yandığını görebiliyorum. (<strong> Fotoğraf 1.2 </strong>) Şimdi sırasıyla diğer butonlara basarak diğer LED&#8217;leri kontrol edelim. Yeşil ledi kontrol etmek için ortadaki butona bastığımda; ( <strong>Fotoğraf 1.3</strong> )                     </p>



<figure class="wp-block-image size-full is-resized"><img loading="lazy" decoding="async" src="https://blog.robo90.com/wp-content/uploads/2023/08/GREEN-LED-ON-WORK.jpg" alt="ESP32 cihazına bağlı butonlardan birisine bastığımda ESP32-CAM cihazına bağlı RGB LED &#039;in yeşil ışığı yanıyor. " class="wp-image-7890" width="778" height="780" title="ESP-NOW ile RGB LED Kontrolü &#x1f39b; 5" srcset="https://blog.robo90.com/wp-content/uploads/2023/08/GREEN-LED-ON-WORK.jpg 735w, https://blog.robo90.com/wp-content/uploads/2023/08/GREEN-LED-ON-WORK-300x300.jpg 300w, https://blog.robo90.com/wp-content/uploads/2023/08/GREEN-LED-ON-WORK-150x150.jpg 150w, https://blog.robo90.com/wp-content/uploads/2023/08/GREEN-LED-ON-WORK-450x451.jpg 450w" sizes="(max-width: 778px) 100vw, 778px" /><figcaption class="wp-element-caption">Fotoğraf 1.3</figcaption></figure>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="287" src="https://blog.robo90.com/wp-content/uploads/2023/08/Arduino-IDE-ESP-NOW-Serial-Monitor-Green-LED-1024x287.jpg" alt="ESP32 cihazına bağlı olan butona bastığımda Arduino IDE programında basıldığı ve 1 datasını gönderdiği yazıyor. Alıcı cihazına bağlı Arduino IDE programında ise 1 datasının geldiği görülüyor. " class="wp-image-7891" title="ESP-NOW ile RGB LED Kontrolü &#x1f39b; 6" srcset="https://blog.robo90.com/wp-content/uploads/2023/08/Arduino-IDE-ESP-NOW-Serial-Monitor-Green-LED-1024x287.jpg 1024w, https://blog.robo90.com/wp-content/uploads/2023/08/Arduino-IDE-ESP-NOW-Serial-Monitor-Green-LED-300x84.jpg 300w, https://blog.robo90.com/wp-content/uploads/2023/08/Arduino-IDE-ESP-NOW-Serial-Monitor-Green-LED-768x215.jpg 768w, https://blog.robo90.com/wp-content/uploads/2023/08/Arduino-IDE-ESP-NOW-Serial-Monitor-Green-LED-150x42.jpg 150w, https://blog.robo90.com/wp-content/uploads/2023/08/Arduino-IDE-ESP-NOW-Serial-Monitor-Green-LED-450x126.jpg 450w, https://blog.robo90.com/wp-content/uploads/2023/08/Arduino-IDE-ESP-NOW-Serial-Monitor-Green-LED.jpg 1198w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">Fotoğraf 1.4</figcaption></figure>



<p class="wp-block-paragraph">Gördüğünüz gibi ortadaki butona basınca yeşil RGB LED&#8217;i yanıyor ve verici seri monitöründe 1 datasını gönderdiğini gösteriyor. ( <strong>Fotoğraf 1.3- 1.4</strong> ) Alıcı monitöründe ise 1 datasının geldiğini görebiliyoruz. Şimdi aynı durumu kırmızı LED için de inceleyelim. </p>



<figure class="wp-block-image size-full is-resized"><img loading="lazy" decoding="async" src="https://blog.robo90.com/wp-content/uploads/2023/08/RED-LED-ON-WORK.jpg" alt="ESP32 cihazına bağlı butonlardan birisine bastığımda ESP32-CAM cihazına bağlı RGB LED &#039;in kırmızı ışığı yanıyor. " class="wp-image-7892" width="777" height="778" title="ESP-NOW ile RGB LED Kontrolü &#x1f39b; 7" srcset="https://blog.robo90.com/wp-content/uploads/2023/08/RED-LED-ON-WORK.jpg 738w, https://blog.robo90.com/wp-content/uploads/2023/08/RED-LED-ON-WORK-300x300.jpg 300w, https://blog.robo90.com/wp-content/uploads/2023/08/RED-LED-ON-WORK-150x150.jpg 150w, https://blog.robo90.com/wp-content/uploads/2023/08/RED-LED-ON-WORK-450x451.jpg 450w" sizes="(max-width: 777px) 100vw, 777px" /><figcaption class="wp-element-caption">Fotoğraf 1.5</figcaption></figure>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="286" src="https://blog.robo90.com/wp-content/uploads/2023/08/Arduino-IDE-ESP-NOW-Serial-Monitor-Red-LED-1024x286.jpg" alt="ESP32 cihazına bağlı olan butona bastığımda Arduino IDE programında basıldığı ve 2 datasını gönderdiği yazıyor. Alıcı cihazına bağlı Arduino IDE programında ise 2 datasının geldiği görülüyor. " class="wp-image-7893" title="ESP-NOW ile RGB LED Kontrolü &#x1f39b; 8" srcset="https://blog.robo90.com/wp-content/uploads/2023/08/Arduino-IDE-ESP-NOW-Serial-Monitor-Red-LED-1024x286.jpg 1024w, https://blog.robo90.com/wp-content/uploads/2023/08/Arduino-IDE-ESP-NOW-Serial-Monitor-Red-LED-300x84.jpg 300w, https://blog.robo90.com/wp-content/uploads/2023/08/Arduino-IDE-ESP-NOW-Serial-Monitor-Red-LED-768x215.jpg 768w, https://blog.robo90.com/wp-content/uploads/2023/08/Arduino-IDE-ESP-NOW-Serial-Monitor-Red-LED-150x42.jpg 150w, https://blog.robo90.com/wp-content/uploads/2023/08/Arduino-IDE-ESP-NOW-Serial-Monitor-Red-LED-450x126.jpg 450w, https://blog.robo90.com/wp-content/uploads/2023/08/Arduino-IDE-ESP-NOW-Serial-Monitor-Red-LED.jpg 1059w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">Fotoğraf 1.6</figcaption></figure>



<p class="wp-block-paragraph">Ve evet ! Gördüğünüz gibi butona bastığım anda 2 datası verici cihazdan alıcı cihaza gönderildi ve alıcı cihazın da seri monitöründe 2 datası göründü. ( <strong>Fotoğraf 1.5</strong>&#8211;<strong> 1.6</strong> ) Fotoğrafa bacakak olursak da kırmızı ışığın yandığını gözlemleyebiliriz. </p>



<p class="wp-block-paragraph">Bu projemiz bu kadardı. İki adet ESP32 cihazını kablosuz haberleştirerek yapabileceklerinizi bir düşünsenize. Ne kadar fazla. Bunun gibi daha fazla projeyi görmek istiyorsanız aşağıdaki bağlantıdan tüm projelerimi görebilirsiniz. </p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph"><strong>Diğer proje yazıları:</strong> <a href="https://blog.robo90.com/kategori/projeler/" target="_blank" rel="noreferrer noopener">https://blog.robo90.com/kategori/projeler/</a></p>
</blockquote>



<p class="wp-block-paragraph">Bir sonraki bloğumda ise ESP mesh Networking kavramını inceleyeceğim. </p>
<p><a rel="nofollow" href="https://blog.robo90.com/esp-now-ile-rgb-led-kontrolu/">ESP-NOW ile RGB LED Kontrolü 🎛️</a> yazısı ilk önce <a rel="nofollow" href="https://blog.robo90.com">Robo90 - Blog</a> üzerinde ortaya çıktı.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.robo90.com/esp-now-ile-rgb-led-kontrolu/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>📡 Yeni Başlayanlar için ESP-NOW</title>
		<link>https://blog.robo90.com/yeni-baslayanlar-icin-esp-now/</link>
					<comments>https://blog.robo90.com/yeni-baslayanlar-icin-esp-now/#comments</comments>
		
		<dc:creator><![CDATA[Mustafa Topal]]></dc:creator>
		<pubDate>Thu, 03 Aug 2023 12:38:27 +0000</pubDate>
				<category><![CDATA[Genel]]></category>
		<category><![CDATA[IoT Projeleri]]></category>
		<guid isPermaLink="false">https://blog.robo90.com/?p=7833</guid>

					<description><![CDATA[<p>Hiçbir grup cihazın birbirleriyle kablosuz olarak konuşmasını istediniz mi? Ancak belki de kulağa çok karmaşık geldi veya donanımın çok pahalı olacağını düşündünüz. Bu durumda ESP-NOW yardımımıza koşuyor. Yine de hayal ettiğimiz zaman bir veya birden fazla cihaz havaya 2.4GHz bandında veri basıyor ve sadece tutmasını istediğimiz cihazlar o verileri alıyor. Yine de karmaşık geliyorsa inanın [...]</p>
<p><a rel="nofollow" href="https://blog.robo90.com/yeni-baslayanlar-icin-esp-now/">📡 Yeni Başlayanlar için ESP-NOW</a> yazısı ilk önce <a rel="nofollow" href="https://blog.robo90.com">Robo90 - Blog</a> üzerinde ortaya çıktı.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Hiçbir grup cihazın birbirleriyle kablosuz olarak konuşmasını istediniz mi? Ancak belki de kulağa çok karmaşık geldi veya donanımın çok pahalı olacağını düşündünüz. Bu durumda ESP-NOW yardımımıza koşuyor. Yine de hayal ettiğimiz zaman bir veya birden fazla cihaz havaya 2.4GHz bandında veri basıyor ve sadece tutmasını istediğimiz cihazlar o verileri alıyor. Yine de karmaşık geliyorsa inanın ESP-NOW protokolünü kullanmak düşündüğünüz kadar zor değil. Bu yazımızda ESP-NOW ’a başlamanın en basit yolunu inceleyeceğiz.</p>



<p class="wp-block-paragraph">Eğer bloğumdaki önceki yazıları okuyan birisiyseniz ESP32 ve ESP8266 kartlarına aşina olabilirsiniz. Yine de benimle bu yazımda tanışıyorsanız diğer blog yazılarımı da incelemenizi tavsiye ederim.</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph"><a href="https://blog.robo90.com/kategori/projeler/" target="_blank" rel="noreferrer noopener">https://blog.robo90.com/kategori/projeler/</a></p>
</blockquote>


<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><img loading="lazy" decoding="async" src="https://blog.robo90.com/wp-content/uploads/2023/08/ESP32-picture.jpeg" alt="ESP32 geliştirme kartının fotoğrafı " class="wp-image-7834" style="width:450px;height:450px" width="450" height="450" title="&#x1f4e1; Yeni Başlayanlar için ESP-NOW 9" srcset="https://blog.robo90.com/wp-content/uploads/2023/08/ESP32-picture.jpeg 1024w, https://blog.robo90.com/wp-content/uploads/2023/08/ESP32-picture-300x300.jpeg 300w, https://blog.robo90.com/wp-content/uploads/2023/08/ESP32-picture-150x150.jpeg 150w, https://blog.robo90.com/wp-content/uploads/2023/08/ESP32-picture-768x768.jpeg 768w, https://blog.robo90.com/wp-content/uploads/2023/08/ESP32-picture-450x450.jpeg 450w" sizes="(max-width: 450px) 100vw, 450px" /><figcaption class="wp-element-caption">ESP32 Geliştirme kartı</figcaption></figure>
</div>


<p class="wp-block-paragraph">ESP kartları gerek Wi-Fi modülü, gerek Bluetooth modülüne sahip olup ayrıca 32 bit işlemcileri sayesinde IOT projeleri ve haberleşme projeleri için süper ucuz ve çok kullanışlı kartlardır. Peki nedir bu ESP-NOW protokolü?</p>



<p class="wp-block-paragraph">ESP-NOW, bir çok ESP cihazının Wi-Fi kullanmadan birbirleriyle iletişim kurmaların sağlayan bir protokoldür. Bu kablosuz mouse cihazlarında kullandığımız 2.4GHz kablosuz bağlantısına benzer bir protokoldür. ESP-NOW’da tüm cihazlar birbirleriyle senkron bir şekilde de çalışabildikleri için bir kablosuz sensör ağı kurmak istiyorsanız muhteşem cihazlardır. Şimdilik bir cihazdan diğer cihaza gönderebileceğiniz verinin boyutu 250 Byte’tır. Yani bir ESP cihazından diğerine ses dosyası veya bir video akışı yapamazsınız. Ancak sensör okumak istiyorsanız veya küçük bir pakete sığacak bir veri göndermek istiyorsanız 250 byte oldukça yeterli. Tüm bu bilgileri anladığımıza göre şimdi ESP-NOW’u olabildiğince hızlı kullanmanızı sağlayacak adımlara geçelim.</p>



<h2 class="wp-block-heading">1. Adım: İhtiyaç Listesi</h2>



<p class="wp-block-paragraph">ESP-NOW protokolünü kullanmak istiyorsanız en az 2 adet ESP geliştirme cihazına ihtiyacınız var. Ben bu yazımda iki adet ESP32 kartını kullanacağım. Aşağıdaki linkten ESP32 veya ESP8266 kartlarına ulaşabilirsiniz.</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph"><strong>ESP32-Wroom-32 Wifi ve Bluetooth Geliştirme Kartı:</strong> <a href="https://www.robo90.com/esp32-wroom-32-wifi-ve-bluetooth-gelistirme-karti"></a><a href="https://www.robo90.com/esp32-wroom-32-wifi-ve-bluetooth-gelistirme-karti"></a><a href="https://www.robo90.com/esp32-wroom-32-wifi-ve-bluetooth-gelistirme-karti"></a><a href="https://www.robo90.com/esp32-wroom-32-wifi-ve-bluetooth-gelistirme-karti" target="_blank" rel="noreferrer noopener">https://www.robo90.com/esp32-wroom-32-wifi-ve-bluetooth-gelistirme-karti</a></p>
</blockquote>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph"><strong>Nodemcu V3 &#8211; ESP8266 Geliştirme Kartı &#8211; CH340G:</strong> <a href="https://www.robo90.com/nodemcu-v3-esp8266-gelistirme-karti-ch340g" target="_blank" rel="noreferrer noopener">https://www.robo90.com/nodemcu-v3-esp8266-gelistirme-karti-ch340g</a></p>
</blockquote>



<h2 class="wp-block-heading">2. Adım: Nasıl Kodlarız?</h2>



<p class="wp-block-paragraph">ESP32 kartını kullanabilmek için Arduino IDE uygulamasına doğru kütüphaneyi indirmemiz ve birkaç önemli işleme dikkat etmemiz gerekir. Bu yazımda ESP32 kartlarına nasıl kod yükleyebileceğimizden bahsetmeyeceğim. Eğer ESP kartlarına nasıl yazılım yükleneceğini merak ediyorsanız aşağıdaki blog yazımı inceleyebilirsiniz.</p>



<figure class="wp-block-embed is-type-wp-embed is-provider-robo-90-blog wp-block-embed-robo-90-blog"><div class="wp-block-embed__wrapper">
<blockquote class="wp-embedded-content" data-secret="k6XuWklPg7"><a href="https://blog.robo90.com/esp32-ye-program-nasil-yazilir/"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f9d1-200d-1f4bb.png" alt="🧑‍💻" class="wp-smiley" style="height: 1em; max-height: 1em;" /> ESP32 Kullanımı &#8211; Esp32&#8217;ye Nasıl Kod Atılır?</a></blockquote><iframe class="wp-embedded-content" sandbox="allow-scripts" security="restricted"  title="&#8220;&#x1f9d1;&#x200d;&#x1f4bb; ESP32 Kullanımı &#8211; Esp32&#8217;ye Nasıl Kod Atılır?&#8221; &#8212; Robo90 - Blog" src="https://blog.robo90.com/esp32-ye-program-nasil-yazilir/embed/#?secret=8za1UnMZ2Z#?secret=k6XuWklPg7" data-secret="k6XuWklPg7" width="600" height="338" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe>
</div></figure>



<p class="wp-block-paragraph">Bu yazımızda ESP32 ’ ye Arduino IDE kullanarak ESP32’ye nasıl yazılım yükleneceğini ve örnek bir kod olarak ESP32’ye blink kodunu yükleyeceğiz.</p>



<p class="wp-block-paragraph">Eğer ESP kartlarından birisini ilk defa kullanacaksanız yukarıdaki yazımdaki aşamaları sırasıyla inceleyip kartınızda basit bir blink programı çalıştırmanızı tavsiye ederim. Bu sayede kartınızı hızlı bir şekilde test edip yazılım yüklenebildiğini görmüş olursunuz.</p>



<h2 class="wp-block-heading">3. Adım: Yazılım Kısmı.</h2>



<p class="wp-block-paragraph">kodu incelerken kodun en ama en basite indirgenmiş halini teker teker açıklayıp hangi kodun ne işe yaradığından bahsedeceğim. Bu sayede ezbere bir sistem çalıştırmaktansa hangi kodun ne işe yaradığını biliyor olacağız. Bana sorarsanız bunu bilmek önemli. Çünkü her yeni bir proje yaptığımızda önceki bilgilerimizi kullanıp üstüne koyarak ilerliyor, hataları bu sayede görüp sorunları olabildiğince hızlı çözüyoruz. Şimdi gelin projenin kodlarını incelemeye başlayalım.</p>



<p class="wp-block-paragraph">Proje iki ayrı koddan oluşuyor olacak. Birisi Transmitter Device veya Master Device ( İleten cihaz veya Master Cihaz ), diğer cihaz ise Receiver device veya Slave Device ( Alıcı Cihaz veya Köle Cihaz ). Bu isimler karmaşık geliyorsa olaya sadece ileten ve dinleyen cihaz gözüyle bakabilirsiniz. Kod ESP-NOW protokolünün çalışması için minimum gereken koda sahiptir.</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">Daha fazla bilgiye Espressif API referans sayfasından ulaşabilirsiniz. Kodumuzu incelerken şu kod şu işlevi gerçekleştirir dediğimizde hepsi aşağıdaki sitede belgelenmiştir. Belgeyi incelediğimizde 18 adet işlev var gibi görünüyor ve gerçekten fazla değil.</p>



<p class="wp-block-paragraph"><a href="https://docs.espressif.com/projects/esp-idf/en/latest/esp32c3/api-reference/network/esp_now.html" target="_blank" rel="noreferrer noopener nofollow">https://docs.espressif.com/projects/esp-idf/en/latest/esp32c3/api-reference/network/esp_now.html</a></p>
</blockquote>



<h2 class="wp-block-heading">Verici Kodu</h2>



<pre class="wp-block-code"><code>#include &lt;esp_now.h&gt;
#include &lt;WiFi.h&gt;

//kanal belirliyoruz alıcı ve verici aynı kanalda olmalı 
#defie CHANNEL 1

esp_now_peer_info_t slave;</code></pre>



<p class="wp-block-paragraph">Kodumuzun başlangıcına bakacak olursak önce kütüphanelerimizi tanımlamışız. Daha sonrasında ise ESP cihazlarımızın konuşacakları kanalı “<em><strong> #defie CHANNEL 1</strong> </em>” kodu ile 1. kanala atıyorum. Aslında varsayılan olarak 1. kanal olarak tanımlanmıştır ancak biz bu kısımda kanalımızı belirleyeceğiz.</p>



<p class="wp-block-paragraph">Burada bir diğer dikkat etmemiz gereken kısım ise MAC adresidir. Eğer cihazınız verici ( Transmitter ) konumunda ise alıcı hakkında bazı bilgilere sahip olması gerekir. Özellikle bilmemiz gereken bilgi alıcının MAC adresidir. MAC adresi donanıma atanmış benzeri olmayan, her cihazın farklı olduğu benzersiz bir ağ adresidir. Bu bizim belirlediğimiz bir şey değil zaten donanımda olan bir şeydir. Bu MAC adresi vericiyle birlikte kaydedilir. Kodumuzdaki “ <em><strong>esp_now_peer_info_t</strong> </em>” alıcı cihazın MAC adresinin eşlenildiği kısımdır.     “ <em><strong>esp_now_peer_info_t</strong> </em>” veri türünde “ <em><strong>slave</strong></em> ” adlı bir değişken oluştururuz.</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="936" height="469" src="https://blog.robo90.com/wp-content/uploads/2023/08/ESP-NOW-structures.png" alt="Espressif firmasının ESP-NOW için hazırladığı dökümandan bir kesitin fotoğrafı." class="wp-image-7835" title="&#x1f4e1; Yeni Başlayanlar için ESP-NOW 10" srcset="https://blog.robo90.com/wp-content/uploads/2023/08/ESP-NOW-structures.png 936w, https://blog.robo90.com/wp-content/uploads/2023/08/ESP-NOW-structures-300x150.png 300w, https://blog.robo90.com/wp-content/uploads/2023/08/ESP-NOW-structures-768x385.png 768w, https://blog.robo90.com/wp-content/uploads/2023/08/ESP-NOW-structures-150x75.png 150w, https://blog.robo90.com/wp-content/uploads/2023/08/ESP-NOW-structures-450x225.png 450w" sizes="(max-width: 936px) 100vw, 936px" /><figcaption class="wp-element-caption">Fotoğraf 1.0</figcaption></figure>



<p class="wp-block-paragraph">Espressif firmasının belgelerini incelersek eğer aslında bu kodun bir Structures ( Yapı ) olduğunu da anlarız. ( <strong>Fotoğraf 1.0</strong> ) Ancak fotoğraftaki <strong>peer_addr</strong> alıcının MAC adresini bu yapıya kaydettiğimiz kısımdır. Kodun devamına bakacak olursak;</p>



<pre class="wp-block-code"><code>uint8_t data=0; 

void ()
{
  Serial.begin(115200);
  WiFi.mode(WIFI_STA);
  esp_now_init();
  esp_now_register_send_cb(OnDataSent);
  ScanForSlave();
  esp_now_add_peer(&amp;slave);
}</code></pre>



<p class="wp-block-paragraph">Kodumuzun bu kısmında ise göndereceğimiz int formunda bir data değişkeni tanımlıyoruz. formatın int ( integer, sayısal ) formunda olması zorunlu değil. Sensör verilerini içerisinde tuttuğumuz bir dizi veya başka bir veri türü olabilir. Buradaki tek kıstas verinin 250 byte boyutundan düşük olması gerekmesi.</p>



<p class="wp-block-paragraph">Sonrasında ise “ <em><strong>Serial.begin(115200);</strong></em> ” kodu ile seri monitörümüzü kartımızda 115200 baudrate hızıyla haberleşebileceği şekilde ayarlıyoruz. ESP-NOW için gerekli değil ama bazı verileri bilgisayar ekranımızda görmek istiyoruz.</p>



<p class="wp-block-paragraph">Vericinin modunu “ <em><strong>Wifi.mode(WIFI_STA);</strong> </em>” kodu sayesinde istasyon moduna alıyoruz. Sonrasında ise ESP-NOW protokolünü başlatacak olan “ <em>esp_now_init(); </em>” fonksiyonunu çağırıyoruz.</p>



<p class="wp-block-paragraph">Sonrasında ise “ <em><strong>esp_now_register_send_cb(OnDataSent);</strong></em> ” fonksiyonu ile bir <em>Callback Function ( </em>Geri arama fonksiyonu<em> ) </em>başlatmamız ve ona bir isim vermemiz gerekiyor. Biz OnDataSent ismini verdik. Daha sonra OnDataSent fonksiyonunu ayrıca tanımlamamız ve ne iş yapacağını fonksiyonun içerisine yazmamız gerekir. Bu kısma sonradan tekrar değineceğiz. Şimdi Callback fonksiyonumuzu inceleyelim.</p>



<pre class="wp-block-code"><code>//CallBack fonksiyonu
void OnDataSent(const uint8_t *mac_addr, esp_now_send_status_t status ) {
  Serial.print("Datayı gönderdim-&gt;");
  Serial.println(data);
}</code></pre>



<p class="wp-block-paragraph">CallBack fonksiyonu oluşturduğumuzda 2 parametre gerekecek, bir EROR( hata ) durum kodu ve MAC adresi işaretçisi.</p>



<p class="wp-block-paragraph">Sonrasında önceki kod satırındaki “ <em><strong>ScanForSlave();</strong></em> ” fonksiyonunu anlamamız gerek. Bu fonksiyon açık ara koddaki en karmaşık fonksiyon. Şimdi fonksiyonu inceleyelim.</p>



<h3 class="wp-block-heading">ScanForSlave() Fonksiyonu</h3>



<pre class="wp-block-code"><code>void ScanForSlave() 
{
  int16_t scanResults = WiFi.scanNetworks(); 
  
    for (int i = 0; i &lt; scanResults; ++i) 
    {
      String SSID = WiFi.SSID(i);
      String BSSIDstr = WiFi.BSSIDstr(i);

      if (SSID.indexOf("RX") == 0) 
      {
        int mac&#91;6];
        if ( 6 == sscanf(BSSIDstr.c_str(), "%x:%x:%x:%x:%x:%x",  &amp;mac&#91;0], &amp;mac&#91;1], &amp;mac&#91;2], &amp;mac&#91;3], &amp;mac&#91;4], &amp;mac&#91;5] ) ) {
          for (int ii = 0; ii &lt; 6; ++ii ) {
            slave.peer_addr&#91;ii] = (uint8_t) mac&#91;ii];
          }
        }

        slave.channel = CHANNEL; 
        slave.encrypt = 0; 

        break;
      }
    }
}</code></pre>



<p class="wp-block-paragraph">Bu kodun çalışma mantığını derinlemesine incelemeyeceğiz ama temel olarak ne yaptığından bahsedeceğim. Yaptığı şey aslında WiFi ismi RX ile başlayan cihazları bulmak. Sonrasında onların MAC adreslerini almak. İstersek sabit kullanacağımız cihazların MAC adreslerine ulaşıp kodumuzun içerisine direk de yazabiliriz. Ancak bu yolla yeni bir cihaz eklemek istediğimizde sadece WiFi ismini RX ile başlayan bir isim koymamız yeterli. Master cihaz çevreyi tarayıp otomatik o cihazın MAC adresini alacaktır.</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<h3 class="wp-block-heading">Alt Yazı</h3>



<p class="wp-block-paragraph">Eğer bu tarama işlemindense direk slave ( alıcı ) cihazımızın MAC adresini kodumuzun içine sabitlemek istiyorsak tek yapmamız gereken şey ” <em><strong>WiFi.macAddress();</strong> </em>“ kodunu alıcı cihazımızda çalıştırıp sonucunu seri monitöre yazdırmaktır. Bu sayede alıcı cihazımızın MAC adresini elde etmiş oluruz. Sonrasında o adresi                                             “ <em><strong>esp_now_peer_info_t slave;</strong></em> ” kodunda <strong>slave </strong>değişkenine kaydedip yazarsak verici cihazımıza alıcı cihazın MAC adresini kaydetmiş oluruz.</p>
</blockquote>



<p class="wp-block-paragraph">Sonrasında “ <em><strong>esp_now_add_peer(&amp;slave);</strong> </em>” koduna bakacak olursak burada da elde edip slave değişkenine kaydettiğimiz tüm alıcı bilgilerini bu komut ile ESP ağımızın içerisine entegre ediyoruz.</p>



<pre class="wp-block-code"><code>void loop(){
  esp_now_send(slave.peer_addr, &amp;data, sizeof(data));
  data++;
  delay(1000);
}</code></pre>



<p class="wp-block-paragraph">“ <em><strong>esp_now_send</strong> </em>” fonksiyonu gerçekten göndermek istediğimiz verileri alıcıya gönderir. Bu yüzden ona       “ <em>slave.peer_addr</em> ” kodu ile MAC adresini ve “ <em><strong>&amp;data, sizeof(data)</strong></em> ” kodu ile de göndereceğimiz datayı ve datanın boyutunu vermemiz gerekir. Sonrasında “ <em><strong>data++;</strong></em> ” komutu ile data verisini “ <em><strong>delay( 1000 );</strong></em> “ komutu ile bir bir arttıracağız. </p>



<h3 class="wp-block-heading">Verici Kodunun Tamamı </h3>



<pre class="wp-block-code"><code>#include &lt;esp_now.h&gt;
#include &lt;WiFi.h&gt;

//kanal belirliyoruz alıcı ve verici aynı kanalda olmalı 
#define CHANNEL 1

//Alıcının MAC adresini esp_now_peer_info yapısına tanıttığımız kod
esp_now_peer_info_t slave;
//göndermek istediğimiz veri
uint8_t data=0; 

void setup ()
{
  Serial.begin(115200);
  WiFi.mode(WIFI_STA);
  esp_now_init();
  esp_now_register_send_cb(OnDataSent);
  ScanForSlave();
  esp_now_add_peer(&amp;slave);
}

void loop(){
  esp_now_send(slave.peer_addr, &amp;data, sizeof(data));
  data++;
  delay(1000);
}


//CallBack fonksiyonu
void OnDataSent(const uint8_t *mac_addr, esp_now_send_status_t status ) {
  Serial.print("Datayı gönderdim-&gt;");
  Serial.println(data);

}
void ScanForSlave() 
{
  int16_t scanResults = WiFi.scanNetworks(); // Scan only on one channel
  
    for (int i = 0; i &lt; scanResults; ++i) 
    {
      // Print SSID and RSSI for each device found
      String SSID = WiFi.SSID(i);
      String BSSIDstr = WiFi.BSSIDstr(i);

      // Check if the current device starts with `Slave`
      if (SSID.indexOf("RX") == 0) 
      {
        int mac&#91;6];
        if ( 6 == sscanf(BSSIDstr.c_str(), "%x:%x:%x:%x:%x:%x",  &amp;mac&#91;0], &amp;mac&#91;1], &amp;mac&#91;2], &amp;mac&#91;3], &amp;mac&#91;4], &amp;mac&#91;5] ) ) {
          for (int ii = 0; ii &lt; 6; ++ii ) {
            slave.peer_addr&#91;ii] = (uint8_t) mac&#91;ii];
          }
        }

        slave.channel = CHANNEL; // pick a channel
        slave.encrypt = 0; // no encryption

        break;
      }
    }
}</code></pre>



<p class="wp-block-paragraph">Evet. Master kodumuzun sonuna geldik. Çok şey oluyormuş gibi duruyor ama gördüğünüz üzere anlaşılmayacak bir kod değil. Şimdi alıcı kodunu inceleye başlayalım.</p>



<h2 class="wp-block-heading">Alıcı Kodu</h2>



<h3 class="wp-block-heading">Alıcı kodunun tamamı</h3>



<pre class="wp-block-code"><code>#include &lt;esp_now.h&gt;
#include &lt;WiFi.h&gt;

#define CHANNEL 1 


void setup() {
  Serial.begin(115200);
  WiFi.mode(WIFI_AP);
  WiFi.softAP("RX_1","RX_1_Password",CHANNEL, 0);

  esp_now_init();
  esp_now_register_recv_cb(OnDataRecv);

}

void loop() {

}

void OnDataRecv(const uint8_t *mac_addr, const uint8_t *data, int data_len){
  Serial.print("Bir veri aldım-&gt;");
  Serial.println(*data);
}</code></pre>



<p class="wp-block-paragraph">İşte alıcı kodumuz. Ne kadar kısa değil mi? Hepsi bu kadar. Kodumuzun başlangıcında tıpkı vericideki gibi sonrasında alıcımızı vericimizdeki gibi “ <em><strong>#define CHANNEL 1</strong></em> ” kodu ile aynı kanada ayarlıyoruz.</p>



<p class="wp-block-paragraph">Sonrasında Setup fonksiyonundaki “ <em><strong>WiFi.mode(WIFI_AP);</strong> </em>” fonksiyonu ile alıcımızı AP moduna alıyoruz.</p>



<p class="wp-block-paragraph">Sonrasında “ <em><strong>WiFi.softAP(&#8220;RX_1&#8243;,&#8221;RX_1_Password&#8221;,CHANNEL 0);</strong></em> ” kodu ile AP modunu yapılandırıyoruz. Kodumuzun içerisindeki <em>&#8220;RX_1&#8221; </em>kısmını vericimizin arayacağı bir şeye ayarlamamız gerekiyor. Hatırlarsanız vericimizdeki “ <em><strong>ScanForSlave()</strong> </em>” kodu sayesinde alıcıların MAC adresini almadan sadece WiFi isimlerinin ilk karakterleri ile alıcılarımızın MAC adreslerini elde edebiliyorduk. Verici baş harfleri RX olan isimleri arayacak. Biz de alıcımızın ismini RX_1 koyduk. Bu sayede verici alıcıyı kolay bir şekilde bulabiliyor.</p>



<p class="wp-block-paragraph">Sonrasında ise “ <em><strong>esp_now_init();</strong></em> ” kodu ile ESP-NOW protokolünü başlatıyoruz.</p>



<p class="wp-block-paragraph">Sonrasında ise “ <em><strong>esp_now_register_recv_cb(OnDataRecv)</strong> </em>” fonksiyonu ile bir Receive Callback ( alıcı geri arama ) fonksiyonu başlatıyoruz. Bu kod alıcı her vericiden veri aldığında çalışacaktır. Bu yüzden <strong>OnDataReceive </strong>fonksiyonuna bir göz atalım.</p>



<pre class="wp-block-code"><code>void OnDataRecv(const uint8_t *mac_addr, const uint8_t *data, int data_len){
  Serial.print("Bir veri aldım-&gt;")
  Serial.print(*data);
}</code></pre>



<p class="wp-block-paragraph"><strong>OnDataRecv </strong>fonksiyonuna baktığımızda üç parametre görmekteyiz. İlki “ <strong><em>const uint8_t*mac_addr</em> </strong>” kodu. Bu kod sayesinde fonksiyona alıcımızın MAC adresini tanımlıyoruz. Sonrasında bir data değişkeni tanımlayıp içerisine gelen verilerimizi yazdırıyoruz.</p>



<p class="wp-block-paragraph">Evet, Kod kısmını bitirdik. Şimdi ise test edelim.</p>



<h2 class="wp-block-heading">4. Test Kısmı</h2>



<p class="wp-block-paragraph">Bir cihazımızı alıcı, diğer cihazımızı verici olarak seçiyoruz. Daha sonrasında yazdığımız alıcı kodunu seçtiğimiz alıcı cihazına, verici kodunu ise seçtiğimiz verici cihazına yüklüyoruz.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="1024" src="https://blog.robo90.com/wp-content/uploads/2023/08/ESP32-uploading-code-1024x1024.jpeg" alt="ESP32 kartımıza bilgisayar üzerinden kod yüklediğimiz anın fotoğrafı " class="wp-image-7836" title="&#x1f4e1; Yeni Başlayanlar için ESP-NOW 11" srcset="https://blog.robo90.com/wp-content/uploads/2023/08/ESP32-uploading-code-1024x1024.jpeg 1024w, https://blog.robo90.com/wp-content/uploads/2023/08/ESP32-uploading-code-300x300.jpeg 300w, https://blog.robo90.com/wp-content/uploads/2023/08/ESP32-uploading-code-150x150.jpeg 150w, https://blog.robo90.com/wp-content/uploads/2023/08/ESP32-uploading-code-768x768.jpeg 768w, https://blog.robo90.com/wp-content/uploads/2023/08/ESP32-uploading-code-1536x1536.jpeg 1536w, https://blog.robo90.com/wp-content/uploads/2023/08/ESP32-uploading-code-450x450.jpeg 450w, https://blog.robo90.com/wp-content/uploads/2023/08/ESP32-uploading-code-1200x1200.jpeg 1200w, https://blog.robo90.com/wp-content/uploads/2023/08/ESP32-uploading-code.jpeg 2048w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">Fotoğraf 1.1</figcaption></figure>



<p class="wp-block-paragraph">Daha sonra alıcı kodunu ise alıcı cihaza yüklüyoruz. ( <strong>Fotoğraf 1.1</strong> )</p>



<p class="wp-block-paragraph">Sonrasında iki ESP32 kartına da Reset attıktan sonra ayrı Arduino IDE programlarında kartları seri monitöre bağlıyoruz. ( <strong>Fotoğraf 1.3</strong> )</p>



<figure class="wp-block-image size-large is-resized"><img loading="lazy" decoding="async" src="https://blog.robo90.com/wp-content/uploads/2023/08/send-take-1024x554.png" alt="Bilgisayar ekranında iki adet Arduino IDE programına ayrı ayrı bağlı alıcı ve vericinin seri monitördeki çıktısı ve haberleşmeleri." class="wp-image-7837" style="width:921px;height:497px" width="921" height="497" title="&#x1f4e1; Yeni Başlayanlar için ESP-NOW 12" srcset="https://blog.robo90.com/wp-content/uploads/2023/08/send-take-1024x554.png 1024w, https://blog.robo90.com/wp-content/uploads/2023/08/send-take-300x162.png 300w, https://blog.robo90.com/wp-content/uploads/2023/08/send-take-150x81.png 150w, https://blog.robo90.com/wp-content/uploads/2023/08/send-take-450x244.png 450w" sizes="(max-width: 921px) 100vw, 921px" /><figcaption class="wp-element-caption">Fotoğraf 1.3</figcaption></figure>



<p class="wp-block-paragraph">Ve evet ! Gördüğünüz gibi verici cihazımız saniyede bir data verisini gönderirken alıcı cihazımız ise o veriyi alıyor. Bugünkü yazımızda ESP-NOW protokolünü inceledik ve kullanabileceğimiz minimum gereklilikteki kodları kullanarak basitçe ESP-NOW arayüzünü inceledik. Bir sonraki yazımızda bu kodumuzu geliştirerek basit bir haberleşme projesi gerçekleştireceğiz. Aşağıdaki linkten o yazıma ulaşabilirsiniz.</p>



<figure class="wp-block-embed is-type-wp-embed is-provider-robo-90-blog wp-block-embed-robo-90-blog"><div class="wp-block-embed__wrapper">
<blockquote class="wp-embedded-content" data-secret="OGTnUHXEjr"><a href="https://blog.robo90.com/esp-now-ile-rgb-led-kontrolu/">ESP-NOW ile RGB LED Kontrolü <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f39b.png" alt="🎛" class="wp-smiley" style="height: 1em; max-height: 1em;" /></a></blockquote><iframe class="wp-embedded-content" sandbox="allow-scripts" security="restricted"  title="&#8220;ESP-NOW ile RGB LED Kontrolü &#x1f39b;&#8221; &#8212; Robo90 - Blog" src="https://blog.robo90.com/esp-now-ile-rgb-led-kontrolu/embed/#?secret=2b9qiGKHnN#?secret=OGTnUHXEjr" data-secret="OGTnUHXEjr" width="600" height="338" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe>
</div></figure>
<p><a rel="nofollow" href="https://blog.robo90.com/yeni-baslayanlar-icin-esp-now/">📡 Yeni Başlayanlar için ESP-NOW</a> yazısı ilk önce <a rel="nofollow" href="https://blog.robo90.com">Robo90 - Blog</a> üzerinde ortaya çıktı.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.robo90.com/yeni-baslayanlar-icin-esp-now/feed/</wfw:commentRss>
			<slash:comments>3</slash:comments>
		
		
			</item>
		<item>
		<title>Dengede Duramayan Dijital Top Nasıl Yapılır? ⚖️</title>
		<link>https://blog.robo90.com/dengede-duramayan-dijital-top-nasil-yapilir/</link>
					<comments>https://blog.robo90.com/dengede-duramayan-dijital-top-nasil-yapilir/#respond</comments>
		
		<dc:creator><![CDATA[Mustafa Topal]]></dc:creator>
		<pubDate>Mon, 31 Jul 2023 13:33:21 +0000</pubDate>
				<category><![CDATA[Arduino Projeleri]]></category>
		<category><![CDATA[Editor's Choice]]></category>
		<category><![CDATA[Featured]]></category>
		<category><![CDATA[Genel]]></category>
		<category><![CDATA[Latest Posts]]></category>
		<guid isPermaLink="false">https://blog.robo90.com/?p=7269</guid>

					<description><![CDATA[<p>İnternette hemen hemen hepimiz bir tablanın üstüne bir top bırakıldığında neresinden bırakılırsa bırakılsın motorları sayesinde hemen topu merkezine alıp dengede durmasını sağlayan top dengede tutan robot projelerine denk gelmişizdir. İzlemesi son derece keyifli ve kafamızda hep “ Acaba nasıl üretiliyor, ben de yapabilir miyim ki ? ” sorularını getiriyor. Sizin de kafanıza bu tarz sorular [...]</p>
<p><a rel="nofollow" href="https://blog.robo90.com/dengede-duramayan-dijital-top-nasil-yapilir/">Dengede Duramayan Dijital Top Nasıl Yapılır? ⚖️</a> yazısı ilk önce <a rel="nofollow" href="https://blog.robo90.com">Robo90 - Blog</a> üzerinde ortaya çıktı.</p>
]]></description>
										<content:encoded><![CDATA[<div class="wp-block-image is-style-default">
<figure class="aligncenter size-full"><img loading="lazy" decoding="async" width="1459" height="760" src="https://blog.robo90.com/wp-content/uploads/2023/07/top-dengeleyen-cihaz.jpg" alt="Dengede Duramayan Dijital Top Nasıl Yapılır? &#x2696; - Robo90 - Blog 2" class="wp-image-7271" title="Dengede Duramayan Dijital Top Nasıl Yapılır? &#x2696; 13" srcset="https://blog.robo90.com/wp-content/uploads/2023/07/top-dengeleyen-cihaz.jpg 1459w, https://blog.robo90.com/wp-content/uploads/2023/07/top-dengeleyen-cihaz-300x156.jpg 300w, https://blog.robo90.com/wp-content/uploads/2023/07/top-dengeleyen-cihaz-1024x533.jpg 1024w, https://blog.robo90.com/wp-content/uploads/2023/07/top-dengeleyen-cihaz-768x400.jpg 768w, https://blog.robo90.com/wp-content/uploads/2023/07/top-dengeleyen-cihaz-150x78.jpg 150w, https://blog.robo90.com/wp-content/uploads/2023/07/top-dengeleyen-cihaz-450x234.jpg 450w, https://blog.robo90.com/wp-content/uploads/2023/07/top-dengeleyen-cihaz-1200x625.jpg 1200w" sizes="(max-width: 1459px) 100vw, 1459px" /><figcaption class="wp-element-caption">Dengede duramayan top. Photo by <a href="https://www.youtube.com/@acrome_robotics" target="_blank" rel="noreferrer noopener nofollow">ACROME</a></figcaption></figure>
</div>


<p class="wp-block-paragraph">İnternette hemen hemen hepimiz bir tablanın üstüne bir top bırakıldığında neresinden bırakılırsa bırakılsın motorları sayesinde hemen topu merkezine alıp dengede durmasını sağlayan top dengede tutan robot projelerine denk gelmişizdir. İzlemesi son derece keyifli ve kafamızda hep “ Acaba nasıl üretiliyor, ben de yapabilir miyim ki ? ” sorularını getiriyor. Sizin de kafanıza bu tarz sorular geliyorsa, gerçek toplar ve gerçek sistemler kadar olmasa da dijital top nasıl dengede tutabileceğinizi merak ediyor ve çevrenizi etkilemek istiyorsanız gelin projemizi yapmaya başlayalım.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="571" src="https://blog.robo90.com/wp-content/uploads/2023/07/Dengede-duramayan-dijital-top--1024x571.jpg" alt="Arduino Uno&#039;ya bağlı Dot Matrix modülü ve MPU-6050 modülü." class="wp-image-7272" title="Dengede Duramayan Dijital Top Nasıl Yapılır? &#x2696; 14" srcset="https://blog.robo90.com/wp-content/uploads/2023/07/Dengede-duramayan-dijital-top--1024x571.jpg 1024w, https://blog.robo90.com/wp-content/uploads/2023/07/Dengede-duramayan-dijital-top--300x167.jpg 300w, https://blog.robo90.com/wp-content/uploads/2023/07/Dengede-duramayan-dijital-top--768x429.jpg 768w, https://blog.robo90.com/wp-content/uploads/2023/07/Dengede-duramayan-dijital-top--150x84.jpg 150w, https://blog.robo90.com/wp-content/uploads/2023/07/Dengede-duramayan-dijital-top--450x251.jpg 450w, https://blog.robo90.com/wp-content/uploads/2023/07/Dengede-duramayan-dijital-top--1200x670.jpg 1200w, https://blog.robo90.com/wp-content/uploads/2023/07/Dengede-duramayan-dijital-top-.jpg 1360w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">Fotoğraftan da anlaşılabileceği gibi ne kadar basit bir sistem değil mi ? Proje bir adet eksen sensörü sayesinde hareketi algılayıp 8&#215;8 Dot Matrix Display ekranında hareketin tam tersi yönde dijital top hareket etmesini sağlıyor. Bu sayede dijital top sanki dijital bir ekranda dengede kalmaya çalışıyor.</p>



<p class="wp-block-paragraph"></p>


<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><img loading="lazy" decoding="async" src="https://blog.robo90.com/wp-content/uploads/2023/07/Dengede-duramayan-dijital-top-test.jpg" alt="MPU-6050 modülünü eğince Dot Matrix modülündeki top da tam tersi yönde hareket ediyor." class="wp-image-7273" style="width:349px;height:349px" width="349" height="349" title="Dengede Duramayan Dijital Top Nasıl Yapılır? &#x2696; 15" srcset="https://blog.robo90.com/wp-content/uploads/2023/07/Dengede-duramayan-dijital-top-test.jpg 661w, https://blog.robo90.com/wp-content/uploads/2023/07/Dengede-duramayan-dijital-top-test-300x300.jpg 300w, https://blog.robo90.com/wp-content/uploads/2023/07/Dengede-duramayan-dijital-top-test-150x150.jpg 150w, https://blog.robo90.com/wp-content/uploads/2023/07/Dengede-duramayan-dijital-top-test-450x450.jpg 450w" sizes="(max-width: 349px) 100vw, 349px" /></figure>
</div>


<hr class="wp-block-separator has-alpha-channel-opacity is-style-wide"/>



<h3 class="wp-block-heading">Ne Kullanmam Gerekiyor ki ?</h3>



<p class="wp-block-paragraph">Projemiz için ihtiyacımız olan tüm malzemelerin listesi ;</p>



<ul class="wp-block-list">
<li><strong><a href="https://www.robo90.com/arduino-uno-r3-smd-klonch340-cipli-usb-kablo-hediyeli" target="_blank" rel="noreferrer noopener">Arduino Uno</a>:</strong> <a href="https://www.robo90.com/arduino-uno-r3-smd-klonch340-cipli-usb-kablo-hediyeli" target="_blank" rel="noreferrer noopener">https://www.robo90.com/arduino-uno-r3-smd-klonch340-cipli-usb-kablo-hediyeli</a></li>



<li><strong><a href="https://www.robo90.com/max7219-8x8-dot-matrix-display-modulu-kirmizi" target="_blank" rel="noreferrer noopener">Max7219 8&#215;8 Dot Matrix Display Modülü &#8211; Kırmızı</a>:</strong> <a href="https://www.robo90.com/max7219-8x8-dot-matrix-display-modulu-kirmizi" target="_blank" rel="noreferrer noopener">https://www.robo90.com/max7219-8&#215;8-dot-matrix-display-modulu-kirmizi</a></li>



<li><strong><a href="https://www.robo90.com/mpu6050-6-eksen-ivme-ve-gyro-sensoru-gy-521" target="_blank" rel="noreferrer noopener">MPU6050 6 Eksen İvme ve Gyro Sensörü</a>:</strong> <a href="https://www.robo90.com/mpu6050-6-eksen-ivme-ve-gyro-sensoru-gy-521" target="_blank" rel="noreferrer noopener">https://www.robo90.com/mpu6050-6-eksen-ivme-ve-gyro-sensoru-gy-521</a></li>



<li><a href="https://www.robo90.com/40li-ayrilabilen-disi-erkek-jumper-kablo-20cm-arduino-uyu" target="_blank" rel="noreferrer noopener"><strong>40lı Ayrılabilen Dişi-Erkek Jumper Kablo:</strong></a> <a href="https://www.robo90.com/40li-ayrilabilen-disi-erkek-jumper-kablo-20cm-arduino-uyu">https://www.robo90.com/40li-ayrilabilen-disi-erkek-jumper-kablo-20cm-arduino-uyu</a></li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity is-style-wide"/>



<h2 class="wp-block-heading">Donanım kısmı</h2>



<p class="wp-block-paragraph">Önce 8&#215;8 Max7219 8&#215;8 Dot Matrix Display Modülümüzü Arduino Uno ile bağlantılarını yaparak başlayalım. ( <strong>Fotoğraf 1.0</strong> )</p>


<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><img loading="lazy" decoding="async" src="https://blog.robo90.com/wp-content/uploads/2023/07/8x8-Dot-Matrix.jpg" alt="Dot Matrix Display Modülü" class="wp-image-7274" style="width:345px;height:344px" width="345" height="344" title="Dengede Duramayan Dijital Top Nasıl Yapılır? &#x2696; 16" srcset="https://blog.robo90.com/wp-content/uploads/2023/07/8x8-Dot-Matrix.jpg 768w, https://blog.robo90.com/wp-content/uploads/2023/07/8x8-Dot-Matrix-300x300.jpg 300w, https://blog.robo90.com/wp-content/uploads/2023/07/8x8-Dot-Matrix-150x150.jpg 150w, https://blog.robo90.com/wp-content/uploads/2023/07/8x8-Dot-Matrix-450x449.jpg 450w" sizes="(max-width: 345px) 100vw, 345px" /><figcaption class="wp-element-caption">Fotoğraf 1.0</figcaption></figure>
</div>


<p class="wp-block-paragraph">Göründüğü gibi 8&#215;8 matrix modülümüzün sırasıyla VCC, GND, DIN, CS, CLK pinleri bulunmakta. Biz bu projemizde bu pinlerimizi Arduinonun şu pinlerine bağladık;</p>



<ul class="wp-block-list">
<li>VCC = Arduinonun +5V pini</li>



<li>GND = Arduinonun GND pini</li>



<li>DIN = Arduinonun 12. pini</li>



<li>CS = Arduinonun 11. pini</li>



<li>CLK = Arduinonun 10. pini</li>
</ul>



<p class="wp-block-paragraph">Bu bağlantıları yaptıktan sonra MPU6050 6 Eksen İvme ve Gyro Sensörünü nasıl bağlayacağımıza geçelim. ( <strong>Fotoğraf 1.1</strong> ) </p>


<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><img loading="lazy" decoding="async" src="https://blog.robo90.com/wp-content/uploads/2023/07/MPU-6050.jpg" alt="MPU-6050 modülü" class="wp-image-7275" style="width:354px;height:354px" width="354" height="354" title="Dengede Duramayan Dijital Top Nasıl Yapılır? &#x2696; 17" srcset="https://blog.robo90.com/wp-content/uploads/2023/07/MPU-6050.jpg 706w, https://blog.robo90.com/wp-content/uploads/2023/07/MPU-6050-300x300.jpg 300w, https://blog.robo90.com/wp-content/uploads/2023/07/MPU-6050-150x150.jpg 150w, https://blog.robo90.com/wp-content/uploads/2023/07/MPU-6050-450x450.jpg 450w" sizes="(max-width: 354px) 100vw, 354px" /><figcaption class="wp-element-caption">Fotoğraf 1.1</figcaption></figure>
</div>


<p class="wp-block-paragraph">Göründüğü gibi MPU6050 6 Eksen İvme ve Gyro Sensörünün sırasıyla VCC, GND, SCL, SDA, XDA, XCL, AD0 ve INT pinleri bulunmakta. Biz projemiz için ilk 4 pin olan VCC, GND, SCL ve SDA pinlerini kullanacağız. Bu pinleri sırasıyla Arduinonun şu pinlerine bağladık;</p>



<ul class="wp-block-list">
<li>VCC = Arduinonun +5V pini</li>



<li>GND = Arduinonun GND pini</li>



<li>SCL = Arduinonun A5 pinine</li>



<li>SDA = Arduinonun A4 pinine</li>
</ul>



<p class="wp-block-paragraph">Gerekli olan tüm bağlantıları sırasıyla yaptıktan sonra şimdi projenin çalışma mantığına bakalım.</p>



<p class="wp-block-paragraph"></p>



<h2 class="wp-block-heading">Peki Nasıl Çalışıyor ?</h2>



<p class="wp-block-paragraph">Yazımızın başlarında da bahsettiğimiz gibi aslında Proje bir adet eksen sensörü sayesinde hareketi algılayıp 8&#215;8 Dot Matrix Display ekranında hareketin tam tersi yönde dijital top hareket etmesini sağlıyor. Bu sayede dijital top sanki dijital bir ekranda dengede kalmaya çalışıyormuş gibi görünüyor. Eksen sensörünün sadece X ve Y ekseni için ürettiği verileri kullanıyoruz. Sensörümüzü X ekseni için her bir hareketinde +-10, Y ekseni için de +-10 değerlerini üretecek şekilde ayarlıyoruz. ( İleride kaynak kodu incelerken bu kısıma değineceğiz ) ( <strong>Fotoğraf 1.2</strong> )</p>


<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><img loading="lazy" decoding="async" src="https://blog.robo90.com/wp-content/uploads/2023/07/mpu-6050-eksen-.jpg" alt="MPU-6050 modülünün x ve y eksenlerine bölünmüş hali, x ve y ekseninde +-10 değer döndürüyor." class="wp-image-7278" style="width:475px;height:471px" width="475" height="471" title="Dengede Duramayan Dijital Top Nasıl Yapılır? &#x2696; 18" srcset="https://blog.robo90.com/wp-content/uploads/2023/07/mpu-6050-eksen-.jpg 769w, https://blog.robo90.com/wp-content/uploads/2023/07/mpu-6050-eksen--300x298.jpg 300w, https://blog.robo90.com/wp-content/uploads/2023/07/mpu-6050-eksen--150x149.jpg 150w, https://blog.robo90.com/wp-content/uploads/2023/07/mpu-6050-eksen--450x446.jpg 450w" sizes="(max-width: 475px) 100vw, 475px" /><figcaption class="wp-element-caption">Fotoğraf 1.2</figcaption></figure>
</div>


<p class="wp-block-paragraph">Göründüğü gibi eksen sensörü her yönde hareket ettirdiğimizde eğime bağlı olarak konumu değişiyor.        ( <strong>Fotoğraf 1.3</strong> )</p>


<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><img loading="lazy" decoding="async" src="https://blog.robo90.com/wp-content/uploads/2023/07/4-lu-mpu6050-test-.jpg" alt="MPU-6050&#039;yi ü her yönde hareket ettirdiğimizde eğime bağlı olarak dijital topun konumu değişiyor.  " class="wp-image-7279" style="width:481px;height:481px" width="481" height="481" title="Dengede Duramayan Dijital Top Nasıl Yapılır? &#x2696; 19" srcset="https://blog.robo90.com/wp-content/uploads/2023/07/4-lu-mpu6050-test-.jpg 715w, https://blog.robo90.com/wp-content/uploads/2023/07/4-lu-mpu6050-test--300x300.jpg 300w, https://blog.robo90.com/wp-content/uploads/2023/07/4-lu-mpu6050-test--150x150.jpg 150w, https://blog.robo90.com/wp-content/uploads/2023/07/4-lu-mpu6050-test--450x450.jpg 450w" sizes="(max-width: 481px) 100vw, 481px" /><figcaption class="wp-element-caption">Fotoğraf 1.3</figcaption></figure>
</div>


<p class="wp-block-paragraph">Şimdi ise 8&#215;8 Dot Matrix’imizi aşağıdaki fotoğrafta göründüğü gibi dört parçaya bölelim. ( Fotoğraf 1.4 )</p>


<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><img loading="lazy" decoding="async" src="https://blog.robo90.com/wp-content/uploads/2023/07/8x8-Dot-Matrix-Eksen-.jpg" alt="8x8 Dot Matrix’imizi  dört parçaya bölelim. Sonrasında Dot matrix modülümüzü koordinat eksenindeki ızgaralara bölelim" class="wp-image-7280" style="width:584px;height:292px" width="584" height="292" title="Dengede Duramayan Dijital Top Nasıl Yapılır? &#x2696; 20" srcset="https://blog.robo90.com/wp-content/uploads/2023/07/8x8-Dot-Matrix-Eksen-.jpg 973w, https://blog.robo90.com/wp-content/uploads/2023/07/8x8-Dot-Matrix-Eksen--300x150.jpg 300w, https://blog.robo90.com/wp-content/uploads/2023/07/8x8-Dot-Matrix-Eksen--768x384.jpg 768w, https://blog.robo90.com/wp-content/uploads/2023/07/8x8-Dot-Matrix-Eksen--150x75.jpg 150w, https://blog.robo90.com/wp-content/uploads/2023/07/8x8-Dot-Matrix-Eksen--450x225.jpg 450w" sizes="(max-width: 584px) 100vw, 584px" /><figcaption class="wp-element-caption">Fotoğraf 1.4</figcaption></figure>
</div>


<p class="wp-block-paragraph">Daha sonra bu bölgelere sırasıyla 1, 2, 3, 4 diyelim. Hatırlarsanız eksen sensörü x ve y ekseni için +-10 arasında değerler üretiyordu. Bu yüzden ızgaranın eksenleri kestiği her bir noktayı sayısal parçalara ayırabiliriz ( -5, -2.5, -0, 2.5, 5 gibi ) Bu sayede her bir 64 farklı LED’in konumunu bulabiliriz. ( <strong>Fotoğraf 1.5</strong> )</p>


<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><img loading="lazy" decoding="async" src="https://blog.robo90.com/wp-content/uploads/2023/07/xy-ekseni-parcalama-.jpg" alt="Koordinat eksenini bölgelere ayıralım ve ızgaraların kestiği her bir noktaya +-10 arasında değerler verelim. Dört parçaya böldüğü için sırasıyla 0, 2,5, 5, 7,5 ve 10 değerlerini verdik." class="wp-image-7281" style="width:476px;height:478px" width="476" height="478" title="Dengede Duramayan Dijital Top Nasıl Yapılır? &#x2696; 21" srcset="https://blog.robo90.com/wp-content/uploads/2023/07/xy-ekseni-parcalama-.jpg 768w, https://blog.robo90.com/wp-content/uploads/2023/07/xy-ekseni-parcalama--300x300.jpg 300w, https://blog.robo90.com/wp-content/uploads/2023/07/xy-ekseni-parcalama--150x151.jpg 150w, https://blog.robo90.com/wp-content/uploads/2023/07/xy-ekseni-parcalama--450x452.jpg 450w" sizes="(max-width: 476px) 100vw, 476px" /><figcaption class="wp-element-caption">Fotoğraf 1.5</figcaption></figure>
</div>


<p class="wp-block-paragraph">Yukarıdaki resme bakarak her bir LED’in konumunu ve bölgesini rahatlıkla söyleyebiliriz. Mesela 1. satır 2. sütundaki LED’in konumu için -7.5&lt;x&lt;-5 ve 7.5&lt;y&lt;10 , 2. bölgede diyebiliriz.</p>



<p class="wp-block-paragraph">Hatırlarsanız eksen sensörümüz x ve y ekseni için +- 10 arasında değerler üretiyordu. Yani ben sensörüme doğru eğimi verirsem -7.5&lt;x&lt;-5 ve 7.5&lt;y&lt;10 arasında bir değeri tutturabilirim ve eğer bir if komutu yazıp -7.5&lt;x&lt;-5 ve 7.5&lt;y&lt;10 arasında 1. satır 2. sütundaki LED’ i aç dersem doğru eğimde 8&#215;8 Dot Matrix modülünde o LED açılacaktır.</p>



<p class="wp-block-paragraph">Peki ya eksen sensörü -7.5&lt;x&lt;-5 ve 7.5&lt;y&lt;10 arasındaki değerleri üretirken 1. satır 2. sütunun başlangıç noktası 0’ a göre aynalarsam ne olur ? Konum 8. satır ve 7. sütun olur. Peki o konumdaki LED’in yanmasını istersem ? İşte bu ! Benim eksen sensörümün tam tersi konumunda topumuz hareket ediyor. Asla düşürülemez dijital bir top ! </p>


<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><img loading="lazy" decoding="async" src="https://blog.robo90.com/wp-content/uploads/2023/07/image-1.png" alt="MPU-6050&#039;yi eğince top tam tersi istikamette Dengede durmaya çalışıyor" class="wp-image-7282" style="width:436px;height:435px" width="436" height="435" title="Dengede Duramayan Dijital Top Nasıl Yapılır? &#x2696; 22" srcset="https://blog.robo90.com/wp-content/uploads/2023/07/image-1.png 768w, https://blog.robo90.com/wp-content/uploads/2023/07/image-1-300x300.png 300w, https://blog.robo90.com/wp-content/uploads/2023/07/image-1-150x150.png 150w, https://blog.robo90.com/wp-content/uploads/2023/07/image-1-450x449.png 450w" sizes="(max-width: 436px) 100vw, 436px" /><figcaption class="wp-element-caption">Fotoğraf 1.6</figcaption></figure>
</div>


<p class="wp-block-paragraph">Tabi ki de düşürebiliriz. Topumuzun ekrandan düşmemesi için bir çerçeve yaparsak eğer if-else sayımız 32’den 25’e düşer. Bu sayede 25 farklı ihtimali kodlarsak Ne olursa olsun düşüremeyeceğimiz bir dijital top yapmış oluruz. ( Fotoğraf 1.6 )</p>



<h2 class="wp-block-heading">Projenin Yazılımı Nasıl Çalışır ?</h2>



<p class="wp-block-paragraph">Gerekli olan kütüphaneleri programımızın içine yazıyoruz.</p>



<pre class="wp-block-code"><code>#include "LedControl.h"
#include &lt;Adafruit_MPU6050.h&gt;
#include &lt;Adafruit_Sensor.h&gt;
#include &lt;Wire.h&gt;</code></pre>



<p class="wp-block-paragraph">Setup kısmında ise hem 8&#215;8 Dot Matrix ekranı hem de MPU-6050 sensörü için gerekli olan kurulum kodlarını yazıyoruz.</p>



<pre class="wp-block-code"><code>void setup() {
  Serial.begin(115200);
  while (!Serial)
    delay(10); // will pause Zero, Leonardo, etc until serial console opens

  Serial.println("Adafruit MPU6050 test!");

  // Try to initialize!
  if (!mpu.begin()) {
    Serial.println("Failed to find MPU6050 chip");
    while (1) {
      delay(10);
    }
  }
  Serial.println("MPU6050 Found!");

  mpu.setAccelerometerRange(MPU6050_RANGE_8_G);
  Serial.print("Accelerometer range set to: ");
  switch (mpu.getAccelerometerRange()) {
  case MPU6050_RANGE_2_G:
    Serial.println("+-2G");
    break;
  case MPU6050_RANGE_4_G:
    Serial.println("+-4G");
    break;
  case MPU6050_RANGE_8_G:
    Serial.println("+-8G");
    break;
  case MPU6050_RANGE_16_G:
    Serial.println("+-16G");
    break;
  }
  mpu.setGyroRange(MPU6050_RANGE_500_DEG);
  Serial.print("Gyro range set to: ");
  switch (mpu.getGyroRange()) {
  case MPU6050_RANGE_250_DEG:
    Serial.println("+- 250 deg/s");
    break;
  case MPU6050_RANGE_500_DEG:
    Serial.println("+- 500 deg/s");
    break;
  case MPU6050_RANGE_1000_DEG:
    Serial.println("+- 1000 deg/s");
    break;
  case MPU6050_RANGE_2000_DEG:
    Serial.println("+- 2000 deg/s");
    break;
  }

  mpu.setFilterBandwidth(MPU6050_BAND_21_HZ);
  Serial.print("Filter bandwidth set to: ");
  switch (mpu.getFilterBandwidth()) {
  case MPU6050_BAND_260_HZ:
    Serial.println("260 Hz");
    break;
  case MPU6050_BAND_184_HZ:
    Serial.println("184 Hz");
    break;
  case MPU6050_BAND_94_HZ:
    Serial.println("94 Hz");
    break;
  case MPU6050_BAND_44_HZ:
    Serial.println("44 Hz");
    break;
  case MPU6050_BAND_21_HZ:
    Serial.println("21 Hz");
    break;
  case MPU6050_BAND_10_HZ:
    Serial.println("10 Hz");
    break;
  case MPU6050_BAND_5_HZ:
    Serial.println("5 Hz");
    break;
  }

  Serial.println("");
  delay(100);


  /*
   The MAX72XX is in power-saving mode on startup,
   we have to do a wakeup call
   */
  lc.shutdown(0,false);
  /* Set the brightness to a medium values */
  lc.setIntensity(0,8);
  /* and clear the display */
  lc.clearDisplay(0);
}</code></pre>



<p class="wp-block-paragraph">Sonrasında ekranda topun tüm konumlarının LCD için kütüphanesini yazıyoruz.</p>



<pre class="wp-block-code"><code>void middle() {
  /* here is the data for the characters */
  
  byte ball&#91;8]={B11111111,B10000001,B10000001,B10011001,B10011001,B10000001,B10000001,B11111111};
  /* now display them one by one with a small delay */
  
  lc.setRow(0,0,ball&#91;0]);
  lc.setRow(0,1,ball&#91;1]);
  lc.setRow(0,2,ball&#91;2]);
  lc.setRow(0,3,ball&#91;3]);
  lc.setRow(0,4,ball&#91;4]);
  lc.setRow(0,5,ball&#91;5]);
  lc.setRow(0,6,ball&#91;6]);
  lc.setRow(0,7,ball&#91;7]);
  lc.setRow(0,8,ball&#91;8]);
  
  lc.setRow(0,0,0);
  lc.setRow(0,1,0);
  lc.setRow(0,2,0);
  lc.setRow(0,3,0);
  lc.setRow(0,4,0);
  lc.setRow(0,5,0);
  lc.setRow(0,6,0);
  lc.setRow(0,7,0);
  lc.setRow(0,8,0);
  
}</code></pre>



<p class="wp-block-paragraph">Bu sadece dijital top orta kısımda olduğu ve çevçevenin kodlandığı durum. ( <strong>Fotoğraf 1.7</strong> )</p>


<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><img loading="lazy" decoding="async" src="https://blog.robo90.com/wp-content/uploads/2023/07/top-ortadayken-1-1.jpg" alt="Dijital top Dot Matrix modülünün tam ortasındayken Dengede durmaya çalışıyor." class="wp-image-7528" style="width:467px;height:466px" width="467" height="466" title="Dengede Duramayan Dijital Top Nasıl Yapılır? &#x2696; 23" srcset="https://blog.robo90.com/wp-content/uploads/2023/07/top-ortadayken-1-1.jpg 765w, https://blog.robo90.com/wp-content/uploads/2023/07/top-ortadayken-1-1-300x300.jpg 300w, https://blog.robo90.com/wp-content/uploads/2023/07/top-ortadayken-1-1-150x150.jpg 150w, https://blog.robo90.com/wp-content/uploads/2023/07/top-ortadayken-1-1-450x449.jpg 450w" sizes="(max-width: 467px) 100vw, 467px" /><figcaption class="wp-element-caption">Fotoğraf 1.7</figcaption></figure>
</div>


<p class="wp-block-paragraph">Sonrasında ana void loop fonksiyonunda 25 farklı durum için 25 tane if kodluyoruz. Bu İf-Else yapılarının tamamını kodun tamamında bulabilirsiniz.</p>



<pre class="wp-block-code"><code>//y ekseni if-else
  if ( a.acceleration.x&lt;=2.5 &amp;&amp; a.acceleration.x&gt;=-2.5 &amp;&amp; a.acceleration.y&lt;=5 &amp;&amp; a.acceleration.y&gt;=2.5 ){
    middletop1();
  }
  if ( a.acceleration.x&lt;=2.5 &amp;&amp; a.acceleration.x&gt;=-2.5 &amp;&amp; a.acceleration.y&lt;=7.5 &amp;&amp; a.acceleration.y&gt;=5 ){
    middletop2();
  }
  
  if ( a.acceleration.x&lt;=2.5 &amp;&amp; a.acceleration.x&gt;=-2.5 &amp;&amp; a.acceleration.y&lt;=0 &amp;&amp; a.acceleration.y&gt;=-2.5 ){
    middlebottom1();
  }
  if ( a.acceleration.x&lt;=2.5 &amp;&amp; a.acceleration.x&gt;=-2.5 &amp;&amp; a.acceleration.y&lt;=-2.5 &amp;&amp; a.acceleration.y&gt;=-5 ){
    middlebottom2();
  }
  
  //y ekseni if bitiş </code></pre>



<h2 class="wp-block-heading">Kodun tamamı ;</h2>



<div id="wp-block-themeisle-blocks-accordion-f13e5e45" class="wp-block-themeisle-blocks-accordion exclusive">

<details class="wp-block-themeisle-blocks-accordion-item"><summary class="wp-block-themeisle-blocks-accordion-item__title"><div>Kaynak Kod</div></summary><div class="wp-block-themeisle-blocks-accordion-item__content">

<p class="wp-block-paragraph">//We always have to include the library</p>


<p class="wp-block-paragraph">#include &#8220;LedControl.h&#8221;</p>


<p class="wp-block-paragraph">#include &lt;Adafruit_MPU6050.h&gt;</p>


<p class="wp-block-paragraph">#include &lt;Adafruit_Sensor.h&gt;</p>


<p class="wp-block-paragraph">#include &lt;Wire.h&gt;</p>


<p class="wp-block-paragraph">Adafruit_MPU6050 mpu;</p>


<p class="wp-block-paragraph">/*</p>


<p class="wp-block-paragraph">&nbsp;Now we need a LedControl to work with.</p>


<p class="wp-block-paragraph">&nbsp;***** These pin numbers will probably not work with your hardware *****</p>


<p class="wp-block-paragraph">&nbsp;pin 12 is connected to the DataIn</p>


<p class="wp-block-paragraph">&nbsp;pin 11 is connected to the CLK</p>


<p class="wp-block-paragraph">&nbsp;pin 10 is connected to LOAD</p>


<p class="wp-block-paragraph">&nbsp;We have only a single MAX72XX.</p>


<p class="wp-block-paragraph">&nbsp;*/</p>


<p class="wp-block-paragraph">LedControl lc=LedControl(12,10,11,1 );</p>


<p class="wp-block-paragraph">/* we always wait a bit between updates of the display */</p>


<p class="wp-block-paragraph">unsigned long delaytime=100;</p>


<p class="wp-block-paragraph">void setup() {</p>


<p class="wp-block-paragraph">&nbsp; Serial.begin(115200);</p>


<p class="wp-block-paragraph">&nbsp; while (!Serial)</p>


<p class="wp-block-paragraph">&nbsp; &nbsp; delay(10); // will pause Zero, Leonardo, etc until serial console opens</p>


<p class="wp-block-paragraph">&nbsp; Serial.println(&#8220;Adafruit MPU6050 test!&#8221;);</p>


<p class="wp-block-paragraph">&nbsp; // Try to initialize!</p>


<p class="wp-block-paragraph">&nbsp; if (!mpu.begin()) {</p>


<p class="wp-block-paragraph">&nbsp; &nbsp; Serial.println(&#8220;Failed to find MPU6050 chip&#8221;);</p>


<p class="wp-block-paragraph">&nbsp; &nbsp; while (1) {</p>


<p class="wp-block-paragraph">&nbsp; &nbsp; &nbsp; delay(10);</p>


<p class="wp-block-paragraph">&nbsp; &nbsp; }</p>


<p class="wp-block-paragraph">&nbsp; }</p>


<p class="wp-block-paragraph">&nbsp; Serial.println(&#8220;MPU6050 Found!&#8221;);</p>


<p class="wp-block-paragraph">&nbsp; mpu.setAccelerometerRange(MPU6050_RANGE_8_G);</p>


<p class="wp-block-paragraph">&nbsp; Serial.print(&#8220;Accelerometer range set to: &#8220;);</p>


<p class="wp-block-paragraph">&nbsp; switch (mpu.getAccelerometerRange()) {</p>


<p class="wp-block-paragraph">&nbsp; case MPU6050_RANGE_2_G:</p>


<p class="wp-block-paragraph">&nbsp; &nbsp; Serial.println(&#8220;+-2G&#8221;);</p>


<p class="wp-block-paragraph">&nbsp; &nbsp; break;</p>


<p class="wp-block-paragraph">&nbsp; case MPU6050_RANGE_4_G:</p>


<p class="wp-block-paragraph">&nbsp; &nbsp; Serial.println(&#8220;+-4G&#8221;);</p>


<p class="wp-block-paragraph">&nbsp; &nbsp; break;</p>


<p class="wp-block-paragraph">&nbsp; case MPU6050_RANGE_8_G:</p>


<p class="wp-block-paragraph">&nbsp; &nbsp; Serial.println(&#8220;+-8G&#8221;);</p>


<p class="wp-block-paragraph">&nbsp; &nbsp; break;</p>


<p class="wp-block-paragraph">&nbsp; case MPU6050_RANGE_16_G:</p>


<p class="wp-block-paragraph">&nbsp; &nbsp; Serial.println(&#8220;+-16G&#8221;);</p>


<p class="wp-block-paragraph">&nbsp; &nbsp; break;</p>


<p class="wp-block-paragraph">&nbsp; }</p>


<p class="wp-block-paragraph">&nbsp; mpu.setGyroRange(MPU6050_RANGE_500_DEG);</p>


<p class="wp-block-paragraph">&nbsp; Serial.print(&#8220;Gyro range set to: &#8220;);</p>


<p class="wp-block-paragraph">&nbsp; switch (mpu.getGyroRange()) {</p>


<p class="wp-block-paragraph">&nbsp; case MPU6050_RANGE_250_DEG:</p>


<p class="wp-block-paragraph">&nbsp; &nbsp; Serial.println(&#8220;+- 250 deg/s&#8221;);</p>


<p class="wp-block-paragraph">&nbsp; &nbsp; break;</p>


<p class="wp-block-paragraph">&nbsp; case MPU6050_RANGE_500_DEG:</p>


<p class="wp-block-paragraph">&nbsp; &nbsp; Serial.println(&#8220;+- 500 deg/s&#8221;);</p>


<p class="wp-block-paragraph">&nbsp; &nbsp; break;</p>


<p class="wp-block-paragraph">&nbsp; case MPU6050_RANGE_1000_DEG:</p>


<p class="wp-block-paragraph">&nbsp; &nbsp; Serial.println(&#8220;+- 1000 deg/s&#8221;);</p>


<p class="wp-block-paragraph">&nbsp; &nbsp; break;</p>


<p class="wp-block-paragraph">&nbsp; case MPU6050_RANGE_2000_DEG:</p>


<p class="wp-block-paragraph">&nbsp; &nbsp; Serial.println(&#8220;+- 2000 deg/s&#8221;);</p>


<p class="wp-block-paragraph">&nbsp; &nbsp; break;</p>


<p class="wp-block-paragraph">&nbsp; }</p>


<p class="wp-block-paragraph">&nbsp; mpu.setFilterBandwidth(MPU6050_BAND_21_HZ);</p>


<p class="wp-block-paragraph">&nbsp; Serial.print(&#8220;Filter bandwidth set to: &#8220;);</p>


<p class="wp-block-paragraph">&nbsp; switch (mpu.getFilterBandwidth()) {</p>


<p class="wp-block-paragraph">&nbsp; case MPU6050_BAND_260_HZ:</p>


<p class="wp-block-paragraph">&nbsp; &nbsp; Serial.println(&#8220;260 Hz&#8221;);</p>


<p class="wp-block-paragraph">&nbsp; &nbsp; break;</p>


<p class="wp-block-paragraph">&nbsp; case MPU6050_BAND_184_HZ:</p>


<p class="wp-block-paragraph">&nbsp; &nbsp; Serial.println(&#8220;184 Hz&#8221;);</p>


<p class="wp-block-paragraph">&nbsp; &nbsp; break;</p>


<p class="wp-block-paragraph">&nbsp; case MPU6050_BAND_94_HZ:</p>


<p class="wp-block-paragraph">&nbsp; &nbsp; Serial.println(&#8220;94 Hz&#8221;);</p>


<p class="wp-block-paragraph">&nbsp; &nbsp; break;</p>


<p class="wp-block-paragraph">&nbsp; case MPU6050_BAND_44_HZ:</p>


<p class="wp-block-paragraph">&nbsp; &nbsp; Serial.println(&#8220;44 Hz&#8221;);</p>


<p class="wp-block-paragraph">&nbsp; &nbsp; break;</p>


<p class="wp-block-paragraph">&nbsp; case MPU6050_BAND_21_HZ:</p>


<p class="wp-block-paragraph">&nbsp; &nbsp; Serial.println(&#8220;21 Hz&#8221;);</p>


<p class="wp-block-paragraph">&nbsp; &nbsp; break;</p>


<p class="wp-block-paragraph">&nbsp; case MPU6050_BAND_10_HZ:</p>


<p class="wp-block-paragraph">&nbsp; &nbsp; Serial.println(&#8220;10 Hz&#8221;);</p>


<p class="wp-block-paragraph">&nbsp; &nbsp; break;</p>


<p class="wp-block-paragraph">&nbsp; case MPU6050_BAND_5_HZ:</p>


<p class="wp-block-paragraph">&nbsp; &nbsp; Serial.println(&#8220;5 Hz&#8221;);</p>


<p class="wp-block-paragraph">&nbsp; &nbsp; break;</p>


<p class="wp-block-paragraph">&nbsp; }</p>


<p class="wp-block-paragraph">&nbsp; Serial.println(&#8220;&#8221;);</p>


<p class="wp-block-paragraph">&nbsp; delay(100);</p>


<p class="wp-block-paragraph">&nbsp; /*</p>


<p class="wp-block-paragraph">&nbsp; &nbsp;The MAX72XX is in power-saving mode on startup,</p>


<p class="wp-block-paragraph">&nbsp; &nbsp;we have to do a wakeup call</p>


<p class="wp-block-paragraph">&nbsp; &nbsp;*/</p>


<p class="wp-block-paragraph">&nbsp; lc.shutdown(0,false);</p>


<p class="wp-block-paragraph">&nbsp; /* Set the brightness to a medium values */</p>


<p class="wp-block-paragraph">&nbsp; lc.setIntensity(0,8);</p>


<p class="wp-block-paragraph">&nbsp; /* and clear the display */</p>


<p class="wp-block-paragraph">&nbsp; lc.clearDisplay(0);</p>


<p class="wp-block-paragraph">}</p>


<p class="wp-block-paragraph">/*</p>


<p class="wp-block-paragraph">&nbsp;This method will display the characters for the</p>


<p class="wp-block-paragraph">&nbsp;word &#8220;Arduino&#8221; one after the other on the matrix.</p>


<p class="wp-block-paragraph">&nbsp;(you need at least 5&#215;7 leds to see the whole chars)</p>


<p class="wp-block-paragraph">&nbsp;*/</p>


<p class="wp-block-paragraph">&nbsp;//y ekseni</p>


<p class="wp-block-paragraph">void middle() {</p>


<p class="wp-block-paragraph">&nbsp; /* here is the data for the characters */</p>


<p class="wp-block-paragraph">&nbsp; byte ball[8]={B11111111,B10000001,B10000001,B10011001,B10011001,B10000001,B10000001,B11111111};</p>


<p class="wp-block-paragraph">&nbsp; /* now display them one by one with a small delay */</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,0,ball[0]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,1,ball[1]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,2,ball[2]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,3,ball[3]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,4,ball[4]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,5,ball[5]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,6,ball[6]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,7,ball[7]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,8,ball[8]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,0,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,1,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,2,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,3,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,4,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,5,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,6,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,7,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,8,0);</p>


<p class="wp-block-paragraph">}</p>


<p class="wp-block-paragraph">void middletop1() {</p>


<p class="wp-block-paragraph">&nbsp; /* here is the data for the characters */</p>


<p class="wp-block-paragraph">&nbsp; byte ball[8]={B11111111,B10000001,B10011001,B10011001,B10000001,B10000001,B10000001,B11111111};</p>


<p class="wp-block-paragraph">&nbsp; /* now display them one by one with a small delay */</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,0,ball[0]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,1,ball[1]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,2,ball[2]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,3,ball[3]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,4,ball[4]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,5,ball[5]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,6,ball[6]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,7,ball[7]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,8,ball[8]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,0,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,1,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,2,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,3,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,4,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,5,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,6,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,7,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,8,0);</p>


<p class="wp-block-paragraph">}</p>


<p class="wp-block-paragraph">void middletop2() {</p>


<p class="wp-block-paragraph">&nbsp; /* here is the data for the characters */</p>


<p class="wp-block-paragraph">&nbsp; byte ball[8]={B11111111,B10011001,B10011001,B10000001,B10000001,B10000001,B10000001,B11111111};</p>


<p class="wp-block-paragraph">&nbsp; /* now display them one by one with a small delay */</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,0,ball[0]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,1,ball[1]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,2,ball[2]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,3,ball[3]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,4,ball[4]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,5,ball[5]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,6,ball[6]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,7,ball[7]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,8,ball[8]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,0,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,1,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,2,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,3,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,4,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,5,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,6,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,7,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,8,0);</p>


<p class="wp-block-paragraph">}</p>


<p class="wp-block-paragraph">void middlebottom1() {</p>


<p class="wp-block-paragraph">&nbsp; /* here is the data for the characters */</p>


<p class="wp-block-paragraph">&nbsp; byte ball[8]={B11111111,B10000001,B10000001,B10000001,B10011001,B10011001,B10000001,B11111111};</p>


<p class="wp-block-paragraph">&nbsp; /* now display them one by one with a small delay */</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,0,ball[0]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,1,ball[1]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,2,ball[2]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,3,ball[3]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,4,ball[4]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,5,ball[5]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,6,ball[6]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,7,ball[7]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,8,ball[8]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,0,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,1,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,2,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,3,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,4,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,5,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,6,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,7,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,8,0);</p>


<p class="wp-block-paragraph">}</p>


<p class="wp-block-paragraph">void middlebottom2() {</p>


<p class="wp-block-paragraph">&nbsp; /* here is the data for the characters */</p>


<p class="wp-block-paragraph">&nbsp; byte ball[8]={B11111111,B10000001,B10000001,B10000001,B10000001,B10011001,B10011001,B11111111};</p>


<p class="wp-block-paragraph">&nbsp; /* now display them one by one with a small delay */</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,0,ball[0]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,1,ball[1]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,2,ball[2]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,3,ball[3]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,4,ball[4]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,5,ball[5]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,6,ball[6]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,7,ball[7]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,8,ball[8]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,0,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,1,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,2,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,3,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,4,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,5,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,6,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,7,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,8,0);</p>


<p class="wp-block-paragraph">}</p>


<p class="wp-block-paragraph">//y ekseni bitiş</p>


<p class="wp-block-paragraph">//x ekseni başlangıç</p>


<p class="wp-block-paragraph">void middleright1() {</p>


<p class="wp-block-paragraph">&nbsp; /* here is the data for the characters */</p>


<p class="wp-block-paragraph">&nbsp; byte ball[8]={B11111111,B10000001,B10000001,B10001101,B10001101,B10000001,B10000001,B11111111};</p>


<p class="wp-block-paragraph">&nbsp; /* now display them one by one with a small delay */</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,0,ball[0]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,1,ball[1]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,2,ball[2]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,3,ball[3]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,4,ball[4]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,5,ball[5]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,6,ball[6]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,7,ball[7]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,8,ball[8]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,0,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,1,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,2,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,3,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,4,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,5,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,6,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,7,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,8,0);</p>


<p class="wp-block-paragraph">}</p>


<p class="wp-block-paragraph">void middleright2() {</p>


<p class="wp-block-paragraph">&nbsp; /* here is the data for the characters */</p>


<p class="wp-block-paragraph">&nbsp; byte ball[8]={B11111111,B10000001,B10000001,B10000111,B10000111,B10000001,B10000001,B11111111};</p>


<p class="wp-block-paragraph">&nbsp; /* now display them one by one with a small delay */</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,0,ball[0]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,1,ball[1]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,2,ball[2]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,3,ball[3]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,4,ball[4]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,5,ball[5]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,6,ball[6]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,7,ball[7]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,8,ball[8]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,0,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,1,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,2,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,3,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,4,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,5,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,6,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,7,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,8,0);</p>


<p class="wp-block-paragraph">}</p>


<p class="wp-block-paragraph">void middleleft1() {</p>


<p class="wp-block-paragraph">&nbsp; /* here is the data for the characters */</p>


<p class="wp-block-paragraph">&nbsp; byte ball[8]={B11111111,B10000001,B10000001,B10110001,B10110001,B10000001,B10000001,B11111111};</p>


<p class="wp-block-paragraph">&nbsp; /* now display them one by one with a small delay */</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,0,ball[0]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,1,ball[1]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,2,ball[2]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,3,ball[3]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,4,ball[4]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,5,ball[5]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,6,ball[6]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,7,ball[7]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,8,ball[8]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,0,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,1,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,2,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,3,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,4,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,5,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,6,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,7,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,8,0);</p>


<p class="wp-block-paragraph">}</p>


<p class="wp-block-paragraph">void middleleft2() {</p>


<p class="wp-block-paragraph">&nbsp; /* here is the data for the characters */</p>


<p class="wp-block-paragraph">&nbsp; byte ball[8]={B11111111,B10000001,B10000001,B11100001,B11100001,B10000001,B10000001,B11111111};</p>


<p class="wp-block-paragraph">&nbsp; /* now display them one by one with a small delay */</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,0,ball[0]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,1,ball[1]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,2,ball[2]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,3,ball[3]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,4,ball[4]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,5,ball[5]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,6,ball[6]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,7,ball[7]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,8,ball[8]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,0,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,1,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,2,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,3,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,4,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,5,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,6,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,7,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,8,0);</p>


<p class="wp-block-paragraph">}</p>


<p class="wp-block-paragraph">//x ekseni bitiş</p>


<p class="wp-block-paragraph">//1. alan</p>


<p class="wp-block-paragraph">void area1topright1() {</p>


<p class="wp-block-paragraph">&nbsp; /* here is the data for the characters */</p>


<p class="wp-block-paragraph">&nbsp; byte ball[8]={B11111111,B10000001,B10001101,B10001101,B10000001,B10000001,B10000001,B11111111};</p>


<p class="wp-block-paragraph">&nbsp; /* now display them one by one with a small delay */</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,0,ball[0]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,1,ball[1]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,2,ball[2]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,3,ball[3]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,4,ball[4]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,5,ball[5]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,6,ball[6]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,7,ball[7]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,8,ball[8]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,0,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,1,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,2,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,3,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,4,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,5,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,6,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,7,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,8,0);</p>


<p class="wp-block-paragraph">}</p>


<p class="wp-block-paragraph">void area1topright2() {</p>


<p class="wp-block-paragraph">&nbsp; /* here is the data for the characters */</p>


<p class="wp-block-paragraph">&nbsp; byte ball[8]={B11111111,B10001101,B10001101,B10000001,B10000001,B10000001,B10000001,B11111111};</p>


<p class="wp-block-paragraph">&nbsp; /* now display them one by one with a small delay */</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,0,ball[0]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,1,ball[1]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,2,ball[2]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,3,ball[3]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,4,ball[4]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,5,ball[5]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,6,ball[6]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,7,ball[7]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,8,ball[8]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,0,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,1,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,2,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,3,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,4,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,5,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,6,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,7,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,8,0);</p>


<p class="wp-block-paragraph">}</p>


<p class="wp-block-paragraph">void area1topright4() {</p>


<p class="wp-block-paragraph">&nbsp; /* here is the data for the characters */</p>


<p class="wp-block-paragraph">&nbsp; byte ball[8]={B11111111,B10000001,B10000111,B10000111,B10000001,B10000001,B10000001,B11111111};</p>


<p class="wp-block-paragraph">&nbsp; /* now display them one by one with a small delay */</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,0,ball[0]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,1,ball[1]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,2,ball[2]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,3,ball[3]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,4,ball[4]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,5,ball[5]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,6,ball[6]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,7,ball[7]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,8,ball[8]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,0,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,1,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,2,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,3,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,4,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,5,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,6,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,7,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,8,0);</p>


<p class="wp-block-paragraph">}</p>


<p class="wp-block-paragraph">void area1topright5() {</p>


<p class="wp-block-paragraph">&nbsp; /* here is the data for the characters */</p>


<p class="wp-block-paragraph">&nbsp; byte ball[8]={B11111111,B10000111,B10000111,B10000001,B10000001,B10000001,B10000001,B11111111};</p>


<p class="wp-block-paragraph">&nbsp; /* now display them one by one with a small delay */</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,0,ball[0]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,1,ball[1]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,2,ball[2]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,3,ball[3]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,4,ball[4]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,5,ball[5]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,6,ball[6]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,7,ball[7]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,8,ball[8]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,0,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,1,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,2,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,3,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,4,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,5,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,6,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,7,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,8,0);</p>


<p class="wp-block-paragraph">}</p>


<p class="wp-block-paragraph">void area1topright7() {</p>


<p class="wp-block-paragraph">&nbsp; /* here is the data for the characters */</p>


<p class="wp-block-paragraph">&nbsp; byte ball[8]={B11111111,B10000001,B10000111,B10000111,B10000001,B10000001,B10000001,B11111111};</p>


<p class="wp-block-paragraph">&nbsp; /* now display them one by one with a small delay */</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,0,ball[0]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,1,ball[1]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,2,ball[2]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,3,ball[3]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,4,ball[4]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,5,ball[5]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,6,ball[6]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,7,ball[7]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,8,ball[8]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,0,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,1,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,2,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,3,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,4,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,5,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,6,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,7,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,8,0);</p>


<p class="wp-block-paragraph">}</p>


<p class="wp-block-paragraph">void area1topright8() {</p>


<p class="wp-block-paragraph">&nbsp; /* here is the data for the characters */</p>


<p class="wp-block-paragraph">&nbsp; byte ball[8]={B11111111,B01000111,B10000111,B10000001,B10000001,B10000001,B10000001,B11111111};</p>


<p class="wp-block-paragraph">&nbsp; /* now display them one by one with a small delay */</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,0,ball[0]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,1,ball[1]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,2,ball[2]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,3,ball[3]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,4,ball[4]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,5,ball[5]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,6,ball[6]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,7,ball[7]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,8,ball[8]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,0,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,1,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,2,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,3,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,4,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,5,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,6,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,7,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,8,0);</p>


<p class="wp-block-paragraph">}</p>


<p class="wp-block-paragraph">//1. alan bitiş</p>


<p class="wp-block-paragraph">//2. alan</p>


<p class="wp-block-paragraph">void area2left1() {</p>


<p class="wp-block-paragraph">&nbsp; /* here is the data for the characters */</p>


<p class="wp-block-paragraph">&nbsp; byte ball[8]={B11111111,B10000001,B10110001,B10110001,B10000001,B10000001,B10000001,B11111111};</p>


<p class="wp-block-paragraph">&nbsp; /* now display them one by one with a small delay */</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,0,ball[0]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,1,ball[1]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,2,ball[2]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,3,ball[3]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,4,ball[4]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,5,ball[5]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,6,ball[6]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,7,ball[7]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,8,ball[8]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,0,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,1,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,2,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,3,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,4,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,5,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,6,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,7,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,8,0);</p>


<p class="wp-block-paragraph">}</p>


<p class="wp-block-paragraph">void area2left2() {</p>


<p class="wp-block-paragraph">&nbsp; /* here is the data for the characters */</p>


<p class="wp-block-paragraph">&nbsp; byte ball[8]={B11111111,B10110001,B10110001,B10000001,B10000001,B10000001,B10000001,B11111111};</p>


<p class="wp-block-paragraph">&nbsp; /* now display them one by one with a small delay */</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,0,ball[0]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,1,ball[1]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,2,ball[2]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,3,ball[3]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,4,ball[4]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,5,ball[5]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,6,ball[6]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,7,ball[7]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,8,ball[8]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,0,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,1,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,2,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,3,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,4,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,5,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,6,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,7,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,8,0);</p>


<p class="wp-block-paragraph">}</p>


<p class="wp-block-paragraph">void area2left4() {</p>


<p class="wp-block-paragraph">&nbsp; /* here is the data for the characters */</p>


<p class="wp-block-paragraph">&nbsp; byte ball[8]={B11111111,B10000001,B11100001,B11100001,B10000001,B10000001,B10000001,B11111111};</p>


<p class="wp-block-paragraph">&nbsp; /* now display them one by one with a small delay */</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,0,ball[0]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,1,ball[1]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,2,ball[2]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,3,ball[3]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,4,ball[4]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,5,ball[5]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,6,ball[6]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,7,ball[7]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,8,ball[8]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,0,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,1,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,2,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,3,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,4,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,5,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,6,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,7,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,8,0);</p>


<p class="wp-block-paragraph">}</p>


<p class="wp-block-paragraph">void area2left5() {</p>


<p class="wp-block-paragraph">&nbsp; /* here is the data for the characters */</p>


<p class="wp-block-paragraph">&nbsp; byte ball[8]={B11111111,B11100001,B11100001,B10000001,B10000001,B10000001,B10000001,B11111111};</p>


<p class="wp-block-paragraph">&nbsp; /* now display them one by one with a small delay */</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,0,ball[0]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,1,ball[1]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,2,ball[2]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,3,ball[3]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,4,ball[4]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,5,ball[5]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,6,ball[6]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,7,ball[7]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,8,ball[8]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,0,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,1,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,2,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,3,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,4,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,5,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,6,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,7,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,8,0);</p>


<p class="wp-block-paragraph">}</p>


<p class="wp-block-paragraph">//2. alan bitiş</p>


<p class="wp-block-paragraph">//3. alan</p>


<p class="wp-block-paragraph">void area3left1() {</p>


<p class="wp-block-paragraph">&nbsp; /* here is the data for the characters */</p>


<p class="wp-block-paragraph">&nbsp; byte ball[8]={B11111111,B10000001,B10000001,B10000001,B10110001,B10110001,B10000001,B11111111};</p>


<p class="wp-block-paragraph">&nbsp; /* now display them one by one with a small delay */</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,0,ball[0]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,1,ball[1]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,2,ball[2]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,3,ball[3]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,4,ball[4]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,5,ball[5]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,6,ball[6]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,7,ball[7]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,8,ball[8]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,0,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,1,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,2,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,3,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,4,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,5,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,6,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,7,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,8,0);</p>


<p class="wp-block-paragraph">}</p>


<p class="wp-block-paragraph">void area3left2() {</p>


<p class="wp-block-paragraph">&nbsp; /* here is the data for the characters */</p>


<p class="wp-block-paragraph">&nbsp; byte ball[8]={B11111111,B10000001,B10000001,B10000001,B10000001,B10110001,B10110001,B11111111};</p>


<p class="wp-block-paragraph">&nbsp; /* now display them one by one with a small delay */</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,0,ball[0]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,1,ball[1]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,2,ball[2]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,3,ball[3]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,4,ball[4]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,5,ball[5]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,6,ball[6]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,7,ball[7]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,8,ball[8]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,0,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,1,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,2,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,3,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,4,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,5,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,6,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,7,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,8,0);</p>


<p class="wp-block-paragraph">}</p>


<p class="wp-block-paragraph">void area3left4() {</p>


<p class="wp-block-paragraph">&nbsp; /* here is the data for the characters */</p>


<p class="wp-block-paragraph">&nbsp; byte ball[8]={B11111111,B10000001,B10000001,B10000001,B11100001,B11100001,B10000001,B11111111};</p>


<p class="wp-block-paragraph">&nbsp; /* now display them one by one with a small delay */</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,0,ball[0]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,1,ball[1]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,2,ball[2]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,3,ball[3]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,4,ball[4]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,5,ball[5]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,6,ball[6]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,7,ball[7]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,8,ball[8]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,0,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,1,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,2,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,3,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,4,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,5,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,6,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,7,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,8,0);</p>


<p class="wp-block-paragraph">}</p>


<p class="wp-block-paragraph">void area3left5() {</p>


<p class="wp-block-paragraph">&nbsp; /* here is the data for the characters */</p>


<p class="wp-block-paragraph">&nbsp; byte ball[8]={B11111111,B10000001,B10000001,B10000001,B10000001,B11100001,B11100001,B11111111};</p>


<p class="wp-block-paragraph">&nbsp; /* now display them one by one with a small delay */</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,0,ball[0]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,1,ball[1]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,2,ball[2]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,3,ball[3]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,4,ball[4]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,5,ball[5]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,6,ball[6]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,7,ball[7]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,8,ball[8]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,0,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,1,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,2,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,3,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,4,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,5,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,6,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,7,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,8,0);</p>


<p class="wp-block-paragraph">}</p>


<p class="wp-block-paragraph">//3. alan bitiş</p>


<p class="wp-block-paragraph">//4. alan</p>


<p class="wp-block-paragraph">void area4right1() {</p>


<p class="wp-block-paragraph">&nbsp; /* here is the data for the characters */</p>


<p class="wp-block-paragraph">&nbsp; byte ball[8]={B11111111,B10000001,B10000001,B10000001,B10001101,B10001101,B10000001,B11111111};</p>


<p class="wp-block-paragraph">&nbsp; /* now display them one by one with a small delay */</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,0,ball[0]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,1,ball[1]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,2,ball[2]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,3,ball[3]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,4,ball[4]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,5,ball[5]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,6,ball[6]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,7,ball[7]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,8,ball[8]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,0,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,1,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,2,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,3,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,4,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,5,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,6,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,7,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,8,0);</p>


<p class="wp-block-paragraph">}</p>


<p class="wp-block-paragraph">void area4right2() {</p>


<p class="wp-block-paragraph">&nbsp; /* here is the data for the characters */</p>


<p class="wp-block-paragraph">&nbsp; byte ball[8]={B11111111,B10000001,B10000001,B10000001,B10000001,B10001101,B10001101,B11111111};</p>


<p class="wp-block-paragraph">&nbsp; /* now display them one by one with a small delay */</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,0,ball[0]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,1,ball[1]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,2,ball[2]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,3,ball[3]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,4,ball[4]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,5,ball[5]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,6,ball[6]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,7,ball[7]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,8,ball[8]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,0,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,1,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,2,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,3,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,4,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,5,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,6,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,7,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,8,0);</p>


<p class="wp-block-paragraph">}</p>


<p class="wp-block-paragraph">void area4right4() {</p>


<p class="wp-block-paragraph">&nbsp; /* here is the data for the characters */</p>


<p class="wp-block-paragraph">&nbsp; byte ball[8]={B11111111,B10000001,B10000001,B10000001,B10000111,B10000111,B10000001,B11111111};</p>


<p class="wp-block-paragraph">&nbsp; /* now display them one by one with a small delay */</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,0,ball[0]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,1,ball[1]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,2,ball[2]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,3,ball[3]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,4,ball[4]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,5,ball[5]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,6,ball[6]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,7,ball[7]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,8,ball[8]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,0,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,1,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,2,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,3,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,4,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,5,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,6,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,7,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,8,0);</p>


<p class="wp-block-paragraph">}</p>


<p class="wp-block-paragraph">void area4right5() {</p>


<p class="wp-block-paragraph">&nbsp; /* here is the data for the characters */</p>


<p class="wp-block-paragraph">&nbsp; byte ball[8]={B11111111,B10000001,B10000001,B10000001,B10000001,B10000111,B10000111,B11111111};</p>


<p class="wp-block-paragraph">&nbsp; /* now display them one by one with a small delay */</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,0,ball[0]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,1,ball[1]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,2,ball[2]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,3,ball[3]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,4,ball[4]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,5,ball[5]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,6,ball[6]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,7,ball[7]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,8,ball[8]);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,0,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,1,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,2,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,3,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,4,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,5,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,6,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,7,0);</p>


<p class="wp-block-paragraph">&nbsp; lc.setRow(0,8,0);</p>


<p class="wp-block-paragraph">}</p>


<p class="wp-block-paragraph">void loop() {</p>


<p class="wp-block-paragraph">&nbsp; sensors_event_t a, g, temp;</p>


<p class="wp-block-paragraph">&nbsp; mpu.getEvent(&amp;a, &amp;g, &amp;temp);</p>


<p class="wp-block-paragraph">&nbsp; if ( a.acceleration.x&lt;2.5 &amp;&amp; a.acceleration.x&gt;0 &amp;&amp; a.acceleration.y&lt;2.5 &amp;&amp; a.acceleration.y&gt;0 ){</p>


<p class="wp-block-paragraph">&nbsp; &nbsp; middle();</p>


<p class="wp-block-paragraph">&nbsp; }</p>


<p class="wp-block-paragraph">&nbsp; //y ekseni if-else</p>


<p class="wp-block-paragraph">&nbsp; if ( a.acceleration.x&lt;2.5 &amp;&amp; a.acceleration.x&gt;-2.5 &amp;&amp; a.acceleration.y&lt;5 &amp;&amp; a.acceleration.y&gt;2.5 ){</p>


<p class="wp-block-paragraph">&nbsp; &nbsp; middletop1();</p>


<p class="wp-block-paragraph">&nbsp; }</p>


<p class="wp-block-paragraph">&nbsp; if ( a.acceleration.x&lt;2.5 &amp;&amp; a.acceleration.x&gt;-2.5 &amp;&amp; a.acceleration.y&lt;7.5 &amp;&amp; a.acceleration.y&gt;5 ){</p>


<p class="wp-block-paragraph">&nbsp; &nbsp; middletop2();</p>


<p class="wp-block-paragraph">&nbsp; }</p>


<p class="wp-block-paragraph">&nbsp; if ( a.acceleration.x&lt;2.5 &amp;&amp; a.acceleration.x&gt;-2.5 &amp;&amp; a.acceleration.y&lt;0 &amp;&amp; a.acceleration.y&gt;-2.5 ){</p>


<p class="wp-block-paragraph">&nbsp; &nbsp; middlebottom1();</p>


<p class="wp-block-paragraph">&nbsp; }</p>


<p class="wp-block-paragraph">&nbsp; if ( a.acceleration.x&lt;2.5 &amp;&amp; a.acceleration.x&gt;-2.5 &amp;&amp; a.acceleration.y&lt;-2.5 &amp;&amp; a.acceleration.y&gt;-5 ){</p>


<p class="wp-block-paragraph">&nbsp; &nbsp; middlebottom2();</p>


<p class="wp-block-paragraph">&nbsp; }</p>


<p class="wp-block-paragraph">&nbsp; //y ekseni if bitiş</p>


<p class="wp-block-paragraph">&nbsp; //x ekseni if</p>


<p class="wp-block-paragraph">&nbsp; if ( a.acceleration.x&lt;5 &amp;&amp; a.acceleration.x&gt;2.5 &amp;&amp; a.acceleration.y&lt;2.5 &amp;&amp; a.acceleration.y&gt;-2.5 ){</p>


<p class="wp-block-paragraph">&nbsp; &nbsp; middleright1();</p>


<p class="wp-block-paragraph">&nbsp; }</p>


<p class="wp-block-paragraph">&nbsp; if ( a.acceleration.x&lt;7.5 &amp;&amp; a.acceleration.x&gt;5 &amp;&amp; a.acceleration.y&lt;2.5 &amp;&amp; a.acceleration.y&gt;-2.5 ){</p>


<p class="wp-block-paragraph">&nbsp; &nbsp; middleright2();</p>


<p class="wp-block-paragraph">&nbsp; }</p>


<p class="wp-block-paragraph">&nbsp; if ( a.acceleration.x&lt;-2.5 &amp;&amp; a.acceleration.x&gt;-5 &amp;&amp; a.acceleration.y&lt;2.5 &amp;&amp; a.acceleration.y&gt;-2.5 ){</p>


<p class="wp-block-paragraph">&nbsp; &nbsp; middleleft1();</p>


<p class="wp-block-paragraph">&nbsp; }</p>


<p class="wp-block-paragraph">&nbsp; if ( a.acceleration.x&lt;-5 &amp;&amp; a.acceleration.x&gt;-7.5 &amp;&amp; a.acceleration.y&lt;2.5 &amp;&amp; a.acceleration.y&gt;-2.5 ){</p>


<p class="wp-block-paragraph">&nbsp; &nbsp; middleleft2();</p>


<p class="wp-block-paragraph">&nbsp; }</p>


<p class="wp-block-paragraph">&nbsp; //x ekseni if bitiş</p>


<p class="wp-block-paragraph">&nbsp; //1. alan if</p>


<p class="wp-block-paragraph">&nbsp; if ( a.acceleration.x&lt;5 &amp;&amp; a.acceleration.x&gt;2.5 &amp;&amp; a.acceleration.y&lt;5 &amp;&amp; a.acceleration.y&gt;2.5 ){</p>


<p class="wp-block-paragraph">&nbsp; &nbsp; area1topright1();</p>


<p class="wp-block-paragraph">&nbsp; }</p>


<p class="wp-block-paragraph">&nbsp; if ( a.acceleration.x&lt;5 &amp;&amp; a.acceleration.x&gt;2.5 &amp;&amp; a.acceleration.y&lt;7.5 &amp;&amp; a.acceleration.y&gt;5 ){</p>


<p class="wp-block-paragraph">&nbsp; &nbsp; area1topright2();</p>


<p class="wp-block-paragraph">&nbsp; }</p>


<p class="wp-block-paragraph">&nbsp; if ( a.acceleration.x&lt;7.5 &amp;&amp; a.acceleration.x&gt;5 &amp;&amp; a.acceleration.y&lt;5 &amp;&amp; a.acceleration.y&gt;2.5 )</p>


<p class="wp-block-paragraph">&nbsp; {</p>


<p class="wp-block-paragraph">&nbsp; &nbsp; area1topright4();</p>


<p class="wp-block-paragraph">&nbsp; }</p>


<p class="wp-block-paragraph">&nbsp; if ( a.acceleration.x&lt;7.5 &amp;&amp; a.acceleration.x&gt;5 &amp;&amp; a.acceleration.y&lt;7.5 &amp;&amp; a.acceleration.y&gt;5 ){</p>


<p class="wp-block-paragraph">&nbsp; &nbsp; area1topright5();</p>


<p class="wp-block-paragraph">&nbsp; }</p>


<p class="wp-block-paragraph">&nbsp; //1. alan bitti</p>


<p class="wp-block-paragraph">&nbsp; //2. alan</p>


<p class="wp-block-paragraph">&nbsp; if ( a.acceleration.x&lt;-2.5 &amp;&amp; a.acceleration.x&gt;-5 &amp;&amp; a.acceleration.y&lt;5 &amp;&amp; a.acceleration.y&gt;2.5 ){</p>


<p class="wp-block-paragraph">&nbsp; &nbsp; area2left1();</p>


<p class="wp-block-paragraph">&nbsp; }</p>


<p class="wp-block-paragraph">&nbsp; if ( a.acceleration.x&lt;-2.5 &amp;&amp; a.acceleration.x&gt;-5 &amp;&amp; a.acceleration.y&lt;10 &amp;&amp; a.acceleration.y&gt;5 ){</p>


<p class="wp-block-paragraph">&nbsp; &nbsp; area2left2();</p>


<p class="wp-block-paragraph">&nbsp; }</p>


<p class="wp-block-paragraph">&nbsp; if ( a.acceleration.x&lt;-5 &amp;&amp; a.acceleration.x&gt;-10 &amp;&amp; a.acceleration.y&lt;5 &amp;&amp; a.acceleration.y&gt;2.5 ){</p>


<p class="wp-block-paragraph">&nbsp; &nbsp; area2left4();</p>


<p class="wp-block-paragraph">&nbsp; }</p>


<p class="wp-block-paragraph">&nbsp; if ( a.acceleration.x&lt;-5 &amp;&amp; a.acceleration.x&gt;-10 &amp;&amp; a.acceleration.y&lt;10 &amp;&amp; a.acceleration.y&gt;5 ){</p>


<p class="wp-block-paragraph">&nbsp; &nbsp; area2left5();</p>


<p class="wp-block-paragraph">&nbsp; }</p>


<p class="wp-block-paragraph">&nbsp; //2. alan bitti</p>


<p class="wp-block-paragraph">&nbsp; //3. alan</p>


<p class="wp-block-paragraph">&nbsp; if ( a.acceleration.x&lt;-2.5 &amp;&amp; a.acceleration.x&gt;-5 &amp;&amp; a.acceleration.y&lt;-2.5 &amp;&amp; a.acceleration.y&gt;-5 ){</p>


<p class="wp-block-paragraph">&nbsp; &nbsp; area3left1();</p>


<p class="wp-block-paragraph">&nbsp; }</p>


<p class="wp-block-paragraph">&nbsp; if ( a.acceleration.x&lt;-2.5 &amp;&amp; a.acceleration.x&gt;-5 &amp;&amp; a.acceleration.y&lt;-5 &amp;&amp; a.acceleration.y&gt;=-10 ){</p>


<p class="wp-block-paragraph">&nbsp; &nbsp; area3left2();</p>


<p class="wp-block-paragraph">&nbsp; }</p>


<p class="wp-block-paragraph">&nbsp; if ( a.acceleration.x&lt;-5 &amp;&amp; a.acceleration.x&gt;-10 &amp;&amp; a.acceleration.y&lt;-2.5 &amp;&amp; a.acceleration.y&gt;-5 ){</p>


<p class="wp-block-paragraph">&nbsp; &nbsp; area3left4();</p>


<p class="wp-block-paragraph">&nbsp; }</p>


<p class="wp-block-paragraph">&nbsp; if ( a.acceleration.x&lt;-5 &amp;&amp; a.acceleration.x&gt;-10 &amp;&amp; a.acceleration.y&lt;-5 &amp;&amp; a.acceleration.y&gt;-10 ){</p>


<p class="wp-block-paragraph">&nbsp; &nbsp; area3left5();</p>


<p class="wp-block-paragraph">&nbsp; }</p>


<p class="wp-block-paragraph">&nbsp; //3. alan bitti</p>


<p class="wp-block-paragraph">&nbsp; //4. alan</p>


<p class="wp-block-paragraph">&nbsp; if ( a.acceleration.x&lt;5 &amp;&amp; a.acceleration.x&gt;2.5 &amp;&amp; a.acceleration.y&lt;-2.5 &amp;&amp; a.acceleration.y&gt;-5 ){</p>


<p class="wp-block-paragraph">&nbsp; &nbsp; area4right1();</p>


<p class="wp-block-paragraph">&nbsp; }</p>


<p class="wp-block-paragraph">&nbsp; if ( a.acceleration.x&lt;5 &amp;&amp; a.acceleration.x&gt;2.5 &amp;&amp; a.acceleration.y&lt;-5 &amp;&amp; a.acceleration.y&gt;-10 ){</p>


<p class="wp-block-paragraph">&nbsp; &nbsp; area4right2();</p>


<p class="wp-block-paragraph">&nbsp; }</p>


<p class="wp-block-paragraph">&nbsp; if ( a.acceleration.x&lt;10 &amp;&amp; a.acceleration.x&gt;5 &amp;&amp; a.acceleration.y&lt;-2.5 &amp;&amp; a.acceleration.y&gt;=-5 ){</p>


<p class="wp-block-paragraph">&nbsp; &nbsp; area4right4();</p>


<p class="wp-block-paragraph">&nbsp; }</p>


<p class="wp-block-paragraph">&nbsp; if ( a.acceleration.x&lt;10 &amp;&amp; a.acceleration.x&gt;5 &amp;&amp; a.acceleration.y&lt;-5 &amp;&amp; a.acceleration.y&gt;-10 ){</p>


<p class="wp-block-paragraph">&nbsp; &nbsp; area4right5();</p>


<p class="wp-block-paragraph">&nbsp; }</p>


<p class="wp-block-paragraph">}</p>

</div></details>

</div>



<p class="wp-block-paragraph"></p>



<p class="wp-block-paragraph">Bu projemizde de çevrenize gösterdiğiniz zaman gülümsetecek, insanların şaşıracağı, çözümlerinin de anlaşılmasının da oldukça basit olduğu dengede duramayan dijital top projesini inceledik. Bu tarz çevrenizi şaşırtacak veya bakış açınızı genişletecek başka projeler arıyorsanız aşağıdaki projelerimi inceleyebilirsiniz.   </p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">Yazının başındaki fotoğraf <a href="https://www.youtube.com/watch?v=tPr6-Rh0m-8" target="_blank" rel="noreferrer noopener nofollow">https://www.youtube.com/watch?v=tPr6-Rh0m-8</a> videosundan alınmıştır</p>
</blockquote>



<p class="wp-block-paragraph"></p>
<p><a rel="nofollow" href="https://blog.robo90.com/dengede-duramayan-dijital-top-nasil-yapilir/">Dengede Duramayan Dijital Top Nasıl Yapılır? ⚖️</a> yazısı ilk önce <a rel="nofollow" href="https://blog.robo90.com">Robo90 - Blog</a> üzerinde ortaya çıktı.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.robo90.com/dengede-duramayan-dijital-top-nasil-yapilir/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>ESP32-CAM ile Baskılarınız Yanmasın 📛</title>
		<link>https://blog.robo90.com/esp32-cam-ile-baskilariniz-yanmasin/</link>
					<comments>https://blog.robo90.com/esp32-cam-ile-baskilariniz-yanmasin/#respond</comments>
		
		<dc:creator><![CDATA[Mustafa Topal]]></dc:creator>
		<pubDate>Sat, 29 Jul 2023 13:31:15 +0000</pubDate>
				<category><![CDATA[Genel]]></category>
		<category><![CDATA[IoT Projeleri]]></category>
		<guid isPermaLink="false">https://blog.robo90.com/?p=7719</guid>

					<description><![CDATA[<p>Günümüzde 3D yazıcılar artık neredeyse herkesin erişebileceği bir seviyeye geldi . Evimizden ofisimize, mesleki hayatımızdan hobilerimize, gerek yedek parçası zor bulunan bir ürünün yedek parçasını tasarlayıp basmaya kadar artık hayatımızın her yerindeler ve hayatımızı kolaylaştırıyorlar. Biz de ofisimizde bir çok 3D printer markasıyla baskılar alıyor ve kendi işlerimiz için kullanıyoruz. Ancak yaşadığımız sorunlardan bir tanesi [...]</p>
<p><a rel="nofollow" href="https://blog.robo90.com/esp32-cam-ile-baskilariniz-yanmasin/">ESP32-CAM ile Baskılarınız Yanmasın 📛</a> yazısı ilk önce <a rel="nofollow" href="https://blog.robo90.com">Robo90 - Blog</a> üzerinde ortaya çıktı.</p>
]]></description>
										<content:encoded><![CDATA[<div class="wp-block-image">
<figure class="aligncenter size-full"><img loading="lazy" decoding="async" width="829" height="412" src="https://blog.robo90.com/wp-content/uploads/2023/07/esp32-cam-pertinaks-final-form.jpg" alt="ESP32-CAM ile Baskılarınız Yanmasın &#x1f4db; - Robo90 - Blog 3" class="wp-image-7766" title="ESP32-CAM ile Baskılarınız Yanmasın &#x1f4db; 24" srcset="https://blog.robo90.com/wp-content/uploads/2023/07/esp32-cam-pertinaks-final-form.jpg 829w, https://blog.robo90.com/wp-content/uploads/2023/07/esp32-cam-pertinaks-final-form-300x149.jpg 300w, https://blog.robo90.com/wp-content/uploads/2023/07/esp32-cam-pertinaks-final-form-768x382.jpg 768w, https://blog.robo90.com/wp-content/uploads/2023/07/esp32-cam-pertinaks-final-form-150x75.jpg 150w, https://blog.robo90.com/wp-content/uploads/2023/07/esp32-cam-pertinaks-final-form-450x224.jpg 450w" sizes="(max-width: 829px) 100vw, 829px" /><figcaption class="wp-element-caption">ESP32-CAM Modülü</figcaption></figure>
</div>


<p class="wp-block-paragraph">Günümüzde 3D yazıcılar artık neredeyse herkesin erişebileceği bir seviyeye geldi . Evimizden ofisimize, mesleki hayatımızdan hobilerimize, gerek yedek parçası zor bulunan bir ürünün yedek parçasını tasarlayıp basmaya kadar artık hayatımızın her yerindeler ve hayatımızı kolaylaştırıyorlar. Biz de ofisimizde bir çok 3D printer markasıyla baskılar alıyor ve kendi işlerimiz için kullanıyoruz. Ancak yaşadığımız sorunlardan bir tanesi uzun süreli baskılarda bazen baskılar bozuk çıkabiliyor ve bu durum bazen yetiştirmemiz gereken uzun süreli baskılarda can sıkıcı durumlara yol açabiliyor. Bunun yanında harcadığımız filament ve elektrik de zaman ve para kaybı. Bugün bütün bu sorunların önüne geçebilecek bir projeyi inceleyeceğiz.</p>



<figure class="wp-block-embed is-type-wp-embed is-provider-robo-90-blog wp-block-embed-robo-90-blog"><div class="wp-block-embed__wrapper">
<blockquote class="wp-embedded-content" data-secret="2Ue9uw3vpH"><a href="https://blog.robo90.com/esp32-ye-program-nasil-yazilir-nelere-dikkat-etmemiz-gerekir/"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f9d1-200d-1f4bb.png" alt="🧑‍💻" class="wp-smiley" style="height: 1em; max-height: 1em;" /> ESP32 &#8216;ye Program Nasıl Yazılır?</a></blockquote><iframe class="wp-embedded-content" sandbox="allow-scripts" security="restricted"  title="&#8220;&#x1f9d1;&#x200d;&#x1f4bb; ESP32 &#8216;ye Program Nasıl Yazılır?&#8221; &#8212; Robo90 - Blog" src="https://blog.robo90.com/esp32-ye-program-nasil-yazilir-nelere-dikkat-etmemiz-gerekir/embed/#?secret=Q1EN2LdDK0#?secret=2Ue9uw3vpH" data-secret="2Ue9uw3vpH" width="600" height="338" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe>
</div></figure>


<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><img loading="lazy" decoding="async" src="https://blog.robo90.com/wp-content/uploads/2023/07/Prints-are-not-burn-product-prototip-.jpg" alt="Pertinaks üzerine kurulu ESP32-CAM, röle, röle kontrol devresi, DC jack." class="wp-image-7744" style="width:441px;height:442px" width="441" height="442" title="ESP32-CAM ile Baskılarınız Yanmasın &#x1f4db; 25" srcset="https://blog.robo90.com/wp-content/uploads/2023/07/Prints-are-not-burn-product-prototip-.jpg 753w, https://blog.robo90.com/wp-content/uploads/2023/07/Prints-are-not-burn-product-prototip--300x300.jpg 300w, https://blog.robo90.com/wp-content/uploads/2023/07/Prints-are-not-burn-product-prototip--150x150.jpg 150w, https://blog.robo90.com/wp-content/uploads/2023/07/Prints-are-not-burn-product-prototip--450x451.jpg 450w" sizes="(max-width: 441px) 100vw, 441px" /></figure>
</div>


<p class="wp-block-paragraph">Daha önceki <em>ESP32 ile Yerel Ağdan Genel Ağa ( LAN to WAN )</em> adlı yazımızda ESP32 CAM modülünü ve Ngrok’u kullanarak nasıl LAN’daki ( yerel ağ ) verimizi nasıl WAN’a ( Genel ağ ) taşıyabileceğimizden bahsetmiştik ve ESP32-CAM modülünden gelen kamera görüntülerini canlı yayın gibi telefonumuzdan veya bilgisayarımızdan izlemiştik. Bu yazımızda ise tekrar ESP32-CAM modülü, Ngrok ve bir 5V röle modülü kullanarak istediğimiz zaman 3D yazıcımızın çıktı alırken fotoğrafını çekebilen ve röle modülü sayesinde yazıcının gücünü kesip baskıyı durdurabilen bir proje yapacağız. Bu proje sayesinde filamentleriniz, elektriğiniz ve en önemlisi de zamanınız boşa gitmeyecek.</p>



<h2 class="wp-block-heading">Ne Kullanmam Gerekiyor ki ?</h2>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph"><strong>ESP32-CAM Wifi Bluetooth Geliştirme Kartı ve OV2640 Kamera Modülü:</strong> <a href="https://www.robo90.com/esp32-cam-wifi-bluetooth-gelistirme-karti-ve-ov2640-kamera-modulu" target="_blank" rel="noreferrer noopener">https://www.robo90.com/esp32-cam-wifi-bluetooth-gelistirme-karti-ve-ov2640-kamera-modulu</a></p>
</blockquote>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph"><strong>5V Röle Kartı &#8211; 1 Kanal:</strong> <a href="https://www.robo90.com/5v-role-karti-1-kanal" target="_blank" rel="noreferrer noopener">https://www.robo90.com/5v-role-karti-1-kanal</a></p>
</blockquote>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph"><strong>6&#215;12.5 cm Delikli Pertinaks &#8211; Prototip PCB:</strong> <a href="https://www.robo90.com/6x125-cm-delikli-pertinaks-prototip-pcb" target="_blank" rel="noreferrer noopener">https://www.robo90.com/6&#215;125-cm-delikli-pertinaks-prototip-pcb</a></p>
</blockquote>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph"><strong>BC337 NPN Transistör &#8211; BJT &#8211; TO-92:</strong> <a href="https://www.robo90.com/bc337-npn-transistor-bjt-to-92" target="_blank" rel="noreferrer noopener">https://www.robo90.com/bc337-npn-transistor-bjt-to-92</a></p>
</blockquote>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph"><strong>4.7kOhm ve 220Ohm direnç:</strong> <a href="https://www.robo90.com/4-7k-direnc-paketi-1-4-w-10-adet" target="_blank" rel="noreferrer noopener">https://www.robo90.com/4-7k-direnc-paketi-1-4-w-10-adet</a></p>



<p class="wp-block-paragraph"><a href="https://www.robo90.com/220r-direnc-paketi-1-4-w-10-adet" target="_blank" rel="noreferrer noopener">https://www.robo90.com/220r-direnc-paketi-1-4-w-10-adet</a></p>
</blockquote>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph"><strong>İnce bakır kablo ve jumper:</strong> <a href="https://www.robo90.com/40li-ayrilabilen-disi-erkek-jumper-kablo-20cm-arduino-uyumlu" target="_blank" rel="noreferrer noopener">https://www.robo90.com/40li-ayrilabilen-disi-erkek-jumper-kablo-20cm-arduino-uyumlu</a></p>
</blockquote>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph"><strong>DC Jack-Jak Modülü 5.5mm:</strong> <a href="https://www.robo90.com/dc-jack-jak-modulu-5" target="_blank" rel="noreferrer noopener">https://www.robo90.com/dc-jack-jak-modulu-5</a></p>
</blockquote>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph"><strong>5V 2A Adaptör:</strong> <a href="https://www.robo90.com/5v-2a-adaptor" target="_blank" rel="noreferrer noopener">https://www.robo90.com/5v-2a-adaptor</a></p>
</blockquote>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph"><strong>Elektronik Breadboard &#8211; Orta Boy &#8211; 400 Pin:</strong> <a href="https://www.robo90.com/elektronik-breadboard-orta-boy-400-pin" target="_blank" rel="noreferrer noopener">https://www.robo90.com/elektronik-breadboard-orta-boy-400-pin</a></p>
</blockquote>



<hr class="wp-block-separator has-alpha-channel-opacity is-style-wide"/>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<h3 class="wp-block-heading">Not</h3>



<p class="wp-block-paragraph"><strong>Ürün listesi biraz uzun görünebilir. Ancak projeyi sıfırdan son haline getirene kadar kullandığım bütün malzemeler listede yer almakta. </strong></p>
</blockquote>



<hr class="wp-block-separator has-alpha-channel-opacity is-style-wide"/>



<h2 class="wp-block-heading">Yazılım Kısmı</h2>



<h3 class="wp-block-heading">İhtiyacımız olan Kütüphaneler</h3>



<p class="wp-block-paragraph"><strong>ESP32 Kütüphanesi:</strong> ESP32’ye program nasıl yazılır adlı blog yazımda ESP32’nin kütüphanesinin nasıl kurulacağından bahsetmiştim. Aşağıdaki linkten ulaşabilirsiniz.</p>



<p class="wp-block-paragraph"><a href="https://blog.robo90.com/esp32-ye-program-nasil-yazilir-nelere-dikkat-etmemiz-gerekir/">ESP32 ‘ye Program Nasıl Yazılır?</a></p>



<p class="wp-block-paragraph"><strong>ESPAsyncWebServer Kütüphanesi:</strong> ESP32 kütüphanesi dışında <a href="https://github.com/me-no-dev/ESPAsyncWebServer" target="_blank" rel="noreferrer noopener nofollow">ESPAsyncWebServer</a> kütüphanesini de Arduino IDE’mize kurmamız gerekir. Aşağıdaki GitHub linkinden Kütüphaneye ulaşabilirsiniz.</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph"><a href="https://github.com/me-no-dev/ESPAsyncWebServer" target="_blank" rel="noreferrer noopener nofollow">https://github.com/me-no-dev/ESPAsyncWebServer</a></p>
</blockquote>



<hr class="wp-block-separator has-alpha-channel-opacity is-style-wide"/>



<h3 class="wp-block-heading">Bilmeyenler için alt yazı;</h3>



<p class="wp-block-paragraph">Linkteki GitHub sayfasından kütüphaneyi nasıl indireceğinizi bilmiyorsanız sadece karşınıza çıkan ekrandan &lt;&gt; Code butonuna tıkladıktan sonra Download ZIP butonuna tıklamamız gerekir. Sonrasında kütüphanemiz ZIP dosyası şeklinde inecektir. ( <strong>Fotoğraf 1.0</strong> )</p>


<div class="wp-block-image">
<figure class="aligncenter size-large is-resized"><img loading="lazy" decoding="async" src="https://blog.robo90.com/wp-content/uploads/2023/07/subtytle-for-ignorant-GitHub-1024x470.jpg" alt="GitHub sayfası ve yeşil butona basınca &quot;Dowload ZIP&quot; dosyası" class="wp-image-7745" style="width:751px;height:345px" width="751" height="345" title="ESP32-CAM ile Baskılarınız Yanmasın &#x1f4db; 26" srcset="https://blog.robo90.com/wp-content/uploads/2023/07/subtytle-for-ignorant-GitHub-1024x470.jpg 1024w, https://blog.robo90.com/wp-content/uploads/2023/07/subtytle-for-ignorant-GitHub-300x138.jpg 300w, https://blog.robo90.com/wp-content/uploads/2023/07/subtytle-for-ignorant-GitHub-768x353.jpg 768w, https://blog.robo90.com/wp-content/uploads/2023/07/subtytle-for-ignorant-GitHub-1536x705.jpg 1536w, https://blog.robo90.com/wp-content/uploads/2023/07/subtytle-for-ignorant-GitHub-150x69.jpg 150w, https://blog.robo90.com/wp-content/uploads/2023/07/subtytle-for-ignorant-GitHub-450x207.jpg 450w, https://blog.robo90.com/wp-content/uploads/2023/07/subtytle-for-ignorant-GitHub-1200x551.jpg 1200w, https://blog.robo90.com/wp-content/uploads/2023/07/subtytle-for-ignorant-GitHub.jpg 1701w" sizes="(max-width: 751px) 100vw, 751px" /><figcaption class="wp-element-caption">Fotoğraf 1.0</figcaption></figure>
</div>


<p class="wp-block-paragraph">Daha sonra Arduino IDE programının arayüzünden Sketch&gt; Include Library &gt; Add.ZIP Libraries kısmından indirdiğiniz ZIP kütüphanenizi dahil edebilirsiniz. ( <strong>Fotoğraf 1.1</strong> )</p>


<div class="wp-block-image">
<figure class="aligncenter size-large"><img loading="lazy" decoding="async" width="1024" height="589" src="https://blog.robo90.com/wp-content/uploads/2023/07/add-library-arduino-IDE-1024x589.jpg" alt="ZIP kütüphanesi Arduino IDE platformuna kurmak için sketch&gt;ınclude library&gt;Add .ZIP Library yolu." class="wp-image-7746" title="ESP32-CAM ile Baskılarınız Yanmasın &#x1f4db; 27" srcset="https://blog.robo90.com/wp-content/uploads/2023/07/add-library-arduino-IDE-1024x589.jpg 1024w, https://blog.robo90.com/wp-content/uploads/2023/07/add-library-arduino-IDE-300x173.jpg 300w, https://blog.robo90.com/wp-content/uploads/2023/07/add-library-arduino-IDE-768x442.jpg 768w, https://blog.robo90.com/wp-content/uploads/2023/07/add-library-arduino-IDE-150x86.jpg 150w, https://blog.robo90.com/wp-content/uploads/2023/07/add-library-arduino-IDE-450x259.jpg 450w, https://blog.robo90.com/wp-content/uploads/2023/07/add-library-arduino-IDE-1200x690.jpg 1200w, https://blog.robo90.com/wp-content/uploads/2023/07/add-library-arduino-IDE.jpg 1210w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">Fotoğraf 1.1</figcaption></figure>
</div>


<hr class="wp-block-separator has-alpha-channel-opacity is-style-wide"/>



<h2 class="wp-block-heading">Kodun Açıklamaları</h2>



<p class="wp-block-paragraph">Kodumuzun başlangıç kısmında ihtiyacımız olan kütüphaneler bulunmakta. Daha sonrasında ise ESP32-CAM modülünü bağlayacağımız internet ismimizi ve şifremizi sırasıyla ssid ve password kısmına yazmamız gerek.</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph"><strong>ESP32-CAM sadece 2.4GHz internete bağlanabilir. 5GHz internetinize bağlanamaz. 5Ghz internetinize bağlamayı denerseniz ESP32-CAM modülü internete bağlanamayacaktır. Telefonunuzun mobil erişim noktasını paylaşıp ESP32-CAM modülünü bağlamayı deneyebilirsiniz ancak telefonunuzun da 2.4GHz internet Wi-Fi paylaşımı yaptığından emin olmanız gerek.</strong></p>
</blockquote>



<p class="wp-block-paragraph">Daha sonra AsyncWebServer server(80); kodu ile 80. portta LAN’da bir Webserver kurmamızı sağlar. Bu sayıyı değiştirip istediğiniz portta Webserver açabilirsiniz.</p>



<p class="wp-block-paragraph">Sonrasında ise ESP32-CAM modülümüzün kamerasının bağlanacağı pinler tanımlanmıştır.</p>



<pre class="wp-block-code"><code>#include "WiFi.h"
#include "esp_camera.h"
#include "esp_timer.h"
#include "img_converters.h"
#include "Arduino.h"
#include "soc/soc.h"           
#include "soc/rtc_cntl_reg.h"  
#include "driver/rtc_io.h"
#include &lt;ESPAsyncWebServer.h&gt;
#include &lt;StringArray.h&gt;
#include &lt;SPIFFS.h&gt;
#include &lt;FS.h&gt;


const char* ssid = "****************";       //İnternet İsminiz (Örnek Mahmut_2.4GHz)
const char* password = "****************";   //İnternet Şifreniz 
int relay = 2;
int flash = 4;

AsyncWebServer server(80);

boolean takeNewPhoto = false;


#define FILE_PHOTO "/photo.jpg"


#define PWDN_GPIO_NUM     32
#define RESET_GPIO_NUM    -1
#define XCLK_GPIO_NUM      0
#define SIOD_GPIO_NUM     26
#define SIOC_GPIO_NUM     27
#define Y9_GPIO_NUM       35
#define Y8_GPIO_NUM       34
#define Y7_GPIO_NUM       39
#define Y6_GPIO_NUM       36
#define Y5_GPIO_NUM       21
#define Y4_GPIO_NUM       19
#define Y3_GPIO_NUM       18
#define Y2_GPIO_NUM        5
#define VSYNC_GPIO_NUM    25
#define HREF_GPIO_NUM     23
#define PCLK_GPIO_NUM     22</code></pre>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<h3 class="wp-block-heading">Not</h3>



<p class="wp-block-paragraph">Bu projede tanımlanan kamera pinleri <strong>CAMERA_MODEL_WROVER_KIT</strong> için tanımlanmıştır.</p>
</blockquote>



<p class="wp-block-paragraph">Kodumuzun bu kısmında ise Webserver’e tanımlayacağımız HTML kodlarımız bulunmakta. Bu kodun içerisinde ESP32-CAM modülüne çeşitli işler yaptırmamızı sağlayan butonlar ve modülümüze çektirdiğimiz fotoğraf bulunmakta.</p>



<pre class="wp-block-code"><code>const char index_html&#91;] PROGMEM = R"rawliteral(
&lt;!DOCTYPE HTML&gt;&lt;html&gt;
&lt;head&gt;
  &lt;meta name="viewport" content="width=device-width, initial-scale=1"&gt;
  &lt;style&gt;
    body { text-align:center; }
    .vert { margin-bottom: 10%; }
    .hori{ margin-bottom: 0%; }
  &lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;
  &lt;div id="container"&gt;
    &lt;h2&gt;ESP32-CAM Last Photo&lt;/h2&gt;
    &lt;p&gt;It might take more than 5 seconds to capture a photo.&lt;/p&gt;
    &lt;p&gt;
      &lt;button onclick="rotatePhoto();"&gt;ROTATE&lt;/button&gt;
      &lt;button onclick="capturePhoto()"&gt;CAPTURE PHOTO&lt;/button&gt;
      &lt;button onclick="location.reload();"&gt;REFRESH PAGE&lt;/button&gt;
      &lt;button onclick="RELAYON();"&gt;RELAYON&lt;/button&gt;
      &lt;button onclick="RELAYOFF();"&gt;RELAYOFF&lt;/button&gt;
      &lt;button onclick="FLASHON();"&gt;FLASHON&lt;/button&gt;
      &lt;button onclick="FLASHOFF();"&gt;FLASHOFF&lt;/button&gt;
    &lt;/p&gt;
  &lt;/div&gt;
  &lt;div&gt;&lt;img src="saved-photo" id="photo" width="70%"&gt;&lt;/div&gt;
&lt;/body&gt;
&lt;script&gt;
  var deg = 0;
  function capturePhoto() {
    var xhr = new XMLHttpRequest();
    xhr.open('GET', "/capture", true);
    xhr.send();
  }

  function RELAYON() {
    var xhr = new XMLHttpRequest();
    xhr.open('GET', "/RelayOn", true);
    xhr.send();
  }
  function RELAYOFF() {
    var xhr = new XMLHttpRequest();
    xhr.open('GET', "/RelayOff", true);
    xhr.send();
  }
  function FLASHON () {
    var xhr = new XMLHttpRequest();
    xhr.open('GET', "/FlashOn", true);
    xhr.send();
  }
  function FLASHOFF() {
    var xhr = new XMLHttpRequest();
    xhr.open('GET', "/FlashOff", true);
    xhr.send();
  }

  function rotatePhoto() {
    var img = document.getElementById("photo");
    deg += 90;
    if(isOdd(deg/90)){ document.getElementById("container").className = "vert"; }
    else{ document.getElementById("container").className = "hori"; }
    img.style.transform = "rotate(" + deg + "deg)";
  }
  function isOdd(n) { return Math.abs(n % 2) == 1; }
&lt;/script&gt;
&lt;/html&gt;)rawliteral";</code></pre>



<p class="wp-block-paragraph">Kodumuzun <em><strong>setup </strong></em>kısmında ise Webserveri, kamera modülü ve HTML kodumuzda tanımladığımız butonlardan bildirim geldiği zaman ne yapacağını tanımlayan çeşitli komutlar bulunmakta.</p>



<p class="wp-block-paragraph">Loop kısmında ise yeni bir fotoğraf çekildiği zaman capturePhotoSaveSpiffs(); fonksiyonunu çağıran bir komut bulunmakta. Bunların harici çekilen fotoğrafı modülün çalışmasını ve çekilen fotoğrafları hafızasına kaydetmesini sağlayan çeşitli fonksiyonlar mevcut.</p>



<pre class="wp-block-code"><code>//İhtiyacımız olan kütüphaneler 
#include "WiFi.h"
#include "esp_camera.h"
#include "esp_timer.h"
#include "img_converters.h"
#include "Arduino.h"
#include "soc/soc.h"           
#include "soc/rtc_cntl_reg.h"  
#include "driver/rtc_io.h"
#include &lt;ESPAsyncWebServer.h&gt;
#include &lt;StringArray.h&gt;
#include &lt;SPIFFS.h&gt;
#include &lt;FS.h&gt;
//İnternet ismimiz,şifremiz ve röle modülünü bağlayacağımız pin tanımlaması bulunmakta. Modülün üzerindeki flash ise 4. pine bağlı. 
const char* ssid = "****************";       //İnternet İsminiz (Örnek Mahmut_2.4GHz)
const char* password = "****************";   //İnternet Şifreniz 
int relay = 2;
int flash = 4;
//Webserver'imizin hangi portta başlatacağımızı tanımlıyoruz.
AsyncWebServer server(80);
boolean takeNewPhoto = false;
//Modüle bağlayacağımız pin'lerin tanımlaması 
#define FILE_PHOTO "/photo.jpg"
#define PWDN_GPIO_NUM     32
#define RESET_GPIO_NUM    -1
#define XCLK_GPIO_NUM      0
#define SIOD_GPIO_NUM     26
#define SIOC_GPIO_NUM     27
#define Y9_GPIO_NUM       35
#define Y8_GPIO_NUM       34
#define Y7_GPIO_NUM       39
#define Y6_GPIO_NUM       36
#define Y5_GPIO_NUM       21
#define Y4_GPIO_NUM       19
#define Y3_GPIO_NUM       18
#define Y2_GPIO_NUM        5
#define VSYNC_GPIO_NUM    25
#define HREF_GPIO_NUM     23
#define PCLK_GPIO_NUM     22
//Webserver'imize tanımlayacağımız çeşitli butonların ve çektiğimiz fotoğrafın ekrana gelmesini sağlayan HTML kodları 
const char index_html&#91;] PROGMEM = R"rawliteral(
&lt;!DOCTYPE HTML&gt;&lt;html&gt;
&lt;head&gt;
  &lt;meta name="viewport" content="width=device-width, initial-scale=1"&gt;
  &lt;style&gt;
    body { text-align:center; }
    .vert { margin-bottom: 10%; }
    .hori{ margin-bottom: 0%; }
  &lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;
  &lt;div id="container"&gt;
    &lt;h2&gt;ESP32-CAM Baskılarımız Yanmasın&lt;/h2&gt;
    &lt;p&gt;Fotoğrafı çekmesi 5 saniyeden fazla sürebilir&lt;/p&gt;
    &lt;p&gt;
      &lt;button onclick="rotatePhoto();"&gt;ROTATE&lt;/button&gt;
      &lt;button onclick="capturePhoto()"&gt;CAPTURE PHOTO&lt;/button&gt;
      &lt;button onclick="location.reload();"&gt;REFRESH PAGE&lt;/button&gt;
      &lt;button onclick="RELAYON();"&gt;RELAYON&lt;/button&gt;
      &lt;button onclick="RELAYOFF();"&gt;RELAYOFF&lt;/button&gt;
      &lt;button onclick="FLASHON();"&gt;FLASHON&lt;/button&gt;
      &lt;button onclick="FLASHOFF();"&gt;FLASHOFF&lt;/button&gt;
    &lt;/p&gt;
  &lt;/div&gt;
  &lt;div&gt;&lt;img src="saved-photo" id="photo" width="70%"&gt;&lt;/div&gt;
&lt;/body&gt;
&lt;script&gt;
  var deg = 0;
  function capturePhoto() {
    var xhr = new XMLHttpRequest();
    xhr.open('GET', "/capture", true);
    xhr.send();
  }
  
  function RELAYON() {
    var xhr = new XMLHttpRequest();
    xhr.open('GET', "/RelayOn", true);
    xhr.send();
  }
  function RELAYOFF() {
    var xhr = new XMLHttpRequest();
    xhr.open('GET', "/RelayOff", true);
    xhr.send();
  }
  function FLASHON () {
    var xhr = new XMLHttpRequest();
    xhr.open('GET', "/FlashOn", true);
    xhr.send();
  }
  function FLASHOFF() {
    var xhr = new XMLHttpRequest();
    xhr.open('GET', "/FlashOff", true);
    xhr.send();
  }
  function rotatePhoto() {
    var img = document.getElementById("photo");
    deg += 90;
    if(isOdd(deg/90)){ document.getElementById("container").className = "vert"; }
    else{ document.getElementById("container").className = "hori"; }
    img.style.transform = "rotate(" + deg + "deg)";
  }
  function isOdd(n) { return Math.abs(n % 2) == 1; }
&lt;/script&gt;
&lt;/html&gt;)rawliteral";
//Bu kısımda kameramızı, Webserver'ımızı ve Webserverden gelen verilerin programımızda ne yapması gerektiği mevcut.
void setup() {
  Serial.begin(115200);
  //
  pinMode(relay, OUTPUT);
  pinMode(flash, OUTPUT);
  digitalWrite(relay,LOW);
  digitalWrite(flash,LOW);
  //
  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED) {
    delay(1000);
    Serial.println("Connecting to WiFi...");
  }
  if (!SPIFFS.begin(true)) {
    Serial.println("An Error has occurred while mounting SPIFFS");
    ESP.restart();
  }
  else {
    delay(500);
    Serial.println("SPIFFS mounted successfully");
  }
  
  Serial.print("IP Address: http://");
  Serial.println(WiFi.localIP());
  
  WRITE_PERI_REG(RTC_CNTL_BROWN_OUT_REG, 0);
 
  camera_config_t config;
  config.ledc_channel = LEDC_CHANNEL_0;
  config.ledc_timer = LEDC_TIMER_0;
  config.pin_d0 = Y2_GPIO_NUM;
  config.pin_d1 = Y3_GPIO_NUM;
  config.pin_d2 = Y4_GPIO_NUM;
  config.pin_d3 = Y5_GPIO_NUM;
  config.pin_d4 = Y6_GPIO_NUM;
  config.pin_d5 = Y7_GPIO_NUM;
  config.pin_d6 = Y8_GPIO_NUM;
  config.pin_d7 = Y9_GPIO_NUM;
  config.pin_xclk = XCLK_GPIO_NUM;
  config.pin_pclk = PCLK_GPIO_NUM;
  config.pin_vsync = VSYNC_GPIO_NUM;
  config.pin_href = HREF_GPIO_NUM;
  config.pin_sscb_sda = SIOD_GPIO_NUM;
  config.pin_sscb_scl = SIOC_GPIO_NUM;
  config.pin_pwdn = PWDN_GPIO_NUM;
  config.pin_reset = RESET_GPIO_NUM;
  config.xclk_freq_hz = 20000000;
  config.pixel_format = PIXFORMAT_JPEG;
  if (psramFound()) {
    config.frame_size = FRAMESIZE_UXGA;
    config.jpeg_quality = 10;
    config.fb_count = 2;
  } else {
    config.frame_size = FRAMESIZE_SVGA;
    config.jpeg_quality = 12;
    config.fb_count = 1;
  }
  
  esp_err_t err = esp_camera_init(&amp;config);
  if (err != ESP_OK) {
    Serial.printf("Camera init failed with error 0x%x", err);
    ESP.restart();
  }
  
  server.on("/", HTTP_GET, &#91;](AsyncWebServerRequest * request) {
    request-&gt;send_P(200, "text/html", index_html);
  });
  server.on("/capture", HTTP_GET, &#91;](AsyncWebServerRequest * request) {
    takeNewPhoto = true;
    request-&gt;send_P(200, "text/plain", "Taking Photo");
  });
  server.on("/saved-photo", HTTP_GET, &#91;](AsyncWebServerRequest * request) {
    request-&gt;send(SPIFFS, FILE_PHOTO, "image/jpg", false);
  });
  
  server.on("/FlashOn", HTTP_GET, &#91;](AsyncWebServerRequest * request) {
  digitalWrite(flash, HIGH);
  Serial.print("flash on ");
  
  request-&gt;send(200, "text/plain", "Flash açıldı");
  });
  server.on("/FlashOff", HTTP_GET, &#91;](AsyncWebServerRequest * request) {
  digitalWrite(flash, LOW);
  Serial.print("flash OFF ");
  request-&gt;send(200, "text/plain", "Flash kapatıldı");
  });
  server.on("/RelayOn", HTTP_GET, &#91;](AsyncWebServerRequest * request) {
  digitalWrite(relay, HIGH);
  request-&gt;send(200, "text/plain", "Röle Açıldı");
  });
  server.on("/RelayOff", HTTP_GET, &#91;](AsyncWebServerRequest * request) {
  digitalWrite(relay, LOW);
  request-&gt;send(200, "text/plain", "Röle Kapatıldı");
  });
  
  server.begin();
  
  
}
//Yeni bir fotoğraf çekildiğinde fotoğrafı kaydetmesini sağlayan kod
void loop() {
  if (takeNewPhoto) {
    capturePhotoSaveSpiffs();
    takeNewPhoto = false;
  }
  delay(1);
}
bool checkPhoto(fs::FS &amp;fs) {
  File f_pic = fs.open(FILE_PHOTO);
  unsigned int pic_sz = f_pic.size();
  return (pic_sz &gt; 100);
}
//fotoğrafı modülümüze kaydetmemizi sağalyan fonksiyon
void capturePhotoSaveSpiffs(void) {
  
  
  camera_fb_t * fb = NULL; 
  bool ok = 0; 
  do {
    
    Serial.println("Taking a photo...");
    fb = esp_camera_fb_get();
    if (!fb) {
      Serial.println("Camera capture failed");
      return;
    }
    
    Serial.printf("Picture file name: %s\n", FILE_PHOTO);
    File file = SPIFFS.open(FILE_PHOTO, FILE_WRITE);
    
    if (!file) {
      Serial.println("Failed to open file in writing mode");
    } else {
      file.write(fb-&gt;buf, fb-&gt;len); 
      Serial.print("The picture has been saved in ");
      Serial.print(FILE_PHOTO);
      Serial.print(" - Size: ");
      Serial.print(file.size());
      Serial.println(" bytes");
    }
    
    file.close();
    esp_camera_fb_return(fb);
    
    ok = checkPhoto(SPIFFS);
  } while (!ok);
}</code></pre>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<h3 class="wp-block-heading">Not</h3>



<p class="wp-block-paragraph">ESP32-CAM modülüne yazılım atarken IO0 pini GND’ye bağlanmalıdır. Bu sayede modül nasıl ESP32’ye yazılım yüklerken butona basıyorsak bu modülde de IO0 pini grounda bağlanmalıdır. ( <strong>Fotoğraf 1.2</strong> )</p>



<p class="wp-block-paragraph">ESP32-CAM modülüne nasıl yazılım yükleyebileceğimizi merak ediyorsanız <strong><em>ESP32-CAM ile Yemekleriniz Yanmasın</em></strong><em> </em>yazımızı inceleyebilirsiniz. Bu blog yazısında nasıl yazılım yükleneceğine, ESP32 kütüphanesinin nasıl kurulabileceğine değinilmemiştir.</p>


<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><img loading="lazy" decoding="async" src="https://blog.robo90.com/wp-content/uploads/2023/07/ESP32-CAM-IO0-GND-Shortcircuit.jpg" alt="IO0 ve GND bacakları kısa devre edilmiş ESP32-CAM modülü." class="wp-image-7747" style="width:242px;height:243px" width="242" height="243" title="ESP32-CAM ile Baskılarınız Yanmasın &#x1f4db; 28" srcset="https://blog.robo90.com/wp-content/uploads/2023/07/ESP32-CAM-IO0-GND-Shortcircuit.jpg 751w, https://blog.robo90.com/wp-content/uploads/2023/07/ESP32-CAM-IO0-GND-Shortcircuit-298x300.jpg 298w, https://blog.robo90.com/wp-content/uploads/2023/07/ESP32-CAM-IO0-GND-Shortcircuit-150x151.jpg 150w, https://blog.robo90.com/wp-content/uploads/2023/07/ESP32-CAM-IO0-GND-Shortcircuit-450x454.jpg 450w" sizes="(max-width: 242px) 100vw, 242px" /><figcaption class="wp-element-caption">Fotoğraf 1.2</figcaption></figure>
</div></blockquote>



<p class="wp-block-paragraph">Sonrasında kodumuzu yüklemeye başlayabiliriz. Kodun nasıl yükleneceğine ve yüklenirken nelere dikkat edileceğine <strong><em>ESP32-CAM ile Yemekleriniz Yanmasın&nbsp;</em></strong>adlı blog yazımda bahsetmiştim. Kodu derleyip ESP32-CAM modülümüzün içerisine başarıyla yükleyebilirseniz Serial Monitor&#8217;de karşınıza LAN&#8217;daki IP adresi gelecektir.  ( <strong>Fotoğraf 1.3</strong> )</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="444" src="https://blog.robo90.com/wp-content/uploads/2023/07/arduino-IDE-Serial-monitor-1024x444.jpg" alt="Arduino IDE seri monitör ekranında yüklediğimiz kodun çıktısı" class="wp-image-7748" title="ESP32-CAM ile Baskılarınız Yanmasın &#x1f4db; 29" srcset="https://blog.robo90.com/wp-content/uploads/2023/07/arduino-IDE-Serial-monitor-1024x444.jpg 1024w, https://blog.robo90.com/wp-content/uploads/2023/07/arduino-IDE-Serial-monitor-300x130.jpg 300w, https://blog.robo90.com/wp-content/uploads/2023/07/arduino-IDE-Serial-monitor-768x333.jpg 768w, https://blog.robo90.com/wp-content/uploads/2023/07/arduino-IDE-Serial-monitor-150x65.jpg 150w, https://blog.robo90.com/wp-content/uploads/2023/07/arduino-IDE-Serial-monitor-450x195.jpg 450w, https://blog.robo90.com/wp-content/uploads/2023/07/arduino-IDE-Serial-monitor.jpg 1179w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">Fotoğraf 1.3</figcaption></figure>



<p class="wp-block-paragraph">Ve evet. Projemizin yerel ağdaki hali hazır. Buraya kadar geldiyseniz test etmek için çıkan http linkini tarayıcına kopyalayıp WebServer üzerinden ESP32-CAM modülünün üzerindeki Flash LED’ini kontrol edebilirsiniz. ( Fotoğraf 1.4 )</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="566" src="https://blog.robo90.com/wp-content/uploads/2023/07/LAN-Webserver-1024x566.jpg" alt="ESP32-CAM modülünün Webserver&#039;ında oluşturduğu ve çeşitli kontrol tuşlarının olduğu site." class="wp-image-7750" title="ESP32-CAM ile Baskılarınız Yanmasın &#x1f4db; 30" srcset="https://blog.robo90.com/wp-content/uploads/2023/07/LAN-Webserver-1024x566.jpg 1024w, https://blog.robo90.com/wp-content/uploads/2023/07/LAN-Webserver-300x166.jpg 300w, https://blog.robo90.com/wp-content/uploads/2023/07/LAN-Webserver-768x424.jpg 768w, https://blog.robo90.com/wp-content/uploads/2023/07/LAN-Webserver-150x83.jpg 150w, https://blog.robo90.com/wp-content/uploads/2023/07/LAN-Webserver-450x249.jpg 450w, https://blog.robo90.com/wp-content/uploads/2023/07/LAN-Webserver-1200x663.jpg 1200w, https://blog.robo90.com/wp-content/uploads/2023/07/LAN-Webserver.jpg 1365w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">Fotoğraf 1.4</figcaption></figure>



<p class="wp-block-paragraph">Daha sonra <em><strong>ESP32 ile Yerel Ağdan Genel Ağa ( LAN to WAN )</strong> </em>blog yazısında bahsettiğimiz gibi çıkan IP adresi Ngrok’a girip yerel ağdaki projemizi genel ağa taşıyoruz. Bu sayede gerek ofisimizde gerek evimizde 3D printerin yanında olmamıza gerek olmadan istediğimiz yerden 3D printerin fotoğrafını çekebilir, ışık olmasa bile ESP32-CAM modülü üzerindeki flash’ı yakabilir. Çektiğimiz fotoğrafları kaydedebilir, röle modülü sayesinde 3D printermizi kapatabileceğiz.</p>



<figure class="wp-block-embed is-type-wp-embed is-provider-robo-90-blog wp-block-embed-robo-90-blog"><div class="wp-block-embed__wrapper">
<blockquote class="wp-embedded-content" data-secret="KPUHmTmOAG"><a href="https://blog.robo90.com/esp32-cam-ile-yerel-agdan-genel-aga/">ESP32-CAM ile Yerel Ağdan Genel Ağa ( LAN to WAN ) <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f4f6.png" alt="📶" class="wp-smiley" style="height: 1em; max-height: 1em;" /></a></blockquote><iframe class="wp-embedded-content" sandbox="allow-scripts" security="restricted"  title="&#8220;ESP32-CAM ile Yerel Ağdan Genel Ağa ( LAN to WAN ) &#x1f4f6;&#8221; &#8212; Robo90 - Blog" src="https://blog.robo90.com/esp32-cam-ile-yerel-agdan-genel-aga/embed/#?secret=XUK28yBSx8#?secret=KPUHmTmOAG" data-secret="KPUHmTmOAG" width="600" height="338" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe>
</div></figure>



<h2 class="wp-block-heading">Donanım Kısmı</h2>



<h3 class="wp-block-heading">Bağlantı Şemaları</h3>



<p class="wp-block-paragraph">Bu kısma kadar gelebilmeyi başardıysanız işin %80’ini halletmişsiniz demektir. Çünkü önemli olan ESP32-CAM modülünün pin bacaklarını kontrol edebilmemizdir. Sonrasında tek yapmamız gereken röle sürmek ve sistemi toplamaktır. Röle sürme konusunda şöyle bir problemimiz var. ESP32-CAM modülümüz pinlerinden 3.3V çıkış verebiliyor ancak süreceğimiz röle 5V olduğundan aradaki 2.7V’luk voltaj farkından dolayı röleyi açıp kapatamıyoruz. Bunun önüne geçmek için transistörlü bir sürme devresi kullanıyoruz. Transistörlü sürme devresinin ne olduğunu anlamadıysanız endişelenmenize gerek yok. Çok basit. Aşağıda tüm sistemin açıklamasında bahsedeceğiz.</p>



<hr class="wp-block-separator has-alpha-channel-opacity is-style-wide"/>



<h2 class="wp-block-heading"><strong>Alt yazı ( Not Gate )</strong></h2>



<p class="wp-block-paragraph">Transistörlü NOT kapısı, bir elektronik devredir. Bu devre, giriş sinyalini tersine çevirir. Örneğin, devreye &#8220;0&#8221; verirseniz, devreden &#8220;1&#8221; çıkar. Devreye &#8220;1&#8221; verirseniz, devreden &#8220;0&#8221; çıkar.</p>



<p class="wp-block-paragraph">Bu devrede, bir transistör kullanılır. Transistör, bir anahtar görevi görür. Anahtarın bir tarafına enerji verirseniz, diğer tarafından enerji akışı sağlanır. Devrenin girişindeki enerjiyi bu anahtar sayesinde tersine çeviriyoruz.</p>



<p class="wp-block-paragraph">Bu şekilde, transistörlü NOT kapısı, giriş sinyalini tersine çevirir ve bize yeni bir sinyal verir. Bu sinyali kullanarak başka cihazları kontrol edebiliriz.</p>



<p class="wp-block-paragraph">Fotoğraftan da anlaşılabileceği üzere girişten ( Input ) kısmından 5V verirsek transistör iletime geçeceği için çıkış ( Output ) transistör üstünden toprağa gider. Eğer giriş 0V olursa transistör iletime geçemeyeceği için çıkışta direk Vcc voltajı yani 5V görünür. ( <strong>Fotoğraf 1.5</strong> )</p>


<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><img loading="lazy" decoding="async" src="https://blog.robo90.com/wp-content/uploads/2023/07/NOT-Gate.jpg" alt="Transistör ve dirençlerle kurulmuş not gate ( Değil kapısı ) devresi " class="wp-image-7751" style="width:335px;height:306px" width="335" height="306" title="ESP32-CAM ile Baskılarınız Yanmasın &#x1f4db; 31" srcset="https://blog.robo90.com/wp-content/uploads/2023/07/NOT-Gate.jpg 445w, https://blog.robo90.com/wp-content/uploads/2023/07/NOT-Gate-300x274.jpg 300w, https://blog.robo90.com/wp-content/uploads/2023/07/NOT-Gate-150x137.jpg 150w" sizes="(max-width: 335px) 100vw, 335px" /><figcaption class="wp-element-caption">Fotoğraf 1.5</figcaption></figure>
</div>


<hr class="wp-block-separator has-alpha-channel-opacity is-style-wide"/>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="614" src="https://blog.robo90.com/wp-content/uploads/2023/07/Circuit-diagram-1024x614.jpg" alt="Projenin diyagramı " class="wp-image-7752" title="ESP32-CAM ile Baskılarınız Yanmasın &#x1f4db; 32" srcset="https://blog.robo90.com/wp-content/uploads/2023/07/Circuit-diagram-1024x614.jpg 1024w, https://blog.robo90.com/wp-content/uploads/2023/07/Circuit-diagram-300x180.jpg 300w, https://blog.robo90.com/wp-content/uploads/2023/07/Circuit-diagram-768x461.jpg 768w, https://blog.robo90.com/wp-content/uploads/2023/07/Circuit-diagram-150x90.jpg 150w, https://blog.robo90.com/wp-content/uploads/2023/07/Circuit-diagram-450x270.jpg 450w, https://blog.robo90.com/wp-content/uploads/2023/07/Circuit-diagram-1200x720.jpg 1200w, https://blog.robo90.com/wp-content/uploads/2023/07/Circuit-diagram.jpg 1255w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">Proje Şeması</figcaption></figure>



<p class="wp-block-paragraph">Peki neden Değil kapısı ( NOT gate ) kullandık ? Donanım kısmı başlığının ilk yazısında bahsettiğimiz gibi 5V’luk bir röleyi 3.3V ile süremiyoruz ama transistörün base kısmı 0.7V ile tetikleyerek rölenin IN pinine giren voltajı 5V ile kontrol edebiliriz. Ayrıca Röle IN pinine 0V verdiğimiz zaman anahtar kapanır iletken olur, 5V verdiğimiz zaman anahtar açılır yani yalıtkan olur. Yani ters bir anahtarmış gibi çalışır. Biz de tekrar bir değil kapısı kurarak röleyi normal bir anahtara çevirdik. Ne kadar mantıklı değil mi. Değilin değilini aldık yani. Artık IO2 pinini etkinleştirdiğimizde Röle kapanır yani iletken olur. IO2 pinini kapattığımızda da röle açılır yani yalıtkan olur. Bu sayede internet arayüzü üzerinden 3D printerlarımızı kontrol edebiliriz. Şimdi önce devreyi Breadboard’da kuralım. Daha sonrasında Pertinaks’a devreyi nasıl daha kompak kurabileceğimizi inceleyelim.</p>



<p class="wp-block-paragraph">Peki neden 5V 1-2A’lik bir adaptör kullanıyoruz ? Bilgisayarımızın USB portu projeyi çalıştıramaz mı ? Tasarladığımız sistem Güç kaynağından da anlaşılabileceği gibi tüm sistemleri devredeyken ( Flash, röle, fotoğraf çekme ) 0.4-0.5A çekiyor. Eğer kartı yeterli bir güç ile besleyemezseniz sistemin flashı titremeye başlar ve kart otomatik olara kapanır, kendisine reset atar ve sisteme yeniden bağlanır. Eğer yeterli bir kaynak ile beslemezseniz 3D printerinizi gece yarısı kontrol ederken flashı açıp fotoğraf çekerken kart bir anda kendisine reset atabilir ve eğer 3D printerinizin güç gidip geldiğinde çıktı almaya devam etmesi gibi bir özelliği yoksa çıktınız yarım kalacaktır. Ancak yeterli bir kaynak ile beslerseniz bu sorun ortadan kalkacaktır. ( <strong>Fotoğraf 1.6</strong> )</p>


<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><img loading="lazy" decoding="async" src="https://blog.robo90.com/wp-content/uploads/2023/07/All-Modules-On-Power.jpg" alt="ESP32-CAM modülümüzün flashı, fotoğraf çekerken ve röle modülü aktifken çektiği fotoğraf. " class="wp-image-7753" style="width:625px;height:538px" width="625" height="538" title="ESP32-CAM ile Baskılarınız Yanmasın &#x1f4db; 33" srcset="https://blog.robo90.com/wp-content/uploads/2023/07/All-Modules-On-Power.jpg 757w, https://blog.robo90.com/wp-content/uploads/2023/07/All-Modules-On-Power-300x258.jpg 300w, https://blog.robo90.com/wp-content/uploads/2023/07/All-Modules-On-Power-150x129.jpg 150w, https://blog.robo90.com/wp-content/uploads/2023/07/All-Modules-On-Power-450x388.jpg 450w" sizes="(max-width: 625px) 100vw, 625px" /><figcaption class="wp-element-caption">Fotoğraf 1.6</figcaption></figure>
</div>


<h2 class="wp-block-heading">BreadBoard Kurulumu</h2>



<p class="wp-block-paragraph">Önce DC-DC Jack modülümüze kullanacağımız kaynaktan gücümüzü veriyoruz. Ben laboratuvar tipi bir güç kaynağı kullandım. Yukarıda da uyardığım gibi tasarımımızın voltajı 5V ve çekeceği akım maksimum 0.5A oluyor. Bu durumda harici bir adaptörle besleyecekseniz dikkat etmeniz gerekir. ( <strong>Fotoğraf 1.7</strong> )</p>


<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><img loading="lazy" decoding="async" src="https://blog.robo90.com/wp-content/uploads/2023/07/dc-jack-connection.jpg" alt="DC jack modüşüne bağlı 5V&#039;a ayarlı güç kaynağı. " class="wp-image-7754" style="width:378px;height:381px" width="378" height="381" title="ESP32-CAM ile Baskılarınız Yanmasın &#x1f4db; 34" srcset="https://blog.robo90.com/wp-content/uploads/2023/07/dc-jack-connection.jpg 754w, https://blog.robo90.com/wp-content/uploads/2023/07/dc-jack-connection-298x300.jpg 298w, https://blog.robo90.com/wp-content/uploads/2023/07/dc-jack-connection-150x151.jpg 150w, https://blog.robo90.com/wp-content/uploads/2023/07/dc-jack-connection-450x454.jpg 450w" sizes="(max-width: 378px) 100vw, 378px" /><figcaption class="wp-element-caption">Fotoğraf 1.7</figcaption></figure>
</div>


<p class="wp-block-paragraph">Sonrasında DC jack’ımızı BreadBoard’ımızın artı ve eksi hattına takıyoruz. ( <strong>Fotoğraf 1.8</strong> )</p>


<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><img loading="lazy" decoding="async" src="https://blog.robo90.com/wp-content/uploads/2023/07/dc-jack-breadboard-connection.jpg" alt="DC jack breadboard bağlantısı ve şemadaki fotoğrafı. " class="wp-image-7755" style="width:647px;height:337px" width="647" height="337" title="ESP32-CAM ile Baskılarınız Yanmasın &#x1f4db; 35" srcset="https://blog.robo90.com/wp-content/uploads/2023/07/dc-jack-breadboard-connection.jpg 727w, https://blog.robo90.com/wp-content/uploads/2023/07/dc-jack-breadboard-connection-300x156.jpg 300w, https://blog.robo90.com/wp-content/uploads/2023/07/dc-jack-breadboard-connection-150x78.jpg 150w, https://blog.robo90.com/wp-content/uploads/2023/07/dc-jack-breadboard-connection-450x235.jpg 450w" sizes="(max-width: 647px) 100vw, 647px" /><figcaption class="wp-element-caption">Fotoğraf 1.8</figcaption></figure>
</div>


<p class="wp-block-paragraph">Sonrasında Değil kapımızın bağlantılarını yapabiliriz. ( 4.7kOhm’luk direnç 5V’a bağlı ) ( <strong>Fotoğraf 1.9</strong> )</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="723" height="333" src="https://blog.robo90.com/wp-content/uploads/2023/07/Not-gate-breadboard-connection.jpg" alt="Not Gate ( Değil kapısı ) breadboard bağlantısı ve şemadaki fotoğrafı." class="wp-image-7757" title="ESP32-CAM ile Baskılarınız Yanmasın &#x1f4db; 36" srcset="https://blog.robo90.com/wp-content/uploads/2023/07/Not-gate-breadboard-connection.jpg 723w, https://blog.robo90.com/wp-content/uploads/2023/07/Not-gate-breadboard-connection-300x138.jpg 300w, https://blog.robo90.com/wp-content/uploads/2023/07/Not-gate-breadboard-connection-150x69.jpg 150w, https://blog.robo90.com/wp-content/uploads/2023/07/Not-gate-breadboard-connection-450x207.jpg 450w" sizes="(max-width: 723px) 100vw, 723px" /><figcaption class="wp-element-caption">Fotoğraf 1.9</figcaption></figure>



<p class="wp-block-paragraph">Daha sonra ESP32-CAM modülümüzün 5V pinini BreadBoard’ın artı hattına, GND pinini ise BreadBoard’ın eksi hattına takıyoruz. Burada dikkat etmemiz gereken en önemli şey ESP32-CAM modülünün 5V ve GND bacaklarını karıştırıp ters bağlamaktır. Bunu yaparsanız ESP32-CAM modülünüzü bozabilirsiniz. Birkaç defa kontrol ederek gerekli önleminizi alabilirsiniz. ( <strong>Fotoğraf 2.0</strong> )</p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img loading="lazy" decoding="async" width="661" height="346" src="https://blog.robo90.com/wp-content/uploads/2023/07/ESP32-CAM-Breadboard-connection.jpg" alt="ESP32-CAM breadboard bağlantısı ve bağlantı şeması." class="wp-image-7758" title="ESP32-CAM ile Baskılarınız Yanmasın &#x1f4db; 37" srcset="https://blog.robo90.com/wp-content/uploads/2023/07/ESP32-CAM-Breadboard-connection.jpg 661w, https://blog.robo90.com/wp-content/uploads/2023/07/ESP32-CAM-Breadboard-connection-300x157.jpg 300w, https://blog.robo90.com/wp-content/uploads/2023/07/ESP32-CAM-Breadboard-connection-150x79.jpg 150w, https://blog.robo90.com/wp-content/uploads/2023/07/ESP32-CAM-Breadboard-connection-450x236.jpg 450w" sizes="(max-width: 661px) 100vw, 661px" /><figcaption class="wp-element-caption">Fotoğraf 2.0</figcaption></figure>
</div>


<p class="wp-block-paragraph">Sonrasında 5V’luk röle modülümüzün güç bağlantılarını yapıyoruz. ( 5V→Vcc, GND→GND ) ( <strong>Fotoğraf 2.1</strong> )</p>


<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><img loading="lazy" decoding="async" src="https://blog.robo90.com/wp-content/uploads/2023/07/relay-breadboard-connection.jpg" alt="Röle breadboard bağlantısı ve bağlantı şeması " class="wp-image-7759" style="width:692px;height:296px" width="692" height="296" title="ESP32-CAM ile Baskılarınız Yanmasın &#x1f4db; 38" srcset="https://blog.robo90.com/wp-content/uploads/2023/07/relay-breadboard-connection.jpg 876w, https://blog.robo90.com/wp-content/uploads/2023/07/relay-breadboard-connection-300x129.jpg 300w, https://blog.robo90.com/wp-content/uploads/2023/07/relay-breadboard-connection-768x330.jpg 768w, https://blog.robo90.com/wp-content/uploads/2023/07/relay-breadboard-connection-150x64.jpg 150w, https://blog.robo90.com/wp-content/uploads/2023/07/relay-breadboard-connection-450x193.jpg 450w" sizes="(max-width: 692px) 100vw, 692px" /><figcaption class="wp-element-caption">Fotoğraf 2.1</figcaption></figure>
</div>


<p class="wp-block-paragraph">Sonrasında Rölenin IN bacağını Transistörün Collectör bacağına bağlıyoruz. <strong>1.</strong> <strong>Yeşil yol ( IN→Transistörün Collectörü )</strong> ( <strong>Fotoğraf 2.2</strong> )</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="261" src="https://blog.robo90.com/wp-content/uploads/2023/07/relay-not-gate-connection-1024x261.jpg" alt="Not gate ( değil kapısı ) transistörünün collectör bacağının rölenin IN bacağına bağlandığı fotoğraf ve Not Gate ( değil kapısı ) " class="wp-image-7760" title="ESP32-CAM ile Baskılarınız Yanmasın &#x1f4db; 39" srcset="https://blog.robo90.com/wp-content/uploads/2023/07/relay-not-gate-connection-1024x261.jpg 1024w, https://blog.robo90.com/wp-content/uploads/2023/07/relay-not-gate-connection-300x76.jpg 300w, https://blog.robo90.com/wp-content/uploads/2023/07/relay-not-gate-connection-768x195.jpg 768w, https://blog.robo90.com/wp-content/uploads/2023/07/relay-not-gate-connection-150x38.jpg 150w, https://blog.robo90.com/wp-content/uploads/2023/07/relay-not-gate-connection-450x115.jpg 450w, https://blog.robo90.com/wp-content/uploads/2023/07/relay-not-gate-connection.jpg 1159w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">Fotoğraf 2.2</figcaption></figure>



<p class="wp-block-paragraph">Sonrasında ESP32-CAM modülünün IO2 numaralı pinini Transistörün base kısmına bağlı olan 220 ohm’luk dirence bağlıyoruz. <strong>( 2.Yeşil yol )</strong> ( <strong>Fotoğraf 2.3</strong> )</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="404" src="https://blog.robo90.com/wp-content/uploads/2023/07/esp32-cam-not-gate-base-connection-1024x404.jpg" alt="Not Gate ( Değil Kapısı  ) Base bacağının ESP32-CAM modüülünün IO2 pinine bağlandığını gösteren breadboard fotoğrafı ve devre şeması." class="wp-image-7761" title="ESP32-CAM ile Baskılarınız Yanmasın &#x1f4db; 40" srcset="https://blog.robo90.com/wp-content/uploads/2023/07/esp32-cam-not-gate-base-connection-1024x404.jpg 1024w, https://blog.robo90.com/wp-content/uploads/2023/07/esp32-cam-not-gate-base-connection-300x118.jpg 300w, https://blog.robo90.com/wp-content/uploads/2023/07/esp32-cam-not-gate-base-connection-768x303.jpg 768w, https://blog.robo90.com/wp-content/uploads/2023/07/esp32-cam-not-gate-base-connection-150x59.jpg 150w, https://blog.robo90.com/wp-content/uploads/2023/07/esp32-cam-not-gate-base-connection-450x177.jpg 450w, https://blog.robo90.com/wp-content/uploads/2023/07/esp32-cam-not-gate-base-connection.jpg 1096w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">Fotoğraf 2.3</figcaption></figure>



<p class="wp-block-paragraph">Son olarak transistörün Emitter bacağını BreadBoard’ımızın GND ( Toprak ) hattına bağlıyoruz. ( Siyah olan kablo ) ( <strong>Fotoğraf 2.4</strong> )</p>


<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><img loading="lazy" decoding="async" src="https://blog.robo90.com/wp-content/uploads/2023/07/not-gate-gnd-connection.jpg" alt="Not gate ( Değil kapısı ) emitter bacağının tüm sistemin GND&#039;sine bağlı olduğunu gösteren şema." class="wp-image-7762" style="width:628px;height:299px" width="628" height="299" title="ESP32-CAM ile Baskılarınız Yanmasın &#x1f4db; 41" srcset="https://blog.robo90.com/wp-content/uploads/2023/07/not-gate-gnd-connection.jpg 885w, https://blog.robo90.com/wp-content/uploads/2023/07/not-gate-gnd-connection-300x143.jpg 300w, https://blog.robo90.com/wp-content/uploads/2023/07/not-gate-gnd-connection-768x365.jpg 768w, https://blog.robo90.com/wp-content/uploads/2023/07/not-gate-gnd-connection-150x71.jpg 150w, https://blog.robo90.com/wp-content/uploads/2023/07/not-gate-gnd-connection-450x214.jpg 450w" sizes="(max-width: 628px) 100vw, 628px" /><figcaption class="wp-element-caption">Fotoğraf 2.4</figcaption></figure>
</div>


<p class="wp-block-paragraph">Ve evet! Sistemimiz hazır. Şimdi test zamanı. Gördüğünüz gibi CAPTURE PHOTO butonuna basarsam kamera nereye bakıyorsa oranın fotoğrafını çeker. Birkaç saniye sonra REFLESH PAGE butonuna basarsam sayfa yenilenir ve çektiğimiz fotoğraf karşımıza çıkar. Fotoğraftan da anlaşılabileceği üzere röle modülü kapalı. LED’i yanmıyor. Şimdi RELAYON butonuna basıp rölemizi aktifleştirelim. Sonrasında ise tekrar rölemizin bir fotoğrafını çekelim. Sonra sayfayı yenileyip rölenin ışığının yanıp yanmadığına bakalım. ( <strong>Fotoğraf 2.5</strong> )  </p>



<figure class="wp-block-image size-large is-resized"><img loading="lazy" decoding="async" src="https://blog.robo90.com/wp-content/uploads/2023/07/esp32-cam-webserver-relay-control-1024x629.jpg" alt="ESP32-CAM modüllünün oluşturduğu Webserver üzerinden röleyi kontrol etmek için oluşturduğumuz butonlar ile röleyi kapattığımız fotoğraf." class="wp-image-7764" style="width:780px;height:479px" width="780" height="479" title="ESP32-CAM ile Baskılarınız Yanmasın &#x1f4db; 42" srcset="https://blog.robo90.com/wp-content/uploads/2023/07/esp32-cam-webserver-relay-control-1024x629.jpg 1024w, https://blog.robo90.com/wp-content/uploads/2023/07/esp32-cam-webserver-relay-control-300x184.jpg 300w, https://blog.robo90.com/wp-content/uploads/2023/07/esp32-cam-webserver-relay-control-768x472.jpg 768w, https://blog.robo90.com/wp-content/uploads/2023/07/esp32-cam-webserver-relay-control-150x92.jpg 150w, https://blog.robo90.com/wp-content/uploads/2023/07/esp32-cam-webserver-relay-control-450x277.jpg 450w, https://blog.robo90.com/wp-content/uploads/2023/07/esp32-cam-webserver-relay-control.jpg 1090w" sizes="(max-width: 780px) 100vw, 780px" /><figcaption class="wp-element-caption">Fotoğraf 2.5</figcaption></figure>



<p class="wp-block-paragraph">Gördüğünüz gibi rölemizi aktifleştirmeyi başardık. ( <strong>Fotoğraf 2.6</strong> )</p>


<div class="wp-block-image">
<figure class="aligncenter size-large"><img loading="lazy" decoding="async" width="1024" height="615" src="https://blog.robo90.com/wp-content/uploads/2023/07/esp32-cam-webserver-relay-on-1024x615.jpg" alt="ESP32-CAM modüllünün oluşturduğu Webserver üzerinden röleyi kontrol etmek için oluşturduğumuz butonlar ile röleyi açtığımız fotoğraf." class="wp-image-7765" title="ESP32-CAM ile Baskılarınız Yanmasın &#x1f4db; 43" srcset="https://blog.robo90.com/wp-content/uploads/2023/07/esp32-cam-webserver-relay-on-1024x615.jpg 1024w, https://blog.robo90.com/wp-content/uploads/2023/07/esp32-cam-webserver-relay-on-300x180.jpg 300w, https://blog.robo90.com/wp-content/uploads/2023/07/esp32-cam-webserver-relay-on-768x461.jpg 768w, https://blog.robo90.com/wp-content/uploads/2023/07/esp32-cam-webserver-relay-on-150x90.jpg 150w, https://blog.robo90.com/wp-content/uploads/2023/07/esp32-cam-webserver-relay-on-450x270.jpg 450w, https://blog.robo90.com/wp-content/uploads/2023/07/esp32-cam-webserver-relay-on.jpg 1116w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">Fotoğraf 2.6</figcaption></figure>
</div>


<p class="wp-block-paragraph">Şimdi sistemimizi yazının başındaki gibi Pertinaks’a nasıl aktarabiliriz onu inceleyelim. </p>



<hr class="wp-block-separator has-alpha-channel-opacity is-style-wide"/>



<h2 class="wp-block-heading">Pertinaks </h2>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="829" height="412" src="https://blog.robo90.com/wp-content/uploads/2023/07/esp32-cam-pertinaks-final-form.jpg" alt="Tüm projenin pertinaksa önlü arkalı kurulduğunu gösteren fotoğraf. " class="wp-image-7766" title="ESP32-CAM ile Baskılarınız Yanmasın &#x1f4db; 44" srcset="https://blog.robo90.com/wp-content/uploads/2023/07/esp32-cam-pertinaks-final-form.jpg 829w, https://blog.robo90.com/wp-content/uploads/2023/07/esp32-cam-pertinaks-final-form-300x149.jpg 300w, https://blog.robo90.com/wp-content/uploads/2023/07/esp32-cam-pertinaks-final-form-768x382.jpg 768w, https://blog.robo90.com/wp-content/uploads/2023/07/esp32-cam-pertinaks-final-form-150x75.jpg 150w, https://blog.robo90.com/wp-content/uploads/2023/07/esp32-cam-pertinaks-final-form-450x224.jpg 450w" sizes="(max-width: 829px) 100vw, 829px" /><figcaption class="wp-element-caption">Fotoğraf 2.7</figcaption></figure>



<p class="wp-block-paragraph">Fotoğraflardan da anlaşılabileceği gibi aslında yaptığımız tek şey Breadboard üzerindeki kabloları pertinaks ile birleştirmek oldu. Ancak röle ve DC Jack modüllerinin pinlerini söküp aşağıya doğru kaydıramayabilirsiniz. Bunun yerine bu iki modülü pertinaksa yapıştırıp bir kablo yardımıyla iki modülün pinlerini de pertinaksın deliklerinden geçirebilirsiniz. ( <strong>Fotoğraf 2.7</strong> )</p>



<hr class="wp-block-separator has-alpha-channel-opacity is-style-wide"/>



<h2 class="wp-block-heading">Test Edelim</h2>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img loading="lazy" decoding="async" width="958" height="480" src="https://blog.robo90.com/wp-content/uploads/2023/07/ESP32-CAM-test-morning.jpg" alt="3D yazıcının test için çıktı alırken yaptığımız ESP32-CAM modülünün test için çıktıyı izlediğini gösteren fotoğraf. " class="wp-image-7767" title="ESP32-CAM ile Baskılarınız Yanmasın &#x1f4db; 45" srcset="https://blog.robo90.com/wp-content/uploads/2023/07/ESP32-CAM-test-morning.jpg 958w, https://blog.robo90.com/wp-content/uploads/2023/07/ESP32-CAM-test-morning-300x150.jpg 300w, https://blog.robo90.com/wp-content/uploads/2023/07/ESP32-CAM-test-morning-768x385.jpg 768w, https://blog.robo90.com/wp-content/uploads/2023/07/ESP32-CAM-test-morning-150x75.jpg 150w, https://blog.robo90.com/wp-content/uploads/2023/07/ESP32-CAM-test-morning-450x225.jpg 450w" sizes="(max-width: 958px) 100vw, 958px" /></figure>
</div>


<p class="wp-block-paragraph">Fotoğraftan da anlaşılabileceği gibi test düzeneğimizi kurduk. Ben Pertinaksa kurduğum devremi bir Üçüncü El Mercekli Elektronik PCB-Kart Tutucuya sabitledim. Daha sonra ofiste bir mini bilgisayarda Ngrok açarak projenin LAN adresini oraya girdim. Bu sayede evimden de ofisteki kamera modülüne erişebilirdim. İlk fotoğrafımı çekerek teste başladım. ( <strong>Fotoğraf 2.8</strong> )</p>


<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><img loading="lazy" decoding="async" src="https://blog.robo90.com/wp-content/uploads/2023/07/ESP32-test-ngrok-photo-morning.jpeg" alt="Çıktının başladığı zaman kameranın çalışıp çalışmadığını test etmek için çektiğimiz fotoğraf." class="wp-image-7768" style="width:530px;height:530px" width="530" height="530" title="ESP32-CAM ile Baskılarınız Yanmasın &#x1f4db; 46" srcset="https://blog.robo90.com/wp-content/uploads/2023/07/ESP32-test-ngrok-photo-morning.jpeg 946w, https://blog.robo90.com/wp-content/uploads/2023/07/ESP32-test-ngrok-photo-morning-300x300.jpeg 300w, https://blog.robo90.com/wp-content/uploads/2023/07/ESP32-test-ngrok-photo-morning-150x150.jpeg 150w, https://blog.robo90.com/wp-content/uploads/2023/07/ESP32-test-ngrok-photo-morning-768x768.jpeg 768w, https://blog.robo90.com/wp-content/uploads/2023/07/ESP32-test-ngrok-photo-morning-450x450.jpeg 450w" sizes="(max-width: 530px) 100vw, 530px" /><figcaption class="wp-element-caption">Fotoğraf 2.8</figcaption></figure>
</div>


<p class="wp-block-paragraph">Sonrasında eve gittim ve biraz zaman geçmesini bekledim. Bir süre sonra röle modülü testi için röleyi kapatarak 3D printeri kapatıp evden işlemi durdurdum ve tekrar fotoğraf çektim. ( <strong>Fotoğraf 2.9</strong> )</p>


<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><img loading="lazy" decoding="async" src="https://blog.robo90.com/wp-content/uploads/2023/07/ESP32-test-ngrok-photo.jpeg" alt="Uzaktan bağlanıp 3D yazıcıyı kapattığımız ve çıktının durumunu görebildiğimiz fotoğraf. " class="wp-image-7769" style="width:517px;height:517px" width="517" height="517" title="ESP32-CAM ile Baskılarınız Yanmasın &#x1f4db; 47" srcset="https://blog.robo90.com/wp-content/uploads/2023/07/ESP32-test-ngrok-photo.jpeg 946w, https://blog.robo90.com/wp-content/uploads/2023/07/ESP32-test-ngrok-photo-300x300.jpeg 300w, https://blog.robo90.com/wp-content/uploads/2023/07/ESP32-test-ngrok-photo-150x150.jpeg 150w, https://blog.robo90.com/wp-content/uploads/2023/07/ESP32-test-ngrok-photo-768x768.jpeg 768w, https://blog.robo90.com/wp-content/uploads/2023/07/ESP32-test-ngrok-photo-450x450.jpeg 450w" sizes="(max-width: 517px) 100vw, 517px" /><figcaption class="wp-element-caption">Fotoğraf 2.9</figcaption></figure>
</div>


<p class="wp-block-paragraph">Göründüğü üzere modül kapanmış,  baskı durmuştu. Ertesi gün ofise geldiğimde şöyle bir görüntüyle karşılaştım. ( <strong>Fotoğraf 3.0</strong> )</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="510" src="https://blog.robo90.com/wp-content/uploads/2023/07/ESP32-CAM-test-final-result-1024x510.jpg" alt="Sabah ofise geldiğimizde 3D yazıcının fotoğrafları." class="wp-image-7770" title="ESP32-CAM ile Baskılarınız Yanmasın &#x1f4db; 48" srcset="https://blog.robo90.com/wp-content/uploads/2023/07/ESP32-CAM-test-final-result-1024x510.jpg 1024w, https://blog.robo90.com/wp-content/uploads/2023/07/ESP32-CAM-test-final-result-300x149.jpg 300w, https://blog.robo90.com/wp-content/uploads/2023/07/ESP32-CAM-test-final-result-768x382.jpg 768w, https://blog.robo90.com/wp-content/uploads/2023/07/ESP32-CAM-test-final-result-150x75.jpg 150w, https://blog.robo90.com/wp-content/uploads/2023/07/ESP32-CAM-test-final-result-450x224.jpg 450w, https://blog.robo90.com/wp-content/uploads/2023/07/ESP32-CAM-test-final-result.jpg 1105w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">Fotoğraf 3.0</figcaption></figure>



<p class="wp-block-paragraph">Testlerim sonucunda sabah sadece ESP32-CAM modülünün biraz fazla ısındığını gördüm. Bunun önüne biraz olsun geçebilmek için Rasberry Pi modüllerinin soğutucu bloklarından kullanmaya karar verdim. Bu bloğu kamera modülün altındaki ESP32 işlemcisinin metal yüzeyine yapıştırdım. Bu sayede biraz olsun koruma sağlayabilecektim. ( <strong>Fotoğraf 3.1</strong> )</p>


<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><img loading="lazy" decoding="async" src="https://blog.robo90.com/wp-content/uploads/2023/07/heat-plake.jpeg" alt="ESP32-CAM modülünün ısınma sorununun önüne geçebilmek için Rasberry Pi soğutucusu kullandık. " class="wp-image-7771" style="width:380px;height:380px" width="380" height="380" title="ESP32-CAM ile Baskılarınız Yanmasın &#x1f4db; 49" srcset="https://blog.robo90.com/wp-content/uploads/2023/07/heat-plake.jpeg 1024w, https://blog.robo90.com/wp-content/uploads/2023/07/heat-plake-300x300.jpeg 300w, https://blog.robo90.com/wp-content/uploads/2023/07/heat-plake-150x150.jpeg 150w, https://blog.robo90.com/wp-content/uploads/2023/07/heat-plake-768x768.jpeg 768w, https://blog.robo90.com/wp-content/uploads/2023/07/heat-plake-450x450.jpeg 450w" sizes="(max-width: 380px) 100vw, 380px" /><figcaption class="wp-element-caption">Fotoğraf 3.1</figcaption></figure>
</div>


<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph"><strong>Alüminyum Soğutucu Blok Seti &#8211; Rasberry Pi 4B Uyumlu:</strong> <a href="https://www.robo90.com/aluminyum-sogutucu-blok-seti-rasberry-pi-4b-uyumlu" target="_blank" rel="noreferrer noopener">https://www.robo90.com/aluminyum-sogutucu-blok-seti-rasberry-pi-4b-uyumlu</a></p>
</blockquote>



<p class="wp-block-paragraph">Görüldüğü üzere test başarıyla tamamlanmış. Projenin çalıştığını ispatlamıştım. Bu sayede artık aklım baskılarımda kalmayacak, elektriğim ve filamentlerim boşa gitmeyecekti. </p>



<p class="wp-block-paragraph">Bu yazımızda ESP32-CAM modülü, nesnelerin interneti, Webserver, pertinaks ile prototip tasarımı, yazılım, donanım alanları gibi bir sürü konu öğrendik. Tüm bu öğrendiğiniz bilgilerle neler yapabileceğinizi ekrandan biraz uzaklaşıp hayal edin. Geliştirebileceğiniz projeleri, CV&#8217;nize katabilecekleri artıları. Bu projeyi yaparak çevrenizdeki insanlara araştırarak, uğraşarak bir şeyleri başarabileceğinizi de ispatlayabilir, saygınlık toplayabilirsiniz. Bir sonraki yazımızda görüşmek üzere. <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f44b.png" alt="👋" class="wp-smiley" style="height: 1em; max-height: 1em;" /> </p>
<p><a rel="nofollow" href="https://blog.robo90.com/esp32-cam-ile-baskilariniz-yanmasin/">ESP32-CAM ile Baskılarınız Yanmasın 📛</a> yazısı ilk önce <a rel="nofollow" href="https://blog.robo90.com">Robo90 - Blog</a> üzerinde ortaya çıktı.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.robo90.com/esp32-cam-ile-baskilariniz-yanmasin/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>ESP32-CAM ile Yerel Ağdan Genel Ağa ( LAN to WAN ) 📶</title>
		<link>https://blog.robo90.com/esp32-cam-ile-yerel-agdan-genel-aga/</link>
					<comments>https://blog.robo90.com/esp32-cam-ile-yerel-agdan-genel-aga/#respond</comments>
		
		<dc:creator><![CDATA[Mustafa Topal]]></dc:creator>
		<pubDate>Thu, 27 Jul 2023 11:20:39 +0000</pubDate>
				<category><![CDATA[Genel]]></category>
		<category><![CDATA[IoT Projeleri]]></category>
		<guid isPermaLink="false">https://blog.robo90.com/?p=7690</guid>

					<description><![CDATA[<p>Bugünkü yazımızda daha önceki blog yazısında yaptığımız Yemekleriniz yanmasın projesini ESP32-CAM ile yerel ağdan genel ağa taşıyacağız. Bu yüzden bu projede Ngrok’un genel ağda basitçe nasıl kullanacağımızdan bahsedeceğiz. Genel ağa projemizi taşırken de kodumuzun bize verdiği http://192.168.1.53 gibi IP adresleri kullanacağız. Genel ağa taşıdığımız projeyi tüm dünyada internetin olduğu her yerden kontrol edebilir ve yayın [...]</p>
<p><a rel="nofollow" href="https://blog.robo90.com/esp32-cam-ile-yerel-agdan-genel-aga/">ESP32-CAM ile Yerel Ağdan Genel Ağa ( LAN to WAN ) 📶</a> yazısı ilk önce <a rel="nofollow" href="https://blog.robo90.com">Robo90 - Blog</a> üzerinde ortaya çıktı.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Bugünkü yazımızda daha önceki blog yazısında yaptığımız Yemekleriniz yanmasın projesini ESP32-CAM ile yerel ağdan genel ağa taşıyacağız. Bu yüzden bu projede Ngrok’un genel ağda basitçe nasıl kullanacağımızdan bahsedeceğiz. Genel ağa projemizi taşırken de kodumuzun bize verdiği <a href="http://192.168.1.53/" rel="nofollow">http://192.168.1.53</a> gibi IP adresleri kullanacağız. Genel ağa taşıdığımız projeyi tüm dünyada internetin olduğu her yerden kontrol edebilir ve yayın akışını canlı olarak izleyebiliriz. Yemeklerimiz yanmasın adlı blog yazısına aşağıdaki linkten ulaşabilirsiniz.</p>



<p class="wp-block-paragraph"><a href="https://blog.robo90.com/esp32-cam-ile-yemekleriniz-yanmasin/">ESP32-CAM ile Yemekleriniz Yanmasın</a></p>



<h3 class="wp-block-heading">İhtiyaç Listesi </h3>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph"><strong>ESP32-CAM Wifi Bluetooth Geliştirme Kartı ve OV2640 Kamera Modülü</strong>:&nbsp;<a href="https://www.robo90.com/esp32-cam-wifi-bluetooth-gelistirme-karti-ve-ov2640-kamera-modulu" target="_blank" rel="noreferrer noopener">https://www.robo90.com/esp32-cam-wifi-bluetooth-gelistirme-karti-ve-ov2640-kamera-modulu</a></p>
</blockquote>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph"><strong>40lı Ayrılabilen Dişi-Dişi Jumper Kablo – 20cm – Arduino Uyumlu</strong>:&nbsp;<a href="https://www.robo90.com/40li-ayrilabilen-disi-disi-jumper-kablo-20cm-arduino-uyum" target="_blank" rel="noreferrer noopener">https://www.robo90.com/40li-ayrilabilen-disi-disi-jumper-kablo-20cm-arduino-uyum</a></p>
</blockquote>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph"><strong>FT232RL FTDI USB-TTL Dönüştürücü-Programlayıcı:</strong>&nbsp;<a href="https://www.robo90.com/ft232rl-ftdi-usb-ttl-donusturucu-programlayici" target="_blank" rel="noreferrer noopener">https://www.robo90.com/ft232rl-ftdi-usb-ttl-donusturucu-programlayici</a></p>
</blockquote>



<h3 class="wp-block-heading"><span style="text-decoration: underline">Not</span></h3>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">Tüm bu ihtiyaç listesindeki ürünlerin nasıl bağlanacağı yukarıda linkini bıraktığım &#8220;<strong><a href="https://blog.robo90.com/esp32-cam-ile-yemekleriniz-yanmasin/">Yemekleriniz Yanmasın</a></strong>&#8221; adlı blog yazımda mevcut.</p>
</blockquote>



<p class="wp-block-paragraph">Ngrok programı aslında basitçe tanımlamak gerekirse açık olduğu bilgisayarı bir Webserver&#8217;a çevirir. Nasıl oyunları online oynayabilmek için oyunların Serverlarına ihtiyacımız varsa, ESP32-CAM modülüne de istediğimiz her yerden ulaşabilmek için bir servera ihtiyacımız var. Daha önceki yazılarımda incelediğim ESP32 ve IOT blog yazımda Arduino IOT serverlarını kullanarak ESP32’mizi kontrol ediyorduk. Bu tarz başka platformlar da var ( Ör. 000WebHost, Bylnk vs ) ancak canlı yayın özelliği fazla veri tükettiği için genellikle bu özellikler paralı oluyor. Bunun önüne geçmek için kullanmadığınız bir bilgisayarınız, bir Raspberry Pi modülünüz veya kendi bilgisayarınızı bir servera dönüştürüp yerel ağdaki video canlı yayınınıza istediğiniz yerden ulaşabilirsiniz. Şimdi o zaman sırasıyla Windows bir bilgisayara Ngrok&#8217;u kurup yerel ağdaki verimizi genel ağa taşıyalım.</p>



<h2 class="wp-block-heading">Ngrok Nasıl Kurulur ?</h2>


<div class="wp-block-image">
<figure class="aligncenter size-large"><img loading="lazy" decoding="async" width="1024" height="448" src="https://blog.robo90.com/wp-content/uploads/2023/07/Ngrok-main-menu-1024x448.jpg" alt="Ngrok giriş menüsü ve kayıt olma butonu" class="wp-image-7691" title="ESP32-CAM ile Yerel Ağdan Genel Ağa ( LAN to WAN ) &#x1f4f6; 50" srcset="https://blog.robo90.com/wp-content/uploads/2023/07/Ngrok-main-menu-1024x448.jpg 1024w, https://blog.robo90.com/wp-content/uploads/2023/07/Ngrok-main-menu-300x131.jpg 300w, https://blog.robo90.com/wp-content/uploads/2023/07/Ngrok-main-menu-768x336.jpg 768w, https://blog.robo90.com/wp-content/uploads/2023/07/Ngrok-main-menu-1536x672.jpg 1536w, https://blog.robo90.com/wp-content/uploads/2023/07/Ngrok-main-menu-150x66.jpg 150w, https://blog.robo90.com/wp-content/uploads/2023/07/Ngrok-main-menu-450x197.jpg 450w, https://blog.robo90.com/wp-content/uploads/2023/07/Ngrok-main-menu-1200x525.jpg 1200w, https://blog.robo90.com/wp-content/uploads/2023/07/Ngrok-main-menu.jpg 1717w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">Fotoğraf 1.0</figcaption></figure>
</div>


<p class="wp-block-paragraph">Aşağıdaki Linkten Ngrok’un sitesine gidebilirsiniz. Sonrasında ise üye olmamız gerekiyor. ( <strong>Fotoğraf 1.0</strong> )</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph"><a href="https://ngrok.com/" target="_blank" rel="noreferrer noopener nofollow">https://ngrok.com/</a></p>
</blockquote>



<p class="wp-block-paragraph">Daha sonra Getting Started kısmından Ngrok’u Windows için indirmeniz gerekir. Daha sonra Getting Started kısmından Ngrok’u Windows için indirmeniz gerekir. ( <strong>Fotoğraf 1.1</strong> )</p>


<div class="wp-block-image">
<figure class="aligncenter size-large is-resized"><img loading="lazy" decoding="async" src="https://blog.robo90.com/wp-content/uploads/2023/07/Dowload-Ngrok-1024x446.jpg" alt="Ngrok ana menüsü ve &quot;Dowload for Windows &quot; butonu." class="wp-image-7692" style="width:803px;height:349px" width="803" height="349" title="ESP32-CAM ile Yerel Ağdan Genel Ağa ( LAN to WAN ) &#x1f4f6; 51" srcset="https://blog.robo90.com/wp-content/uploads/2023/07/Dowload-Ngrok-1024x446.jpg 1024w, https://blog.robo90.com/wp-content/uploads/2023/07/Dowload-Ngrok-300x131.jpg 300w, https://blog.robo90.com/wp-content/uploads/2023/07/Dowload-Ngrok-768x334.jpg 768w, https://blog.robo90.com/wp-content/uploads/2023/07/Dowload-Ngrok-1536x668.jpg 1536w, https://blog.robo90.com/wp-content/uploads/2023/07/Dowload-Ngrok-150x65.jpg 150w, https://blog.robo90.com/wp-content/uploads/2023/07/Dowload-Ngrok-450x196.jpg 450w, https://blog.robo90.com/wp-content/uploads/2023/07/Dowload-Ngrok-1200x522.jpg 1200w, https://blog.robo90.com/wp-content/uploads/2023/07/Dowload-Ngrok.jpg 1705w" sizes="(max-width: 803px) 100vw, 803px" /><figcaption class="wp-element-caption">Fotoğraf 1.1</figcaption></figure>
</div>


<p class="wp-block-paragraph">Daha sonra inen ZIP dosyasını klasöre çıkartmanız gerekmektedir. ( <strong>Fotoğraf 1.2</strong> )</p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img loading="lazy" decoding="async" width="840" height="322" src="https://blog.robo90.com/wp-content/uploads/2023/07/unzip-ngrog-file.jpg" alt="İnen ZIP dosyasını çıkartıyoruz." class="wp-image-7694" title="ESP32-CAM ile Yerel Ağdan Genel Ağa ( LAN to WAN ) &#x1f4f6; 52" srcset="https://blog.robo90.com/wp-content/uploads/2023/07/unzip-ngrog-file.jpg 840w, https://blog.robo90.com/wp-content/uploads/2023/07/unzip-ngrog-file-300x115.jpg 300w, https://blog.robo90.com/wp-content/uploads/2023/07/unzip-ngrog-file-768x294.jpg 768w, https://blog.robo90.com/wp-content/uploads/2023/07/unzip-ngrog-file-150x58.jpg 150w, https://blog.robo90.com/wp-content/uploads/2023/07/unzip-ngrog-file-450x173.jpg 450w" sizes="(max-width: 840px) 100vw, 840px" /><figcaption class="wp-element-caption">Fotoğraf 1.2</figcaption></figure>
</div>


<p class="wp-block-paragraph">Zaten çıkardığınız ZIP dosyasının içinde sadece Ngrok uygulaması olacaktır. Direk çift tıklayıp açabilirsiniz. ( <strong>Fotoğraf 1.3</strong> )</p>


<div class="wp-block-image">
<figure class="aligncenter size-large is-resized"><img loading="lazy" decoding="async" src="https://blog.robo90.com/wp-content/uploads/2023/07/Ngrok-code-menu-1024x569.jpg" alt="ZIP dosyasına çıkarttığımız Ngrok&#039;u açınca karşımıza çıkan kod yazabileceğimiz arayüz." class="wp-image-7695" style="width:656px;height:364px" width="656" height="364" title="ESP32-CAM ile Yerel Ağdan Genel Ağa ( LAN to WAN ) &#x1f4f6; 53" srcset="https://blog.robo90.com/wp-content/uploads/2023/07/Ngrok-code-menu-1024x569.jpg 1024w, https://blog.robo90.com/wp-content/uploads/2023/07/Ngrok-code-menu-300x167.jpg 300w, https://blog.robo90.com/wp-content/uploads/2023/07/Ngrok-code-menu-768x427.jpg 768w, https://blog.robo90.com/wp-content/uploads/2023/07/Ngrok-code-menu-150x83.jpg 150w, https://blog.robo90.com/wp-content/uploads/2023/07/Ngrok-code-menu-450x250.jpg 450w, https://blog.robo90.com/wp-content/uploads/2023/07/Ngrok-code-menu-1200x667.jpg 1200w, https://blog.robo90.com/wp-content/uploads/2023/07/Ngrok-code-menu.jpg 1368w" sizes="(max-width: 656px) 100vw, 656px" /><figcaption class="wp-element-caption">Fotoğraf 1.3</figcaption></figure>
</div>


<h2 class="wp-block-heading">Ngrok Nasıl Kullanılır? </h2>



<p class="wp-block-paragraph">Ve Ngrok’u kurmayı başardınız. Şimdi kayıt olduğunuz Ngrok hesabınızı bu uygulamaya bağlamamız gerekmekte. En başta karşımıza çıkan sitede biraz aşağıya kaydırırsak <em><strong>2. Connect your account</strong> </em>kısmını görmekteyiz. ( <strong>Fotoğraf 1.4</strong> )</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="239" src="https://blog.robo90.com/wp-content/uploads/2023/07/Ngrok-account-connection-1024x239.jpg" alt="Ngrok internet arayüzündeki hesabımızı bağlamamız için verilen kod. " class="wp-image-7696" title="ESP32-CAM ile Yerel Ağdan Genel Ağa ( LAN to WAN ) &#x1f4f6; 54" srcset="https://blog.robo90.com/wp-content/uploads/2023/07/Ngrok-account-connection-1024x239.jpg 1024w, https://blog.robo90.com/wp-content/uploads/2023/07/Ngrok-account-connection-300x70.jpg 300w, https://blog.robo90.com/wp-content/uploads/2023/07/Ngrok-account-connection-768x179.jpg 768w, https://blog.robo90.com/wp-content/uploads/2023/07/Ngrok-account-connection-1536x358.jpg 1536w, https://blog.robo90.com/wp-content/uploads/2023/07/Ngrok-account-connection-150x35.jpg 150w, https://blog.robo90.com/wp-content/uploads/2023/07/Ngrok-account-connection-450x105.jpg 450w, https://blog.robo90.com/wp-content/uploads/2023/07/Ngrok-account-connection-1200x280.jpg 1200w, https://blog.robo90.com/wp-content/uploads/2023/07/Ngrok-account-connection.jpg 1624w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">Fotoğraf 1.4</figcaption></figure>



<p class="wp-block-paragraph">Buradaki kodu kopyalayıp daha önce açtığımız Ngrok komut ekranına yapıştırıyoruz. Enter’a bastığımızda hesabımız Ngrok’a bağlanmış oluyor. ( <strong>Fotoğraf 1.5</strong> )</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="596" src="https://blog.robo90.com/wp-content/uploads/2023/07/image-30-1024x596.png" alt="Hesabımızı bağlamamız için verilen kodu Ngrok&#039;un arayüzüne yazdığımız fotoğraf." class="wp-image-7697" title="ESP32-CAM ile Yerel Ağdan Genel Ağa ( LAN to WAN ) &#x1f4f6; 55" srcset="https://blog.robo90.com/wp-content/uploads/2023/07/image-30-1024x596.png 1024w, https://blog.robo90.com/wp-content/uploads/2023/07/image-30-300x175.png 300w, https://blog.robo90.com/wp-content/uploads/2023/07/image-30-768x447.png 768w, https://blog.robo90.com/wp-content/uploads/2023/07/image-30-150x87.png 150w, https://blog.robo90.com/wp-content/uploads/2023/07/image-30-450x262.png 450w, https://blog.robo90.com/wp-content/uploads/2023/07/image-30-1200x699.png 1200w, https://blog.robo90.com/wp-content/uploads/2023/07/image-30.png 1372w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">Fotoğraf 1.5</figcaption></figure>



<p class="wp-block-paragraph">Sonrasında Yemekleriniz yanmasın projesindeki gibi ESP32’nin bize verdiği <a href="http://192.168.1.53/" rel="nofollow">http://192.168.1.53/</a> gibi IP linkini kopyalıyoruz. Bu kısmın ne olduğunu bilmiyorsanız Yemekleriniz yanmasın blog yazımı inceleyebilirsiniz. ( <strong>Fotoğraf 1.6</strong> )</p>


<div class="wp-block-image">
<figure class="aligncenter size-large"><img loading="lazy" decoding="async" width="1024" height="443" src="https://blog.robo90.com/wp-content/uploads/2023/07/ESP32-CAM-LAN-IP-1024x443.jpg" alt="ESP32-CAM modülümüzün Arduino IDE&#039;nin seri monitöründe verdiği LAN IP&#039;si." class="wp-image-7698" title="ESP32-CAM ile Yerel Ağdan Genel Ağa ( LAN to WAN ) &#x1f4f6; 56" srcset="https://blog.robo90.com/wp-content/uploads/2023/07/ESP32-CAM-LAN-IP-1024x443.jpg 1024w, https://blog.robo90.com/wp-content/uploads/2023/07/ESP32-CAM-LAN-IP-300x130.jpg 300w, https://blog.robo90.com/wp-content/uploads/2023/07/ESP32-CAM-LAN-IP-768x332.jpg 768w, https://blog.robo90.com/wp-content/uploads/2023/07/ESP32-CAM-LAN-IP-150x65.jpg 150w, https://blog.robo90.com/wp-content/uploads/2023/07/ESP32-CAM-LAN-IP-450x195.jpg 450w, https://blog.robo90.com/wp-content/uploads/2023/07/ESP32-CAM-LAN-IP.jpg 1182w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">Fotoğraf 1.6</figcaption></figure>
</div>


<p class="wp-block-paragraph">Sonrasında aşağıdaki gibi Ngrok’un komut ekranına ngrok http yazıp üstteki kopyaladığımız IP adresini bu kısma yapıştırıyoruz ( <strong>Fotoğraf 1.7</strong> )</p>



<pre class="wp-block-code"><code>ngrok http http://192.168.1.53/</code></pre>


<div class="wp-block-image">
<figure class="aligncenter size-large"><img loading="lazy" decoding="async" width="1024" height="581" src="https://blog.robo90.com/wp-content/uploads/2023/07/ngrok-LAN-to-WAN-1024x581.jpg" alt="Ngrok&#039;a LAN IP&#039;mizi yazdığımız ve WAN&#039;da server başlattığımız kod." class="wp-image-7699" title="ESP32-CAM ile Yerel Ağdan Genel Ağa ( LAN to WAN ) &#x1f4f6; 57" srcset="https://blog.robo90.com/wp-content/uploads/2023/07/ngrok-LAN-to-WAN-1024x581.jpg 1024w, https://blog.robo90.com/wp-content/uploads/2023/07/ngrok-LAN-to-WAN-300x170.jpg 300w, https://blog.robo90.com/wp-content/uploads/2023/07/ngrok-LAN-to-WAN-768x436.jpg 768w, https://blog.robo90.com/wp-content/uploads/2023/07/ngrok-LAN-to-WAN-150x85.jpg 150w, https://blog.robo90.com/wp-content/uploads/2023/07/ngrok-LAN-to-WAN-450x255.jpg 450w, https://blog.robo90.com/wp-content/uploads/2023/07/ngrok-LAN-to-WAN-1200x681.jpg 1200w, https://blog.robo90.com/wp-content/uploads/2023/07/ngrok-LAN-to-WAN.jpg 1371w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">Fotoğraf 1.7</figcaption></figure>
</div>


<p class="wp-block-paragraph">Ve evet! Serverimiz başlamış bulunmakta. Aşağıdaki ekranı siz de kendi bilgisayarınızda görebildiyseniz her şeyi başarıyla yapmışsınız demektir. <em>Forwarding </em>kısmındaki <a href="https://faa3-78-179-1-19.ngrok-free.app/" rel="nofollow noopener" target="_blank">https://faa3-78-179-1-19.ngrok-free.ap</a> linkini sizdekini kopyalayıp tarayıcınıza yapıştırırsanız tebrikler. Artık dünyada internetin olduğu her yerden ESP32’nize ulaşabilirsiniz. telefonunuzun hücresel ağını açıp test edebilirsiniz. Ancak bu sistem aşağıdaki uygulama bilgisayarınızda ve bilgisayarınız da açık kaldıkça uygulamaya devam edecektir. ( <strong>Fotoğraf 1.8</strong> )</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="360" src="https://blog.robo90.com/wp-content/uploads/2023/07/ngrok-WAN-connection-1024x360.jpg" alt="WAN&#039;da başlayan serverimizin fotoğrafı" class="wp-image-7700" title="ESP32-CAM ile Yerel Ağdan Genel Ağa ( LAN to WAN ) &#x1f4f6; 58" srcset="https://blog.robo90.com/wp-content/uploads/2023/07/ngrok-WAN-connection-1024x360.jpg 1024w, https://blog.robo90.com/wp-content/uploads/2023/07/ngrok-WAN-connection-300x105.jpg 300w, https://blog.robo90.com/wp-content/uploads/2023/07/ngrok-WAN-connection-768x270.jpg 768w, https://blog.robo90.com/wp-content/uploads/2023/07/ngrok-WAN-connection-150x53.jpg 150w, https://blog.robo90.com/wp-content/uploads/2023/07/ngrok-WAN-connection-450x158.jpg 450w, https://blog.robo90.com/wp-content/uploads/2023/07/ngrok-WAN-connection-1200x422.jpg 1200w, https://blog.robo90.com/wp-content/uploads/2023/07/ngrok-WAN-connection.jpg 1351w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">Fotoğraf 1.8</figcaption></figure>



<p class="wp-block-paragraph">Sonrasında ise Forwarding kısmında yazan https://faa3-78-179-1-19.ngrok-free.app linkini kendi tarayıcımıza yazıp açtığımızda aynı Wi-Fi adresine bağlı kalmamıza gerek olmadan istediğimiz yerden ve konumdan haberleşebiliriz.</p>



<p class="wp-block-paragraph">Gördüğünüz gibi farklı bir internete bağlı olmama rağmen Ngrok üzerinden istediğim zaman WebServer’ime ulaşabiliyorum. ( <strong>Fotoğraf 1.9</strong> )</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="449" src="https://blog.robo90.com/wp-content/uploads/2023/07/phone-pc-connection-1024x449.jpg" alt="Telefon Hücresele bağlıyken servera eriştiğim ve bilgisayar başka bir ağa bağlıyken servera eriştiğim fotoğraflar." class="wp-image-7701" title="ESP32-CAM ile Yerel Ağdan Genel Ağa ( LAN to WAN ) &#x1f4f6; 59" srcset="https://blog.robo90.com/wp-content/uploads/2023/07/phone-pc-connection-1024x449.jpg 1024w, https://blog.robo90.com/wp-content/uploads/2023/07/phone-pc-connection-300x132.jpg 300w, https://blog.robo90.com/wp-content/uploads/2023/07/phone-pc-connection-768x337.jpg 768w, https://blog.robo90.com/wp-content/uploads/2023/07/phone-pc-connection-150x66.jpg 150w, https://blog.robo90.com/wp-content/uploads/2023/07/phone-pc-connection-450x197.jpg 450w, https://blog.robo90.com/wp-content/uploads/2023/07/phone-pc-connection-1200x526.jpg 1200w, https://blog.robo90.com/wp-content/uploads/2023/07/phone-pc-connection.jpg 1234w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">( Fotoğraf 1.9 )</figcaption></figure>



<p class="wp-block-paragraph">Aynı zamanda telefonumda hücresel açıkken de ESP32 modülüme ulaşabiliyorum. Tabii bu Yemekleriniz yanmasın projesindeki ekranın değil. Neden mi? Bu <a href="https://blog.robo90.com/esp32-cam-ile-baskilariniz-yanmasin">Baskılarınız Yanmasın</a> adlı blog yazısının projesi. Bir sonraki yazımızda o projede Ngrok kullanacağız. Aşağıdaki linkten o yazıma da ulaşabilirsiniz. </p>



<figure class="wp-block-embed is-type-wp-embed is-provider-robo-90-blog wp-block-embed-robo-90-blog"><div class="wp-block-embed__wrapper">
https://blog.robo90.com/esp32-cam-ile-baskilariniz-yanmasin-%f0%9f%93%9b/
</div></figure>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph"><strong>Daha fazla IOT ( Nesnelerin İnterneti ) yazısı için <a href="https://blog.robo90.com/kategori/projeler/iot-projeleri/">IoT Projeleri </a>kategorimizi inceleyebilirsiniz.</strong></p>
</blockquote>
<p><a rel="nofollow" href="https://blog.robo90.com/esp32-cam-ile-yerel-agdan-genel-aga/">ESP32-CAM ile Yerel Ağdan Genel Ağa ( LAN to WAN ) 📶</a> yazısı ilk önce <a rel="nofollow" href="https://blog.robo90.com">Robo90 - Blog</a> üzerinde ortaya çıktı.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.robo90.com/esp32-cam-ile-yerel-agdan-genel-aga/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>ESP32-CAM ile Yemekleriniz Yanmasın 🥘</title>
		<link>https://blog.robo90.com/esp32-cam-ile-yemekleriniz-yanmasin/</link>
					<comments>https://blog.robo90.com/esp32-cam-ile-yemekleriniz-yanmasin/#respond</comments>
		
		<dc:creator><![CDATA[Mustafa Topal]]></dc:creator>
		<pubDate>Wed, 26 Jul 2023 21:36:34 +0000</pubDate>
				<category><![CDATA[Featured]]></category>
		<category><![CDATA[Genel]]></category>
		<category><![CDATA[IoT Projeleri]]></category>
		<category><![CDATA[Latest Posts]]></category>
		<guid isPermaLink="false">https://blog.robo90.com/?p=7615</guid>

					<description><![CDATA[<p>Hepimiz öğrenci de olsak, işi gücü olan birisi de olsak hepimizin temel ihtiyacı yemek yemektir. Kimimiz kendi yemeğimizi kendimizin hazırlaması gerekirken kimimizin ise ailesi her zaman hazır yemekler ile bizi mutlu ederler ama yeri gelir bizim de hazırlamamız gerekir. Kendi hayatımda yaşadığım en büyük problemlerden bir tanesi de hazırladığım yemeğin başında beklemek zorunda oluşum. Acaba [...]</p>
<p><a rel="nofollow" href="https://blog.robo90.com/esp32-cam-ile-yemekleriniz-yanmasin/">ESP32-CAM ile Yemekleriniz Yanmasın 🥘</a> yazısı ilk önce <a rel="nofollow" href="https://blog.robo90.com">Robo90 - Blog</a> üzerinde ortaya çıktı.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Hepimiz öğrenci de olsak, işi gücü olan birisi de olsak hepimizin temel ihtiyacı yemek yemektir. Kimimiz kendi yemeğimizi kendimizin hazırlaması gerekirken kimimizin ise ailesi her zaman hazır yemekler ile bizi mutlu ederler ama yeri gelir bizim de hazırlamamız gerekir. Kendi hayatımda yaşadığım en büyük problemlerden bir tanesi de hazırladığım yemeğin başında beklemek zorunda oluşum. Acaba yandı mı, nasıl görünüyor, başına gitmem gerekir mi ? Sonrasında bir bakmışım yemeğim yanmış. Bugün bu soruna mühendisçe bir çözüm üretmek için ESP32-CAM modülüne nasıl yazılım yükleyebileceğimizi ve nasıl canlı yayın alabileceğimizi inceleyeceğiz.</p>



<h2 class="wp-block-heading">İhtiyaç Listesi </h2>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph"><strong>ESP32-CAM Wifi Bluetooth Geliştirme Kartı ve OV2640 Kamera Modülü</strong>: <a href="https://www.robo90.com/esp32-cam-wifi-bluetooth-gelistirme-karti-ve-ov2640-kamera-modulu" target="_blank" rel="noreferrer noopener">https://www.robo90.com/esp32-cam-wifi-bluetooth-gelistirme-karti-ve-ov2640-kamera-modulu</a> </p>
</blockquote>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph"><strong>40lı Ayrılabilen Dişi-Dişi Jumper Kablo &#8211; 20cm &#8211; Arduino Uyumlu</strong>: <a href="https://www.robo90.com/40li-ayrilabilen-disi-disi-jumper-kablo-20cm-arduino-uyum" target="_blank" rel="noreferrer noopener">https://www.robo90.com/40li-ayrilabilen-disi-disi-jumper-kablo-20cm-arduino-uyum</a></p>
</blockquote>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph"><strong>FT232RL FTDI USB-TTL Dönüştürücü-Programlayıcı:</strong> <a href="https://www.robo90.com/ft232rl-ftdi-usb-ttl-donusturucu-programlayici" target="_blank" rel="noreferrer noopener">https://www.robo90.com/ft232rl-ftdi-usb-ttl-donusturucu-programlayici</a></p>
</blockquote>



<h2 class="wp-block-heading">Donanım Kısmı</h2>



<p class="wp-block-paragraph">Yapmamız gereken ilk şey USB-TTL dönüştürücü ile ESP32-CAM modülünün bağlantılarını yapmaktır. Yukarıdan aşağıya doğru sırasıyla bağlamamız gereken pinler; ( <strong>Fotoğraf 1.0</strong> )</p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img loading="lazy" decoding="async" width="1005" height="501" src="https://blog.robo90.com/wp-content/uploads/2023/07/USB-to-TTL-ESP32-CAM-Connection.jpg" alt="USB-TTL dönüştürücü ve ESP32-CAM modülü" class="wp-image-7616" title="ESP32-CAM ile Yemekleriniz Yanmasın &#x1f958; 60" srcset="https://blog.robo90.com/wp-content/uploads/2023/07/USB-to-TTL-ESP32-CAM-Connection.jpg 1005w, https://blog.robo90.com/wp-content/uploads/2023/07/USB-to-TTL-ESP32-CAM-Connection-300x150.jpg 300w, https://blog.robo90.com/wp-content/uploads/2023/07/USB-to-TTL-ESP32-CAM-Connection-768x383.jpg 768w, https://blog.robo90.com/wp-content/uploads/2023/07/USB-to-TTL-ESP32-CAM-Connection-150x75.jpg 150w, https://blog.robo90.com/wp-content/uploads/2023/07/USB-to-TTL-ESP32-CAM-Connection-450x224.jpg 450w" sizes="(max-width: 1005px) 100vw, 1005px" /><figcaption class="wp-element-caption">Fotoğraf 1.0</figcaption></figure>
</div>


<p class="has-text-align-left wp-block-paragraph">USB-TTL→ ESP-CAM</p>



<ol class="wp-block-list">
<li>GND → GND</li>



<li>Boş</li>



<li>VCC → 5V</li>



<li>TX → UOR</li>



<li>RX → UOT</li>
</ol>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">Bir diğer dikkat etmemiz gereken konu ise USB-TTL dönüştürücünün üzerindeki 5V pinini fotoğraftaki gibi bağlamamız gerekir. 3.3V pinine bağlı olup ttl dönüştürücüyü ESP32-CAM modülünün 5V pinine bağlayamazsınız. </p>



<figure class="wp-block-image size-full is-resized"><img loading="lazy" decoding="async" src="https://blog.robo90.com/wp-content/uploads/2023/07/USB-TTL-5V-Connection.jpg" alt="UART-TTL dönüştürücü pinleri." class="wp-image-7618" style="width:315px;height:315px" width="315" height="315" title="ESP32-CAM ile Yemekleriniz Yanmasın &#x1f958; 61" srcset="https://blog.robo90.com/wp-content/uploads/2023/07/USB-TTL-5V-Connection.jpg 759w, https://blog.robo90.com/wp-content/uploads/2023/07/USB-TTL-5V-Connection-300x300.jpg 300w, https://blog.robo90.com/wp-content/uploads/2023/07/USB-TTL-5V-Connection-150x150.jpg 150w, https://blog.robo90.com/wp-content/uploads/2023/07/USB-TTL-5V-Connection-450x450.jpg 450w" sizes="(max-width: 315px) 100vw, 315px" /></figure>
</blockquote>



<p class="wp-block-paragraph"> Gerekli bağlantıları yaptıktan sonra USB-TTL dönüştürücümüzü bilgisayarımıza bağlamadan önce ESP32’ye ait gerekli kütüphaneleri indirmemiz gerekir. <a href="https://blog.robo90.com/esp32-ye-program-nasil-yazilir-nelere-dikkat-etmemiz-gerekir/">ESP32’ye Program Nasıl Yazılır?</a> adlı blog yazımı okuyabilirsiniz. ESP32-CAM modülü ESP32’ye kamera eklenmiş hali gibi düşünebileceğimizden aynı kütüphaneyle çalışmaktadırlar.</p>



<p class="wp-block-paragraph">Tüm gerekli kütüphaneleri indirdikten sonra ESP32-CAM modülümüzü bilgisayara doğru port ve doğru kartı seçmemiz gerekir. Doğru portu bazen Arduino IDE ile göremeye biliriz. Bu tarz durumlarda Aygıt yöneticisini açıp Ports kısmından doğru bağlantıyı görebiliriz. Eğer sizde her şeye rağmen cihazınızı göremiyorsanız kullandığınız USB-TTL dönüştürücünün Driver’larını indirmeniz gerekebilir. ( <strong>Fotoğraf 1.1</strong> )</p>


<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><img loading="lazy" decoding="async" src="https://blog.robo90.com/wp-content/uploads/2023/07/ESP32-CAM-Device-Manager-Ports.jpg" alt="Aygıt yöneticisi ports kısmı." class="wp-image-7619" style="width:506px;height:125px" width="506" height="125" title="ESP32-CAM ile Yemekleriniz Yanmasın &#x1f958; 62" srcset="https://blog.robo90.com/wp-content/uploads/2023/07/ESP32-CAM-Device-Manager-Ports.jpg 673w, https://blog.robo90.com/wp-content/uploads/2023/07/ESP32-CAM-Device-Manager-Ports-300x74.jpg 300w, https://blog.robo90.com/wp-content/uploads/2023/07/ESP32-CAM-Device-Manager-Ports-150x37.jpg 150w, https://blog.robo90.com/wp-content/uploads/2023/07/ESP32-CAM-Device-Manager-Ports-450x111.jpg 450w" sizes="(max-width: 506px) 100vw, 506px" /><figcaption class="wp-element-caption">Fotoğraf 1.1</figcaption></figure>
</div>


<p class="wp-block-paragraph">Eğer ESP32-CAM modülünün Driver&#8217;larının nasıl kurulacağını bilmiyorsanız aşağıdaki bloğumu inceleyebilirsiniz. </p>



<p class="wp-block-paragraph">Sonrasında IDE programından cihazımızı seçmemiz gerekir. ( <strong>Fotoğraf 1.2</strong> )</p>


<div class="wp-block-image">
<figure class="aligncenter size-large is-resized"><img loading="lazy" decoding="async" src="https://blog.robo90.com/wp-content/uploads/2023/07/ESP32-CAM-board-selecting-1024x709.jpg" alt="Arduino IDE programında kart ve port seçme ekranı. ( AI Thinker ESP32-CAM )" class="wp-image-7620" style="width:580px;height:402px" width="580" height="402" title="ESP32-CAM ile Yemekleriniz Yanmasın &#x1f958; 63" srcset="https://blog.robo90.com/wp-content/uploads/2023/07/ESP32-CAM-board-selecting-1024x709.jpg 1024w, https://blog.robo90.com/wp-content/uploads/2023/07/ESP32-CAM-board-selecting-300x208.jpg 300w, https://blog.robo90.com/wp-content/uploads/2023/07/ESP32-CAM-board-selecting-768x532.jpg 768w, https://blog.robo90.com/wp-content/uploads/2023/07/ESP32-CAM-board-selecting-150x104.jpg 150w, https://blog.robo90.com/wp-content/uploads/2023/07/ESP32-CAM-board-selecting-450x312.jpg 450w, https://blog.robo90.com/wp-content/uploads/2023/07/ESP32-CAM-board-selecting.jpg 1099w" sizes="(max-width: 580px) 100vw, 580px" /><figcaption class="wp-element-caption">Fotoğraf 1.2</figcaption></figure>
</div>


<p class="wp-block-paragraph">Tüm bu işlemleri doğru yaptıktan sonra Kartımızın bağlandığını görebiliriz; ( <strong>Fotoğraf 1.3</strong> )</p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img loading="lazy" decoding="async" width="486" height="88" src="https://blog.robo90.com/wp-content/uploads/2023/07/ESP32-CAM-Connected.jpg" alt="Kartımızı seçtiğimizi gösteren USB bağlantı simgesi ve kartımızın adı. ( AI Thinker ESP32-CAM )" class="wp-image-7621" title="ESP32-CAM ile Yemekleriniz Yanmasın &#x1f958; 64" srcset="https://blog.robo90.com/wp-content/uploads/2023/07/ESP32-CAM-Connected.jpg 486w, https://blog.robo90.com/wp-content/uploads/2023/07/ESP32-CAM-Connected-300x54.jpg 300w, https://blog.robo90.com/wp-content/uploads/2023/07/ESP32-CAM-Connected-150x27.jpg 150w, https://blog.robo90.com/wp-content/uploads/2023/07/ESP32-CAM-Connected-450x81.jpg 450w" sizes="(max-width: 486px) 100vw, 486px" /><figcaption class="wp-element-caption">Fotoğraf 1.3</figcaption></figure>
</div>


<h2 class="wp-block-heading">Gerekli Kodlar</h2>



<p class="wp-block-paragraph">Kodumuzun ilk kısmında ihtiyacımız olan kütüphaneler bulunmakta. Sadece ESP32’nin ilk başta kütüphanesini yüklemeniz gerekli. &#8220;Fazla kütüphane var bunları da indirmem gerekmez mi?&#8221; diye düşünebilirsiniz ancak zaten yüklü olacaktır.</p>



<pre class="wp-block-code"><code>#include "esp_camera.h"
#include &lt;WiFi.h&gt;
#include "esp_timer.h"
#include "img_converters.h"
#include "Arduino.h"
#include "fb_gfx.h"
#include "soc/soc.h" //disable brownout problems
#include "soc/rtc_cntl_reg.h"  //disable brownout problems
#include "esp_http_server.h"</code></pre>



<p class="wp-block-paragraph">Daha sonrasında ise ESP32-CAM modülünü bağlayacağımız internet ismimizi ve şifremizi sırasıyla ssid ve password kısmına yazmamız gerek.</p>



<h3 class="wp-block-heading"><strong><span style="text-decoration: underline">UYARI</span></strong></h3>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph"><em><strong>ESP32-CAM sadece 2.4GHz internete bağlanabilir. 5GHz internetinize bağlanamaz. 5Ghz internetinize bağlamayı denerseniz ESP32-CAM modülü internete bağlanamayacaktır. Telefonunuzun mobil erişim noktasını paylaşıp ESP32-CAM modülünü bağlamayı deneyebilirsiniz ancak telefonunuzun da 2.4GHz internet Wi-Fi paylaşımı yaptığından emin olmanız gerek.</strong></em></p>
</blockquote>



<pre class="wp-block-code"><code>const char* ssid = "****************";       //İnternet İsminiz (Örnek Mahmut_2.4GHz)
const char* password = "****************";   //İnternet Şifreniz </code></pre>



<p class="wp-block-paragraph">Sonrasında ise ESP-CAM modülünün kamerası için gerekli pinleri tanımlamamız gerekir. Kullandığımız kameraya göre pinler değişiklik gösterebilir. Ben ilk denediğimde kameram çalışmamıştı. Sonra ESP32 kütüphanesinin içerisinde gelen CameraWebServer örnek kodundaki genel kamera pinlerini de denedim ancak çalışmamıştı. Eğer siz de aynı sorunla karşılaşırsanız aşağıdaki koddaki CAMERA_MODEL_WROVER_KIT’e ait kamera pin bağlantılarını kodunuza yapıştırabilir, kodunuzdaki hazır kamera pinleriyle yer değiştirebilirsiniz.</p>



<pre class="wp-block-code"><code>#define PART_BOUNDARY "123456789000000000000987654321"
#define BLYNK_TEMPLATE_ID "TMPL6Dn_JnPjn"
#define BLYNK_TEMPLATE_NAME "esp32cam"
#define BLYNK_AUTH_TOKEN "AXhKUN1qbCIsVzwIDjuSPf-yAHr4BDtB"

#define CAMERA_MODEL_AI_THINKER

//Deneyebilceğiniz kamera pini 
#if defined(CAMERA_MODEL_WROVER_KIT)
#define PWDN_GPIO_NUM     32
#define RESET_GPIO_NUM    -1
#define XCLK_GPIO_NUM      0
#define SIOD_GPIO_NUM     26
#define SIOC_GPIO_NUM     27

#define Y9_GPIO_NUM       35
#define Y8_GPIO_NUM       34
#define Y7_GPIO_NUM       39
#define Y6_GPIO_NUM       36
#define Y5_GPIO_NUM       21
#define Y4_GPIO_NUM       19
#define Y3_GPIO_NUM       18
#define Y2_GPIO_NUM        5
#define VSYNC_GPIO_NUM    25
#define HREF_GPIO_NUM     23
#define PCLK_GPIO_NUM     22
//

#elif defined(CAMERA_MODEL_AI_THINKER)
  #define PWDN_GPIO_NUM     32
  #define RESET_GPIO_NUM    -1
  #define XCLK_GPIO_NUM      0
  #define SIOD_GPIO_NUM     26
  #define SIOC_GPIO_NUM     27
  
  #define Y9_GPIO_NUM       35
  #define Y8_GPIO_NUM       34
  #define Y7_GPIO_NUM       39
  #define Y6_GPIO_NUM       36
  #define Y5_GPIO_NUM       21
  #define Y4_GPIO_NUM       19
  #define Y3_GPIO_NUM       18
  #define Y2_GPIO_NUM        5
  #define VSYNC_GPIO_NUM    25
  #define HREF_GPIO_NUM     23
  #define PCLK_GPIO_NUM     22
#else
  #error "Camera model not selected"
#endif</code></pre>



<p class="wp-block-paragraph">Aşağıda ise kodumuzun tamamı mevcut. Kodun geri kalanında kamera, WebServer, Wi-Fi kurulum kodları ( Setup kısmında ) ve kameradan gelen canlı yayını WebServer’a veri ileten kodlar mevcut. Kodumuzun tamamını kopyalayıp gerekli kütüphaneleri indirdiğinizden emin olduktan sonra kodu yüklerken nelere dikkat etmemiz gerektiğini inceleyelim.</p>



<div id="wp-block-themeisle-blocks-accordion-af7b381c" class="wp-block-themeisle-blocks-accordion exclusive">
<details class="wp-block-themeisle-blocks-accordion-item"><summary class="wp-block-themeisle-blocks-accordion-item__title"><div><strong><span style="text-decoration: underline">Kodun Tamamı</span></strong></div></summary><div class="wp-block-themeisle-blocks-accordion-item__content">
<pre class="wp-block-code"><code>#include "esp_camera.h"
#include &lt;WiFi.h&gt;
#include "esp_timer.h"
#include "img_converters.h"
#include "Arduino.h"
#include "fb_gfx.h"
#include "soc/soc.h" //disable brownout problems
#include "soc/rtc_cntl_reg.h"  //disable brownout problems
#include "esp_http_server.h"
const char* ssid = "****************";       //İnternet İsminiz (Örnek Mahmut_2.4GHz)
const char* password = "****************";   //İnternet Şifreniz 
#define PART_BOUNDARY "123456789000000000000987654321"
#define BLYNK_TEMPLATE_ID "TMPL6Dn_JnPjn"
#define BLYNK_TEMPLATE_NAME "esp32cam"
#define BLYNK_AUTH_TOKEN "AXhKUN1qbCIsVzwIDjuSPf-yAHr4BDtB"
#define CAMERA_MODEL_AI_THINKER
#if defined(CAMERA_MODEL_WROVER_KIT)
#define PWDN_GPIO_NUM     32
#define RESET_GPIO_NUM    -1
#define XCLK_GPIO_NUM      0
#define SIOD_GPIO_NUM     26
#define SIOC_GPIO_NUM     27
#define Y9_GPIO_NUM       35
#define Y8_GPIO_NUM       34
#define Y7_GPIO_NUM       39
#define Y6_GPIO_NUM       36
#define Y5_GPIO_NUM       21
#define Y4_GPIO_NUM       19
#define Y3_GPIO_NUM       18
#define Y2_GPIO_NUM        5
#define VSYNC_GPIO_NUM    25
#define HREF_GPIO_NUM     23
#define PCLK_GPIO_NUM     22
#elif defined(CAMERA_MODEL_AI_THINKER)
  #define PWDN_GPIO_NUM     32
  #define RESET_GPIO_NUM    -1
  #define XCLK_GPIO_NUM      0
  #define SIOD_GPIO_NUM     26
  #define SIOC_GPIO_NUM     27
  
  #define Y9_GPIO_NUM       35
  #define Y8_GPIO_NUM       34
  #define Y7_GPIO_NUM       39
  #define Y6_GPIO_NUM       36
  #define Y5_GPIO_NUM       21
  #define Y4_GPIO_NUM       19
  #define Y3_GPIO_NUM       18
  #define Y2_GPIO_NUM        5
  #define VSYNC_GPIO_NUM    25
  #define HREF_GPIO_NUM     23
  #define PCLK_GPIO_NUM     22
#else
  #error "Camera model not selected"
#endif
static const char* _STREAM_CONTENT_TYPE = "multipart/x-mixed-replace;boundary=" PART_BOUNDARY;
static const char* _STREAM_BOUNDARY = "\r\n--" PART_BOUNDARY "\r\n";
static const char* _STREAM_PART = "Content-Type: image/jpeg\r\nContent-Length: %u\r\n\r\n";
httpd_handle_t stream_httpd = NULL;
static esp_err_t stream_handler(httpd_req_t *req){
  camera_fb_t * fb = NULL;
  esp_err_t res = ESP_OK;
  size_t _jpg_buf_len = 0;
  uint8_t * _jpg_buf = NULL;
  char * part_buf&#091;64];
  res = httpd_resp_set_type(req, _STREAM_CONTENT_TYPE);
  if(res != ESP_OK){
    return res;
  }
  while(true){
    fb = esp_camera_fb_get();
    if (!fb) {
      Serial.println("Camera capture failed");
      res = ESP_FAIL;
    } else {
      if(fb-&gt;width &gt; 400){
        if(fb-&gt;format != PIXFORMAT_JPEG){
          bool jpeg_converted = frame2jpg(fb, 80, &amp;_jpg_buf, &amp;_jpg_buf_len);
          esp_camera_fb_return(fb);
          fb = NULL;
          if(!jpeg_converted){
            Serial.println("JPEG compression failed");
            res = ESP_FAIL;
          }
        } else {
          _jpg_buf_len = fb-&gt;len;
          _jpg_buf = fb-&gt;buf;
        }
      }
    }
    if(res == ESP_OK){
      size_t hlen = snprintf((char *)part_buf, 64, _STREAM_PART, _jpg_buf_len);
      res = httpd_resp_send_chunk(req, (const char *)part_buf, hlen);
    }
    if(res == ESP_OK){
      res = httpd_resp_send_chunk(req, (const char *)_jpg_buf, _jpg_buf_len);
    }
    if(res == ESP_OK){
      res = httpd_resp_send_chunk(req, _STREAM_BOUNDARY, strlen(_STREAM_BOUNDARY));
    }
    if(fb){
      esp_camera_fb_return(fb);
      fb = NULL;
      _jpg_buf = NULL;
    } else if(_jpg_buf){
      free(_jpg_buf);
      _jpg_buf = NULL;
    }
    if(res != ESP_OK){
      break;
    }
    //Serial.printf("MJPG: %uB\n",(uint32_t)(_jpg_buf_len));
  }
  return res;
}
void startCameraServer(){
  httpd_config_t config = HTTPD_DEFAULT_CONFIG();
  config.server_port = 80;
  httpd_uri_t index_uri = {
    .uri       = "/",
    .method    = HTTP_GET,
    .handler   = stream_handler,
    .user_ctx  = NULL
  };
  
  //Serial.printf("Starting web server on port: '%d'\n", config.server_port);
  if (httpd_start(&amp;stream_httpd, &amp;config) == ESP_OK) {
    httpd_register_uri_handler(stream_httpd, &amp;index_uri);
  }
}
void setup() {
  WRITE_PERI_REG(RTC_CNTL_BROWN_OUT_REG, 0); //disable brownout detector
 
  Serial.begin(115200);
  Serial.setDebugOutput(false);
  
  camera_config_t config;
  config.ledc_channel = LEDC_CHANNEL_0;
  config.ledc_timer = LEDC_TIMER_0;
  config.pin_d0 = Y2_GPIO_NUM;
  config.pin_d1 = Y3_GPIO_NUM;
  config.pin_d2 = Y4_GPIO_NUM;
  config.pin_d3 = Y5_GPIO_NUM;
  config.pin_d4 = Y6_GPIO_NUM;
  config.pin_d5 = Y7_GPIO_NUM;
  config.pin_d6 = Y8_GPIO_NUM;
  config.pin_d7 = Y9_GPIO_NUM;
  config.pin_xclk = XCLK_GPIO_NUM;
  config.pin_pclk = PCLK_GPIO_NUM;
  config.pin_vsync = VSYNC_GPIO_NUM;
  config.pin_href = HREF_GPIO_NUM;
  config.pin_sscb_sda = SIOD_GPIO_NUM;
  config.pin_sscb_scl = SIOC_GPIO_NUM;
  config.pin_pwdn = PWDN_GPIO_NUM;
  config.pin_reset = RESET_GPIO_NUM;
  config.xclk_freq_hz = 20000000;
  config.pixel_format = PIXFORMAT_JPEG; 
  
  if(psramFound()){
    config.frame_size = FRAMESIZE_VGA;
    config.jpeg_quality = 20;
    config.fb_count = 2;
  } else {
    config.frame_size = FRAMESIZE_VGA;
    config.jpeg_quality = 30;
    config.fb_count = 1;
  }
  
  // Camera init
  esp_err_t err = esp_camera_init(&amp;config);
  if (err != ESP_OK) {
    Serial.printf("Camera init failed with error 0x%x", err);
    return;
  }
  // Wi-Fi connection
  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
  Serial.println("");
  Serial.println("WiFi connected");
  
  Serial.print("Camera Stream Ready! Go to: http://");
  Serial.print(WiFi.localIP());
  
  // Start streaming web server
  startCameraServer();
}
void loop() {
  delay(1);
}</code></pre>
</div></details>
</div>



<h3 class="wp-block-heading"><strong><span style="text-decoration: underline">UYARI</span></strong></h3>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph"><strong>ESP32-CAM modülüne yazılım atarken IO0 pini GND’ye bağlanmalıdır. Bu sayede modül nasıl ESP32’ye yazılım yüklerken butona basıyorsak bu modülde de IO0 pini grounda bağlanmalıdır. Siz jumperlarla da bağlantıyı yapabilirsiniz.</strong></p>



<figure class="wp-block-image size-full is-resized"><img loading="lazy" decoding="async" src="https://blog.robo90.com/wp-content/uploads/2023/07/ESP32-CAM-IO0-GND-Connection.jpg" alt="ESP32-CAM modülüne program atabilmek için IO0 ve GND pinlerinin kısa devre yapıldığını gösteren fotoğraf." class="wp-image-7622" style="width:243px;height:243px" width="243" height="243" title="ESP32-CAM ile Yemekleriniz Yanmasın &#x1f958; 65" srcset="https://blog.robo90.com/wp-content/uploads/2023/07/ESP32-CAM-IO0-GND-Connection.jpg 759w, https://blog.robo90.com/wp-content/uploads/2023/07/ESP32-CAM-IO0-GND-Connection-150x151.jpg 150w, https://blog.robo90.com/wp-content/uploads/2023/07/ESP32-CAM-IO0-GND-Connection-450x452.jpg 450w" sizes="(max-width: 243px) 100vw, 243px" /></figure>
</blockquote>



<h2 class="wp-block-heading"><strong><span style="text-decoration: underline">UYARI</span></strong></h2>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph"><strong>Eğer ESP32-CAM modülünüze program attığınız sırada IO0 ve GND pinlerini jumper ile birbirine bağlıyorsanız şu hatayı alma ihtimaliniz vardır:</strong></p>



<p class="wp-block-paragraph"><strong><em>A fatal error occurred: Invalid head of packet (0x65): Possible serial noise or corruption.</em></strong></p>



<p class="wp-block-paragraph">Bu hatanın anlamı jumper kablonuz çok uzun olduğundan çevre gürültülerini kapabiliyor. Bu hatanın kısa çözümü benim gibi kısa bağlantı şekilleri kullanabilirsiniz. Bu hatanın sebebi bazı ESP32 kartlarında bu hattın gürültü kapmaması için kapasitör konulur. Ancak bazı kartlarda konulmamış bir şekilde geliyor. </p>
</blockquote>



<p class="wp-block-paragraph">Sonrasında kodumuzu yüklemeye başlayabiliriz. Bir diğer dikkat etmemiz gereken kısım ise yükle butonuna tıkladığımızda önce kodumuz derlenecektir. Derlenme işleminin hemen sonrasında “ Connectting. . . ” yazısını göreceksiniz. Bu yazıyı gördüğünüz anda ESP32-CAM modülünün altındaki reset butonuna bir kere basıp çekmeniz gerekmektedir.,</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="822" height="222" src="https://blog.robo90.com/wp-content/uploads/2023/07/ESP32-CAM-reset-button-while-uploading-code.jpg" alt="ESP32-CAM modülümüze program atarken Connecting. . . yazısını gördüğümüz zaman reset butonuna basmamız gerektiğini gösteren fotoğraf" class="wp-image-7680" title="ESP32-CAM ile Yemekleriniz Yanmasın &#x1f958; 66" srcset="https://blog.robo90.com/wp-content/uploads/2023/07/ESP32-CAM-reset-button-while-uploading-code.jpg 822w, https://blog.robo90.com/wp-content/uploads/2023/07/ESP32-CAM-reset-button-while-uploading-code-300x81.jpg 300w, https://blog.robo90.com/wp-content/uploads/2023/07/ESP32-CAM-reset-button-while-uploading-code-768x207.jpg 768w, https://blog.robo90.com/wp-content/uploads/2023/07/ESP32-CAM-reset-button-while-uploading-code-150x41.jpg 150w, https://blog.robo90.com/wp-content/uploads/2023/07/ESP32-CAM-reset-button-while-uploading-code-450x122.jpg 450w" sizes="(max-width: 822px) 100vw, 822px" /></figure>



<p class="wp-block-paragraph">Sonrasında ise kodumuz yüklenmeye başlayacaktır. Kodumuzun yüklenmesi tamamlandıktan sonra ise karşımıza şöyle bir ekranın çıkması gerekir.</p>


<div class="wp-block-image">
<figure class="aligncenter size-large"><img loading="lazy" decoding="async" width="1024" height="456" src="https://blog.robo90.com/wp-content/uploads/2023/07/code-uploading-done-1024x456.jpg" alt="Kodun yüklenip tamamlandığını gösteren fotoğraf." class="wp-image-7681" title="ESP32-CAM ile Yemekleriniz Yanmasın &#x1f958; 67" srcset="https://blog.robo90.com/wp-content/uploads/2023/07/code-uploading-done-1024x456.jpg 1024w, https://blog.robo90.com/wp-content/uploads/2023/07/code-uploading-done-300x133.jpg 300w, https://blog.robo90.com/wp-content/uploads/2023/07/code-uploading-done-768x342.jpg 768w, https://blog.robo90.com/wp-content/uploads/2023/07/code-uploading-done-150x67.jpg 150w, https://blog.robo90.com/wp-content/uploads/2023/07/code-uploading-done-450x200.jpg 450w, https://blog.robo90.com/wp-content/uploads/2023/07/code-uploading-done.jpg 1108w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>
</div>


<p class="wp-block-paragraph">Ve kodumuzu başarıyla yüklemeye başardık. Serial monitörü açmadan önce IO0 ve GND pinlerini birbirine bağlamamızı sağlayan, sadece kod atarken kullandığımız pimi veya jumper kablosunu çıkartmayı unutmamamız gerekir.</p>


<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><img loading="lazy" decoding="async" src="https://blog.robo90.com/wp-content/uploads/2023/07/IO0-GND-connected-disable.jpg" alt="Kodumuzu yükledikten sonra IO0 ile GND pinlerini kısa devre yapmamızı sağlayan pimi çıkarttığımız fotoğraf." class="wp-image-7682" style="width:465px;height:464px" width="465" height="464" title="ESP32-CAM ile Yemekleriniz Yanmasın &#x1f958; 68" srcset="https://blog.robo90.com/wp-content/uploads/2023/07/IO0-GND-connected-disable.jpg 765w, https://blog.robo90.com/wp-content/uploads/2023/07/IO0-GND-connected-disable-300x300.jpg 300w, https://blog.robo90.com/wp-content/uploads/2023/07/IO0-GND-connected-disable-150x150.jpg 150w, https://blog.robo90.com/wp-content/uploads/2023/07/IO0-GND-connected-disable-450x449.jpg 450w" sizes="(max-width: 465px) 100vw, 465px" /></figure>
</div>


<p class="wp-block-paragraph">Daha sonra ESP32-CAM modülü USB ile bilgisayarımıza bağlıyken Serial Monitor’ü açtığımız zaman karşımıza şöyle bir ekran çıkması gerekir;</p>


<div class="wp-block-image">
<figure class="aligncenter size-large is-resized"><img loading="lazy" decoding="async" src="https://blog.robo90.com/wp-content/uploads/2023/07/Serial-Monitor-LAN-IP-1024x440.jpg" alt="Arduino IDE programında Serial Monitörde çalışan programımızın çıktısını gösteren ve cihazın IP &#039;sinin yazılı olduğu  fotoğraf." class="wp-image-7683" style="width:726px;height:312px" width="726" height="312" title="ESP32-CAM ile Yemekleriniz Yanmasın &#x1f958; 69" srcset="https://blog.robo90.com/wp-content/uploads/2023/07/Serial-Monitor-LAN-IP-1024x440.jpg 1024w, https://blog.robo90.com/wp-content/uploads/2023/07/Serial-Monitor-LAN-IP-300x129.jpg 300w, https://blog.robo90.com/wp-content/uploads/2023/07/Serial-Monitor-LAN-IP-768x330.jpg 768w, https://blog.robo90.com/wp-content/uploads/2023/07/Serial-Monitor-LAN-IP-150x64.jpg 150w, https://blog.robo90.com/wp-content/uploads/2023/07/Serial-Monitor-LAN-IP-450x193.jpg 450w, https://blog.robo90.com/wp-content/uploads/2023/07/Serial-Monitor-LAN-IP.jpg 1161w" sizes="(max-width: 726px) 100vw, 726px" /></figure>
</div>


<h3 class="wp-block-heading"><strong><span style="text-decoration: underline">UYARI</span></strong></h3>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph"><strong>Burada bilmemiz gereken diğer bir şey ise bu yayına sadece ama sadece ESP32-CAM ile aynı Wi-Fi ağına bağlıysanız ulaşabileceğinizdir. Eğer bilgisayarınız örnek vermek gerekirse Mahmut_5GHz ağına bağlıysa ve ESP32-CAM modülünüz sadece 2.4GHz ağlara bağlanabildiği için Mahmut_2.4GHz ağına bağlıysa aynı yayına katılamazsınız. Bilgisayarınızın da Mahmut_2.4GHz ağına bağlı olması gerekir.</strong></p>
</blockquote>



<p class="wp-block-paragraph">Göründüğü gibi ESP32-CAM modülümüzle doğru bağlantı kurmayı başardık. Şimdi bize verilen http://192.168.1.53 linkini arama motorumuza yazarak kameramıza ulaşabiliriz.</p>


<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><img loading="lazy" decoding="async" src="https://blog.robo90.com/wp-content/uploads/2023/07/seach-engine-LAN-IP-.jpg" alt="Yazılan IP adresini arama motorumuza yazdığımız fotoğraf." class="wp-image-7684" style="width:525px;height:100px" width="525" height="100" title="ESP32-CAM ile Yemekleriniz Yanmasın &#x1f958; 70" srcset="https://blog.robo90.com/wp-content/uploads/2023/07/seach-engine-LAN-IP-.jpg 804w, https://blog.robo90.com/wp-content/uploads/2023/07/seach-engine-LAN-IP--300x57.jpg 300w, https://blog.robo90.com/wp-content/uploads/2023/07/seach-engine-LAN-IP--768x147.jpg 768w, https://blog.robo90.com/wp-content/uploads/2023/07/seach-engine-LAN-IP--150x29.jpg 150w, https://blog.robo90.com/wp-content/uploads/2023/07/seach-engine-LAN-IP--450x86.jpg 450w" sizes="(max-width: 525px) 100vw, 525px" /></figure>
</div>

<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><img loading="lazy" decoding="async" src="https://blog.robo90.com/wp-content/uploads/2023/07/final-resoult-ESP32-CAM.jpg" alt="ESP32-CAM modülümüzün canlı yayın görüntüsü." class="wp-image-7685" style="width:566px;height:419px" width="566" height="419" title="ESP32-CAM ile Yemekleriniz Yanmasın &#x1f958; 71" srcset="https://blog.robo90.com/wp-content/uploads/2023/07/final-resoult-ESP32-CAM.jpg 859w, https://blog.robo90.com/wp-content/uploads/2023/07/final-resoult-ESP32-CAM-300x222.jpg 300w, https://blog.robo90.com/wp-content/uploads/2023/07/final-resoult-ESP32-CAM-768x570.jpg 768w, https://blog.robo90.com/wp-content/uploads/2023/07/final-resoult-ESP32-CAM-150x111.jpg 150w, https://blog.robo90.com/wp-content/uploads/2023/07/final-resoult-ESP32-CAM-450x334.jpg 450w" sizes="(max-width: 566px) 100vw, 566px" /></figure>
</div>


<p class="wp-block-paragraph">Ve evet! Başardık. İstersek kamera modülünü gerekli güç kaynağıyla beraber yemeğimizi görebileceği bir yere koyarsak canlı yayında yemeklerimizin pişmesini yatağımızda yatarken izleyenbiliriz. Gördüğünüz gibi kamera hareketlerini takip edebiliyoruz. Tabii az önce de bahsettiğimiz gibi bu yayını sadece LAN’dan yani aynı Wi-Fi ağına bağlıysak görebilmekteyiz. Yani yemeklerinizi takip etmek istiyorsanız Wi-Fi’nizin kapsama alanı içerisinde olduğunuzdan emin olun. Peki ya yatağımızda uzanırken Wi-Fi miz çekmiyorsa o zaman ne yapacağız ? Tabi ki buna da mühendisçe bir çözüm üretip bir sonraki <a href="https://blog.robo90.com/esp32-cam-ile-yerel-agdan-genel-aga/">ESP32 ile LAN’dan WAN</a>’a blog yazımı okuyabilirsiniz. Bu sayede ESP’nize internetin olduğu herhangi bir yerden istediğiniz an aynı yerel ağa bağlı olmak zorunda kalmadan ulaşabilirsiniz.</p>
<p><a rel="nofollow" href="https://blog.robo90.com/esp32-cam-ile-yemekleriniz-yanmasin/">ESP32-CAM ile Yemekleriniz Yanmasın 🥘</a> yazısı ilk önce <a rel="nofollow" href="https://blog.robo90.com">Robo90 - Blog</a> üzerinde ortaya çıktı.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.robo90.com/esp32-cam-ile-yemekleriniz-yanmasin/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>🧑‍💻 ESP32 Kullanımı &#8211; Esp32&#8217;ye Nasıl Kod Atılır?</title>
		<link>https://blog.robo90.com/esp32-ye-program-nasil-yazilir/</link>
					<comments>https://blog.robo90.com/esp32-ye-program-nasil-yazilir/#comments</comments>
		
		<dc:creator><![CDATA[Mustafa Topal]]></dc:creator>
		<pubDate>Wed, 26 Jul 2023 18:08:27 +0000</pubDate>
				<category><![CDATA[Featured]]></category>
		<category><![CDATA[Genel]]></category>
		<category><![CDATA[IoT Eğitim Serisi]]></category>
		<category><![CDATA[IoT Projeleri]]></category>
		<category><![CDATA[Latest Posts]]></category>
		<guid isPermaLink="false">https://blog.robo90.com/?p=7290</guid>

					<description><![CDATA[<p>Bu yazımızda ESP32 ’ye Arduino IDE kullanarak ESP32’ye nasıl yazılım yükleneceğini ve örnek bir kod olarak ESP32’ye blink kodunu yükleyeceğiz. ESP32 Driver Kurulumu Burada dikkat etmeniz gereken en önemli şeylerden bir tanesi de ESP32’nizin DRIVER’lerinin bilgisayarınıza yüklü olup olmadığıdır. Bilgisayarımıza USB portu üzerinden bağlanan herhangi bir cihaz üzerlerinde bulunan UART köprüsü dediğimiz minik çipler kullanırlar. [...]</p>
<p><a rel="nofollow" href="https://blog.robo90.com/esp32-ye-program-nasil-yazilir/">🧑‍💻 ESP32 Kullanımı &#8211; Esp32&#8217;ye Nasıl Kod Atılır?</a> yazısı ilk önce <a rel="nofollow" href="https://blog.robo90.com">Robo90 - Blog</a> üzerinde ortaya çıktı.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Bu yazımızda ESP32 ’ye Arduino IDE kullanarak ESP32’ye nasıl yazılım yükleneceğini ve örnek bir kod olarak ESP32’ye blink kodunu yükleyeceğiz.</p>



<h2 class="wp-block-heading">ESP32 Driver Kurulumu</h2>



<p class="wp-block-paragraph">Burada dikkat etmeniz gereken en önemli şeylerden bir tanesi de <strong>ESP32</strong>’nizin<strong> DRIVER</strong>’lerinin bilgisayarınıza yüklü olup olmadığıdır. Bilgisayarımıza USB portu üzerinden bağlanan herhangi bir cihaz üzerlerinde bulunan UART köprüsü dediğimiz minik çipler kullanırlar. <em><strong>Her ESP32 üreticisi gereği farklı UART çipleri kullanabilir.</strong></em> Bu yüzden ESP32’mizin üzerinde bulunan UART çipini tespit edip internetten Driverlerini yüklememiz gerekmektedir. Aksi halde bilgisayarımız cihazımızı tanımayacaktır. Eğer bunu yapmazsanız bilgisayarınız kartınızı görmeyecektir.</p>


<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><img loading="lazy" decoding="async" width="571" height="568" src="https://blog.robo90.com/wp-content/uploads/2023/07/UART-TTL-SINGED.jpg" alt="ESP32 &#039;nin UART-TTL çipi" class="wp-image-7293" style="width:455px;height:453px" title="&#x1f9d1;&#x200d;&#x1f4bb; ESP32 Kullanımı - Esp32&#039;ye Nasıl Kod Atılır? 72" srcset="https://blog.robo90.com/wp-content/uploads/2023/07/UART-TTL-SINGED.jpg 571w, https://blog.robo90.com/wp-content/uploads/2023/07/UART-TTL-SINGED-300x298.jpg 300w, https://blog.robo90.com/wp-content/uploads/2023/07/UART-TTL-SINGED-150x149.jpg 150w, https://blog.robo90.com/wp-content/uploads/2023/07/UART-TTL-SINGED-450x448.jpg 450w" sizes="(max-width: 571px) 100vw, 571px" /><figcaption class="wp-element-caption">Fotoğraf 1.0</figcaption></figure>
</div>


<p class="wp-block-paragraph">Benim kullandığım ESP32, Fotoğraf 1.0&#8217;daki  WCH’nin CH9102X çipini kullanmakta. İnternetten gerekli araştırmaları yapıp kendi ESP32’nizin UART çipinin doğru driverini bulup kullanabilirsiniz. Gerekli kurulumları yaptıktan sonra bilgisayarınızın aygıt yöneticisinden Ports kısmından ESP32’nizin UART çipini görebilirsiniz. ( <strong>Fotoğraf 1.0 </strong>)</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="630" height="67" src="https://blog.robo90.com/wp-content/uploads/2023/07/ports.jpg" alt="Aygıt yöneticisi bilgisayara bağlı olan cihazların portarı" class="wp-image-7294" title="&#x1f9d1;&#x200d;&#x1f4bb; ESP32 Kullanımı - Esp32&#039;ye Nasıl Kod Atılır? 73" srcset="https://blog.robo90.com/wp-content/uploads/2023/07/ports.jpg 630w, https://blog.robo90.com/wp-content/uploads/2023/07/ports-300x32.jpg 300w, https://blog.robo90.com/wp-content/uploads/2023/07/ports-150x16.jpg 150w, https://blog.robo90.com/wp-content/uploads/2023/07/ports-450x48.jpg 450w" sizes="(max-width: 630px) 100vw, 630px" /></figure>



<h2 class="wp-block-heading">Malzemeler</h2>



<ul class="wp-block-list">
<li>1 Adet &#8211; <a href="https://www.robo90.com/esp32-wroom-32-wifi-ve-bluetooth-gelistirme-karti?utm_source=Robo90&amp;utm_medium=blog&amp;utm_campaign=esp32kodatma" data-type="link" data-id="https://www.robo90.com/esp32-wroom-32-wifi-ve-bluetooth-gelistirme-karti?utm_source=Robo90&amp;utm_medium=blog&amp;utm_campaign=esp32kodatma">ESP32-Wroom-32 Wifi ve Bluetooth Geliştirme Kartı</a></li>
</ul>



<h2 class="wp-block-heading">Kütüphane Kurulumu</h2>



<p class="wp-block-paragraph">Daha sonra Arduino IDE’nize ESP32’nin kütüphanesini kurmanız gerekmekte. Bunun iki yolu var. Birinci yolu IDE’nizin Board Manager kısmında ESP32’yi aratıp çıkan kütüphaneyi kurabilirsiniz. Bu yolda ESP32 kütüphanesinin en son sürümünü indiremeyebilirsiniz.  ( <strong>Fotoğraf 1.1</strong>  )</p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img loading="lazy" decoding="async" width="304" height="231" src="https://blog.robo90.com/wp-content/uploads/2023/07/board-manager-library-.jpg" alt="ESP32 board manager kütüphanesi" class="wp-image-7295" title="&#x1f9d1;&#x200d;&#x1f4bb; ESP32 Kullanımı - Esp32&#039;ye Nasıl Kod Atılır? 74" srcset="https://blog.robo90.com/wp-content/uploads/2023/07/board-manager-library-.jpg 304w, https://blog.robo90.com/wp-content/uploads/2023/07/board-manager-library--300x228.jpg 300w, https://blog.robo90.com/wp-content/uploads/2023/07/board-manager-library--150x114.jpg 150w" sizes="(max-width: 304px) 100vw, 304px" /><figcaption class="wp-element-caption">Fotoğraf 1.1 </figcaption></figure>
</div>


<p class="wp-block-paragraph">İkinci yolu ise <a href="https://docs.espressif.com/projects/arduino-esp32/en/latest/installing.html" target="_blank" rel="noreferrer noopener nofollow">https://docs.espressif.com/projects/arduino-esp32/en/latest/installing.html</a> sitesinden;</p>



<figure class="wp-block-image size-large is-resized"><img loading="lazy" decoding="async" width="1024" height="438" src="https://blog.robo90.com/wp-content/uploads/2023/07/expressif-systems-library-dowload--1024x438.jpg" alt="ESP32 &#039;nin kütüphanesini kurmak için ihtiyacımız olan dahili link." class="wp-image-7296" style="width:782px;height:334px" title="&#x1f9d1;&#x200d;&#x1f4bb; ESP32 Kullanımı - Esp32&#039;ye Nasıl Kod Atılır? 75" srcset="https://blog.robo90.com/wp-content/uploads/2023/07/expressif-systems-library-dowload--1024x438.jpg 1024w, https://blog.robo90.com/wp-content/uploads/2023/07/expressif-systems-library-dowload--300x128.jpg 300w, https://blog.robo90.com/wp-content/uploads/2023/07/expressif-systems-library-dowload--768x328.jpg 768w, https://blog.robo90.com/wp-content/uploads/2023/07/expressif-systems-library-dowload--150x64.jpg 150w, https://blog.robo90.com/wp-content/uploads/2023/07/expressif-systems-library-dowload--450x192.jpg 450w, https://blog.robo90.com/wp-content/uploads/2023/07/expressif-systems-library-dowload--1200x513.jpg 1200w, https://blog.robo90.com/wp-content/uploads/2023/07/expressif-systems-library-dowload-.jpg 1431w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">Fotoğraf 1.2</figcaption></figure>



<p class="wp-block-paragraph"><strong>Fotoğraf 1.2 </strong>deki kısma ulaşıyoruz. Bu linklerden Stable release link ( Kararlı sürüm bağlantısı ) Linkini kopyalıyoruz. Linki aynı zamanda aşağıya da koyacağım;</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph"><strong>Link: </strong><a href="https://espressif.github.io/arduino-esp32/package_esp32_index.json" target="_blank" rel="noreferrer noopener nofollow">https://espressif.github.io/arduino-esp32/package_esp32_index.json</a></p>
</blockquote>



<p class="wp-block-paragraph">Daha sonra Arduino IDE’mizin sol üstteki file kısmından Fotoğraf 1.3&#8217;teki gibi Preferences kısmına giriyoruz. ( <strong>Fotoğraf 1.3</strong> )</p>


<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><img loading="lazy" decoding="async" width="223" height="352" src="https://blog.robo90.com/wp-content/uploads/2023/07/image-2.png" alt="Arduino IDE uygulamasında Preferences  kısmı açılışı." class="wp-image-7297" style="width:223px;height:352px" title="&#x1f9d1;&#x200d;&#x1f4bb; ESP32 Kullanımı - Esp32&#039;ye Nasıl Kod Atılır? 76" srcset="https://blog.robo90.com/wp-content/uploads/2023/07/image-2.png 223w, https://blog.robo90.com/wp-content/uploads/2023/07/image-2-190x300.png 190w, https://blog.robo90.com/wp-content/uploads/2023/07/image-2-150x237.png 150w" sizes="(max-width: 223px) 100vw, 223px" /><figcaption class="wp-element-caption">Fotoğraf 1.3</figcaption></figure>
</div>


<p class="wp-block-paragraph">Preferences kısmını açınca karşımıza şöyle bir ekran çıkacak; ( <strong>Fotoğraf 1.4</strong> )</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="676" src="https://blog.robo90.com/wp-content/uploads/2023/07/Preferences--1024x676.jpg" alt="Preferences kısmında linkli kopyalayacağımız kısım." class="wp-image-7298" title="&#x1f9d1;&#x200d;&#x1f4bb; ESP32 Kullanımı - Esp32&#039;ye Nasıl Kod Atılır? 77" srcset="https://blog.robo90.com/wp-content/uploads/2023/07/Preferences--1024x676.jpg 1024w, https://blog.robo90.com/wp-content/uploads/2023/07/Preferences--300x198.jpg 300w, https://blog.robo90.com/wp-content/uploads/2023/07/Preferences--768x507.jpg 768w, https://blog.robo90.com/wp-content/uploads/2023/07/Preferences--150x99.jpg 150w, https://blog.robo90.com/wp-content/uploads/2023/07/Preferences--450x297.jpg 450w, https://blog.robo90.com/wp-content/uploads/2023/07/Preferences-.jpg 1095w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">Fotoğraf 1.4</figcaption></figure>



<p class="wp-block-paragraph">Aldığımız <strong>Fotoğraf 1.2</strong>&#8216;deki linki Additional boards manager URLs yazan kısma kopyalayıp tamam butonuna basınca otomatik yüklemeye başlayacaktır. Tüm bu işlemleri yaptıktan sonra ESP32’mizi Arduino’ya bağlayalım. ( <strong>Fotoğraf 1.5</strong> )</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="889" height="394" src="https://blog.robo90.com/wp-content/uploads/2023/07/boards-and-ports-.jpg" alt="ESP32 &#039;mizi Arduino &#039;ya  bağlarken farklı ESP32 geliştirme kartlarına dikkat etmemiz gerektiği. " class="wp-image-7299" title="&#x1f9d1;&#x200d;&#x1f4bb; ESP32 Kullanımı - Esp32&#039;ye Nasıl Kod Atılır? 78" srcset="https://blog.robo90.com/wp-content/uploads/2023/07/boards-and-ports-.jpg 889w, https://blog.robo90.com/wp-content/uploads/2023/07/boards-and-ports--300x133.jpg 300w, https://blog.robo90.com/wp-content/uploads/2023/07/boards-and-ports--768x340.jpg 768w, https://blog.robo90.com/wp-content/uploads/2023/07/boards-and-ports--150x66.jpg 150w, https://blog.robo90.com/wp-content/uploads/2023/07/boards-and-ports--450x199.jpg 450w" sizes="(max-width: 889px) 100vw, 889px" /><figcaption class="wp-element-caption">Fotoğraf 1.5</figcaption></figure>



<p class="wp-block-paragraph">Burada bir diğer dikkat etmeniz gereken şey her üreticinin ayrı bir ESP32 modeli olabiliyor. <strong>Fotoğraf 1.5</strong>&#8216;ten de anlaşılabileceği gibi farklı ESP32 modelleri için farklı seçenekler mevcut. Doğru kart için doğru ESP32 modelini ve portu seçmemiz gerek.</p>



<p class="wp-block-paragraph">Sonrasında kodumuzu yazalım. Basit bir blink kodu yazalım. ESP32’nin üzerindeki led D2 pinine bağlı. Bu pini çıkış gibi gösterip bir saniyede bir kapatıp açtıralım.</p>



<pre class="wp-block-code"><code>void setup() {
    pinMode(2,OUTPUT);
}

void loop() {


    digitalWrite(2,HIGH);
    delay(1000);
    digitalWrite(2,LOW);
    delay(1000);

}</code></pre>



<p class="wp-block-paragraph">Kodu yazdıktan sonra yüklemeden önce dikkat etmemiz gereken önemli bir diğer adım ise ESP32 modülünün üzerindeki Boot butonudur. ( <strong>Fotoğraf 1.6</strong> )</p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img loading="lazy" decoding="async" width="762" height="412" src="https://blog.robo90.com/wp-content/uploads/2023/07/image-3.png" alt="ESP32 &#039;nin üzerinde bulunan boot butonu" class="wp-image-7300" title="&#x1f9d1;&#x200d;&#x1f4bb; ESP32 Kullanımı - Esp32&#039;ye Nasıl Kod Atılır? 79" srcset="https://blog.robo90.com/wp-content/uploads/2023/07/image-3.png 762w, https://blog.robo90.com/wp-content/uploads/2023/07/image-3-300x162.png 300w, https://blog.robo90.com/wp-content/uploads/2023/07/image-3-150x81.png 150w, https://blog.robo90.com/wp-content/uploads/2023/07/image-3-450x243.png 450w" sizes="(max-width: 762px) 100vw, 762px" /><figcaption class="wp-element-caption">Fotoğraf 1.6</figcaption></figure>
</div>


<p class="wp-block-paragraph">Kodu yükleme butonuna bastıktan sonra Uploading ( Yükleme ) aşamasında ekranda Connecting&#8230; yazısını gördüğümüzde ESP32’nin boot butonuna basılı tutacağız. ( <strong>Fotoğraf 1.7</strong> ) </p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="152" src="https://blog.robo90.com/wp-content/uploads/2023/07/Connecting-1024x152.jpg" alt="Connecting. . . yazısı" class="wp-image-7301" title="&#x1f9d1;&#x200d;&#x1f4bb; ESP32 Kullanımı - Esp32&#039;ye Nasıl Kod Atılır? 80" srcset="https://blog.robo90.com/wp-content/uploads/2023/07/Connecting-1024x152.jpg 1024w, https://blog.robo90.com/wp-content/uploads/2023/07/Connecting-300x45.jpg 300w, https://blog.robo90.com/wp-content/uploads/2023/07/Connecting-768x114.jpg 768w, https://blog.robo90.com/wp-content/uploads/2023/07/Connecting-150x22.jpg 150w, https://blog.robo90.com/wp-content/uploads/2023/07/Connecting-450x67.jpg 450w, https://blog.robo90.com/wp-content/uploads/2023/07/Connecting.jpg 1177w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">Fotoğraf 1.7</figcaption></figure>



<p class="wp-block-paragraph">Daha sonra yükleme işlemi başladıktan sonra butondan elimizi çekebiliriz. ( <strong>Fotoğraf 1.8</strong> )</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="259" src="https://blog.robo90.com/wp-content/uploads/2023/07/while-uploading--1024x259.jpg" alt="Kodumuz yüklenirken. " class="wp-image-7303" title="&#x1f9d1;&#x200d;&#x1f4bb; ESP32 Kullanımı - Esp32&#039;ye Nasıl Kod Atılır? 81" srcset="https://blog.robo90.com/wp-content/uploads/2023/07/while-uploading--1024x259.jpg 1024w, https://blog.robo90.com/wp-content/uploads/2023/07/while-uploading--300x76.jpg 300w, https://blog.robo90.com/wp-content/uploads/2023/07/while-uploading--768x194.jpg 768w, https://blog.robo90.com/wp-content/uploads/2023/07/while-uploading--150x38.jpg 150w, https://blog.robo90.com/wp-content/uploads/2023/07/while-uploading--450x114.jpg 450w, https://blog.robo90.com/wp-content/uploads/2023/07/while-uploading--1200x303.jpg 1200w, https://blog.robo90.com/wp-content/uploads/2023/07/while-uploading-.jpg 1227w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">Fotoğraf 1.8</figcaption></figure>



<p class="wp-block-paragraph">Daha sonra kodumuz başarıyla yüklenecektir ( <strong>Fotoğraf 1.9</strong> ) </p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="230" src="https://blog.robo90.com/wp-content/uploads/2023/07/after-uploading-1024x230.jpg" alt="Kodumuzun yüklenmesi tamamlandığında. " class="wp-image-7305" title="&#x1f9d1;&#x200d;&#x1f4bb; ESP32 Kullanımı - Esp32&#039;ye Nasıl Kod Atılır? 82" srcset="https://blog.robo90.com/wp-content/uploads/2023/07/after-uploading-1024x230.jpg 1024w, https://blog.robo90.com/wp-content/uploads/2023/07/after-uploading-300x67.jpg 300w, https://blog.robo90.com/wp-content/uploads/2023/07/after-uploading-768x173.jpg 768w, https://blog.robo90.com/wp-content/uploads/2023/07/after-uploading-150x34.jpg 150w, https://blog.robo90.com/wp-content/uploads/2023/07/after-uploading-450x101.jpg 450w, https://blog.robo90.com/wp-content/uploads/2023/07/after-uploading-1200x270.jpg 1200w, https://blog.robo90.com/wp-content/uploads/2023/07/after-uploading.jpg 1285w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">Fotoğraf 1.9</figcaption></figure>



<p class="wp-block-paragraph">Göründüğü gibi ESP32’nin üstündeki mavi LED saniyede bir yanıp sönmektedir. ( <strong>Fotoğraf 2.0</strong> )</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="795" height="400" src="https://blog.robo90.com/wp-content/uploads/2023/07/Blink-esp32.jpg" alt="Blink kodumuz yüklendi. ESP32 &#039;nin üzerindeki mavi LED yanıp sönüyor. " class="wp-image-7306" title="&#x1f9d1;&#x200d;&#x1f4bb; ESP32 Kullanımı - Esp32&#039;ye Nasıl Kod Atılır? 83" srcset="https://blog.robo90.com/wp-content/uploads/2023/07/Blink-esp32.jpg 795w, https://blog.robo90.com/wp-content/uploads/2023/07/Blink-esp32-300x151.jpg 300w, https://blog.robo90.com/wp-content/uploads/2023/07/Blink-esp32-768x386.jpg 768w, https://blog.robo90.com/wp-content/uploads/2023/07/Blink-esp32-150x75.jpg 150w, https://blog.robo90.com/wp-content/uploads/2023/07/Blink-esp32-450x226.jpg 450w" sizes="(max-width: 795px) 100vw, 795px" /><figcaption class="wp-element-caption">Fotoğraf 2.0</figcaption></figure>



<p class="wp-block-paragraph">Bu yazımızda ESP32’nin içerisine nasıl yazılım atılabileceğini öğrendik. Aşağıdaki bağlantıdan sıradaki yazımıza bakabilirsiniz.</p>



<p class="wp-block-paragraph"><a href="https://blog.robo90.com/-esp32-ve-arduino-iot-ile-led-nasil-kontrol-edilir/"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f310.png" alt="🌐" class="wp-smiley" style="height: 1em; max-height: 1em;" /> ESP32 ve Arduino IOT ile LED Nasıl Kontrol Edilir?</a></p>
<p><a rel="nofollow" href="https://blog.robo90.com/esp32-ye-program-nasil-yazilir/">🧑‍💻 ESP32 Kullanımı &#8211; Esp32&#8217;ye Nasıl Kod Atılır?</a> yazısı ilk önce <a rel="nofollow" href="https://blog.robo90.com">Robo90 - Blog</a> üzerinde ortaya çıktı.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.robo90.com/esp32-ye-program-nasil-yazilir/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>🌐 ESP32 ve Arduino IOT ile LED Nasıl Kontrol Edilir?</title>
		<link>https://blog.robo90.com/esp32-ve-arduino-iot-ile-led-nasil-kontrol-edilir/</link>
					<comments>https://blog.robo90.com/esp32-ve-arduino-iot-ile-led-nasil-kontrol-edilir/#respond</comments>
		
		<dc:creator><![CDATA[Mustafa Topal]]></dc:creator>
		<pubDate>Wed, 26 Jul 2023 17:54:41 +0000</pubDate>
				<category><![CDATA[Featured]]></category>
		<category><![CDATA[Genel]]></category>
		<category><![CDATA[IoT Eğitim Serisi]]></category>
		<category><![CDATA[IoT Projeleri]]></category>
		<category><![CDATA[Latest Posts]]></category>
		<guid isPermaLink="false">https://blog.robo90.com/?p=7311</guid>

					<description><![CDATA[<p>Hepimiz izlediğimiz videolarda, gerek okuduğumuz makalelerde IOT ( Internet of Things ) adlı bir başlık duymuşuzdur. IOT nesnelerin interneti anlamına gelmektedir ve günümüzde neredeyse kullandığımız akıllı her üründe IOT kavramını görmekteyiz. Gerek telefonumuzun internete bağlanması, gerek kullandığımız akıllı televizyonlar ve bir çok nesne internetle iletişim halindedir. Peki biz bir nesneyi nasıl IOT dünyasıyla bir araya [...]</p>
<p><a rel="nofollow" href="https://blog.robo90.com/esp32-ve-arduino-iot-ile-led-nasil-kontrol-edilir/">🌐 ESP32 ve Arduino IOT ile LED Nasıl Kontrol Edilir?</a> yazısı ilk önce <a rel="nofollow" href="https://blog.robo90.com">Robo90 - Blog</a> üzerinde ortaya çıktı.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Hepimiz izlediğimiz videolarda, gerek okuduğumuz makalelerde IOT ( Internet of Things ) adlı bir başlık duymuşuzdur. IOT nesnelerin interneti anlamına gelmektedir ve günümüzde neredeyse kullandığımız akıllı her üründe IOT kavramını görmekteyiz. Gerek telefonumuzun internete bağlanması, gerek kullandığımız akıllı televizyonlar ve bir çok nesne internetle iletişim halindedir. Peki biz bir nesneyi nasıl IOT dünyasıyla bir araya getirebiliriz ? Bugün IOT konusunun giriş seviye uygulamalarından birisi olan ESP32 ile Dünya’da internetin olduğu herhangi bir konumdan LED açıp kapatacağız.</p>



<p class="wp-block-paragraph">Bu projeyi yaptıktan sonra Sadece bir LED’i açıp kapatarak bile IOT dünyasına giriş yapmış olacaksınız. Bundan sonra röle modülü kullanarak istediğiniz tüm cihazlarınızın uzaktan bağlantılarını kesebilir veya bir sensör yardımıyla odanızın sıcaklığını ölçebilirsiniz. Yani düşünsenize yapabileceklerinizin sonu yok !</p>



<h2 class="wp-block-heading">İhtiyaç Listesi</h2>



<p class="wp-block-paragraph">Bu proje için ihtiyacımız olan malzemeler arasında;</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph"><strong>1 adet ESP32: </strong><a href="https://www.robo90.com/esp32-wroom-32-wifi-ve-bluetooth-gelistirme-karti?utm_source=Robo90&amp;utm_medium=blog&amp;utm_campaign=esp32iotled">ESP32-Wroom-32 Wifi ve Bluetooth Geliştirme Kartı</a></p>
</blockquote>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph"><strong>1 adet Breadboard</strong>: <a href="https://www.robo90.com/elektronik-breadboard-orta-boy-400-pin?utm_source=Robo90&amp;utm_medium=blog&amp;utm_campaign=esp32iotled">Elektronik Breadboard &#8211; Orta Boy &#8211; 400 Pin</a></p>
</blockquote>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph"><strong>1 adet LED</strong>: <a href="https://www.robo90.com/kirmizi-led-5mm-10-adet?utm_source=Robo90&amp;utm_medium=blog&amp;utm_campaign=esp32iotled">Kırmızı Led &#8211; 5mm &#8211; 10 Adet</a></p>
</blockquote>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph"><strong>1 adet Direnç: </strong><a href="https://www.robo90.com/220r-direnc-paketi-1-4-w-10-adet?utm_source=Robo90&amp;utm_medium=blog&amp;utm_campaign=esp32iotled">220R Direnç Paketi &#8211; 1/4 W &#8211; 10 Adet</a></p>
</blockquote>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph"><strong>2 adet Jumper</strong>(40lı olarak satılıyor 1 tane almanız yeterli): <a href="https://www.robo90.com/40li-ayrilabilen-disi-erkek-jumper-kablo-20cm-arduino-uyumlu?utm_source=Robo90&amp;utm_medium=blog&amp;utm_campaign=esp32iotled">40lı Ayrılabilen Dişi-Erkek Jumper Kablo &#8211; 20cm &#8211; Arduino Uyumlu</a></p>
</blockquote>



<h2 class="wp-block-heading">Projenin yapılışı</h2>



<p class="wp-block-paragraph">ESP32, üzerindeki Wi-fi özelliği sayesinde internete bağlanabilir. ESP32’nin örnek kodlarını incelerseniz internet projeleri olduğunu görebilirsiniz. Ama tüm projeler LAN üzerinden çalışmakta. Tıpkı çocukken arkadaşımızla yan yana oyun oynamak istediğimizde aynı internete bağlı olmamız gerektiği gibi. Yani arkadaşınız çok uzaklardaysa LAN üzerinden oyun oynayamazsınız. Bir servera ihtiyacınız var. Yani internet dünyasına oluşturulmuş bir alana ihtiyacınız var. Bu ihtiyacımızı tıpkı oyunların serverları gibi Arduino Cloud dediğimiz Arduino’nun platformu ile karşılayacağız.</p>



<p class="wp-block-paragraph">İlk adım olarak <a href="https://docs.arduino.cc/arduino-cloud/" target="_blank" rel="noreferrer noopener nofollow">https://docs.arduino.cc/arduino-cloud/</a> internet sitesine girip oradan ARDUINO IOT CLOUD butonuna basmamız gerekiyor. ( <strong>Fotoğraf 1.0</strong> )</p>


<div class="wp-block-image">
<figure class="aligncenter size-large is-resized"><img loading="lazy" decoding="async" width="1024" height="426" src="https://blog.robo90.com/wp-content/uploads/2023/07/Arduino-Cloud-1-1024x426.jpg" alt="Arduino IOT Cloud Başlangıç Sayfası" class="wp-image-7317" style="width:580px;height:241px" title="&#x1f310; ESP32 ve Arduino IOT ile LED Nasıl Kontrol Edilir? 84" srcset="https://blog.robo90.com/wp-content/uploads/2023/07/Arduino-Cloud-1-1024x426.jpg 1024w, https://blog.robo90.com/wp-content/uploads/2023/07/Arduino-Cloud-1-300x125.jpg 300w, https://blog.robo90.com/wp-content/uploads/2023/07/Arduino-Cloud-1-768x320.jpg 768w, https://blog.robo90.com/wp-content/uploads/2023/07/Arduino-Cloud-1-150x62.jpg 150w, https://blog.robo90.com/wp-content/uploads/2023/07/Arduino-Cloud-1-450x187.jpg 450w, https://blog.robo90.com/wp-content/uploads/2023/07/Arduino-Cloud-1.jpg 1161w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">Fotoğraf 1.0</figcaption></figure>
</div>


<p class="wp-block-paragraph">Daha sonra karşımıza çıkan ekrandan kayıt oluyoruz. ( <strong>Fotoğraf 1.1</strong> )</p>


<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><img loading="lazy" decoding="async" width="781" height="520" src="https://blog.robo90.com/wp-content/uploads/2023/07/sing-in-.jpg" alt="Arduino IOT kayıt sayfası " class="wp-image-7318" style="width:537px;height:357px" title="&#x1f310; ESP32 ve Arduino IOT ile LED Nasıl Kontrol Edilir? 85" srcset="https://blog.robo90.com/wp-content/uploads/2023/07/sing-in-.jpg 781w, https://blog.robo90.com/wp-content/uploads/2023/07/sing-in--300x200.jpg 300w, https://blog.robo90.com/wp-content/uploads/2023/07/sing-in--768x511.jpg 768w, https://blog.robo90.com/wp-content/uploads/2023/07/sing-in--150x100.jpg 150w, https://blog.robo90.com/wp-content/uploads/2023/07/sing-in--450x300.jpg 450w" sizes="(max-width: 781px) 100vw, 781px" /><figcaption class="wp-element-caption">Fotoğraf 1.1</figcaption></figure>
</div>


<p class="wp-block-paragraph">Daha sonra karşımıza çıkan ekrandan Create Thing butonuna basmamız gerekiyor ( <strong>Fotoğraf 1.2</strong> )</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="463" src="https://blog.robo90.com/wp-content/uploads/2023/07/create-think-1024x463.jpg" alt="Yeni bir proje oluşturma kısmı " class="wp-image-7334" title="&#x1f310; ESP32 ve Arduino IOT ile LED Nasıl Kontrol Edilir? 86" srcset="https://blog.robo90.com/wp-content/uploads/2023/07/create-think-1024x463.jpg 1024w, https://blog.robo90.com/wp-content/uploads/2023/07/create-think-300x136.jpg 300w, https://blog.robo90.com/wp-content/uploads/2023/07/create-think-768x347.jpg 768w, https://blog.robo90.com/wp-content/uploads/2023/07/create-think-1536x694.jpg 1536w, https://blog.robo90.com/wp-content/uploads/2023/07/create-think-150x68.jpg 150w, https://blog.robo90.com/wp-content/uploads/2023/07/create-think-450x203.jpg 450w, https://blog.robo90.com/wp-content/uploads/2023/07/create-think-1200x542.jpg 1200w, https://blog.robo90.com/wp-content/uploads/2023/07/create-think.jpg 1666w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">Fotoğraf 1.2 </figcaption></figure>



<p class="wp-block-paragraph">Sonrasında ise çıkan erkandan Add Variable butonuna basmamız gerekmekte. ( <strong>Fotoğraf 1.3</strong> )</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="978" height="379" src="https://blog.robo90.com/wp-content/uploads/2023/07/add-variable-.jpg" alt="Cloud Variables ( bulut değişkenleri ) oluşturma kısmı " class="wp-image-7336" title="&#x1f310; ESP32 ve Arduino IOT ile LED Nasıl Kontrol Edilir? 87" srcset="https://blog.robo90.com/wp-content/uploads/2023/07/add-variable-.jpg 978w, https://blog.robo90.com/wp-content/uploads/2023/07/add-variable--300x116.jpg 300w, https://blog.robo90.com/wp-content/uploads/2023/07/add-variable--768x298.jpg 768w, https://blog.robo90.com/wp-content/uploads/2023/07/add-variable--150x58.jpg 150w, https://blog.robo90.com/wp-content/uploads/2023/07/add-variable--450x174.jpg 450w" sizes="(max-width: 978px) 100vw, 978px" /><figcaption class="wp-element-caption">Fotoğraf 1.3</figcaption></figure>



<p class="wp-block-paragraph">Daha sonra ise karşımıza çıkan ekrandan değişkenimize bir isim veriyoruz. Ben led ismini seçtim. Sonrasında hemen altındaki select variable type kısmında değişkenimizin ne olduğunu seçmemiz gerekiyor. ( <strong>Fotoğraf 1.4</strong> )</p>


<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><img loading="lazy" decoding="async" width="649" height="760" src="https://blog.robo90.com/wp-content/uploads/2023/07/variable-name-.jpg" alt="LED adlı değişkenimizin tanımlamaları 
" class="wp-image-7337" style="width:461px;height:540px" title="&#x1f310; ESP32 ve Arduino IOT ile LED Nasıl Kontrol Edilir? 88" srcset="https://blog.robo90.com/wp-content/uploads/2023/07/variable-name-.jpg 649w, https://blog.robo90.com/wp-content/uploads/2023/07/variable-name--256x300.jpg 256w, https://blog.robo90.com/wp-content/uploads/2023/07/variable-name--150x176.jpg 150w, https://blog.robo90.com/wp-content/uploads/2023/07/variable-name--450x527.jpg 450w" sizes="(max-width: 649px) 100vw, 649px" /><figcaption class="wp-element-caption">Fotoğraf 1.4</figcaption></figure>
</div>


<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">Light yazınca karşınıza çıkmazsa yandaki resimdeki gibi Light and color kutucuğunu da işaretlemeniz gerekir. ( <strong>Fotoğraf 1.5</strong> )</p>


<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><img loading="lazy" decoding="async" width="570" height="469" src="https://blog.robo90.com/wp-content/uploads/2023/07/light-2.jpg" alt="light yazınca karşımıza çıkması için kutucuğu seçmemiz gerek." class="wp-image-7341" style="width:337px;height:278px" title="&#x1f310; ESP32 ve Arduino IOT ile LED Nasıl Kontrol Edilir? 89" srcset="https://blog.robo90.com/wp-content/uploads/2023/07/light-2.jpg 570w, https://blog.robo90.com/wp-content/uploads/2023/07/light-2-300x247.jpg 300w, https://blog.robo90.com/wp-content/uploads/2023/07/light-2-150x123.jpg 150w, https://blog.robo90.com/wp-content/uploads/2023/07/light-2-450x370.jpg 450w" sizes="(max-width: 570px) 100vw, 570px" /><figcaption class="wp-element-caption">Fotoğraf 1.5</figcaption></figure>
</div>


<p class="wp-block-paragraph"></p>
</blockquote>



<p class="wp-block-paragraph">Daha sonra değişkenimizin sadece Read &amp; Write ( Okuma ve yazma mı ? ) veya Read Only ( sadece yazma ) mı olduğunu seçmemiz gerek. Eğer bir sensör kullanıyorsak sadece Read Only kutucuğunu seçmemiz, eğer led gibi çıkış vermemiz gereken bir cihaz kullanıyorsak Read &amp; Write kutucuğunu seçmemiz gerek ( <strong>Fotoğraf 1.6</strong> )</p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img loading="lazy" decoding="async" width="502" height="424" src="https://blog.robo90.com/wp-content/uploads/2023/07/Read-Write-.jpg" alt="Değişkenden veri mi okuyacağız yoksa hem okuyup yazacak mıyız onu seçiyoruz. Ayrıca değişken periyodik olarak değişsin mi yoksa sadece bir verisi güncellendiğinde mi değişsin." class="wp-image-7342" title="&#x1f310; ESP32 ve Arduino IOT ile LED Nasıl Kontrol Edilir? 90" srcset="https://blog.robo90.com/wp-content/uploads/2023/07/Read-Write-.jpg 502w, https://blog.robo90.com/wp-content/uploads/2023/07/Read-Write--300x253.jpg 300w, https://blog.robo90.com/wp-content/uploads/2023/07/Read-Write--150x127.jpg 150w, https://blog.robo90.com/wp-content/uploads/2023/07/Read-Write--450x380.jpg 450w" sizes="(max-width: 502px) 100vw, 502px" /><figcaption class="wp-element-caption">Fotoğraf 1.6</figcaption></figure>
</div>


<p class="wp-block-paragraph">Daha sonra Variable Update Policy ( Değişken Güncelleme Politikası ) kısmını seçmemiz gerek. Burada dikkat etmemiz gereken Değişkenimiz değişir değişmez mi veri geliyor yoksa periyodik olarak sürekli mi geliyor. Buton veya LED gibi bileşenler kullanacaksak On Change kutucuğunu işaretlememiz gerekir. Sonrasında ise Add Variable kutucuğuna basarak yaptıklarımızı kaydedebiliriz.</p>



<p class="wp-block-paragraph">Göründüğü gibi projemiz Cloud Variables ( Bulut değişkenleri ) kısmına geldi. ( <strong>Fotoğraf 1.7</strong> )</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="504" src="https://blog.robo90.com/wp-content/uploads/2023/07/Cloud-variables-1024x504.jpg" alt="Cloud Variables ( Bulut değişkenleri ) kısmına geldi. " class="wp-image-7343" title="&#x1f310; ESP32 ve Arduino IOT ile LED Nasıl Kontrol Edilir? 91" srcset="https://blog.robo90.com/wp-content/uploads/2023/07/Cloud-variables-1024x504.jpg 1024w, https://blog.robo90.com/wp-content/uploads/2023/07/Cloud-variables-300x148.jpg 300w, https://blog.robo90.com/wp-content/uploads/2023/07/Cloud-variables-768x378.jpg 768w, https://blog.robo90.com/wp-content/uploads/2023/07/Cloud-variables-150x74.jpg 150w, https://blog.robo90.com/wp-content/uploads/2023/07/Cloud-variables-450x222.jpg 450w, https://blog.robo90.com/wp-content/uploads/2023/07/Cloud-variables-1200x591.jpg 1200w, https://blog.robo90.com/wp-content/uploads/2023/07/Cloud-variables.jpg 1489w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">Fotoğraf 1.7</figcaption></figure>



<p class="wp-block-paragraph">Daha sonra ise Associated Device ( <strong>İlişkili Cihaz</strong> ) kısmına tıklıyoruz. ( <strong>Fotoğraf 1.7</strong> )</p>



<h2 class="wp-block-heading">ESP32 Arduino IOT Bağlantısı</h2>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img loading="lazy" decoding="async" width="1017" height="661" src="https://blog.robo90.com/wp-content/uploads/2023/07/iliskili-cihaz-.jpg" alt="Associated Device ( İlişkili Cihaz ) kısmına tıklıyoruz." class="wp-image-7344" title="&#x1f310; ESP32 ve Arduino IOT ile LED Nasıl Kontrol Edilir? 92" srcset="https://blog.robo90.com/wp-content/uploads/2023/07/iliskili-cihaz-.jpg 1017w, https://blog.robo90.com/wp-content/uploads/2023/07/iliskili-cihaz--300x195.jpg 300w, https://blog.robo90.com/wp-content/uploads/2023/07/iliskili-cihaz--768x499.jpg 768w, https://blog.robo90.com/wp-content/uploads/2023/07/iliskili-cihaz--150x97.jpg 150w, https://blog.robo90.com/wp-content/uploads/2023/07/iliskili-cihaz--450x292.jpg 450w" sizes="(max-width: 1017px) 100vw, 1017px" /><figcaption class="wp-element-caption">Fotoğraf 1.8</figcaption></figure>
</div>


<p class="wp-block-paragraph">Karşımıza çıkan ekrandan bağlayacağımız cihazı seçmemiz gerekiyor. Biz Third Party Device ( <strong>3. part cihazlar</strong> ) seçeneğini seçmemiz gerekiyor. ( <strong>Fotoğraf 1.8</strong> )</p>


<div class="wp-block-image">
<figure class="aligncenter size-large is-resized"><img loading="lazy" decoding="async" width="1024" height="699" src="https://blog.robo90.com/wp-content/uploads/2023/07/setup-device-1024x699.jpg" alt="ESP32 kutucuğu ve cihaz tipinin seçildiği kısım
" class="wp-image-7345" style="width:642px;height:438px" title="&#x1f310; ESP32 ve Arduino IOT ile LED Nasıl Kontrol Edilir? 93" srcset="https://blog.robo90.com/wp-content/uploads/2023/07/setup-device-1024x699.jpg 1024w, https://blog.robo90.com/wp-content/uploads/2023/07/setup-device-300x205.jpg 300w, https://blog.robo90.com/wp-content/uploads/2023/07/setup-device-768x524.jpg 768w, https://blog.robo90.com/wp-content/uploads/2023/07/setup-device-150x102.jpg 150w, https://blog.robo90.com/wp-content/uploads/2023/07/setup-device-450x307.jpg 450w, https://blog.robo90.com/wp-content/uploads/2023/07/setup-device.jpg 1042w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">Fotoğraf 1.9</figcaption></figure>
</div>


<p class="wp-block-paragraph">Sonrasında karşımıza çıkan ekrandan cihazımızı seçmemiz gerekiyor. kullanacağımız cihaz ESP32 ama ESP32 de üreticisine göre alt başlıklara ayrılmakta. Ben ESP32 DEVKİT V1 kullanacağım. Siz de cihazınızın arkasını çevirip öğrenebilirsiniz. ( <strong>Fotoğraf 1.9 &#8211; Fotoğraf 2.0</strong> )</p>


<div class="wp-block-image">
<figure class="aligncenter size-large is-resized"><img loading="lazy" decoding="async" width="1024" height="410" src="https://blog.robo90.com/wp-content/uploads/2023/07/select-device-type--1024x410.jpg" alt="ESP32&#039;nin türü ve önemi " class="wp-image-7346" style="width:797px;height:319px" title="&#x1f310; ESP32 ve Arduino IOT ile LED Nasıl Kontrol Edilir? 94" srcset="https://blog.robo90.com/wp-content/uploads/2023/07/select-device-type--1024x410.jpg 1024w, https://blog.robo90.com/wp-content/uploads/2023/07/select-device-type--300x120.jpg 300w, https://blog.robo90.com/wp-content/uploads/2023/07/select-device-type--768x308.jpg 768w, https://blog.robo90.com/wp-content/uploads/2023/07/select-device-type--150x60.jpg 150w, https://blog.robo90.com/wp-content/uploads/2023/07/select-device-type--450x180.jpg 450w, https://blog.robo90.com/wp-content/uploads/2023/07/select-device-type-.jpg 1093w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">Fotoğraf 2.0</figcaption></figure>
</div>


<hr class="wp-block-separator has-alpha-channel-opacity is-style-wide"/>



<h3 class="wp-block-heading"><strong><span style="text-decoration: underline">UYARI</span></strong></h3>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph"><strong>Burada dikkat etmeniz gereken en önemli şeylerden bir tanesi de ESP32’nizin DRIVER’lerinin bilgisayarınıza yüklü olup olmadığıdır. Bilgisayarımıza USB portu üzerinden bağlanan herhangi bir cihaz üzerlerinde bulunan UART köprüsü dediğimiz minik çipler kullanırlar. Her ESP32 üreticisi gereği farklı UART çipleri kullanabilir. Bu yüzden ESP32’mizin üzerinde bulunan UART çipini tespit edip internetten Driverlerini yüklememiz gerekmektedir. Aksi halde bilgisayarımız ESP32 cihazımızı tanımayacaktır. Bu kısmı daha detaylı incelediğimiz; &#8220;<a href="https://blog.robo90.com/esp32-ye-program-nasil-yazilir-nelere-dikkat-etmemiz-gerekir/">ESP32’ye yazılım nasıl yüklenir</a>&#8221; blog yazımızı inceleyebilirsiniz. Eğer bunu yapmazsanız bilgisayarınız ESP32 kartınızı görmeyecektir.</strong> ( <strong>Fotoğraf 2.1</strong> )</p>


<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><img loading="lazy" decoding="async" width="571" height="568" src="https://blog.robo90.com/wp-content/uploads/2023/07/UART-TTL-SINGED-1.jpg" alt="ESP32 &#039;nin UART-TTL dönüştürücü çipi" class="wp-image-7348" style="width:432px;height:430px" title="&#x1f310; ESP32 ve Arduino IOT ile LED Nasıl Kontrol Edilir? 95" srcset="https://blog.robo90.com/wp-content/uploads/2023/07/UART-TTL-SINGED-1.jpg 571w, https://blog.robo90.com/wp-content/uploads/2023/07/UART-TTL-SINGED-1-300x298.jpg 300w, https://blog.robo90.com/wp-content/uploads/2023/07/UART-TTL-SINGED-1-150x149.jpg 150w, https://blog.robo90.com/wp-content/uploads/2023/07/UART-TTL-SINGED-1-450x448.jpg 450w" sizes="(max-width: 571px) 100vw, 571px" /><figcaption class="wp-element-caption">Fotoğraf 2.1</figcaption></figure>
</div>


<p class="wp-block-paragraph"><strong>Eğer ESP32 &#8216;ye nasıl yazılım yükleneceğini bilmiyorsanız aşağıdaki blog yazımı okuyabilirsiniz.</strong></p>



<p class="wp-block-paragraph"><a href="https://blog.robo90.com/esp32-ye-program-nasil-yazilir-nelere-dikkat-etmemiz-gerekir/">Esp32&#8217;ye Nasıl Program Yazılır?</a></p>
</blockquote>



<hr class="wp-block-separator has-alpha-channel-opacity is-style-wide"/>



<p class="wp-block-paragraph">Kullandığımız kartı seçtikten sonra devam butonuna basıyoruz. Sonrasında ise cihazımıza istediğimiz ismi verebiliriz. Ben ESP32-Mahmut koyuyorum. ( <strong>Fotoğraf 2.2</strong> )</p>


<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><img loading="lazy" decoding="async" width="849" height="729" src="https://blog.robo90.com/wp-content/uploads/2023/07/Give-a-name-.jpg" alt="ESP32 &#039;mize isim verdiğimiz kısım" class="wp-image-7350" style="width:636px;height:545px" title="&#x1f310; ESP32 ve Arduino IOT ile LED Nasıl Kontrol Edilir? 96" srcset="https://blog.robo90.com/wp-content/uploads/2023/07/Give-a-name-.jpg 849w, https://blog.robo90.com/wp-content/uploads/2023/07/Give-a-name--300x258.jpg 300w, https://blog.robo90.com/wp-content/uploads/2023/07/Give-a-name--768x659.jpg 768w, https://blog.robo90.com/wp-content/uploads/2023/07/Give-a-name--150x129.jpg 150w, https://blog.robo90.com/wp-content/uploads/2023/07/Give-a-name--450x386.jpg 450w" sizes="(max-width: 849px) 100vw, 849px" /><figcaption class="wp-element-caption">Fotoğraf 2.2</figcaption></figure>
</div>


<p class="wp-block-paragraph">Daha sonra karşınıza Device ID ( Cihazınızın ID’si ) ve Secret Key kısımları çıkacak. Bu iki kısmı kaybetmeyin ve paylaşmamaya özen gösterin. Aksi halde birisi sizin cihazınızı kontrol edebilir. Bu iki kısmı not alabilir veya direk <em>dowload the PDF</em> kısmından bu bilgilerin yazılı olduğu bir PDF indirebilirsiniz. Bilgileri kaydettiğinizden emin olduktan sonra <em>I saved my device ID and Secret Key </em>kutucuğunu seçip devam butonuna tıklıyoruz. ( <strong>Fotoğraf 2.3</strong> )</p>


<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><img loading="lazy" decoding="async" width="565" height="734" src="https://blog.robo90.com/wp-content/uploads/2023/07/Device-ID-1.jpg" alt="ESP32 &#039;mize Device ID ( Cihazınızın ID’si ) ve Secret Key&#039;in yazılı olduğu ekran " class="wp-image-7353" style="width:455px;height:591px" title="&#x1f310; ESP32 ve Arduino IOT ile LED Nasıl Kontrol Edilir? 97" srcset="https://blog.robo90.com/wp-content/uploads/2023/07/Device-ID-1.jpg 565w, https://blog.robo90.com/wp-content/uploads/2023/07/Device-ID-1-231x300.jpg 231w, https://blog.robo90.com/wp-content/uploads/2023/07/Device-ID-1-150x195.jpg 150w, https://blog.robo90.com/wp-content/uploads/2023/07/Device-ID-1-450x585.jpg 450w" sizes="(max-width: 565px) 100vw, 565px" /><figcaption class="wp-element-caption">Fotoğraf 2.3</figcaption></figure>
</div>


<p class="wp-block-paragraph">Tebrikler! Cihazınızı Arduino Cloud hesabına bağladınız. ( <strong>Fotoğraf 2.4</strong> )</p>


<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><img loading="lazy" decoding="async" width="939" height="736" src="https://blog.robo90.com/wp-content/uploads/2023/07/connected-device-.jpg" alt="ESP32 cihazımızı seçtiğimizi söyleyip kutlayan bir mesaj" class="wp-image-7355" style="width:501px;height:392px" title="&#x1f310; ESP32 ve Arduino IOT ile LED Nasıl Kontrol Edilir? 98" srcset="https://blog.robo90.com/wp-content/uploads/2023/07/connected-device-.jpg 939w, https://blog.robo90.com/wp-content/uploads/2023/07/connected-device--300x235.jpg 300w, https://blog.robo90.com/wp-content/uploads/2023/07/connected-device--768x602.jpg 768w, https://blog.robo90.com/wp-content/uploads/2023/07/connected-device--150x118.jpg 150w, https://blog.robo90.com/wp-content/uploads/2023/07/connected-device--450x353.jpg 450w" sizes="(max-width: 939px) 100vw, 939px" /><figcaption class="wp-element-caption">Fotoğraf 2.4</figcaption></figure>
</div>


<p class="wp-block-paragraph">Sonrasını da ana ekranımızın sağ alt kısmında bulunan Network kısmından ESP32 için kullanacağımız internetimizi Arduino IOT’ye tanımlamamız gerekli. Bunu yapmamızın sebebi mantıken ESP32’nin internete bağlanması gerekir. ( <strong>Fotoğraf 2.5</strong> )</p>



<figure class="wp-block-image size-large is-resized"><img loading="lazy" decoding="async" width="1024" height="573" src="https://blog.robo90.com/wp-content/uploads/2023/07/Cloud-variables-update-1024x573.jpg" alt="Cloud Variables sekmesindeki Network kısmı." class="wp-image-7357" style="width:780px;height:436px" title="&#x1f310; ESP32 ve Arduino IOT ile LED Nasıl Kontrol Edilir? 99" srcset="https://blog.robo90.com/wp-content/uploads/2023/07/Cloud-variables-update-1024x573.jpg 1024w, https://blog.robo90.com/wp-content/uploads/2023/07/Cloud-variables-update-300x168.jpg 300w, https://blog.robo90.com/wp-content/uploads/2023/07/Cloud-variables-update-768x430.jpg 768w, https://blog.robo90.com/wp-content/uploads/2023/07/Cloud-variables-update-150x84.jpg 150w, https://blog.robo90.com/wp-content/uploads/2023/07/Cloud-variables-update-450x252.jpg 450w, https://blog.robo90.com/wp-content/uploads/2023/07/Cloud-variables-update-1200x671.jpg 1200w, https://blog.robo90.com/wp-content/uploads/2023/07/Cloud-variables-update.jpg 1353w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">Fotoğraf 2.5</figcaption></figure>



<p class="wp-block-paragraph">Sonrasında karşımıza çıkan ekrandan kullanacağımız Wi-Fi ismini, Wi-Fi’nin şifresini ve saklamamız gereken Secret Key’i bu kısma yazacağız. ( <strong>Fotoğraf 2.6</strong> )</p>


<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><img loading="lazy" decoding="async" width="778" height="742" src="https://blog.robo90.com/wp-content/uploads/2023/07/configure-network-.jpg" alt="Wi-Fi ismimizi, Wi-Fi şifremizi ve ESP32 &#039;mize ait Secrete Key bilgilerini girmemizin istendiği kısım" class="wp-image-7360" style="width:492px;height:469px" title="&#x1f310; ESP32 ve Arduino IOT ile LED Nasıl Kontrol Edilir? 100" srcset="https://blog.robo90.com/wp-content/uploads/2023/07/configure-network-.jpg 778w, https://blog.robo90.com/wp-content/uploads/2023/07/configure-network--300x286.jpg 300w, https://blog.robo90.com/wp-content/uploads/2023/07/configure-network--768x732.jpg 768w, https://blog.robo90.com/wp-content/uploads/2023/07/configure-network--150x143.jpg 150w, https://blog.robo90.com/wp-content/uploads/2023/07/configure-network--450x429.jpg 450w" sizes="(max-width: 778px) 100vw, 778px" /><figcaption class="wp-element-caption">Fotoğraf 2.6</figcaption></figure>
</div>


<p class="wp-block-paragraph">Sonrasında ana ekranımızda sol üstte Things sekmesinin sağında olan Dashboards sekmesini açıyoruz.       ( <strong>Fotoğraf 2.7 </strong>)</p>


<div class="wp-block-image">
<figure class="aligncenter size-large is-resized"><img loading="lazy" decoding="async" width="1024" height="393" src="https://blog.robo90.com/wp-content/uploads/2023/07/dashboard-1024x393.jpg" alt="Ana ekranda navigasyon sekmesinde Dashboards kısmı." class="wp-image-7361" style="width:724px;height:278px" title="&#x1f310; ESP32 ve Arduino IOT ile LED Nasıl Kontrol Edilir? 101" srcset="https://blog.robo90.com/wp-content/uploads/2023/07/dashboard-1024x393.jpg 1024w, https://blog.robo90.com/wp-content/uploads/2023/07/dashboard-300x115.jpg 300w, https://blog.robo90.com/wp-content/uploads/2023/07/dashboard-768x295.jpg 768w, https://blog.robo90.com/wp-content/uploads/2023/07/dashboard-1536x590.jpg 1536w, https://blog.robo90.com/wp-content/uploads/2023/07/dashboard-150x58.jpg 150w, https://blog.robo90.com/wp-content/uploads/2023/07/dashboard-450x173.jpg 450w, https://blog.robo90.com/wp-content/uploads/2023/07/dashboard-1200x461.jpg 1200w, https://blog.robo90.com/wp-content/uploads/2023/07/dashboard.jpg 1573w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">Fotoğraf 2.7</figcaption></figure>
</div>


<p class="wp-block-paragraph">Karşımıza çıkan ekranda Build Dashboard butonuna tıklıyoruz. ( <strong>Fotoğraf 2.8</strong> )</p>


<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><img loading="lazy" decoding="async" width="1018" height="763" src="https://blog.robo90.com/wp-content/uploads/2023/07/build-dashboards.jpg" alt="İlk Dashboard&#039;ımızı oluşturmamız için &quot;build dashboard&quot; butonu" class="wp-image-7362" style="width:588px;height:441px" title="&#x1f310; ESP32 ve Arduino IOT ile LED Nasıl Kontrol Edilir? 102" srcset="https://blog.robo90.com/wp-content/uploads/2023/07/build-dashboards.jpg 1018w, https://blog.robo90.com/wp-content/uploads/2023/07/build-dashboards-300x225.jpg 300w, https://blog.robo90.com/wp-content/uploads/2023/07/build-dashboards-768x576.jpg 768w, https://blog.robo90.com/wp-content/uploads/2023/07/build-dashboards-150x112.jpg 150w, https://blog.robo90.com/wp-content/uploads/2023/07/build-dashboards-450x337.jpg 450w" sizes="(max-width: 1018px) 100vw, 1018px" /><figcaption class="wp-element-caption">Fotoğraf 2.8</figcaption></figure>
</div>


<p class="wp-block-paragraph">Sonrasında ADD kısmına bastığımızda bir çok widgets görmekteyiz. Tıpkı windows 8 de güzel göründüğü için masaüstünün sağ kısmına eklediğimiz gibi. Buradan Switch Widgetini ekliyoruz. ( <strong>Fotoğraf 2.9</strong> )</p>


<div class="wp-block-image">
<figure class="aligncenter size-large is-resized"><img loading="lazy" decoding="async" width="1024" height="618" src="https://blog.robo90.com/wp-content/uploads/2023/07/widget-1024x618.jpg" alt="ADD butonu ve tıkladığımızda açılan widgets sekmesinden Switch&#039;i seçiyoruz." class="wp-image-7363" style="width:650px;height:391px" title="&#x1f310; ESP32 ve Arduino IOT ile LED Nasıl Kontrol Edilir? 103" srcset="https://blog.robo90.com/wp-content/uploads/2023/07/widget-1024x618.jpg 1024w, https://blog.robo90.com/wp-content/uploads/2023/07/widget-300x181.jpg 300w, https://blog.robo90.com/wp-content/uploads/2023/07/widget-768x464.jpg 768w, https://blog.robo90.com/wp-content/uploads/2023/07/widget-150x91.jpg 150w, https://blog.robo90.com/wp-content/uploads/2023/07/widget-450x272.jpg 450w, https://blog.robo90.com/wp-content/uploads/2023/07/widget-1200x725.jpg 1200w, https://blog.robo90.com/wp-content/uploads/2023/07/widget.jpg 1255w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">Fotoğraf 2.9</figcaption></figure>
</div>


<p class="wp-block-paragraph">Sonrasında karşımıza çıkan ekrandan Widget’imize bir isim verip daha sonrasında hemen altındaki <strong>Linked Variable </strong>butonuna basıyoruz. ( <strong>Fotoğraf 3.0</strong> )</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="487" src="https://blog.robo90.com/wp-content/uploads/2023/07/name-button-1024x487.jpg" alt="&quot;Widget settings kısmında karşımıza çıkan ekrandan &quot;Linked Variable&quot; butonuna tıklayıp buton eşleştiriyoruz." class="wp-image-7364" title="&#x1f310; ESP32 ve Arduino IOT ile LED Nasıl Kontrol Edilir? 104" srcset="https://blog.robo90.com/wp-content/uploads/2023/07/name-button-1024x487.jpg 1024w, https://blog.robo90.com/wp-content/uploads/2023/07/name-button-300x143.jpg 300w, https://blog.robo90.com/wp-content/uploads/2023/07/name-button-768x365.jpg 768w, https://blog.robo90.com/wp-content/uploads/2023/07/name-button-1536x730.jpg 1536w, https://blog.robo90.com/wp-content/uploads/2023/07/name-button-150x71.jpg 150w, https://blog.robo90.com/wp-content/uploads/2023/07/name-button-450x214.jpg 450w, https://blog.robo90.com/wp-content/uploads/2023/07/name-button-1200x570.jpg 1200w, https://blog.robo90.com/wp-content/uploads/2023/07/name-button.jpg 1593w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">Fotoğraf 3.0</figcaption></figure>



<p class="wp-block-paragraph">Daha sonrasında karşımıza çıkan ekrandan Things kısmından oluşturduğumuz kartı ve Variables kısmından ise oluşturduğumuz LED değişkenini seçip <strong>LINK VARIABLE</strong><em><strong> </strong></em>butonuna basıyoruz. ( Fotoğraf 3.1 )</p>



<figure class="wp-block-image size-large is-resized"><img loading="lazy" decoding="async" width="1024" height="433" src="https://blog.robo90.com/wp-content/uploads/2023/07/link-variable-1024x433.jpg" alt="Thinks kısmından oluşturduğumuz kartı ve Variables kısmından ise oluşturduğumuz LED değişkenini seçip LINK VARIABLE butonuna basıyoruz" class="wp-image-7367" style="width:826px;height:349px" title="&#x1f310; ESP32 ve Arduino IOT ile LED Nasıl Kontrol Edilir? 105" srcset="https://blog.robo90.com/wp-content/uploads/2023/07/link-variable-1024x433.jpg 1024w, https://blog.robo90.com/wp-content/uploads/2023/07/link-variable-300x127.jpg 300w, https://blog.robo90.com/wp-content/uploads/2023/07/link-variable-768x325.jpg 768w, https://blog.robo90.com/wp-content/uploads/2023/07/link-variable-1536x649.jpg 1536w, https://blog.robo90.com/wp-content/uploads/2023/07/link-variable-150x63.jpg 150w, https://blog.robo90.com/wp-content/uploads/2023/07/link-variable-450x190.jpg 450w, https://blog.robo90.com/wp-content/uploads/2023/07/link-variable-1200x507.jpg 1200w, https://blog.robo90.com/wp-content/uploads/2023/07/link-variable.jpg 1717w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">Fotoğraf 3.1</figcaption></figure>



<p class="wp-block-paragraph">Göründüğü gibi gerekli bağlantıyı kurarak Widget&#8217;imizle eşleştirdik. ( <strong>Fotoğraf 3.2</strong> )</p>


<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><img loading="lazy" decoding="async" width="463" height="421" src="https://blog.robo90.com/wp-content/uploads/2023/07/linked-variable.jpg" alt="ESP32 &#039;mizin eklediğimiz switch ile eşleştiğini gösteren fotoğraf" class="wp-image-7369" style="width:387px;height:352px" title="&#x1f310; ESP32 ve Arduino IOT ile LED Nasıl Kontrol Edilir? 106" srcset="https://blog.robo90.com/wp-content/uploads/2023/07/linked-variable.jpg 463w, https://blog.robo90.com/wp-content/uploads/2023/07/linked-variable-300x273.jpg 300w, https://blog.robo90.com/wp-content/uploads/2023/07/linked-variable-150x136.jpg 150w, https://blog.robo90.com/wp-content/uploads/2023/07/linked-variable-450x409.jpg 450w" sizes="(max-width: 463px) 100vw, 463px" /><figcaption class="wp-element-caption">Fotoğraf 3.2</figcaption></figure>
</div>


<p class="wp-block-paragraph">Sonrasında tekrar Things kısmına gelip sağ üstteki Sketch kısmına basıyoruz. ( <strong>Fotoğraf 3.3</strong> )</p>


<div class="wp-block-image">
<figure class="aligncenter size-large is-resized"><img loading="lazy" decoding="async" width="1024" height="704" src="https://blog.robo90.com/wp-content/uploads/2023/07/sketch-1-1-1024x704.jpg" alt="Thinks kısmında Sağ üstteki sketch sekmesine tıklıyoruz." class="wp-image-7371" style="width:707px;height:486px" title="&#x1f310; ESP32 ve Arduino IOT ile LED Nasıl Kontrol Edilir? 107" srcset="https://blog.robo90.com/wp-content/uploads/2023/07/sketch-1-1-1024x704.jpg 1024w, https://blog.robo90.com/wp-content/uploads/2023/07/sketch-1-1-300x206.jpg 300w, https://blog.robo90.com/wp-content/uploads/2023/07/sketch-1-1-768x528.jpg 768w, https://blog.robo90.com/wp-content/uploads/2023/07/sketch-1-1-150x103.jpg 150w, https://blog.robo90.com/wp-content/uploads/2023/07/sketch-1-1-450x310.jpg 450w, https://blog.robo90.com/wp-content/uploads/2023/07/sketch-1-1.jpg 1105w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">Fotoğraf 3.3</figcaption></figure>
</div>


<p class="wp-block-paragraph">Karşımıza çıkan ekrandan sağ üstteki &lt;/&gt; Open Full Editor Butonuna tıklıyoruz. ( <strong>Fotoğraf 3.4</strong> )</p>



<h2 class="wp-block-heading">Nasıl Kodlarız? </h2>


<div class="wp-block-image">
<figure class="aligncenter size-large"><img loading="lazy" decoding="async" width="1024" height="648" src="https://blog.robo90.com/wp-content/uploads/2023/07/open-full-editor-1-1024x648.jpg" alt="&#x1f310; ESP32 ve Arduino IOT ile LED Nasıl Kontrol Edilir? - Robo90 - Blog 4" class="wp-image-7612" title="&#x1f310; ESP32 ve Arduino IOT ile LED Nasıl Kontrol Edilir? 108" srcset="https://blog.robo90.com/wp-content/uploads/2023/07/open-full-editor-1-1024x648.jpg 1024w, https://blog.robo90.com/wp-content/uploads/2023/07/open-full-editor-1-300x190.jpg 300w, https://blog.robo90.com/wp-content/uploads/2023/07/open-full-editor-1-768x486.jpg 768w, https://blog.robo90.com/wp-content/uploads/2023/07/open-full-editor-1-150x95.jpg 150w, https://blog.robo90.com/wp-content/uploads/2023/07/open-full-editor-1-450x285.jpg 450w, https://blog.robo90.com/wp-content/uploads/2023/07/open-full-editor-1.jpg 1201w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">Fotoğraf 3.4</figcaption></figure>
</div>


<p class="wp-block-paragraph">Daha sonra gerekli kodları yazıyoruz. Önce karşımıza çıkan editörde void setup kısmına kullanacağımız 2 numaralı pini çıkış olarak gösteriyoruz.</p>



<pre class="wp-block-code"><code>void setup() {
  // Initialize serial and wait for port to open:
  Serial.begin(9600);
  pinMode(2,OUTPUT);
  // This delay gives the chance to wait for a Serial Monitor without blocking if none is found
  delay(1500); 

  // Defined in thingProperties.h
  initProperties();

  // Connect to Arduino IoT Cloud
  ArduinoCloud.begin(ArduinoIoTPreferredConnection);
  
  /*
     The following function allows you to obtain more information
     related to the state of network and IoT Cloud connection and errors
     the higher number the more granular information you’ll get.
     The default is 0 (only errors).
     Maximum is 4
 */
  setDebugMessageLevel(2);
  ArduinoCloud.printDebugInfo();
}</code></pre>



<p class="wp-block-paragraph">Daha sonra void onLedChange() fonksiyonuna hatırlarsanız Widget’a bağlı led değişkenini kullanarak basit bir fonksiyon yazıyoruz. Widget açıkken 1, kapalıyken 0 değerini döndüreceği için if(led) koşulu widget açıksa içine, kapalıysa else komutunu döndürecektir.</p>



<pre class="wp-block-code"><code>void onLedChange()  {
  if(led){
    digitalWrite(2,HIGH);
  }
  else{
    digitalWrite(2,LOW);
  }
  
}</code></pre>



<p class="wp-block-paragraph">Sonrasında kodu yüklemek istediğimizde ESP32’nin bulunamadığını göreceğiz. Bunun için bilgisayarımıza bir uygulama yüklememiz gerek. Mantıken birisi internette birisi bilgisayarımıza bağlı bir bağlantı olması gerek. Bu köprü görevini <em>Arduino Create Agent</em> görecek. Şimdi nasıl kurduğumuzu inceleyelim.</p>



<p class="wp-block-paragraph">Önce arama kısmına <strong>Arduino Create Agent</strong> yazıp install the arduino creage agent sitesine tıklyoruz. Sitenin linki aşağıda da var.</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph"><a href="https://support.arduino.cc/hc/en-us/articles/360014869820-Install-the-Arduino-Create-Agent" rel="nofollow noopener" target="_blank">https://support.arduino.cc/hc/en-us/articles/360014869820-Install-the-Arduino-Create-Agent</a></p>
</blockquote>



<p class="wp-block-paragraph">Daha sonra aşağıdan da anlaşılabileceği gibi mavi yazı olan Arduino Create agent installation page yazısına tıklıyoruz. ( <strong>Fotoğraf 3.5</strong> )</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="655" src="https://blog.robo90.com/wp-content/uploads/2023/07/arduino-create-agent-1-2-1024x655.jpg" alt="Arduino create agent installation page yazısına tıklıyoruz ve start butonuna basıyoruz." class="wp-image-7444" title="&#x1f310; ESP32 ve Arduino IOT ile LED Nasıl Kontrol Edilir? 109" srcset="https://blog.robo90.com/wp-content/uploads/2023/07/arduino-create-agent-1-2-1024x655.jpg 1024w, https://blog.robo90.com/wp-content/uploads/2023/07/arduino-create-agent-1-2-300x192.jpg 300w, https://blog.robo90.com/wp-content/uploads/2023/07/arduino-create-agent-1-2-768x491.jpg 768w, https://blog.robo90.com/wp-content/uploads/2023/07/arduino-create-agent-1-2-150x96.jpg 150w, https://blog.robo90.com/wp-content/uploads/2023/07/arduino-create-agent-1-2-450x288.jpg 450w, https://blog.robo90.com/wp-content/uploads/2023/07/arduino-create-agent-1-2.jpg 1146w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">Fotoğraf 3.5</figcaption></figure>



<p class="wp-block-paragraph">Start butonuna bastıktan sonra uygulamayı kendi Windows sürümümüze göre indiriyoruz. Ben Windows 64 bit kullandığım için win64 uygulamasını indirdim. ( <strong>Fotoğraf 3.6</strong> )</p>


<div class="wp-block-image">
<figure class="aligncenter size-large"><img loading="lazy" decoding="async" width="1024" height="526" src="https://blog.robo90.com/wp-content/uploads/2023/07/dowload-win64-create-agent--1024x526.jpg" alt="Arduino create agent uygulamasını bilgisayarımızın bitine göre indiriyoruz." class="wp-image-7441" title="&#x1f310; ESP32 ve Arduino IOT ile LED Nasıl Kontrol Edilir? 110" srcset="https://blog.robo90.com/wp-content/uploads/2023/07/dowload-win64-create-agent--1024x526.jpg 1024w, https://blog.robo90.com/wp-content/uploads/2023/07/dowload-win64-create-agent--300x154.jpg 300w, https://blog.robo90.com/wp-content/uploads/2023/07/dowload-win64-create-agent--768x394.jpg 768w, https://blog.robo90.com/wp-content/uploads/2023/07/dowload-win64-create-agent--150x77.jpg 150w, https://blog.robo90.com/wp-content/uploads/2023/07/dowload-win64-create-agent--450x231.jpg 450w, https://blog.robo90.com/wp-content/uploads/2023/07/dowload-win64-create-agent--1200x616.jpg 1200w, https://blog.robo90.com/wp-content/uploads/2023/07/dowload-win64-create-agent-.jpg 1474w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">Fotoğraf 3.6</figcaption></figure>
</div>


<p class="wp-block-paragraph">Daha sonra yüklenen kurulum dosyasını kurarak ESP32’nizin internet üzerinden Arduino Sketch ile kodlayabilirsiniz. Gördüğünüz gibi benim kullandığım DOIT ESP32 DEVKIT V1 kartı internet üzerinden Sketch ile bağlantı kurdu. Şimdi kodumuzu yükleyebiliriz. ( <strong>Fotoğraf 3.7</strong> )</p>


<div class="wp-block-image">
<figure class="aligncenter size-large"><img loading="lazy" decoding="async" width="1024" height="512" src="https://blog.robo90.com/wp-content/uploads/2023/07/arduino-sketch--1024x512.jpg" alt="Kartımızın Arduino create agent sayesinde editörden bağlantı kurduğunu gösteren fotoğraf. " class="wp-image-7442" title="&#x1f310; ESP32 ve Arduino IOT ile LED Nasıl Kontrol Edilir? 111" srcset="https://blog.robo90.com/wp-content/uploads/2023/07/arduino-sketch--1024x512.jpg 1024w, https://blog.robo90.com/wp-content/uploads/2023/07/arduino-sketch--300x150.jpg 300w, https://blog.robo90.com/wp-content/uploads/2023/07/arduino-sketch--768x384.jpg 768w, https://blog.robo90.com/wp-content/uploads/2023/07/arduino-sketch--150x75.jpg 150w, https://blog.robo90.com/wp-content/uploads/2023/07/arduino-sketch--450x225.jpg 450w, https://blog.robo90.com/wp-content/uploads/2023/07/arduino-sketch--1200x600.jpg 1200w, https://blog.robo90.com/wp-content/uploads/2023/07/arduino-sketch-.jpg 1513w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">Fotoğraf 3.7</figcaption></figure>
</div>


<hr class="wp-block-separator has-alpha-channel-opacity is-style-wide"/>



<h3 class="wp-block-heading"><strong><span style="text-decoration: underline">UYARI</span></strong></h3>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph"><strong>Kodumuzu yüklerken yapmamız gereken en önemli şeylerden bir tanesi ESP32 üzerindeki BOOT butonuna bir süre basılı tutup çekmektir. Bunu yapmazsak kodumuz yüklenmeyecektir.</strong> <strong>&#8220;Eğer ESP32 geliştirme kartına nasıl yazılım atılacağını bilmiyorsanız <a href="https://blog.robo90.com/esp32-ye-program-nasil-yazilir-nelere-dikkat-etmemiz-gerekir/">ESP32&#8217;ye Program Nasıl Atılır?</a> &#8221; adlı blog yazımı okuyabilirsiniz.</strong> <strong>( Fotoğraf 3.8 )</strong></p>


<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><img loading="lazy" decoding="async" width="759" height="430" src="https://blog.robo90.com/wp-content/uploads/2023/07/boot-button.jpg" alt="ESP32 &#039;nin boot butonu." class="wp-image-7445" style="width:408px;height:231px" title="&#x1f310; ESP32 ve Arduino IOT ile LED Nasıl Kontrol Edilir? 112" srcset="https://blog.robo90.com/wp-content/uploads/2023/07/boot-button.jpg 759w, https://blog.robo90.com/wp-content/uploads/2023/07/boot-button-300x170.jpg 300w, https://blog.robo90.com/wp-content/uploads/2023/07/boot-button-150x85.jpg 150w, https://blog.robo90.com/wp-content/uploads/2023/07/boot-button-450x255.jpg 450w" sizes="(max-width: 759px) 100vw, 759px" /><figcaption class="wp-element-caption">Fotoğraf 3.8</figcaption></figure>
</div></blockquote>



<h2 class="wp-block-heading">Devrenin Kurulumu</h2>



<p class="wp-block-paragraph">Önce breadboard üzerine LED’imizi ve direncimizi bağlayalım. Ben direnci LED’in eksi ucundan toprağa verdim. Siz isterseniz artı ucuna da takabilirsiniz. ( <strong>Fotoğraf 3.9</strong> )</p>


<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><img loading="lazy" decoding="async" width="745" height="747" src="https://blog.robo90.com/wp-content/uploads/2023/07/led-ve-direnc.jpg" alt="Breadboard&#039;a bağlı bir LED ve LED&#039;in eksi bacağına seri bağlı ve GND ye giden birr direnç." class="wp-image-7446" style="width:343px;height:344px" title="&#x1f310; ESP32 ve Arduino IOT ile LED Nasıl Kontrol Edilir? 113" srcset="https://blog.robo90.com/wp-content/uploads/2023/07/led-ve-direnc.jpg 745w, https://blog.robo90.com/wp-content/uploads/2023/07/led-ve-direnc-300x300.jpg 300w, https://blog.robo90.com/wp-content/uploads/2023/07/led-ve-direnc-150x150.jpg 150w, https://blog.robo90.com/wp-content/uploads/2023/07/led-ve-direnc-450x451.jpg 450w" sizes="(max-width: 745px) 100vw, 745px" /><figcaption class="wp-element-caption">Fotoğraf 3.9</figcaption></figure>
</div>


<p class="wp-block-paragraph">Daha sonra ESP32’miz ile LED’imizin bağlantılarını yapalım. LED’in artı kısmı ESP32’nin D2 pinine, eksi kısmı ise ESP32’nin herhangi bir GND pinine bağlamamız gerek. ( <strong>Fotoğraf 4.0</strong> )</p>


<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><img loading="lazy" decoding="async" width="628" height="751" src="https://blog.robo90.com/wp-content/uploads/2023/07/esp32-and-pin-connection.jpg" alt="LED’in artı kısmı ESP32 ’nin D2 pinine, eksi kısmı ise ESP32’nin herhangi bir GND pinine bağlandığını gösteren fotoğraf." class="wp-image-7447" style="width:368px;height:440px" title="&#x1f310; ESP32 ve Arduino IOT ile LED Nasıl Kontrol Edilir? 114" srcset="https://blog.robo90.com/wp-content/uploads/2023/07/esp32-and-pin-connection.jpg 628w, https://blog.robo90.com/wp-content/uploads/2023/07/esp32-and-pin-connection-251x300.jpg 251w, https://blog.robo90.com/wp-content/uploads/2023/07/esp32-and-pin-connection-150x179.jpg 150w, https://blog.robo90.com/wp-content/uploads/2023/07/esp32-and-pin-connection-450x538.jpg 450w" sizes="(max-width: 628px) 100vw, 628px" /><figcaption class="wp-element-caption">Fotoğraf 4.0</figcaption></figure>
</div>


<p class="wp-block-paragraph">Sonunda! Tüm devre ve yazılım hazır. ( <strong>Fotoğraf 4.1</strong> )</p>


<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><img loading="lazy" decoding="async" width="751" height="757" src="https://blog.robo90.com/wp-content/uploads/2023/07/esp32-resistor-and-led-.jpg" alt="ESP32 ve Breadboard&#039;a kurduğumuz devrenin tek bir karede gösterimi." class="wp-image-7448" style="width:413px;height:416px" title="&#x1f310; ESP32 ve Arduino IOT ile LED Nasıl Kontrol Edilir? 115" srcset="https://blog.robo90.com/wp-content/uploads/2023/07/esp32-resistor-and-led-.jpg 751w, https://blog.robo90.com/wp-content/uploads/2023/07/esp32-resistor-and-led--298x300.jpg 298w, https://blog.robo90.com/wp-content/uploads/2023/07/esp32-resistor-and-led--150x151.jpg 150w, https://blog.robo90.com/wp-content/uploads/2023/07/esp32-resistor-and-led--450x454.jpg 450w" sizes="(max-width: 751px) 100vw, 751px" /><figcaption class="wp-element-caption">Fotoğraf 4.1</figcaption></figure>
</div>


<h2 class="wp-block-heading">Test Kısmı</h2>



<p class="wp-block-paragraph">Dashboard kısmından ayarladığımız switch widgeti açıp kapattıkça ledimizin yanıp söndüğünü gözlemleyebiliriz. ( <strong>Fotoğraf 4.2</strong> )</p>


<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><img loading="lazy" decoding="async" width="660" height="597" src="https://blog.robo90.com/wp-content/uploads/2023/07/test-on-pc.jpg" alt="Bilgisayar üzerindeki kurduğumuz switch üzerinden ESP32 &#039;mize bağlı LED&#039;i internet üzerinden kontrol ettiğimizi gösteren resim" class="wp-image-7449" style="width:510px;height:461px" title="&#x1f310; ESP32 ve Arduino IOT ile LED Nasıl Kontrol Edilir? 116" srcset="https://blog.robo90.com/wp-content/uploads/2023/07/test-on-pc.jpg 660w, https://blog.robo90.com/wp-content/uploads/2023/07/test-on-pc-300x271.jpg 300w, https://blog.robo90.com/wp-content/uploads/2023/07/test-on-pc-150x136.jpg 150w, https://blog.robo90.com/wp-content/uploads/2023/07/test-on-pc-450x407.jpg 450w" sizes="(max-width: 660px) 100vw, 660px" /><figcaption class="wp-element-caption">Fotoğraf 4.2</figcaption></figure>
</div>


<p class="wp-block-paragraph">Aynı zamanda telefonunuza Arduino IOT uygulamasını yükleyerek kayıt olduğunuz hesap üzerinden de LED’inizi istediğiniz gibi kontrol edebilirsiniz. ( <strong>Fotoğraf 4.3</strong> ) </p>


<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><img loading="lazy" decoding="async" width="705" height="597" src="https://blog.robo90.com/wp-content/uploads/2023/07/test-on-phone.jpg" alt="Arduino IOT&#039;nin mobil uygulaması üzerinden ESP32 &#039;mize bağlı LED&#039;i internet üzerinden kontrol ettiğimizi gösteren resim." class="wp-image-7450" style="width:511px;height:433px" title="&#x1f310; ESP32 ve Arduino IOT ile LED Nasıl Kontrol Edilir? 117" srcset="https://blog.robo90.com/wp-content/uploads/2023/07/test-on-phone.jpg 705w, https://blog.robo90.com/wp-content/uploads/2023/07/test-on-phone-300x254.jpg 300w, https://blog.robo90.com/wp-content/uploads/2023/07/test-on-phone-150x127.jpg 150w, https://blog.robo90.com/wp-content/uploads/2023/07/test-on-phone-450x381.jpg 450w" sizes="(max-width: 705px) 100vw, 705px" /><figcaption class="wp-element-caption">Fotoğraf 4.3</figcaption></figure>
</div>


<p class="wp-block-paragraph">Evet. Bu blog yazımızda Arduino IOT ile kolay bir şekilde ESP32&#8217;mizi internetin çektiği her yerden nasıl kontrol edebileceğimiz öğrendik. Diğer Arduino IOT araçlarını kullanarak neler yapabileceğiniz bir hayal etsenize. ESP32&#8217;ye bir sıcaklık ve nem sensörü bağlayarak telefonunuzdan ortamın sıcaklığını görebilir, LED yerine bir röle modülü bağlayarak istediğiniz cihazı açıp kapatabilirsiniz. Kısacası yapabileceğiniz şeylerin tek sınırı hayal gücünüz. Bir sonraki yazımızda da hayal gücünüzün sınırlarının genişlemesine yardımcı olacağını düşündüğüm bir projeyi inceleyeceğiz. Aşağıdaki linkten <strong><a href="https://blog.robo90.com/esp32-cam-ile-yemekleriniz-yanmasin/">ESP32-CAM ile Yemekleriniz Yanmasın</a></strong> yazımı inceleyebilirsiniz. </p>
<p><a rel="nofollow" href="https://blog.robo90.com/esp32-ve-arduino-iot-ile-led-nasil-kontrol-edilir/">🌐 ESP32 ve Arduino IOT ile LED Nasıl Kontrol Edilir?</a> yazısı ilk önce <a rel="nofollow" href="https://blog.robo90.com">Robo90 - Blog</a> üzerinde ortaya çıktı.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.robo90.com/esp32-ve-arduino-iot-ile-led-nasil-kontrol-edilir/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>🐉 Creality Ender 3 Neo İnceleme Yazısı</title>
		<link>https://blog.robo90.com/creality-ender-3-neo-inceleme-yazisi/</link>
					<comments>https://blog.robo90.com/creality-ender-3-neo-inceleme-yazisi/#respond</comments>
		
		<dc:creator><![CDATA[Mustafa Topal]]></dc:creator>
		<pubDate>Wed, 26 Jul 2023 13:42:12 +0000</pubDate>
				<category><![CDATA[3D Yazıcı Projeleri]]></category>
		<category><![CDATA[Featured]]></category>
		<category><![CDATA[Genel]]></category>
		<category><![CDATA[Latest Posts]]></category>
		<category><![CDATA[Ürün İncelemeleri]]></category>
		<guid isPermaLink="false">https://blog.robo90.com/?p=7243</guid>

					<description><![CDATA[<p>Ender 3 serisi Creality’in sürekli büyüyen 3D yazıcı filosundaki büyük yıldızlardan birisi olmasa da bir fiyat performans ürünü olmayı ve kullanıcıların ilgisini çekmeyi başarmıştır. Bu sebeple Creality Ender 3 Neo ürününü çıkartarak kullanıcıların ilgisini çekmeye devam etmiştir. Biz de Robo90 olarak sizler için Neo&#8217;yu inceledik. Ürüne aşağıdaki link üzerinden ulaşabilirsiniz. Creality Ender 3 Neo 3D [...]</p>
<p><a rel="nofollow" href="https://blog.robo90.com/creality-ender-3-neo-inceleme-yazisi/">🐉 Creality Ender 3 Neo İnceleme Yazısı</a> yazısı ilk önce <a rel="nofollow" href="https://blog.robo90.com">Robo90 - Blog</a> üzerinde ortaya çıktı.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="has-text-align-left has-regular-font-size wp-block-paragraph">Ender 3 serisi Creality’in sürekli büyüyen 3D yazıcı filosundaki büyük yıldızlardan birisi olmasa da bir fiyat performans ürünü olmayı ve kullanıcıların ilgisini çekmeyi başarmıştır. Bu sebeple Creality Ender 3 Neo ürününü çıkartarak kullanıcıların ilgisini çekmeye devam etmiştir. Biz de Robo90 olarak sizler için Neo&#8217;yu inceledik. Ürüne aşağıdaki link üzerinden ulaşabilirsiniz.</p>



<div class="wp-block-media-text is-stacked-on-mobile is-vertically-aligned-center" style="grid-template-columns:20% auto"><figure class="wp-block-media-text__media"><img loading="lazy" decoding="async" width="450" height="450" src="https://blog.robo90.com/wp-content/uploads/2023/07/creality-ender-3-neo-3d-yazici-3d-yazici-modelleri-creality-3d-robo90-blog.jpg" alt="Creality Ender 3 Neo 3D Yazıcı ürün göseli" class="wp-image-8217 size-full" title="&#x1f409; Creality Ender 3 Neo İnceleme Yazısı 119" srcset="https://blog.robo90.com/wp-content/uploads/2023/07/creality-ender-3-neo-3d-yazici-3d-yazici-modelleri-creality-3d-robo90-blog.jpg 450w, https://blog.robo90.com/wp-content/uploads/2023/07/creality-ender-3-neo-3d-yazici-3d-yazici-modelleri-creality-3d-robo90-blog-300x300.jpg 300w, https://blog.robo90.com/wp-content/uploads/2023/07/creality-ender-3-neo-3d-yazici-3d-yazici-modelleri-creality-3d-robo90-blog-150x150.jpg 150w" sizes="(max-width: 450px) 100vw, 450px" /></figure><div class="wp-block-media-text__content">
<p class="wp-block-paragraph"><a href="https://www.robo90.com/creality-ender-3-neo-3d-yazici">Creality Ender 3 Neo 3D Yazıcı Satın Al</a></p>
</div></div>



<figure class="wp-block-embed aligncenter is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">
<iframe title="Bir Süredir Böylesini Görmemiştim - Creality Ender 3 Neo - İlk Deneyim" width="854" height="480" src="https://www.youtube.com/embed/4kLs3OQuEAo?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe>
</div></figure>



<p class="wp-block-paragraph">Ender 3 Neo, Ender 3&#8217;e özgü 220 x 220 x 250 mm yapı hacmine, 440 x 440 x 465 mm boyut hacmine, göze çarpan PSU yerleşimiyle ikonik görünümüne ve 3 inç LCD ekranı ve döner düğme kullanıcı arabirimiyle Ender 3 ile aynı özelliklere sahiptir.</p>



<h2 class="wp-block-heading">Ender 3 Neo Özellikleri</h2>



<h3 class="wp-block-heading has-text-align-left">32 Bitlik Anakart</h3>


<div class="wp-block-image">
<figure class="aligncenter size-large is-resized"><img loading="lazy" decoding="async" src="https://blog.robo90.com/wp-content/uploads/2023/07/32-Bitlik-Anakart--1024x514.jpg" alt="32 bitlik sessiz bir anakart" class="wp-image-7250" style="width:777px;height:390px" width="777" height="390" title="&#x1f409; Creality Ender 3 Neo İnceleme Yazısı 120" srcset="https://blog.robo90.com/wp-content/uploads/2023/07/32-Bitlik-Anakart--1024x514.jpg 1024w, https://blog.robo90.com/wp-content/uploads/2023/07/32-Bitlik-Anakart--300x151.jpg 300w, https://blog.robo90.com/wp-content/uploads/2023/07/32-Bitlik-Anakart--768x385.jpg 768w, https://blog.robo90.com/wp-content/uploads/2023/07/32-Bitlik-Anakart--150x75.jpg 150w, https://blog.robo90.com/wp-content/uploads/2023/07/32-Bitlik-Anakart--450x226.jpg 450w, https://blog.robo90.com/wp-content/uploads/2023/07/32-Bitlik-Anakart--1200x602.jpg 1200w, https://blog.robo90.com/wp-content/uploads/2023/07/32-Bitlik-Anakart-.jpg 1395w" sizes="(max-width: 777px) 100vw, 777px" /></figure>
</div>


<p class="wp-block-paragraph">Cihaz 32 bitlik sessiz bir anakartla gelmekte. Creality’nin kendi sitesinde makinanın 45-50 db bir ses ile çalıştığını iddia ediyor. Sessiz ve iyi çalıştığını söyleyebiliriz. Ender 3 modelinin ilk çıktığı zamanları hatırlarsak 8 bitlik bir anakart kullanıyordu. Bu kartı kullanan cihazlarda BL Touch modifiyesini yaptığımız zaman yazılımını karta atmak istediğimizde bile kartın hafızası yetmiyordu. Kodu yeniden derlememiz gerekiyordu. Nihayet Creality bu sorundan köklü bir kurtuluş gerçekleştirdi. İncelediğimiz Ender 3 Neo modeline de 32 bitlik bir sessiz anakart koymuşlar. Bu konuda bizden iyi bir not aldığını söyleyebiliriz. </p>



<h3 class="wp-block-heading has-text-align-left">BL-Touch</h3>


<div class="wp-block-image">
<figure class="aligncenter size-large is-resized"><img loading="lazy" decoding="async" src="https://blog.robo90.com/wp-content/uploads/2023/07/BL-Touch-1-3-1024x572.jpg" alt="BL Touch fotoğrafı" class="wp-image-7254" style="width:768px;height:429px" width="768" height="429" title="&#x1f409; Creality Ender 3 Neo İnceleme Yazısı 121" srcset="https://blog.robo90.com/wp-content/uploads/2023/07/BL-Touch-1-3-1024x572.jpg 1024w, https://blog.robo90.com/wp-content/uploads/2023/07/BL-Touch-1-3-300x168.jpg 300w, https://blog.robo90.com/wp-content/uploads/2023/07/BL-Touch-1-3-768x429.jpg 768w, https://blog.robo90.com/wp-content/uploads/2023/07/BL-Touch-1-3-150x84.jpg 150w, https://blog.robo90.com/wp-content/uploads/2023/07/BL-Touch-1-3-450x252.jpg 450w, https://blog.robo90.com/wp-content/uploads/2023/07/BL-Touch-1-3-1200x671.jpg 1200w, https://blog.robo90.com/wp-content/uploads/2023/07/BL-Touch-1-3.jpg 1213w" sizes="(max-width: 768px) 100vw, 768px" /></figure>
</div>


<p class="wp-block-paragraph">Bu üründe Neo ile birlikte gelen BL Touch çok dikkat çekti. Ender 3’ler çıktığından beri bu zamana kadar yapılan en popüler geliştirme ne diye sorsak her halde insanların bir çoğu muhtemelen BL Touch özelliğini seçer. Creality de bu talebi görmüş ve Neo modeline CR Touch’ı yani kendi markalarının BL Touch özelliğini stok olarak koymuş.</p>


<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><img loading="lazy" decoding="async" src="https://blog.robo90.com/wp-content/uploads/2023/07/BL-Touch-Calibre-.jpg" alt="Ender 3 Neo BL Touch&#039;u kullanarak ayar yapıyor." class="wp-image-7256" style="width:392px;height:283px" width="392" height="283" title="&#x1f409; Creality Ender 3 Neo İnceleme Yazısı 122" srcset="https://blog.robo90.com/wp-content/uploads/2023/07/BL-Touch-Calibre-.jpg 742w, https://blog.robo90.com/wp-content/uploads/2023/07/BL-Touch-Calibre--300x216.jpg 300w, https://blog.robo90.com/wp-content/uploads/2023/07/BL-Touch-Calibre--150x108.jpg 150w, https://blog.robo90.com/wp-content/uploads/2023/07/BL-Touch-Calibre--450x324.jpg 450w" sizes="(max-width: 392px) 100vw, 392px" /></figure>
</div>


<p class="wp-block-paragraph">CR Touch 16 noktadan tablanıza dokunarak seviyelememize yardımcı oluyor. Creality bunu Otomatik tabla seviyeleme olarak pazarlasa da bu sensörler bunu yapamazlar. Bizim cihazın tablasının altındaki tekerleklerle bunu ayarlamamız gerekir. Ancak bizden arta kalan pürüzleri buradaki CR Touch ile giderebiliriz. Kısacası CR Touch’a oto kalibrasyon değil bir kalibrasyon yardımcısı olarak bakabiliriz.</p>



<h3 class="wp-block-heading">Carborundum Cam Tabla</h3>


<div class="wp-block-image">
<figure class="aligncenter size-large is-resized"><img loading="lazy" decoding="async" src="https://blog.robo90.com/wp-content/uploads/2023/07/Carborundum-Cam-Tabla-1024x552.jpg" alt="Carborundum Cam Tabla" class="wp-image-7257" style="width:777px;height:419px" width="777" height="419" title="&#x1f409; Creality Ender 3 Neo İnceleme Yazısı 123" srcset="https://blog.robo90.com/wp-content/uploads/2023/07/Carborundum-Cam-Tabla-1024x552.jpg 1024w, https://blog.robo90.com/wp-content/uploads/2023/07/Carborundum-Cam-Tabla-300x162.jpg 300w, https://blog.robo90.com/wp-content/uploads/2023/07/Carborundum-Cam-Tabla-768x414.jpg 768w, https://blog.robo90.com/wp-content/uploads/2023/07/Carborundum-Cam-Tabla-150x81.jpg 150w, https://blog.robo90.com/wp-content/uploads/2023/07/Carborundum-Cam-Tabla-450x242.jpg 450w, https://blog.robo90.com/wp-content/uploads/2023/07/Carborundum-Cam-Tabla.jpg 1132w" sizes="(max-width: 777px) 100vw, 777px" /></figure>
</div>


<p class="wp-block-paragraph">Creality Ender 3 Neo modeline stok olarak yeni bir carborundum cam tabla getirmiş. Normalde Ender 3’ler manyetik stickerlarla gelirken Creality carborundum cam tablaların daha kuvvetli olduğunu savunuyor. Isındığında tutma etkisinin arttığını, soğuduğunda ise azaldığını iddia ediyor. Biz ise yaptığımız testlerde tablanın tutma hissiyatının daha iyi olduğunun söyleyebiliriz.</p>



<h3 class="wp-block-heading">Bowden Ekstruder</h3>



<figure class="wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-1 is-layout-flex wp-block-gallery-is-layout-flex">
<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="510" data-id="7259" src="https://blog.robo90.com/wp-content/uploads/2023/07/Bowden-Ekstruder-1024x510.jpg" alt="Bowden Ekstruder" class="wp-image-7259" title="&#x1f409; Creality Ender 3 Neo İnceleme Yazısı 124" srcset="https://blog.robo90.com/wp-content/uploads/2023/07/Bowden-Ekstruder-1024x510.jpg 1024w, https://blog.robo90.com/wp-content/uploads/2023/07/Bowden-Ekstruder-300x149.jpg 300w, https://blog.robo90.com/wp-content/uploads/2023/07/Bowden-Ekstruder-768x382.jpg 768w, https://blog.robo90.com/wp-content/uploads/2023/07/Bowden-Ekstruder-150x75.jpg 150w, https://blog.robo90.com/wp-content/uploads/2023/07/Bowden-Ekstruder-450x224.jpg 450w, https://blog.robo90.com/wp-content/uploads/2023/07/Bowden-Ekstruder-1200x598.jpg 1200w, https://blog.robo90.com/wp-content/uploads/2023/07/Bowden-Ekstruder.jpg 1530w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>
</figure>



<p class="wp-block-paragraph">Bowden Ekstruder denildiğinde aklımıza Creality gelecek kadar Creality’nin çok makina çıkarttığını söyleyebiliriz. Neo modelinde de aynı özelliği stok olarak eklemiş ama üzerindeki Ekstruder’i tamamen metalden tasarlamış. Ender 3 modellerinde bu parça plastik olarak geliyordu. Tamamen metal Ekstruder’a geçtikten sonra Creality’nin iddiasına göre filamenti çok daha iyi tutup kontrol edebiliyor. Bu sayede de baskı hassasiyeti arttığını söylüyor. Kendi deneyimlerimize kıyasla söylemek gerekirse metal olması plastik olmasına göre tercihimizdir. Creality’nin iddiasının doğruluğunu zamanla göreceğiz.</p>



<h3 class="wp-block-heading">Neo Serisi Hotend Alüminyum Radyatör</h3>



<figure class="wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-2 is-layout-flex wp-block-gallery-is-layout-flex">
<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="511" data-id="7260" src="https://blog.robo90.com/wp-content/uploads/2023/07/Neo-Serisi-Hotend-Aluminyum-Radyator-1024x511.jpg" alt="Neo Serisi Hotend Alüminyum Radyatör" class="wp-image-7260" title="&#x1f409; Creality Ender 3 Neo İnceleme Yazısı 125" srcset="https://blog.robo90.com/wp-content/uploads/2023/07/Neo-Serisi-Hotend-Aluminyum-Radyator-1024x511.jpg 1024w, https://blog.robo90.com/wp-content/uploads/2023/07/Neo-Serisi-Hotend-Aluminyum-Radyator-300x150.jpg 300w, https://blog.robo90.com/wp-content/uploads/2023/07/Neo-Serisi-Hotend-Aluminyum-Radyator-768x383.jpg 768w, https://blog.robo90.com/wp-content/uploads/2023/07/Neo-Serisi-Hotend-Aluminyum-Radyator-1536x766.jpg 1536w, https://blog.robo90.com/wp-content/uploads/2023/07/Neo-Serisi-Hotend-Aluminyum-Radyator-150x75.jpg 150w, https://blog.robo90.com/wp-content/uploads/2023/07/Neo-Serisi-Hotend-Aluminyum-Radyator-450x224.jpg 450w, https://blog.robo90.com/wp-content/uploads/2023/07/Neo-Serisi-Hotend-Aluminyum-Radyator-1200x598.jpg 1200w, https://blog.robo90.com/wp-content/uploads/2023/07/Neo-Serisi-Hotend-Aluminyum-Radyator.jpg 1542w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>
</figure>



<p class="wp-block-paragraph">Ender 3 serisine kıyasla Neo modelinde yeni bir Radyatör tasarımı kullanmış. Bu yeni tasarım sayesinde filamentlerimizi daha iyi soğutacağını iddia ediyor.</p>



<p class="wp-block-paragraph">Radyatörün en önemli görevi Hotend’den ( filamentin çıktığı kısım ) gelen sıcaklığın yukarı çıkmasını, filamentin extruder’in üst taraflarında erimesini engellemesidir. Yoksa bu üst kısımlarda şişkinlikler olabilir ve tıkanıklıklara yol açabilir ve çıktınız bozulabilir. Bu noktada radyatörün görevi çok önemli. Creality ise yeni modeli olan Neo’da bu problemi daha iyi çözdüğünü söylüyor. Bunun ne kadar etkili olduğunu bize zaman gösterecek. Görünüş olarak ise güzel durduğunu söyleyebiliriz.</p>



<h3 class="wp-block-heading">Sertleştirilmiş Tabla Yayı</h3>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="521" src="https://blog.robo90.com/wp-content/uploads/2023/07/Sertlestirilmis-Tabla-Yayi-1024x521.jpg" alt="Sertleştirilmiş Tabla Yayı" class="wp-image-7261" title="&#x1f409; Creality Ender 3 Neo İnceleme Yazısı 126" srcset="https://blog.robo90.com/wp-content/uploads/2023/07/Sertlestirilmis-Tabla-Yayi-1024x521.jpg 1024w, https://blog.robo90.com/wp-content/uploads/2023/07/Sertlestirilmis-Tabla-Yayi-300x153.jpg 300w, https://blog.robo90.com/wp-content/uploads/2023/07/Sertlestirilmis-Tabla-Yayi-768x391.jpg 768w, https://blog.robo90.com/wp-content/uploads/2023/07/Sertlestirilmis-Tabla-Yayi-150x76.jpg 150w, https://blog.robo90.com/wp-content/uploads/2023/07/Sertlestirilmis-Tabla-Yayi-450x229.jpg 450w, https://blog.robo90.com/wp-content/uploads/2023/07/Sertlestirilmis-Tabla-Yayi-1200x610.jpg 1200w, https://blog.robo90.com/wp-content/uploads/2023/07/Sertlestirilmis-Tabla-Yayi.jpg 1492w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">Normal Ender 3 modelinde kullanılan düz yaylar tekerleklerin ayarını iyi tutamıyorlar. Sarsıntı yaptıkça tabla da kaçmaya başlıyor. Ama Ender 3 Neo modelinde kullanılan Alaşımlı çelik kapama yaylar baya sıkılar.</p>



<h3 class="wp-block-heading">Tek Z Ekseni</h3>


<div class="wp-block-image">
<figure class="aligncenter size-large is-resized"><img loading="lazy" decoding="async" src="https://blog.robo90.com/wp-content/uploads/2023/07/Tek-Z-Ekseni-1024x527.jpg" alt="Tek Z Ekseni önden görünüş " class="wp-image-7262" style="width:778px;height:401px" width="778" height="401" title="&#x1f409; Creality Ender 3 Neo İnceleme Yazısı 127" srcset="https://blog.robo90.com/wp-content/uploads/2023/07/Tek-Z-Ekseni-1024x527.jpg 1024w, https://blog.robo90.com/wp-content/uploads/2023/07/Tek-Z-Ekseni-300x154.jpg 300w, https://blog.robo90.com/wp-content/uploads/2023/07/Tek-Z-Ekseni-768x395.jpg 768w, https://blog.robo90.com/wp-content/uploads/2023/07/Tek-Z-Ekseni-150x77.jpg 150w, https://blog.robo90.com/wp-content/uploads/2023/07/Tek-Z-Ekseni-450x231.jpg 450w, https://blog.robo90.com/wp-content/uploads/2023/07/Tek-Z-Ekseni-1200x617.jpg 1200w, https://blog.robo90.com/wp-content/uploads/2023/07/Tek-Z-Ekseni.jpg 1495w" sizes="(max-width: 778px) 100vw, 778px" /></figure>
</div>


<p class="wp-block-paragraph">En göze çarpan şey makinanın tek Z eksenine sahip olması, ikinci bir Z ekseni yok. Küçük modellerde bir sorun olmaz ama özellikle boy olarak yüksek modellemelerde Z ekseni yükseldikçe salınım yaşandığını gözlemliyoruz. Cihaz tek Z ekseni olduğu için Yüksek boylu model basarken zorlanabilir. Hepsini kötü basarı ifade etmiyoruz ama çift Z ekseni, tek Z eksenine kıyasla daha avantajlı. Aradaki farkı kullanıcı deneyimi ve basılan modellerin zorluk seviyesi belirliyor.</p>



<h2 class="wp-block-heading">Ender 3 Neo Kurulumu</h2>



<figure class="wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-3 is-layout-flex wp-block-gallery-is-layout-flex">
<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="574" data-id="7263" src="https://blog.robo90.com/wp-content/uploads/2023/07/Kurulum-Malzemeleri-1024x574.jpg" alt="Ender 3 Neo&#039;nun tüm parçaları masanın üstünde. " class="wp-image-7263" title="&#x1f409; Creality Ender 3 Neo İnceleme Yazısı 128" srcset="https://blog.robo90.com/wp-content/uploads/2023/07/Kurulum-Malzemeleri-1024x574.jpg 1024w, https://blog.robo90.com/wp-content/uploads/2023/07/Kurulum-Malzemeleri-300x168.jpg 300w, https://blog.robo90.com/wp-content/uploads/2023/07/Kurulum-Malzemeleri-768x431.jpg 768w, https://blog.robo90.com/wp-content/uploads/2023/07/Kurulum-Malzemeleri-150x84.jpg 150w, https://blog.robo90.com/wp-content/uploads/2023/07/Kurulum-Malzemeleri-450x252.jpg 450w, https://blog.robo90.com/wp-content/uploads/2023/07/Kurulum-Malzemeleri-1200x673.jpg 1200w, https://blog.robo90.com/wp-content/uploads/2023/07/Kurulum-Malzemeleri.jpg 1359w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>
</figure>



<p class="wp-block-paragraph">Uzun zamandır 3D yazıcı ürünlerinde do it yourself ( Kendin yap ) metodunu görmüyorduk. Son zamanlarda çıkan makinalar genellikle kutudan çıktığı gibi kullanılabilir oluyordu. Sonrasında ise  üst gövdeyi alt gövdeye monteledikten sonra cıvatalarını sıkınca makine kullanım hazır hale geliyordu. Creality bu ürünüyle bütçe dostu ürün olmaya giden yolda bazı fedakarlıkları da bizden bekliyor. Şu anda fiyatına göre iddialı makinalardan bir tanesi. Fiyat avantajı öne çıktığı zaman demonte gelmesinin negatifliği geriye düşüyor.</p>



<p class="wp-block-paragraph">Kurulum sürecine bakacak olursak kutu içerisinde ürünün yanında kullanım kılavuzları ve SD kart geliyor. SD kartın içerisinde bastırmaya hazır G-code, kullanım kılavuzu, driverlar ve kurulum videosu bulunmakta.</p>



<p class="wp-block-paragraph">Ürünün kutu halinden kurulması 50 dakika, bir de kalibrasyon işlemi yapması 10 dakika sürdü. Yani yaklaşık bir saat içerisinde makine baskı almaya hazır hale geldi. Şimdi SD kartın içerisinde gelen örnek baskı ve kutunun içinden çıkan örnek filament ile ilk baskımızı alalım.</p>



<figure class="wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-4 is-layout-flex wp-block-gallery-is-layout-flex">
<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="572" data-id="7265" src="https://blog.robo90.com/wp-content/uploads/2023/07/Baski-alirken--1024x572.jpg" alt="Ender 3 Neo baskı alırken" class="wp-image-7265" title="&#x1f409; Creality Ender 3 Neo İnceleme Yazısı 129" srcset="https://blog.robo90.com/wp-content/uploads/2023/07/Baski-alirken--1024x572.jpg 1024w, https://blog.robo90.com/wp-content/uploads/2023/07/Baski-alirken--300x168.jpg 300w, https://blog.robo90.com/wp-content/uploads/2023/07/Baski-alirken--768x429.jpg 768w, https://blog.robo90.com/wp-content/uploads/2023/07/Baski-alirken--150x84.jpg 150w, https://blog.robo90.com/wp-content/uploads/2023/07/Baski-alirken--450x251.jpg 450w, https://blog.robo90.com/wp-content/uploads/2023/07/Baski-alirken--1200x670.jpg 1200w, https://blog.robo90.com/wp-content/uploads/2023/07/Baski-alirken-.jpg 1350w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>
</figure>



<p class="wp-block-paragraph">İlk baskınızı da almayı başardıktan sonra makinanın kullanıma hazır olduğunu söyleyebiliriz. Bu gemi modelini çıkartmayı yaklaşık iki saatte başardı.</p>



<p class="wp-block-paragraph">Biz Ender 3 Neo’yu kurarken sadece SD kartın içindeki videoyu kullandık. Video kurulum, kalibrasyon ve ilk baskı sürecini net bir şekilde anlatıyordu. Bu konuda Creality’nin iyi bir iş çıkardığını söyleyebiliriz.</p>



<h2 class="wp-block-heading">Sonuç</h2>



<p class="wp-block-paragraph">Fiyatının göze aldığımızda Ender 3 Neo tercih edilebilecek bir makine. Ürünün fiyatına aşağıdaki link üzerinden internet sitemizde bakabilirsiniz. Creality Ender 3 serisindeki kullanıcı deneyimlerine kulak asmış ve Neo modelini çıkartmış gibi görünüyor. Bu ürünü daha sonra mağazamızın hemen girişine koyacağız, gelip orada görebilirsiniz. Biz de bu süreçte ürünün iddia ettiği özellikleri karşılayıp karşılamadığını inceleyeceğiz. Vadettiği gibi ABS, PLA, TPU ve PETG filamentlerle bol bol baskılar alacağız. Bu dediklerimizi test ettikten sonra da uzun kullanım test videosu yayınlayacağız.</p>
<p><a rel="nofollow" href="https://blog.robo90.com/creality-ender-3-neo-inceleme-yazisi/">🐉 Creality Ender 3 Neo İnceleme Yazısı</a> yazısı ilk önce <a rel="nofollow" href="https://blog.robo90.com">Robo90 - Blog</a> üzerinde ortaya çıktı.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.robo90.com/creality-ender-3-neo-inceleme-yazisi/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>📏0-100V / 0-10A Dijital Voltampermetre Nasıl Çalışır?</title>
		<link>https://blog.robo90.com/0-100v-0-10a-dijital-voltampermetre-nasil-calisir/</link>
					<comments>https://blog.robo90.com/0-100v-0-10a-dijital-voltampermetre-nasil-calisir/#respond</comments>
		
		<dc:creator><![CDATA[Mustafa Topal]]></dc:creator>
		<pubDate>Wed, 26 Jul 2023 10:38:55 +0000</pubDate>
				<category><![CDATA[Arduino Projeleri]]></category>
		<category><![CDATA[Featured]]></category>
		<category><![CDATA[Genel]]></category>
		<category><![CDATA[Latest Posts]]></category>
		<guid isPermaLink="false">https://blog.robo90.com/?p=7452</guid>

					<description><![CDATA[<p>Bugünkü yazımızda 0-100V / 0-10A Dijital Voltampermetre’yi inceleyeceğiz. Ürün, 0V ile 100V aralığındaki gerilimi ve 0 ile 10 Amper aralığındaki akımı ölçmek için tasarlanmıştır. Ürün Linki &#8211; Malzemeler 0-100V / 0-10A Dijital Voltampermetre Ürünün +-%5’lik bir ölçümde hata payı bulunmakta. Bu hata payını düşük voltajlarda daha az görürken yüksek voltajlarda daha fazla görmekteyiz. 0-100V gerilimlerini [...]</p>
<p><a rel="nofollow" href="https://blog.robo90.com/0-100v-0-10a-dijital-voltampermetre-nasil-calisir/">📏0-100V / 0-10A Dijital Voltampermetre Nasıl Çalışır?</a> yazısı ilk önce <a rel="nofollow" href="https://blog.robo90.com">Robo90 - Blog</a> üzerinde ortaya çıktı.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Bugünkü yazımızda 0-100V / 0-10A Dijital Voltampermetre’yi inceleyeceğiz.</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="979" height="601" src="https://blog.robo90.com/wp-content/uploads/2023/07/voltampermeter-values.jpg" alt="Voltampermetre&#039;nin okuduğu farklı voltaj değerlerini gösteren fotoğraflar. " class="wp-image-7458" title="&#x1f4cf;0-100V / 0-10A Dijital Voltampermetre Nasıl Çalışır? 133" srcset="https://blog.robo90.com/wp-content/uploads/2023/07/voltampermeter-values.jpg 979w, https://blog.robo90.com/wp-content/uploads/2023/07/voltampermeter-values-300x184.jpg 300w, https://blog.robo90.com/wp-content/uploads/2023/07/voltampermeter-values-768x471.jpg 768w, https://blog.robo90.com/wp-content/uploads/2023/07/voltampermeter-values-150x92.jpg 150w, https://blog.robo90.com/wp-content/uploads/2023/07/voltampermeter-values-450x276.jpg 450w" sizes="(max-width: 979px) 100vw, 979px" /></figure>



<p class="wp-block-paragraph">Ürün, 0V ile 100V aralığındaki gerilimi ve 0 ile 10 Amper aralığındaki akımı ölçmek için tasarlanmıştır.</p>



<hr class="wp-block-separator has-alpha-channel-opacity is-style-wide"/>



<h2 class="wp-block-heading">Ürün Linki &#8211; Malzemeler</h2>



<div class="wp-block-media-text is-stacked-on-mobile" style="grid-template-columns:25% auto"><figure class="wp-block-media-text__media"><img loading="lazy" decoding="async" width="300" height="300" src="https://blog.robo90.com/wp-content/uploads/2023/07/0-100v-0-10a-dijital-voltampermetre-voltmetre-ampermetre-blog-urun-gorseli.jpg" alt="0-100V / 0-10A Dijital Voltampermetre ürün görseli" class="wp-image-8240 size-full" title="&#x1f4cf;0-100V / 0-10A Dijital Voltampermetre Nasıl Çalışır? 134" srcset="https://blog.robo90.com/wp-content/uploads/2023/07/0-100v-0-10a-dijital-voltampermetre-voltmetre-ampermetre-blog-urun-gorseli.jpg 300w, https://blog.robo90.com/wp-content/uploads/2023/07/0-100v-0-10a-dijital-voltampermetre-voltmetre-ampermetre-blog-urun-gorseli-150x150.jpg 150w" sizes="(max-width: 300px) 100vw, 300px" /></figure><div class="wp-block-media-text__content">
<p class="wp-block-paragraph"><a href="https://www.robo90.com/0-100v-0-10a-dijital-voltampermetre">0-100V / 0-10A Dijital Voltampermetre</a></p>
</div></div>



<hr class="wp-block-separator has-alpha-channel-opacity is-style-wide"/>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph"><strong>Ürünün +-%5’lik bir ölçümde hata payı bulunmakta. Bu hata payını düşük voltajlarda daha az görürken yüksek voltajlarda daha fazla görmekteyiz.</strong></p>
</blockquote>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph"><strong>0-100V gerilimlerini yukarıdaki gibi ölçmek istiyorsak voltampermetreyi harici bir kaynak ( pil gibi ) ile besleyerek kullanmalıyız. Çünkü ürünümüzün besleme voltajı 0-30V olduğu için ürünümüzü bozabiliriz.</strong></p>
</blockquote>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="571" src="https://blog.robo90.com/wp-content/uploads/2023/07/voltampermeter-2-1024x571.jpg" alt="Bir adet Voltampermetre, akım ölçmek için kalın siyah ve kırmızı kablo, voltaj okumak ve voltampermetreyi beslemek için üçlü ince kırmızı, sarı ve siyah kablo." class="wp-image-7459" title="&#x1f4cf;0-100V / 0-10A Dijital Voltampermetre Nasıl Çalışır? 135" srcset="https://blog.robo90.com/wp-content/uploads/2023/07/voltampermeter-2-1024x571.jpg 1024w, https://blog.robo90.com/wp-content/uploads/2023/07/voltampermeter-2-300x167.jpg 300w, https://blog.robo90.com/wp-content/uploads/2023/07/voltampermeter-2-768x429.jpg 768w, https://blog.robo90.com/wp-content/uploads/2023/07/voltampermeter-2-150x84.jpg 150w, https://blog.robo90.com/wp-content/uploads/2023/07/voltampermeter-2-450x251.jpg 450w, https://blog.robo90.com/wp-content/uploads/2023/07/voltampermeter-2-1200x670.jpg 1200w, https://blog.robo90.com/wp-content/uploads/2023/07/voltampermeter-2.jpg 1362w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">Çalışma gerilimi ise 4.5V ile 30V aralığındadır. İçerisinden bir adet Voltampermetre ve iki adet dişi soketli kablo çıkmaktadır. Gelin hep beraber ürünün teknik özelliklerini inceleyelim.</p>



<h2 class="wp-block-heading">Teknik Özellikler</h2>



<ul class="wp-block-list">
<li>Çalışma Gerilimi: 4.5V &#8211; 30V</li>



<li>Çalışma Akımı: 20mA</li>



<li>Ölçüm Aralığı: 0-100VDC &#8211; 0-10A</li>



<li>Çözünürlük: 0.1V &#8211; 0.01A</li>



<li>Çalışma Sıcaklığı: -15 ile +70°C</li>



<li>Pano tipi montaja uygundur.</li>
</ul>



<p class="wp-block-paragraph">Ürünün dikkat etmemiz gereken en önemli özellikleri çözünürlüğü ve çalışma gerilimidir. Bu Voltampermetre voltaj için 0.1V, akım için 0.01A değişimi tespit edebilir. Örnek vermek gerekirse ölçmek istediğiniz değerler sırasıyla 5.77V-0.345A ise ekranda voltaj için 5.7-5.8V değerlerinden birisini, akım için ise 0.34-0.35A değerlerinden birisini görebilirsiniz.</p>


<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><img loading="lazy" decoding="async" src="https://blog.robo90.com/wp-content/uploads/2023/07/Voltage-Current-Sensivite-1.jpg" alt="Voltampermetre ve arkasındaki akım, voltaj ayarlarını yapmamızı sağlayan küçük potansiyometreler. " class="wp-image-7519" width="348" height="398" title="&#x1f4cf;0-100V / 0-10A Dijital Voltampermetre Nasıl Çalışır? 136" srcset="https://blog.robo90.com/wp-content/uploads/2023/07/Voltage-Current-Sensivite-1.jpg 504w, https://blog.robo90.com/wp-content/uploads/2023/07/Voltage-Current-Sensivite-1-262x300.jpg 262w, https://blog.robo90.com/wp-content/uploads/2023/07/Voltage-Current-Sensivite-1-150x172.jpg 150w, https://blog.robo90.com/wp-content/uploads/2023/07/Voltage-Current-Sensivite-1-450x515.jpg 450w" sizes="(max-width: 348px) 100vw, 348px" /></figure>
</div>


<p class="wp-block-paragraph">Ürünün aynı zamanda arka kısmında bulunan iki adet potansiyometre sayesinde akım ve voltaj ayarlamalarınızı doğru sonucu gösterecek şekilde ayarlayabilirsiniz. Bu potansiyometreleri yıldız tornavida yardımıyla ayarlayıp voltaj ve akım değerlerinizi ayarlayabilirsiniz. </p>



<p class="wp-block-paragraph">Ürün hem harici bir kaynaktan ( Pil gibi ) beslenip kullanılabilirken hem de ölçülmek istenilen yerden beslenebilir. Burada dikkat edilmesi gereken şey ölçülmek istenilen yerden beslenirken 30V üstü kaynakları ölçmek istediğimizde cihazı yakabiliriz. Pil gibi harici bir kaynaktan besleniyorsa 0-100V aralığında istediğimiz değeri ölçebiliriz. Önce ürünü ölçmek istediğimiz yerden güç almasını sağlayarak kullanalım. Sonra bir pil ile güç almasını sağlayarak kullanalım.</p>



<h2 class="wp-block-heading">Voltampermetre Ölçülmek İstenilen Yerden Beslenirse;</h2>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph"><strong><span style="text-decoration: underline">Dikkat:</span> Ölçülmek istenilen yerden beslenirse bu modülü 0-30V aralığında beslememiz gerekir. Aksi taktirde modülü yakabiliriz.</strong></p>
</blockquote>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img loading="lazy" decoding="async" width="694" height="285" src="https://blog.robo90.com/wp-content/uploads/2023/07/plug-in-current-cable-voltampermeter.jpg" alt="Önce kalın olan siyah ve kırmızı kabloların klemensini voltampermetrenin arkasına takıyoruz." class="wp-image-7461" title="&#x1f4cf;0-100V / 0-10A Dijital Voltampermetre Nasıl Çalışır? 137" srcset="https://blog.robo90.com/wp-content/uploads/2023/07/plug-in-current-cable-voltampermeter.jpg 694w, https://blog.robo90.com/wp-content/uploads/2023/07/plug-in-current-cable-voltampermeter-300x123.jpg 300w, https://blog.robo90.com/wp-content/uploads/2023/07/plug-in-current-cable-voltampermeter-150x62.jpg 150w, https://blog.robo90.com/wp-content/uploads/2023/07/plug-in-current-cable-voltampermeter-450x185.jpg 450w" sizes="(max-width: 694px) 100vw, 694px" /><figcaption class="wp-element-caption">Fotoğraf 1.0</figcaption></figure>
</div>


<p class="wp-block-paragraph">1- Ürünümüzü paketinden çıkardıktan sonra önce gerekli kabloların klemensini yerine takacağız. Sağdaki fotoğraftan da anlaşılabileceği gibi önce kalın olan kabloların bağlantı kısmını kırmızı daire ile gösterilen yere takıyoruz. ( <strong>Fotoğraf 1.0</strong> )</p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img loading="lazy" decoding="async" width="730" height="298" src="https://blog.robo90.com/wp-content/uploads/2023/07/plug-in-voltage-cable-voltampermeter.jpg" alt="üçlü ve ince olan siyah, kırmızı ve sarı kabloların klemensini voltampermetrenin arkasına takıyoruz." class="wp-image-7462" title="&#x1f4cf;0-100V / 0-10A Dijital Voltampermetre Nasıl Çalışır? 138" srcset="https://blog.robo90.com/wp-content/uploads/2023/07/plug-in-voltage-cable-voltampermeter.jpg 730w, https://blog.robo90.com/wp-content/uploads/2023/07/plug-in-voltage-cable-voltampermeter-300x122.jpg 300w, https://blog.robo90.com/wp-content/uploads/2023/07/plug-in-voltage-cable-voltampermeter-150x61.jpg 150w, https://blog.robo90.com/wp-content/uploads/2023/07/plug-in-voltage-cable-voltampermeter-450x184.jpg 450w" sizes="(max-width: 730px) 100vw, 730px" /><figcaption class="wp-element-caption">Fotoğraf 1.1</figcaption></figure>
</div>


<p class="wp-block-paragraph">2- Daha sonra ürünün içerisinden çıkan daha ince olan kabloların klemensini soldaki fotoğraftan da anlaşılabileceği gibi kırmızı dairenin olduğu yerine takacağız. ( <strong>Fotoğraf 1.1</strong> )</p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img loading="lazy" decoding="async" width="850" height="384" src="https://blog.robo90.com/wp-content/uploads/2023/07/voltage-power-cable-connect-.jpg" alt="ince olan sarı ve kırmızı kabloları birbirine bağlıyoruz." class="wp-image-7463" title="&#x1f4cf;0-100V / 0-10A Dijital Voltampermetre Nasıl Çalışır? 139" srcset="https://blog.robo90.com/wp-content/uploads/2023/07/voltage-power-cable-connect-.jpg 850w, https://blog.robo90.com/wp-content/uploads/2023/07/voltage-power-cable-connect--300x136.jpg 300w, https://blog.robo90.com/wp-content/uploads/2023/07/voltage-power-cable-connect--768x347.jpg 768w, https://blog.robo90.com/wp-content/uploads/2023/07/voltage-power-cable-connect--150x68.jpg 150w, https://blog.robo90.com/wp-content/uploads/2023/07/voltage-power-cable-connect--450x203.jpg 450w" sizes="(max-width: 850px) 100vw, 850px" /><figcaption class="wp-element-caption">Fotoğraf 1.2</figcaption></figure>
</div>


<p class="wp-block-paragraph">3- Daha sonra üstteki fotoğraftan da anlaşılabileceği gibi önce ince olan kablolardan kırmızı ve sarı olanını birbirine bağlıyoruz. ( <strong>Fotoğraf 1.2</strong> )</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="329" src="https://blog.robo90.com/wp-content/uploads/2023/07/measure-point-voltampermeter-connection-1024x329.jpg" alt="ölçüm yapacağımız noktanın artısını az önce birbirine bağladığımız ince sarı ve kırmızı kabloya bağlıyoruz." class="wp-image-7464" title="&#x1f4cf;0-100V / 0-10A Dijital Voltampermetre Nasıl Çalışır? 140" srcset="https://blog.robo90.com/wp-content/uploads/2023/07/measure-point-voltampermeter-connection-1024x329.jpg 1024w, https://blog.robo90.com/wp-content/uploads/2023/07/measure-point-voltampermeter-connection-300x96.jpg 300w, https://blog.robo90.com/wp-content/uploads/2023/07/measure-point-voltampermeter-connection-768x247.jpg 768w, https://blog.robo90.com/wp-content/uploads/2023/07/measure-point-voltampermeter-connection-150x48.jpg 150w, https://blog.robo90.com/wp-content/uploads/2023/07/measure-point-voltampermeter-connection-450x145.jpg 450w, https://blog.robo90.com/wp-content/uploads/2023/07/measure-point-voltampermeter-connection.jpg 1068w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">Fotoğraf 1.3</figcaption></figure>



<p class="wp-block-paragraph">4- Daha sonra ölçmek istediğimiz noktanın pozitif voltajın düşeceği kısmını bu bağladığımız iki kabloya tutturuyoruz. Yukarıdaki fotoğrafta pozitif voltajın düşeceği kısmı artı ile görebilirsiniz. ( <strong>Fotoğraf 1.3</strong> )</p>


<div class="wp-block-image">
<figure class="aligncenter size-large"><img loading="lazy" decoding="async" width="1024" height="355" src="https://blog.robo90.com/wp-content/uploads/2023/07/measure-point-negative-connection-voltampermeter-1024x355.jpg" alt="Ölçüm yapacağımız kaynağın eksinsini voltampermetremizin siyah kalın olan kablosuna bağlıyoruz." class="wp-image-7465" title="&#x1f4cf;0-100V / 0-10A Dijital Voltampermetre Nasıl Çalışır? 141" srcset="https://blog.robo90.com/wp-content/uploads/2023/07/measure-point-negative-connection-voltampermeter-1024x355.jpg 1024w, https://blog.robo90.com/wp-content/uploads/2023/07/measure-point-negative-connection-voltampermeter-300x104.jpg 300w, https://blog.robo90.com/wp-content/uploads/2023/07/measure-point-negative-connection-voltampermeter-768x266.jpg 768w, https://blog.robo90.com/wp-content/uploads/2023/07/measure-point-negative-connection-voltampermeter-150x52.jpg 150w, https://blog.robo90.com/wp-content/uploads/2023/07/measure-point-negative-connection-voltampermeter-450x156.jpg 450w, https://blog.robo90.com/wp-content/uploads/2023/07/measure-point-negative-connection-voltampermeter.jpg 1185w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">Fotoğraf 1.4</figcaption></figure>
</div>


<p class="wp-block-paragraph">5- Daha sonra daha kalın olan siyah kabloyu voltajını ve amperini ölçeceğimiz noktanın negatif gerilimine bağlıyoruz. Üstteki fotoğrafta da anlaşılabileceği gibi buraya kadarki adımları doğru yaptıysanız voltampermetrenizin ekranınızın gelmesi gerek. ( <strong>Fotoğraf 1.4</strong> )</p>


<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><img loading="lazy" decoding="async" src="https://blog.robo90.com/wp-content/uploads/2023/07/load.jpg" alt="yük olarak bir adet 12V&#039;luk beyaz şerit LED kullanıyoruz." class="wp-image-7466" width="706" height="306" title="&#x1f4cf;0-100V / 0-10A Dijital Voltampermetre Nasıl Çalışır? 142" srcset="https://blog.robo90.com/wp-content/uploads/2023/07/load.jpg 844w, https://blog.robo90.com/wp-content/uploads/2023/07/load-300x130.jpg 300w, https://blog.robo90.com/wp-content/uploads/2023/07/load-768x333.jpg 768w, https://blog.robo90.com/wp-content/uploads/2023/07/load-150x65.jpg 150w, https://blog.robo90.com/wp-content/uploads/2023/07/load-450x195.jpg 450w" sizes="(max-width: 706px) 100vw, 706px" /><figcaption class="wp-element-caption">Fotoğraf 1.5</figcaption></figure>
</div>


<p class="wp-block-paragraph">6- Daha sonra voltampermetremizin ölçüm yapacağı yükü temsil etmesi için biz 12V’luk bir LED kullanacağız. Bu yük bir motor veya başka akım çeken bir elektronik ürün olabilir. Soldaki fotoğraftan da anlaşılabileceği gibi LED’in sol tarafındaki lehim eksiyi, sağ tarafındaki lehim ise artıyı temsil etmekte.        ( <strong>Fotoğraf 1.5</strong> )</p>


<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><img loading="lazy" decoding="async" src="https://blog.robo90.com/wp-content/uploads/2023/07/load-connection-cable.jpg" alt="Yükümüzün artı ve eksi bacaklarına kablo bağlıyoruz." class="wp-image-7467" width="706" height="359" title="&#x1f4cf;0-100V / 0-10A Dijital Voltampermetre Nasıl Çalışır? 143" srcset="https://blog.robo90.com/wp-content/uploads/2023/07/load-connection-cable.jpg 826w, https://blog.robo90.com/wp-content/uploads/2023/07/load-connection-cable-300x153.jpg 300w, https://blog.robo90.com/wp-content/uploads/2023/07/load-connection-cable-768x391.jpg 768w, https://blog.robo90.com/wp-content/uploads/2023/07/load-connection-cable-150x76.jpg 150w, https://blog.robo90.com/wp-content/uploads/2023/07/load-connection-cable-450x229.jpg 450w" sizes="(max-width: 706px) 100vw, 706px" /><figcaption class="wp-element-caption">Fotoğraf 1.6</figcaption></figure>
</div>


<p class="wp-block-paragraph">7- Daha sonra ise yandaki üstteki fotoğraftan da anlaşılabileceği gibi kırmızı kıskaçlı kabloyu artıya, siyah kıskaçlı kabloyu ise eksiye bağladık. Adım adım hem uygulamalı hem de şemada devreyi oluşturmaya devam ediyoruz. ( <strong>Fotoğraf 1.6</strong> )</p>


<div class="wp-block-image">
<figure class="aligncenter size-large is-resized"><img loading="lazy" decoding="async" src="https://blog.robo90.com/wp-content/uploads/2023/07/load-measure-point-power-connection-1024x325.jpg" alt="Yükümüzün artı ucunu birbine bağladığımız kaynak, ince sarı ve kırmızı  olan kablolara bağlıyoruz." class="wp-image-7468" width="718" height="227" title="&#x1f4cf;0-100V / 0-10A Dijital Voltampermetre Nasıl Çalışır? 144" srcset="https://blog.robo90.com/wp-content/uploads/2023/07/load-measure-point-power-connection-1024x325.jpg 1024w, https://blog.robo90.com/wp-content/uploads/2023/07/load-measure-point-power-connection-300x95.jpg 300w, https://blog.robo90.com/wp-content/uploads/2023/07/load-measure-point-power-connection-768x244.jpg 768w, https://blog.robo90.com/wp-content/uploads/2023/07/load-measure-point-power-connection-150x48.jpg 150w, https://blog.robo90.com/wp-content/uploads/2023/07/load-measure-point-power-connection-450x143.jpg 450w, https://blog.robo90.com/wp-content/uploads/2023/07/load-measure-point-power-connection-1200x381.jpg 1200w, https://blog.robo90.com/wp-content/uploads/2023/07/load-measure-point-power-connection.jpg 1317w" sizes="(max-width: 718px) 100vw, 718px" /><figcaption class="wp-element-caption">Fotoğraf 1.7</figcaption></figure>
</div>


<p class="wp-block-paragraph">8- Daha sonra ise 4. adımdaki birbirine bağladığımız ince sarı ve ince kırmızı kablolara LED’in kırmızı kablosunu bağlıyoruz. ( <strong>Fotoğraf 1.7</strong> )</p>


<div class="wp-block-image">
<figure class="aligncenter size-large"><img loading="lazy" decoding="async" width="1024" height="318" src="https://blog.robo90.com/wp-content/uploads/2023/07/load-negative-current-point-positive-connection-1024x318.jpg" alt="Yükümüzün eksisini, voltampermetrenin kalın kırmızı kablomuza bağlıyoruz." class="wp-image-7469" title="&#x1f4cf;0-100V / 0-10A Dijital Voltampermetre Nasıl Çalışır? 145" srcset="https://blog.robo90.com/wp-content/uploads/2023/07/load-negative-current-point-positive-connection-1024x318.jpg 1024w, https://blog.robo90.com/wp-content/uploads/2023/07/load-negative-current-point-positive-connection-300x93.jpg 300w, https://blog.robo90.com/wp-content/uploads/2023/07/load-negative-current-point-positive-connection-768x239.jpg 768w, https://blog.robo90.com/wp-content/uploads/2023/07/load-negative-current-point-positive-connection-150x47.jpg 150w, https://blog.robo90.com/wp-content/uploads/2023/07/load-negative-current-point-positive-connection-450x140.jpg 450w, https://blog.robo90.com/wp-content/uploads/2023/07/load-negative-current-point-positive-connection-1200x373.jpg 1200w, https://blog.robo90.com/wp-content/uploads/2023/07/load-negative-current-point-positive-connection.jpg 1225w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">Fotoğraf 1.8</figcaption></figure>
</div>


<p class="wp-block-paragraph">9- Son olarak ise üstteki fotoğraftan da anlaşılabileceği gibi LED’in siyah ( eksi ) olan kablosunu ise Voltampermetremizin kırmızı kalın olan kablosuna bağlıyoruz. ( <strong>Fotoğraf 1.8</strong> )</p>



<p class="wp-block-paragraph"></p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="861" height="762" src="https://blog.robo90.com/wp-content/uploads/2023/07/measure-point-power-final.jpg" alt="Voltamermetre, ölçüm yaptığı noktadan beslenip akım ve voltaj değerlerini gösteriyor." class="wp-image-7471" title="&#x1f4cf;0-100V / 0-10A Dijital Voltampermetre Nasıl Çalışır? 146" srcset="https://blog.robo90.com/wp-content/uploads/2023/07/measure-point-power-final.jpg 861w, https://blog.robo90.com/wp-content/uploads/2023/07/measure-point-power-final-300x266.jpg 300w, https://blog.robo90.com/wp-content/uploads/2023/07/measure-point-power-final-768x680.jpg 768w, https://blog.robo90.com/wp-content/uploads/2023/07/measure-point-power-final-150x133.jpg 150w, https://blog.robo90.com/wp-content/uploads/2023/07/measure-point-power-final-450x398.jpg 450w" sizes="(max-width: 861px) 100vw, 861px" /><figcaption class="wp-element-caption">Fotoğraf 1.9</figcaption></figure>



<p class="wp-block-paragraph">10. Üstteki fotoğraftan da anlaşılabileceği gibi LED’in üzerinden geçen voltajı ve akımı Voltampermetremizin ekranında görebiliyoruz. ( <strong>Fotoğraf 1.9</strong> )</p>



<h2 class="wp-block-heading">Voltampermetre Bir Pil ile Beslenmek İstenirse</h2>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img loading="lazy" decoding="async" width="720" height="597" src="https://blog.robo90.com/wp-content/uploads/2023/07/battery-voltampermeter-cable-connection.jpg" alt="Kabloları bağlı bir şekilde Voltampermetre ve pil" class="wp-image-7474" title="&#x1f4cf;0-100V / 0-10A Dijital Voltampermetre Nasıl Çalışır? 147" srcset="https://blog.robo90.com/wp-content/uploads/2023/07/battery-voltampermeter-cable-connection.jpg 720w, https://blog.robo90.com/wp-content/uploads/2023/07/battery-voltampermeter-cable-connection-300x249.jpg 300w, https://blog.robo90.com/wp-content/uploads/2023/07/battery-voltampermeter-cable-connection-150x124.jpg 150w, https://blog.robo90.com/wp-content/uploads/2023/07/battery-voltampermeter-cable-connection-450x373.jpg 450w" sizes="(max-width: 720px) 100vw, 720px" /><figcaption class="wp-element-caption">Fotoğraf 2.0</figcaption></figure>
</div>


<p class="wp-block-paragraph">1- Ürünü paketinden çıkartıp tekrar çıkan kabloları yerine takalım. Bu sefer ekstra olarak ürünü beslemek için bir pile ihtiyacımız var. ( <strong>Fotoğraf 2.0</strong> )</p>


<div class="wp-block-image">
<figure class="aligncenter size-large"><img loading="lazy" decoding="async" width="1024" height="337" src="https://blog.robo90.com/wp-content/uploads/2023/07/battery-voltampermeter-connection-1024x337.jpg" alt="Voltampermetre&#039;nin ince kırmızı kablosunu pilin artısına, ince siyah kablosunu ise pilin eksi kısmına bağlıyoruz." class="wp-image-7475" title="&#x1f4cf;0-100V / 0-10A Dijital Voltampermetre Nasıl Çalışır? 148" srcset="https://blog.robo90.com/wp-content/uploads/2023/07/battery-voltampermeter-connection-1024x337.jpg 1024w, https://blog.robo90.com/wp-content/uploads/2023/07/battery-voltampermeter-connection-300x99.jpg 300w, https://blog.robo90.com/wp-content/uploads/2023/07/battery-voltampermeter-connection-768x253.jpg 768w, https://blog.robo90.com/wp-content/uploads/2023/07/battery-voltampermeter-connection-150x49.jpg 150w, https://blog.robo90.com/wp-content/uploads/2023/07/battery-voltampermeter-connection-450x148.jpg 450w, https://blog.robo90.com/wp-content/uploads/2023/07/battery-voltampermeter-connection.jpg 1179w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">Fotoğraf 2.1</figcaption></figure>
</div>


<p class="wp-block-paragraph">2- Fotoğraftan da anlaşılabileceği gibi yeşil olan kablo pilin artısına, sonra ise Voltampermetrenin ince kırmızı olan kablosuna bağlı. Beyaz olan kablo ise pilin eksisine, Voltampermetrenin ise ince siyah olan kablosuna bağlı. bu işlemi yaptıktan sonra göründüğü üzere Voltampermetremizin ekranı geldi.                      ( <strong>Fotoğraf 2.1 </strong>)</p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img loading="lazy" decoding="async" width="826" height="421" src="https://blog.robo90.com/wp-content/uploads/2023/07/load-connection-cable-1.jpg" alt="Yük olarak kullanacağımız şerit LED&#039;imizin artısına ve eksisine kablo bağlıyoruz." class="wp-image-7476" title="&#x1f4cf;0-100V / 0-10A Dijital Voltampermetre Nasıl Çalışır? 149" srcset="https://blog.robo90.com/wp-content/uploads/2023/07/load-connection-cable-1.jpg 826w, https://blog.robo90.com/wp-content/uploads/2023/07/load-connection-cable-1-300x153.jpg 300w, https://blog.robo90.com/wp-content/uploads/2023/07/load-connection-cable-1-768x391.jpg 768w, https://blog.robo90.com/wp-content/uploads/2023/07/load-connection-cable-1-150x76.jpg 150w, https://blog.robo90.com/wp-content/uploads/2023/07/load-connection-cable-1-450x229.jpg 450w" sizes="(max-width: 826px) 100vw, 826px" /><figcaption class="wp-element-caption">Fotoğraf 2.2</figcaption></figure>
</div>


<p class="wp-block-paragraph">3- Daha sonra ise yukarıdaki fotoğraftan da anlaşılabileceği gibi kırmızı kıskaçlı kabloyu artıya, siyah kıskaçlı kabloyu ise eksiye bağladık. ( <strong>Fotoğraf 2.2</strong> )</p>


<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><img loading="lazy" decoding="async" src="https://blog.robo90.com/wp-content/uploads/2023/07/load-positive-voltampermeter-negative-connection.jpg" alt="Daha sonra Voltampermetre&#039;nin kalın siyah kablosunu, kaynağın eksisine, yükün kırmızı kablosunu ise Voltampermetre&#039;nin sarı kablosuna ve kaynağın kırmızı kablosuna bağlıyoruz." class="wp-image-7477" width="718" height="581" title="&#x1f4cf;0-100V / 0-10A Dijital Voltampermetre Nasıl Çalışır? 150" srcset="https://blog.robo90.com/wp-content/uploads/2023/07/load-positive-voltampermeter-negative-connection.jpg 664w, https://blog.robo90.com/wp-content/uploads/2023/07/load-positive-voltampermeter-negative-connection-300x243.jpg 300w, https://blog.robo90.com/wp-content/uploads/2023/07/load-positive-voltampermeter-negative-connection-150x121.jpg 150w, https://blog.robo90.com/wp-content/uploads/2023/07/load-positive-voltampermeter-negative-connection-450x364.jpg 450w" sizes="(max-width: 718px) 100vw, 718px" /><figcaption class="wp-element-caption">Fotoğraf 2.3</figcaption></figure>
</div>


<p class="wp-block-paragraph">4- Daha sonra yukarıdaki fotoğraftan da anlaşılabileceği gibi daha kalın olan siyah kabloyu voltajını ve amperini ölçeceğimiz noktanın negatif gerilimine bağlıyoruz. Sonrasında ölçmek istediğimiz kaynağın artısını voltampermetrenin ince sarı kablosuna bağladık. Sonra LED’imizin kırmızı kablosunu da bu birbirine bağladığımız kabloya bağlıyoruz. ( <strong>Fotoğraf 2.3</strong> )</p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img loading="lazy" decoding="async" width="597" height="463" src="https://blog.robo90.com/wp-content/uploads/2023/07/final-work.jpg" alt="Yükün eksi kablosunu Voltampermetre&#039;nin kalın kırmızı kablosuna bağlıyoruz. " class="wp-image-7479" title="&#x1f4cf;0-100V / 0-10A Dijital Voltampermetre Nasıl Çalışır? 151" srcset="https://blog.robo90.com/wp-content/uploads/2023/07/final-work.jpg 597w, https://blog.robo90.com/wp-content/uploads/2023/07/final-work-300x233.jpg 300w, https://blog.robo90.com/wp-content/uploads/2023/07/final-work-150x116.jpg 150w, https://blog.robo90.com/wp-content/uploads/2023/07/final-work-450x349.jpg 450w" sizes="(max-width: 597px) 100vw, 597px" /><figcaption class="wp-element-caption">Fotoğraf 2.4</figcaption></figure>
</div>


<p class="wp-block-paragraph">Sonra yapmamız gereken LED’in siyah kablosunu voltampermetrenin kalın kırmızı kablosuna bağlamamız gerek. Tüm bu işlemleri yaptıktan sonra Ekranımızda LED’in çektiği akım miktarını ve voltaj değerini görebilmekteyiz. ( <strong>Fotoğraf 2.4</strong> )</p>



<hr class="wp-block-separator has-alpha-channel-opacity is-style-wide"/>



<p class="wp-block-paragraph">Bu yazımızda da 0-100V / 0-10A Dijital Voltampermetreyi inceledik ve nasıl kullanıldığını anlattık. Ürünü bir sistemin çalışır durumda olduğunu, ne kadar güç tükettiği gibi durumları tespit etmek için kullanabiliriz ama eğer ürünü bir Multimetre gibi kullanmayı düşünüyorsanız düşüncenizi tekrar gözden geçirmenizi tavsiye ederiz. Çünkü ürün hassas ölçümler ve laboratuvar ortamı için tasarlanmamış. Eğer bir Multimetre arayışı içindeyseniz aşağıdaki ürünlerimize göz atmanızı tavsiye ederiz <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f440.png" alt="👀" class="wp-smiley" style="height: 1em; max-height: 1em;" />. <br>Bir sonraki ürün incelememizde görüşmek üzere.<img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f44b.png" alt="👋" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>



<div class="wp-block-media-text is-stacked-on-mobile is-vertically-aligned-center" style="grid-template-columns:25% auto"><figure class="wp-block-media-text__media"><img loading="lazy" decoding="async" width="300" height="300" src="https://blog.robo90.com/wp-content/uploads/2023/07/dt-830d-dijital-multimetre-olcu-aleti-multimetre-cin-robo90-blog.jpg" alt="DT-830D Dijital Multimetre Ölçü Aleti ürün görseli" class="wp-image-8206 size-full" title="&#x1f4cf;0-100V / 0-10A Dijital Voltampermetre Nasıl Çalışır? 152" srcset="https://blog.robo90.com/wp-content/uploads/2023/07/dt-830d-dijital-multimetre-olcu-aleti-multimetre-cin-robo90-blog.jpg 300w, https://blog.robo90.com/wp-content/uploads/2023/07/dt-830d-dijital-multimetre-olcu-aleti-multimetre-cin-robo90-blog-150x150.jpg 150w" sizes="(max-width: 300px) 100vw, 300px" /></figure><div class="wp-block-media-text__content">
<p class="wp-block-paragraph"><a href="https://www.robo90.com/dt-830d-dijital-multimetre-olcu-aleti">DT-830D Dijital Multimetre Ölçü Aleti</a></p>
</div></div>



<div class="wp-block-media-text is-stacked-on-mobile is-vertically-aligned-center" style="grid-template-columns:25% auto"><figure class="wp-block-media-text__media"><img loading="lazy" decoding="async" width="300" height="254" src="https://blog.robo90.com/wp-content/uploads/2023/07/dijital-multimetre-avometre-mini-olcu-aleti-xl830l-multimetre-robo90-blog.jpg" alt="Dijital Multimetre- Avometre - Mini Ölçü Aleti - XL830L ürün görseli" class="wp-image-8208 size-full" title="&#x1f4cf;0-100V / 0-10A Dijital Voltampermetre Nasıl Çalışır? 153" srcset="https://blog.robo90.com/wp-content/uploads/2023/07/dijital-multimetre-avometre-mini-olcu-aleti-xl830l-multimetre-robo90-blog.jpg 300w, https://blog.robo90.com/wp-content/uploads/2023/07/dijital-multimetre-avometre-mini-olcu-aleti-xl830l-multimetre-robo90-blog-150x127.jpg 150w" sizes="(max-width: 300px) 100vw, 300px" /></figure><div class="wp-block-media-text__content">
<p class="wp-block-paragraph"><a href="https://www.robo90.com/dijital-multimetre-avometre-mini-olcu-aleti-xl830l">Dijital Multimetre- Avometre &#8211; Mini Ölçü Aleti &#8211; XL830L</a></p>
</div></div>
<p><a rel="nofollow" href="https://blog.robo90.com/0-100v-0-10a-dijital-voltampermetre-nasil-calisir/">📏0-100V / 0-10A Dijital Voltampermetre Nasıl Çalışır?</a> yazısı ilk önce <a rel="nofollow" href="https://blog.robo90.com">Robo90 - Blog</a> üzerinde ortaya çıktı.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.robo90.com/0-100v-0-10a-dijital-voltampermetre-nasil-calisir/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
