<?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>Arduino Projeleri &#8211; Robolink Akademi</title>
	<atom:link href="https://akademi.robolinkmarket.com/category/proje-uygulama/arduino-projeleri/feed/" rel="self" type="application/rss+xml" />
	<link>https://akademi.robolinkmarket.com</link>
	<description>projebaşlasın</description>
	<lastBuildDate>Tue, 02 Sep 2025 14:47:42 +0000</lastBuildDate>
	<language>tr</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9</generator>

<image>
	<url>https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2018/10/RLT1_Logo-309x90_1.png?fit=32%2C32&#038;ssl=1</url>
	<title>Arduino Projeleri &#8211; Robolink Akademi</title>
	<link>https://akademi.robolinkmarket.com</link>
	<width>32</width>
	<height>32</height>
</image> 
<site xmlns="com-wordpress:feed-additions:1">186053538</site>	<item>
		<title>PureBasic nedir ?</title>
		<link>https://akademi.robolinkmarket.com/purebasic-nedir/</link>
					<comments>https://akademi.robolinkmarket.com/purebasic-nedir/#respond</comments>
		
		<dc:creator><![CDATA[Erol İşçioğlu]]></dc:creator>
		<pubDate>Fri, 23 Aug 2024 12:48:46 +0000</pubDate>
				<category><![CDATA[Nedir?]]></category>
		<category><![CDATA[Arduino Projeleri]]></category>
		<category><![CDATA[Genel]]></category>
		<category><![CDATA[İnceleme]]></category>
		<category><![CDATA[potansiyometre]]></category>
		<guid isPermaLink="false">https://akademi.robolinkmarket.com/?p=19096</guid>

					<description><![CDATA[<p>Merhaba arkadaşlar, PureBasic kısaca PB, 1600+ komuta sahip modern ve kullanımı kolay bir programlama dilidir. PB ile konsol, form uygulamaları veya 2D/3D oyun geliştirebilirsiniz. Windows için 82 MB boyutu olan 64-bit kurulum dosyasını indirebilirsiniz. Kurulum, diskte 300 MB civarında bir yer kaplıyor. Kurulumu yaptıktan sonra, hemen kod yazmaya başlayabilirsiniz. İndirme sayfasını açınca göreceksiniz, Linux, Mac [&#8230;]</p>
<p>The post <a rel="nofollow" href="https://akademi.robolinkmarket.com/purebasic-nedir/">PureBasic nedir ?</a> appeared first on <a rel="nofollow" href="https://akademi.robolinkmarket.com">Robolink Akademi</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Merhaba arkadaşlar, <span style="color: #ff6600"><a style="color: #ff6600" href="https://www.purebasic.com/" target="_blank" rel="noopener nofollow">PureBasic</a></span> kısaca PB, 1600+ komuta sahip modern ve kullanımı kolay bir programlama dilidir. PB ile konsol, form uygulamaları veya 2D/3D oyun geliştirebilirsiniz. Windows için 82 MB boyutu olan 64-bit <a href="https://www.purebasic.com/download.php" target="_blank" rel="noopener nofollow"><span style="color: #ff6600">kurulum dosyasını</span></a> indirebilirsiniz. Kurulum, diskte 300 MB civarında bir yer kaplıyor. Kurulumu yaptıktan sonra, hemen kod yazmaya başlayabilirsiniz. İndirme sayfasını açınca göreceksiniz, Linux, Mac OS ve Raspberry Pi sürümleri de vardır. Yani isterseniz, yazdığınız kod, hem Windows da hem de Linux de çalışabilecektir. Kurulum dosyası size PB IDE yi kuracaktır. IDE, programı yazmak, derlemek (compile) veya hata ayıklamak (debug) için kullanılan editör veya yazılım geliştirme ortamıdır.</p>
<h3><span style="color: #ff6600">Neden bir dil öğreneyim ki ?</span></h3>
<p>Hem profesyoneller, hem de elektronik veya yazılım meraklıları, bir bilgisayar dilinin, etiket yazıcı, arduino, plc gibi çevredeki cihazlarla haberleşebilme olanaklarını incelerler. Bu bağlamda, PB, ethernet (TCP/IP, UDP), seri port komutlarını içinde barındırmaktadır. Bunların yanı sıra PB, e-posta gönderme, http isteği (request) yollama, rest api kullanımı, web soket kullanımı gibi özel işlevleri de destekler. Hele ki, benim gibi endüstriyel otomasyon işlerinde çalışıyor veya bu alanda çalışmayı hedef olarak belirlemişseniz, bir programlama dili öğrenmek sizi birkaç adım öne taşıyacaktır.</p>
<p>İşiniz gereği, bir tartı ile, bir plc ile, bir HMI ile veya bir SQL sunucu ile haberleşme gereksinimi duyulan projelere dahil olmuş olabilirsiniz. Bu noktada gidip bilgisayar yazılımını sizin adınıza geliştirecek birilerini bulmanız gerekir. Kimseye muhtaç olmadan programlama ile ilgili kendi işini kendisi görmek isteyenlere bu dili tavsiye ederim, öğrenmesi kolay, pratik ve iş bitirici..</p>
<p>Dil öğrenmek, tabii ki ilgi, merak ve keyif alma meselesidir aynı zamanda. Yani bir konudan hem keyif alıyorsunuz hem de o konu işinizle ilgiliyse, öğrenmek daha çekici hale geliyor haliyle.</p>

<h3 class="wp-block-heading"><span style="color: #ff6600">Neden PureBasic ?</span></h3>



<p>Özellikle programlamaya yeni başlayanlar için çok uygun bir seçim olduğunu söyleyebilirim. Profesyonel bir yazılımcı değilim ama programlama merakım, çocukluğumda bana alınan, oyun bilgisayarı Commodore 64 ile başlamıştı. Zaman içinde C#, Python, Java, Delphi, B4X gibi dilleri incelemiştim. PB&#8217;i görünce ilk görüşte aşk derler ya, öyle birşey oldu. PB IDE&#8217;de Basic dilinin komutları kullanıldığından öğrenmesi çok kolay. Arduino ile yazılım yapan arkadaşlar zaten temel komutlara aşina olduklarından hiç zorluk çekmeyecekler. Kolay olmasının yanısıra çok kapsamlı bir dil. İlk satırda bahsettiğim 1600+ komut bulunmasının nedeni, işimizi kolaylaştırmak. Temel komutları kavradıktan sonra örneğin bir veritabanı projesi yapmak için veritabanı ile ilgili komutları ve örnekleri incelemek gerekiyor. Diğer dillerde olduğu gibi şu kütüphaneyi buradan, bu kütüphaneyi şuradan indirme durumları yok yani. İhtiyacınız olan herşey PB&#8217;nin içinde zaten mevcut durumda.</p>



<p>Diyelim ki bir arkadaşınız, sizden bana şöyle bir program yapar mısın diye istekte bulundu. Programı yazdıktan ve test ettikten sonra, Compiler &gt; Create Executable.. menüsünü seçin. Bir tane exe dosya oluşacaktır. İşlem tamam.. Bu minik dosyayı usb hafızada arkadaşınıza verdiniz. Arkadaşınız, exe dosyayı çift tıklayarak çalıştırdı, kurulum filan olmayacak, program direk çalışacak. PB, harici hiçbir kütüphaneye bağımlı olmadığından, exe dosyanın arkadaşınızın bilgisayarında direk çalışması gayet doğal bir olaydır.</p>



<p>PB geliştirme ortamı da taşınabilir (portable) durumdadır. Diskte, Program Files altında bulunan PureBasic dizinini, usb hafızaya kopyalayın. Ve istediğiniz bilgisayara takıp, program geliştirmeye usb hafıza ile devam edin. Örneğin, <span style="color: #ff6600"><a style="color: #ff6600" href="https://www.purebasic.fr/english/" target="_blank" rel="noopener nofollow">PB forum sitesinden</a></span> birinin yazdığı kaynak kodu kopyalayın. IDE de New butonuna basın, boş sayfa açılsın. Ardından kodu yapıştırın ve Run butonuna basın. Program otomatik olarak derlenip, çalışacaktır.</p>



<p>PB, prosedürel bir dildir. Başka bir deyişle Java gibi nesne yönelimli (OOP) değildir. Bu özellik de programlamaya yeni başlayanlar için büyük bir avantajdır. Java öğrenirken, bu nesne olaylarını kavramakta gerçekten zorlandığımı hatırlıyorum. Neyse ki, PB öyle değil. Hangi satırın ne zaman çalışacağını tahmin etmeniz çok kolay şöyle ki yazdığınız program, yukarıdan aşağıya doğru sırayla satır satır çalışır. Tabii ki yazdığınız prosedür (alt program) tanımlandığı anda değil çağırıldığı anda çalışır.</p>



<h3 class="wp-block-heading"><span style="color: #ff6600">Basit bir form örneği</span></h3>



<pre class="wp-block-code"><code>;Bu komutla her değişkenin tanımlanmasını zorunlu tutuyoruz
EnableExplicit

;Değer almayan ve geriye değer döndürmeyen bir prosedür
;Butona tıklayınca çağırılır
Procedure MesajGoster()
  MessageRequester("Bilgi", "Butona tıkladınız!", #PB_MessageRequester_Ok)
EndProcedure

;#PB ile başlayan sabitler PB içinde bulunan önceden tanımlanmış sabitlerdir
;Bunları Tools &gt; Structure Viewer &gt; Constants sekmesinde görebilirsiniz
#FLAGS = #PB_Window_SystemMenu | #PB_Window_ScreenCentered 

;Debug ile hata ayıklarken, değişkenleri Debug penceresine yazdırabiliriz
Debug "FLAGS : " + #FLAGS

;Define ile değişkenleri tanımlıyoruz
;Örneğin Define.s değişkenin string olduğunu tanımlar
;Define dan sonra . koymazsak değişken integer olur
;Define.i diye tanımlarsak da integer olur 
Define WindowWidth = 400, WindowHeight = 200, Event

;Pencere açılıyor
OpenWindow(0, 0, 0, WindowWidth, WindowHeight, "Merhaba Dünya", #FLAGS)

;ilk sayı Gadget numarası yani kimliği
ButtonGadget(1, 150, 80, 100, 30, "Tıkla") 

;Repeat Until arasındaki kodlar tekrarlanır
;Until yanındaki koşul oluşana kadar
Repeat
  Event = WaitWindowEvent()
  If Event = #PB_Event_Gadget
    Select EventGadget()      ;Hangi Gadget'a tıklandı
      Case 1                     ;Gadget numarası 1 olan butona tıklandı 
        MesajGoster()
    EndSelect
  EndIf
Until Event = #PB_Event_CloseWindow ;Pencere kapata tıklanırsa</code></pre>



<p>Yukarıdaki kodu kopyalayıp, IDE&#8217;de New ile açacağınız boş sayfaya yapıştırın ve Run butonuna basın.. Ctrl tuşu ile farenin tekerini kullanarak, veya Ctrl basılıyken + ve &#8211; ile yazdığınız kodları büyütüp küçültebilirsiniz. Ctrl + 0 ile ilk haline döner. Ctrl + A ile tüm kod seçilir ardından Ctrl + I ile format girintileri otomatik olarak düzenlenir. If &#8211; EndIf arasındaki satırların içeri girmesi gibi. Böylece kodlar daha okunaklı hale gelir.</p>



<figure class="wp-block-image size-full is-resized"><img data-recalc-dims="1" fetchpriority="high" decoding="async" width="696" height="387" class="wp-image-19125" style="width: 982px;height: auto" src="https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2024/08/i2.png?resize=696%2C387&#038;ssl=1" alt="i2" title="PureBasic nedir ? 2" srcset="https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2024/08/i2.png?w=947&amp;ssl=1 947w, https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2024/08/i2.png?resize=300%2C167&amp;ssl=1 300w, https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2024/08/i2.png?resize=768%2C427&amp;ssl=1 768w, https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2024/08/i2.png?resize=755%2C420&amp;ssl=1 755w, https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2024/08/i2.png?resize=150%2C83&amp;ssl=1 150w, https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2024/08/i2.png?resize=696%2C387&amp;ssl=1 696w" sizes="(max-width: 696px) 100vw, 696px" /></figure>



<p>&nbsp;</p>



<h3 class="wp-block-heading"><span style="color: #ff6600">Arduino ile Modbus RTU projesi</span></h3>



<p>Modbus protokolü fabrikalarda, otomasyon işlerinde kullanılmaktadır. Proje için bir tane <span style="color: #ff6600"><a style="color: #ff6600" href="https://www.robolinkmarket.com/10k-potansiyometre" target="_blank" rel="noopener">potansiyometre</a>,</span> bir <span style="color: #ff6600"><a style="color: #ff6600" href="https://www.robolinkmarket.com/arduino-uno-r3-smd-klon" target="_blank" rel="noopener">Arduino Uno</a></span> ve usb kablosuna ihtiyacımız var. Arduino&#8217;ya bağlı usb kablo, bilgisayarda seri port olarak tanınmaktadır. Pot&#8217;u çevirdiğimizde analog pin&#8217;den 0-1023 arasında değerler okunacaktır. Bu bilgi bilgisayarda çalışan PB kodu ile Arduino&#8217;dan modbus protokolü ile okunacaktır. PB&#8217;de birçok komut olmasına rağmen modbus ile ilgili komutlar yok malesef. C# da modbus kütüphanesi vardı, neyse ki PB&#8217;de kütüphanenin işini biz programlamayla yapabiliyoruz. Bunun için hemen forumda bir araştırma yapıyoruz. Google Chrome&#8217;da adres satırına &#8220;modbus site:https://www.purebasic.fr/english/&#8221; yazdığınızda forumda modbus geçen konular çıkacaktır. Forum 20 yıllık mesajları içeriyor. Yılların tecrübesinden faydalanıyoruz. Tabii kodları kendi ihtiyacımıza göre adapte etmek gerekiyor. Bunun için de dile biraz hakim olmanız gerekiyor. Hakim olmanız için de biraz çalışmanız gerekiyor. Burada infratec takma adıyla tecrübeli bir kullanıcı <span style="color: #ff6600"><a style="color: #ff6600" href="https://www.purebasic.fr/english/viewtopic.php?t=85050" target="_blank" rel="noopener nofollow">birşeyler</a></span> karalamıştı sağolsun. Bu arada foruma üye olup, birşey sorarsanız, selamımı söylemeyi unutmayın lütfen.  </p>



<figure class="wp-block-image size-full"><img data-recalc-dims="1" decoding="async" width="600" height="366" class="wp-image-19138" src="https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2024/08/Arduino-mini-min.png?resize=600%2C366&#038;ssl=1" alt="Arduino mini min" title="PureBasic nedir ? 3" srcset="https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2024/08/Arduino-mini-min.png?w=600&amp;ssl=1 600w, https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2024/08/Arduino-mini-min.png?resize=300%2C183&amp;ssl=1 300w, https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2024/08/Arduino-mini-min.png?resize=150%2C92&amp;ssl=1 150w" sizes="(max-width: 600px) 100vw, 600px" /></figure>



<p>&nbsp;</p>



<p>Arduino&#8217;yu modbus slave (sunucu) olarak çalıştırıyoruz. Arduino kütüphanesini <span style="color: #ff6600"><a style="color: #ff6600" href="https://www.arduino.cc/reference/en/libraries/modbusrtuslave/" target="_blank" rel="noopener nofollow">buradan</a></span> indirebilirsiniz. Arduino bekliyor, PB sorgulama yaptığında, Arduino cevap veriyor. </p>



<pre class="wp-block-code"><code>#include &lt;ModbusRTUSlave.h&gt;

ModbusRTUSlave modbus(Serial);

uint16_t holdingRegisters[20] = {0};
uint16_t pot;

void setup() {  
  modbus.configureHoldingRegisters(holdingRegisters, 2);
  modbus.begin(1, 9600, SERIAL_8N1); // slaveID = 1
}

void loop() {
  pot = analogRead(A5);
  holdingRegisters[0] = pot;
  holdingRegisters[1] = pot * 10;
  modbus.poll();
}</code></pre>



<p>Arduino kodunda iki tane holdingRegister tanımlanıyor. İlkine pot değeri (0-1023), ikinciye bu değerin 10 katı yazılıyor. Herbiri modbus protokolünde word değeridir, yani 16-bit değerlerdir. Aşağıdaki PB kodunu çalıştırınca &#8220;Use Compiler Option ThreadSafe!&#8221; hatasını alacaksınız. Compiler &gt; Compiler Options &gt; Create threadsafe executable seçeneğini tıklayın. Programı tekrar çalıştırın, çalışacaktır. Program 2 saniyede bir Arduino&#8217;dan değerleri okuyup konsol ekranında gösterecektir. Bu esnada potu çevirince değerlerin değiştiğini görebilirsiniz.</p>



<figure class="wp-block-image size-full"><img data-recalc-dims="1" decoding="async" width="696" height="497" class="wp-image-19142" src="https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2024/08/i3.png?resize=696%2C497&#038;ssl=1" alt="i3" title="PureBasic nedir ? 4" srcset="https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2024/08/i3.png?w=862&amp;ssl=1 862w, https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2024/08/i3.png?resize=300%2C214&amp;ssl=1 300w, https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2024/08/i3.png?resize=768%2C549&amp;ssl=1 768w, https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2024/08/i3.png?resize=588%2C420&amp;ssl=1 588w, https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2024/08/i3.png?resize=150%2C107&amp;ssl=1 150w, https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2024/08/i3.png?resize=696%2C497&amp;ssl=1 696w, https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2024/08/i3.png?resize=100%2C70&amp;ssl=1 100w" sizes="(max-width: 696px) 100vw, 696px" /></figure>



<p>&nbsp;</p>



<p>Burada form ile değil konsol ile çalıştım. Formda pencere zamanlayıcısı (window timer) adında bir komut var. Ama konsol uygulamasında böyle bir komut yok. 2 saniyede bir okuma yaptırmak için thread komutlarından yararlandık. Burada da forumdan mk-soft sağolsun, varolsun. Ana program birşey yaparken, thread&#8217;e başka birşey yaptırabilirsiniz. Thread olayını diğer dillerde kullanmak çok zor diye bildiğimden o işlere hiç girmemiştim. PB&#8217;de ise çok daha kolay. Bu arada dosyayı diske kaydetmek için Belgelerim dizininde yeni bir dizin oluşturun. Programı kaydederken dosyaya .pb uzantısını vermeyi unutmayın.</p>



<pre class="wp-block-code"><code>; modbus RTU code from infratec
; https://www.purebasic.fr/english/viewtopic.php?t=85050 
; console timer (thread) from mk-soft
; https://www.purebasic.fr/english/viewtopic.php?t=73927
EnableExplicit

CompilerIf Not #PB_Compiler_Thread
  CompilerError "Use Compiler Option ThreadSafe!"
CompilerEndIf

Structure udtThread
  ThreadID.i
  Signal.i
  Ready.i
EndStructure

Enumeration
  #ModBus_FunctionCode_ReadCoils = $01
  #ModBus_FunctionCode_ReadDiscreteInputs ; 2
  #ModBus_FunctionCode_ReadHoldingRegisters ; 3
  #ModBus_FunctionCode_ReadInputRegisters   ; 4
  #ModBus_FunctionCode_WriteSingleCoil      ; 5
  #ModBus_FunctionCode_WriteSingleRegister  ; 6
  #ModBus_FunctionCode_WriteMultipleCoils = $0F
  #ModBus_FunctionCode_WriteMultipleRegisters
EndEnumeration

Global ModBus_RTU_Echo.i, Work.udtThread
Work\Signal = CreateSemaphore()

Procedure.u ModBus_CalcCRC(*Ptr, Len.i)
  Protected CRC_Value.u
  Protected i.i
  CRC_Value.u = $FFFF
  Len - 1 ; means Len = Len - 1
  For i = 0 To Len
    CRC_Value = (CRC_Value &gt;&gt; 8) ! PeekU(?ModBus_CRCTable + (PeekA(*Ptr + i) ! (CRC_Value &amp; $FF)) &lt;&lt; 1)
  Next i
  ProcedureReturn CRC_Value
EndProcedure


Procedure.i ModBus_CheckCRC(*Ptr, Len.i)
  Protected Result.i, CalcCRC.u
  Len - 2
  CalcCRC = ModBus_CalcCRC(*Ptr, Len)
  If CalcCRC = PeekU(*Ptr + Len)
    Result = #True
  EndIf
  ProcedureReturn Result
EndProcedure


Procedure.u ModBus_BigEndian16(Value.u)
  ProcedureReturn PeekA(@Value) &lt;&lt; 8 | PeekA(@Value + 1)
EndProcedure


Procedure.i ModBus_RTU_ReadHoldingRegisters(Port.i, Address.i, StartRegister.i, RegCount.i, Array Registers.u(1))
  Protected Result.i, *Buffer, i.i, Timeout.i, Size.i
  Result = -1
  *Buffer = AllocateMemory(128)
  If *Buffer
    PokeA(*Buffer, Address)
    PokeA(*Buffer + 1, #ModBus_FunctionCode_ReadHoldingRegisters)
    PokeU(*Buffer + 2, ModBus_BigEndian16(StartRegister))
    PokeU(*Buffer + 4, ModBus_BigEndian16(RegCount))
    PokeU(*Buffer + 6, ModBus_CalcCRC(*Buffer, 1 + 1 + 2 + 2))
    PrintN("") : Print ("Request  : ")
    For i = 0 To 7
      Print ( Hex(PeekA(*Buffer + i)) + "-" )
    Next
    ;ShowMemoryViewer(*Buffer, 100) ; to see this memory in ram
    ;CallDebugger ; to stop program here
    WriteSerialPortData(Port, *Buffer, 1 + 1 + 2 + 2 + 2)
    If ModBus_RTU_Echo
      ReadSerialPortData(Port, *Buffer, 1 + 1 + 2 + 2 + 2)
    EndIf
    i = 0
    Timeout = 500
    PrintN("")
    Print ("Response : ")
    Repeat
      If AvailableSerialPortInput(Port)
        ReadSerialPortData(Port, *Buffer + i, 1)
        Print ( Hex(PeekA(*Buffer + i)) + "-" )
        
        i + 1 
        ; in case of an incorrect request from master, slave response has a different func.code than $03
        If i = 5 And PeekA(*Buffer + 1) &lt;&gt; #ModBus_FunctionCode_ReadHoldingRegisters 
          Result = PeekA(*Buffer + 2) ; Result may be 1, 2, 3
          Break
        EndIf
        Size = 1 + 1 + 1 + PeekA(*Buffer + 2) + 2
        If i = Size : PrintN ( " " )
          If ModBus_CheckCRC(*Buffer, Size)
            RegCount - 1
            ReDim Registers(RegCount)
            For i = 0 To RegCount
              Registers(i) = ModBus_BigEndian16(PeekU(*Buffer + 3 + 2 * i))    
            Next i
            Result = 0 ; in case of successful response from slave
          Else
            Result = -2 ; in case of incorrect CRC from slave
          EndIf
          Break
        EndIf
      Else
        Delay(1)
        Timeout - 1
      EndIf
    Until Timeout = 0
    If Timeout = 0
      Result = -10 ; in case of timeout or no response from slave
    EndIf
    FreeMemory(*Buffer)
  EndIf
  ProcedureReturn Result
EndProcedure

OpenConsole("Modbus RTU Test with PureBasic")
EnableGraphicalConsole(1)

Procedure thWork(*Data.udtThread) ; *Data is a pointer, it points an address
  Protected KeyPressed$
  
  Repeat
    KeyPressed$ = Inkey()
    Delay(2000)
    SignalSemaphore(*Data\Signal)
  Until UCase(KeyPressed$) = "X" ; Wait until X is pressed
  
  *Data\Ready = #True
  SignalSemaphore(*Data\Signal)
EndProcedure

; set your COM port name as a second parameter of OpenSerialPort
If OpenSerialPort(0, "COM3", 9600, #PB_SerialPort_NoParity, 8, 1, #PB_SerialPort_NoHandshake, 1, 1)
  PrintN ("Port is opened, wait a moment..") 
  Delay(3000) ; if I remove this, arduino send no response to request after restarting pc
Else
  PrintN ("Failed : can not open port!")
  Delay(3000)
  End
EndIf


Dim Words.u(0)
Define i, Result, Quantity
; change Quantity to 0 to see a result of an incorrect request
Quantity = 2; holding registers quantity

Work\ThreadID = CreateThread(@thWork(), Work) ; @ means the address of procedure thWork()

Repeat
  ; change slaveID address 1 to 5 below to see timeout and no response from slave
  Result = ModBus_RTU_ReadHoldingRegisters(0, 1, 0, Quantity, Words()) 
  ; we call the procedure and pass the values to the procedure 
  ; Words() array passes by reference (address) to the procedure
  ; that's why it's name is not important for the procedure
  
  PrintN ("")
  PrintN ("Registers read from arduino with modbus RTU : ")
  For i = 0 To ArraySize(Words())
    PrintN ("Words(" + i + ") : " + Words(i))
  Next
  PrintN ("")
  PrintN ("Result : " + Result ) : PrintN ("")
  PrintN ("Press X to eXit")
  WaitSemaphore(Work\Signal) ; program waits here until the signal comes back by SignalSemaphore
  ClearConsole()
Until Work\Ready

End

; ModBus CRC16 data
DataSection
  ModBus_CRCTable:
  Data.u $0000, $C0C1, $C181, $0140, $C301, $03C0, $0280, $C241
  Data.u $C601, $06C0, $0780, $C741, $0500, $C5C1, $C481, $0440     
  Data.u $CC01, $0CC0, $0D80, $CD41, $0F00, $CFC1, $CE81, $0E40     
  Data.u $0A00, $CAC1, $CB81, $0B40, $C901, $09C0, $0880, $C841     
  Data.u $D801, $18C0, $1980, $D941, $1B00, $DBC1, $DA81, $1A40     
  Data.u $1E00, $DEC1, $DF81, $1F40, $DD01, $1DC0, $1C80, $DC41     
  Data.u $1400, $D4C1, $D581, $1540, $D701, $17C0, $1680, $D641     
  Data.u $D201, $12C0, $1380, $D341, $1100, $D1C1, $D081, $1040     
  Data.u $F001, $30C0, $3180, $F141, $3300, $F3C1, $F281, $3240     
  Data.u $3600, $F6C1, $F781, $3740, $F501, $35C0, $3480, $F441     
  Data.u $3C00, $FCC1, $FD81, $3D40, $FF01, $3FC0, $3E80, $FE41    
  Data.u $FA01, $3AC0, $3B80, $FB41, $3900, $F9C1, $F881, $3840
  Data.u $2800, $E8C1, $E981, $2940, $EB01, $2BC0, $2A80, $EA41
  Data.u $EE01, $2EC0, $2F80, $EF41, $2D00, $EDC1, $EC81, $2C40     
  Data.u $E401, $24C0, $2580, $E541, $2700, $E7C1, $E681, $2640
  Data.u $2200, $E2C1, $E381, $2340, $E101, $21C0, $2080, $E041
  Data.u $A001, $60C0, $6180, $A141, $6300, $A3C1, $A281, $6240
  Data.u $6600, $A6C1, $A781, $6740, $A501, $65C0, $6480, $A441
  Data.u $6C00, $ACC1, $AD81, $6D40, $AF01, $6FC0, $6E80, $AE41
  Data.u $AA01, $6AC0, $6B80, $AB41, $6900, $A9C1, $A881, $6840
  Data.u $7800, $B8C1, $B981, $7940, $BB01, $7BC0, $7A80, $BA41
  Data.u $BE01, $7EC0, $7F80, $BF41, $7D00, $BDC1, $BC81, $7C40
  Data.u $B401, $74C0, $7580, $B541, $7700, $B7C1, $B681, $7640
  Data.u $7200, $B2C1, $B381, $7340, $B101, $71C0, $7080, $B041
  Data.u $5000, $90C1, $9181, $5140, $9301, $53C0, $5280, $9241
  Data.u $9601, $56C0, $5780, $9741, $5500, $95C1, $9481, $5440
  Data.u $9C01, $5CC0, $5D80, $9D41, $5F00, $9FC1, $9E81, $5E40
  Data.u $5A00, $9AC1, $9B81, $5B40, $9901, $59C0, $5880, $9841
  Data.u $8801, $48C0, $4980, $8941, $4B00, $8BC1, $8A81, $4A40
  Data.u $4E00, $8EC1, $8F81, $4F40, $8D01, $4DC0, $4C80, $8C41
  Data.u $4400, $84C1, $8581, $4540, $8701, $47C0, $4680, $8641
  Data.u $8201, $42C0, $4380, $8341, $4100, $81C1, $8081, $4040
EndDataSection</code></pre>



<p>Bu program 200 satır civarında oldu. Demo PB, 800 satıra kadar size herhangi bir kısıtlama yapmıyor. PB&#8217;yi tanımak ve öğrenmek için gayet yeterli bu satır sayısı sınırı bence. PB&#8217;i beğenirseniz, 79€ gibi bir ücreti var. Satın alırsanız ömür boyu, programı güncelleme hakkınız bulunuyor. PB, sürekli geliştirildiğinden yeni versiyonların çıktığını sıklıkla görebilirsiniz. Şuan V6.11 diye biliyorum.</p>
<p>Çok eski versiyonlarla yazılmış bazı programları çalıştırdığınızda bazı komutlar için &#8220;Deprecated&#8221; yani kullanımdan kaldırılmıştır hata mesajı alabilirsiniz. Bu komutları silerseniz, kod çalışabilecektir.</p>
<p>F5 tuşuna veya Run butonuna bastınız, ve karşınıza &#8220;Cannot execute the file with the internal <span class="posthilit">debugger</span>. Please try the <span class="posthilit">standalone</span> one.&#8221; gibi bir hata mesajı çıktı. Windows Defender, derlenen PB dosyasının Exe olmasını engelleyebilir. PB dosyanızı Belgelerim altında bir dizine kaydedip, o dizini Defender’ın kontrol etmemesini sağlayabilirsiniz.</p>
<p>

</p>
<p>Modbus programı iş başındayken konulu kısa filmi <span style="color: #ff6600"><a style="color: #ff6600" href="https://youtu.be/GpbcHUkGTSk" target="_blank" rel="noopener nofollow">Youtube&#8217;dan</a></span> izleyebilirsiniz..</p>
<p>

</p>
<p>&nbsp;</p>
<p>

</p>
<h3 class="wp-block-heading"><span style="color: #ff6600">PureBasic bilgi kaynakları</span></h3>
<p>

</p>
<p>İnternette birçok bilgi bulabilirsiniz. Ama hepsi ingilizce veya başka dillerde malesef. <a href="https://erolcum.blogspot.com/" target="_blank" rel="noopener nofollow"><span style="color: #ff6600">Blog</span> <span style="color: #ff6600">sayfamda</span></a> PB ile ilgili birkaç yazı yazmıştım. 6 Haziran 2024 tarihinde başlayan yazılarıma bakabilirsiniz. Sadece PB projelerimi paylaşacağım yeni blog sayfam <span style="color: #ff6600"><a href="https://erolcum.github.io" target="_blank" rel="noreferrer noopener nofollow"><span style="color: #ff6600">GitHub.IO</span></a></span> ‘da, Arduino ve PB&#8217;i bir protokol olmadan normal seri port ile haberleştireceğiz, takipte kalınız..</p>
<p>&nbsp;</p>
<p>İngilizce bir web sitesinin tamamını Türkçe’ye çevirmek için <span style="color: #ff6600"><a style="color: #ff6600" href="https://translate.google.com/?hl=tr&amp;sl=tr&amp;tl=en&amp;op=websites" target="_blank" rel="noopener nofollow">Google</a></span> translate, bunun yanısıra paragrafları çevirmek için <span style="color: #ff6600"><a style="color: #ff6600" href="https://www.deepl.com/tr/translator" target="_blank" rel="noopener nofollow">DeepL </a></span>veya <span style="color: #ff6600"><a style="color: #ff6600" href="https://chatgpt.com/" target="_blank" rel="noopener nofollow">chatGPT </a></span>kullanabilirsiniz.</p>
<p>

</p>
<p>En önemli kaynağınız PB&#8217;in yardım dosyalarıdır.. Editör veya IDE&#8217;de bir komuta tıkladıktan sonra F1 tuşuna basarsanız yardım sayfası açılacaktır. Burada örnek kodlar da olabilir. Yardım sayfasının aynısı <span style="color: #ff6600"><a style="color: #ff6600" href="https://www.purebasic.com/documentation/index.html" target="_blank" rel="noopener nofollow">internette</a></span> de online olarak mevcut durumdadır.</p>
<p>

</p>
<p>Yine PB ile kurulan C:\Program Files\PureBasic\Examples dizinindeki örnek dosyalara bakabilirsiniz. PB Forumundan bahsetmiştim. Buraya üye olup birşey sorarsanız, cevap veriyorlar. Tanıştığınız kişilere direk mesaj da (PM) yollayabilirsiniz. Bana da PM yollayabilirsiniz. Vaktim oldukça yanıtlarım. Ayrıca forumda nasıl bir konuyu arayabileceğinizden bahsetmiştim.</p>
<p><strong>Not :</strong> Forumda özellikle eski paylaşımlarda görebilirsiniz, sonunda alt çizgi olan tüm prosedürler veya komutlar <span style="color: #ff6600"><a style="color: #ff6600" href="https://learn.microsoft.com/en-us/windows/win32/api/" target="_blank" rel="noopener nofollow">Microsoft Win32 API</a></span> fonksiyonlarıdır. PB yardım dosyasında bunları göremezsiniz.</p>
<p>

</p>
<p><a href="https://www.google.com/search?q=purebasic+site%3Agithub.com" target="_blank" rel="noopener nofollow"><span style="color: #ff6600">GitHub</span></a> da birçok kod örneği mevcut&#8230;</p>
<p>

</p>
<p>2006 Tarihinde yazılmış <a href="http://nomad.uk.net/downloads/PureBasic%20-%20A%20Beginners%20Guide.pdf" target="_blank" rel="noopener nofollow"><span style="color: #ff6600">bir kitap</span></a> var ücretsiz indirebilirsiniz. Kullanımdan kalkan komutları silin kodlar çalışacaktır. Forum üyelerinden, Kale takma adlı kullanıcı yazmış zamanında..</p>
<p>

</p>
<p>chatGPT ye PB ile istediğiniz bir programı yazdırabilirsiniz. &#8220;purebasic ile bir buton ve text box içeren program yazarmısın&#8221; dediğimde hemen yazdı. Ama dikkatli olun. Komut uydurabiliyor veya kullanımdan kalkmış komutları yazabiliyor. TextBoxGadget() diye bir komut uydurdu, öyle birşey yok PB&#8217;de. TextGadget() ve StringGadget() var.. Microsoft .NET&#8217;de form yaparken geçen controls, PB&#8217;de gadget olarak geçiyorlar.</p>
<p>

</p>
<p>Yine chatGPT gibi size kod yazabilen <span style="color: #ff6600"><a style="color: #ff6600" href="https://chat.deepseek.com/" target="_blank" rel="noopener nofollow">DeepSeek</a></span> var. Ama sanki bu daha çok sallıyor komutları..</p>
<p>

</p>
<p>Bazı forum kullanıcılarının web siteleri veya forumda imzalarında kullandıkları linkler var.. Github sayfamda birkaçını paylaştım. </p>
<p>Diskte Program Files altında PureBasic\Examples\3D\Demos içinde bulunan Character.pb dosyasını çalıştırmayı unutmayın. 3D bir arkadaş çıkıyor ekrana, yön tuşları, boşluk tuşu ve fare ile yönlendirebilirsiniz.. Bol PureBasic&#8217;li günler dilerim.. <img decoding="async" class="emoji td-animation-stack-type0-2" role="img" src="https://s.w.org/images/core/emoji/13.1.0/svg/1f680.svg" alt="&#x1f680;" title="PureBasic nedir ? 5"></p>
<p>

</p>
<p>&nbsp;</p>
<p></p><p>The post <a rel="nofollow" href="https://akademi.robolinkmarket.com/purebasic-nedir/">PureBasic nedir ?</a> appeared first on <a rel="nofollow" href="https://akademi.robolinkmarket.com">Robolink Akademi</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://akademi.robolinkmarket.com/purebasic-nedir/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">19096</post-id>	</item>
		<item>
		<title>Node-RED nedir ?</title>
		<link>https://akademi.robolinkmarket.com/node-red-nedir/</link>
					<comments>https://akademi.robolinkmarket.com/node-red-nedir/#respond</comments>
		
		<dc:creator><![CDATA[Erol İşçioğlu]]></dc:creator>
		<pubDate>Fri, 16 Sep 2022 14:22:22 +0000</pubDate>
				<category><![CDATA[Nedir?]]></category>
		<category><![CDATA[Arduino Projeleri]]></category>
		<category><![CDATA[Genel]]></category>
		<category><![CDATA[IoT Başlangıç Seti Eğitim Serisi]]></category>
		<guid isPermaLink="false">https://akademi.robolinkmarket.com/?p=18287</guid>

					<description><![CDATA[<p>Merhaba arkadaşlar, Node RED kısaca NR, yazılımcı olmadan, kodlama yapmadan veya çok az kodlama ile IoT uygulaması veya lokal uygulamalar geliştirebileceğiniz açık kaynaklı harika bir otomasyon yazılımıdır. Bu yazıda, NR kullanımına bir örnek olması için Arduino kodlaması yani C++ bilmeseniz bile bir Arduino projesini nasıl oluşturabileceğimizi anlatacağım. İhtiyacımız olan ana malzemeler bir Arduino Uno ve [&#8230;]</p>
<p>The post <a rel="nofollow" href="https://akademi.robolinkmarket.com/node-red-nedir/">Node-RED nedir ?</a> appeared first on <a rel="nofollow" href="https://akademi.robolinkmarket.com">Robolink Akademi</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Merhaba arkadaşlar, Node <mark style="background-color:#ffffff" class="has-inline-color has-vivid-red-color">RED</mark> kısaca NR, yazılımcı olmadan, kodlama yapmadan veya çok az kodlama ile IoT uygulaması veya lokal uygulamalar geliştirebileceğiniz açık kaynaklı harika bir otomasyon yazılımıdır. Bu yazıda, NR kullanımına bir örnek olması için Arduino kodlaması yani C++ bilmeseniz bile bir Arduino projesini nasıl oluşturabileceğimizi anlatacağım. İhtiyacımız olan ana malzemeler bir <a href="https://www.robolinkmarket.com/arduino-uno-r3-smd-klon" target="_blank" rel="noreferrer noopener">Arduino Uno</a> ve Windows 10 yüklü bir bilgisayar sadece.. Raspberry Pi de GPIO diye adlandırılan giriş, çıkış (I/O) olarak kullanılabilecek pinler var fakat normal bir PC&#8217;de böyle bir port yok malesef. Bu projede, PC için Arduino&#8217;yu I/O kartı gibi kullanacağız..</p>



<p><a href="https://erolcum.blogspot.com/2022/09/node-red-minimal-server-kurulumu.html" target="_blank" rel="noreferrer noopener nofollow">Blog sayfamdaki yazıda</a> NR&#8217;in bir PC&#8217;ye nasıl kurulduğunu anlatmıştım. NR kurulumunu, daha sonra rahat bir şekilde PC&#8217;den silebilmek, kaldırabilmek, yedeklemek veya farklı işletim sistemlerini deneyimleyebilmek adına VirtualBox içinde yapabilirsiniz. Windows 10 ile çalışan PC&#8217;de VirtualBox sanallaştırma yazılımını kuruyoruz, VirtualBox içinde de bir linux dağıtımı olan Debian&#8217;ı kuruyoruz. VirtualBox içinde Debian yerine Windows da kurabilirsiniz fakat ben çok daha az kaynağa (ram, disk) ihtiyaç duyduğundan ve daha kararlı çalıştığından Debian&#8217;ı tercih ettim. Debian kurulumundaki tüm işlemleri blog sayfamdaki aynı yazıda anlattım..</p>



<p>Elinizde NR kurulmuş bir Raspberry Pi varsa, onunla da aşağıda anlattığım işlemleri yapabilirsiniz. Yani Arduino&#8217;yu USB kablosu ile Raspberry Pi&#8217;ye bağlayabilirsiniz. </p>



<p><code>node-red</code> komutu ile NR&#8217;i çalıştırdığınızı ve Windows PC&#8217;de Google Chrome web tarayıcıyı açarak adres satırına <code>localhost:1880</code> yazıp enter tuşuna bastığınızı farzediyorum. Karşınıza aşağıdaki gibi boş bir NR sayfası gelecektir. Sol taraftaki renkli dikdörtgen kutuların her birine node deniyor. Onları sürükle bırak yöntemiyle ortadaki boş sayfaya çekiyoruz. Node üzerine çift tık yaptığımızda, node&#8217;un ayarlarına giriyoruz. Ayar penceresinde en üstte node&#8217;un ismi yazar. Node&#8217;u Ctrl+C ile kopyalayıp, Ctrl+V ile yapıştırabiliriz. Mouse ile dikdörtgen şeklinde seçim yapıp birden fazla node&#8217;u delete tuşu ile silebilir veya mouse ile sürükleyerek taşıyabiliriz.</p>



<figure class="wp-block-image size-large"><img data-recalc-dims="1" loading="lazy" decoding="async" width="696" height="284" src="https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/09/node_i3.png?resize=696%2C284&#038;ssl=1" alt="node i3" class="wp-image-18295" title="Node-RED nedir ? 6" srcset="https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/09/node_i3.png?resize=1024%2C418&amp;ssl=1 1024w, https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/09/node_i3.png?resize=300%2C122&amp;ssl=1 300w, https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/09/node_i3.png?resize=768%2C313&amp;ssl=1 768w, https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/09/node_i3.png?resize=1536%2C627&amp;ssl=1 1536w, https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/09/node_i3.png?resize=150%2C61&amp;ssl=1 150w, https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/09/node_i3.png?resize=696%2C284&amp;ssl=1 696w, https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/09/node_i3.png?resize=1068%2C436&amp;ssl=1 1068w, https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/09/node_i3.png?resize=1030%2C420&amp;ssl=1 1030w, https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/09/node_i3.png?w=1917&amp;ssl=1 1917w, https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/09/node_i3.png?w=1392&amp;ssl=1 1392w" sizes="auto, (max-width: 696px) 100vw, 696px" /><figcaption class="wp-element-caption">Node-RED arayüzü</figcaption></figure>



<p>Kütüphaneleri kurmak için resimde sağ üst köşede gözüken menü tuşuna basarak Manage palette seçeneğini seçiyoruz. Install sekmesine gelip aşağıdaki node kütüphanelerini kuruyoruz yani install ediyoruz.</p>



<ul class="wp-block-list">
<li>node-red-dashboard</li>



<li>node-red-node-arduino</li>
</ul>



<p>Dashboard&#8217;u, bir cep telefonu web tarayıcısından veya PC&#8217;deki bir tarayıcıdan, Arduino&#8217;yu kontrol etmemizi sağlayacak kullanıcı arayüzünü oluşturmak için kullanacağız. Bunun için HTML, CSS gibi konuları bilmemize ihtiyaç yok. node-arduino (Arduino Firmata) ise Arduino ile iletişim kurmamızı sağlayacak. Bu node&#8217;u kuramazsanız blog sayfamdaki &#8220;Node.js ve Node-RED kurulumu&#8221; başlığını tekrar okumanızı öneririm. Proje sonunda cep telefonu tarayısından NR ip adresini girdiğimizde (192.168.1.xx:1880/ui) aşağıdaki görüntüyü elde etmiş olacağız. Yani NR çalışırken, aynı zamanda web sunucu olarak da çalışıyor..</p>



<figure class="wp-block-image size-full"><img data-recalc-dims="1" loading="lazy" decoding="async" width="421" height="548" src="https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/09/node_i4-2.png?resize=421%2C548&#038;ssl=1" alt="node i4 2" class="wp-image-18301" title="Node-RED nedir ? 7" srcset="https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/09/node_i4-2.png?w=421&amp;ssl=1 421w, https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/09/node_i4-2.png?resize=230%2C300&amp;ssl=1 230w, https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/09/node_i4-2.png?resize=150%2C195&amp;ssl=1 150w, https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/09/node_i4-2.png?resize=300%2C390&amp;ssl=1 300w, https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/09/node_i4-2.png?resize=323%2C420&amp;ssl=1 323w" sizes="auto, (max-width: 421px) 100vw, 421px" /><figcaption class="wp-element-caption">Cep telefonu tarayıcısı</figcaption></figure>



<h1 class="wp-block-heading"><mark style="background-color:#ffffff" class="has-inline-color has-luminous-vivid-orange-color">Arduino ayarları</mark> <mark style="background-color:#ffffff" class="has-inline-color has-luminous-vivid-orange-color">ve bağlantı şeması</mark></h1>



<p>Arduino&#8217;yu USB kablo ile bilgisayara bağlayalım. Önceden kurmadıysanız Arduino için Windows&#8217;a <a href="https://akademi.robolinkmarket.com/ch340-driver-kurulumu/" target="_blank" rel="noreferrer noopener">USB sürücüsü kurulması</a> gerekiyor. Bu sayede, Arduino, Windows Aygıt Yöneticinde seri port olarak gözükecektir. Arduino IDE&#8217;nin çalışabilmesi için gereken Java&#8217;yı <a href="https://www.java.com/tr/download/" target="_blank" rel="noreferrer noopener nofollow">buradan</a>, Arduino IDE&#8217;yi <a href="https://downloads.arduino.cc/arduino-1.6.5-r5-windows.zip?_gl=1*erphd7*_ga*MjQxNzc5OTE1LjE2NTQxNzcyMzQ.*_ga_NEXN8H46L5*MTY1NDE3NzIzMy4xLjAuMTY1NDE3NzIzMy42MA.." target="_blank" rel="noreferrer noopener nofollow">buradan</a> indirin ve bilgisayarınıza kurun. Windows komut isteminde (cmd) <code>java -version</code> yazarak java&#8217;nın bilgisayarınıza daha eskiden kurulup kurulmadığını anlayabilirsiniz. Arduino IDE&#8217;de Araçlar altında Kart ve Port ayarlarının doğru olduğunu kontrol ettikten sonra Dosya-&gt;Örnekler-&gt;Firmata-&gt;StandardFirmata menüsünü takip edin ve Yükle butonuna tıklayın. Firmata yazılımı Arduino&#8217;ya yüklenecektir. USB kabloyu çıkarıp, aşağıdaki şemayı breadboard ile oluşturun.</p>



<figure class="wp-block-image size-full"><img data-recalc-dims="1" loading="lazy" decoding="async" width="696" height="721" src="https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/09/node_i2.png?resize=696%2C721&#038;ssl=1" alt="node i2" class="wp-image-18306" title="Node-RED nedir ? 8" srcset="https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/09/node_i2.png?w=741&amp;ssl=1 741w, https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/09/node_i2.png?resize=289%2C300&amp;ssl=1 289w, https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/09/node_i2.png?resize=150%2C155&amp;ssl=1 150w, https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/09/node_i2.png?resize=300%2C311&amp;ssl=1 300w, https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/09/node_i2.png?resize=696%2C721&amp;ssl=1 696w, https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/09/node_i2.png?resize=405%2C420&amp;ssl=1 405w" sizes="auto, (max-width: 696px) 100vw, 696px" /></figure>



<p>Led&#8217;lere 330ohm, butonlara 10K direnç bağlayabilirsiniz.</p>



<h1 class="wp-block-heading"><mark style="background-color:#ffffff" class="has-inline-color has-luminous-vivid-orange-color">Node-RED flow oluşturalım</mark></h1>



<p>NR arayüzünde test amaçlı, aşağıdaki akış (flow) şemasını oluşturalım. Bu  arada + sembolüne tıklayarak birden fazla boş flow sayfası açabilirsiniz. Örneğin Flow 2 başlığına çift tık yaparak açılan pencerede en altta Enabled yazısına tıklayarak Disabled yani o flow&#8217;u pasif veya çalışmasın durumuna getirebilirsiniz. </p>



<figure class="wp-block-image size-large"><img data-recalc-dims="1" loading="lazy" decoding="async" width="696" height="111" src="https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/09/node_i5.png?resize=696%2C111&#038;ssl=1" alt="node i5" class="wp-image-18309" title="Node-RED nedir ? 9" srcset="https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/09/node_i5.png?resize=1024%2C164&amp;ssl=1 1024w, https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/09/node_i5.png?resize=300%2C48&amp;ssl=1 300w, https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/09/node_i5.png?resize=768%2C123&amp;ssl=1 768w, https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/09/node_i5.png?resize=1536%2C246&amp;ssl=1 1536w, https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/09/node_i5.png?resize=150%2C24&amp;ssl=1 150w, https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/09/node_i5.png?resize=696%2C111&amp;ssl=1 696w, https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/09/node_i5.png?resize=1068%2C171&amp;ssl=1 1068w, https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/09/node_i5.png?w=1917&amp;ssl=1 1917w, https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/09/node_i5.png?w=1392&amp;ssl=1 1392w" sizes="auto, (max-width: 696px) 100vw, 696px" /></figure>



<p>Bilgiler soldan sağa akacaktır. Soldaki inject node&#8217;un solundaki mavi kutucuğa tıklayınca sağda debug mesajı çıkacaktır. Bunu görebilmeniz için sağ üstte böcek sembollü tuşa basmış olmanız gerekir. Böceğin altındaki çöp kutusu tuşuna basınca da mesajlar silinecektir. Mesaja baktığımızda msg payload yani inject node&#8217;undan debug node&#8217;a gelen mesajın içeriği gözükmektedir, tipi number yani sayıdır. Milisaniye olarak sürekli artan bir sayıdır. Debug node, gelen bilginin içeriğini görmek için kullanılır. Debug node&#8217;un sağ tarafındaki kutucuğa tıklanırsa, pasif olacaktır, yani gelen mesajı göstermeyecektir. Şimdi arduino in, arduino out ve inject node&#8217;lardan oluşan aşağıdaki şemayı oluşturalım.</p>



<figure class="wp-block-image size-full"><img data-recalc-dims="1" loading="lazy" decoding="async" width="696" height="508" src="https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/09/node_i6.png?resize=696%2C508&#038;ssl=1" alt="node i6" class="wp-image-18311" title="Node-RED nedir ? 10" srcset="https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/09/node_i6.png?w=942&amp;ssl=1 942w, https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/09/node_i6.png?resize=300%2C219&amp;ssl=1 300w, https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/09/node_i6.png?resize=768%2C561&amp;ssl=1 768w, https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/09/node_i6.png?resize=150%2C110&amp;ssl=1 150w, https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/09/node_i6.png?resize=696%2C508&amp;ssl=1 696w, https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/09/node_i6.png?resize=575%2C420&amp;ssl=1 575w" sizes="auto, (max-width: 696px) 100vw, 696px" /></figure>



<p>Soldaki arduino in node&#8217;ları butonlardan gelen bilgiyi algılayacaktır. Sağdaki arduino out node&#8217;ları led&#8217;leri yakıp söndürecektir. inject node&#8217;larda çift tık ile ayarlarına girdiğinizde msg.payload tipini boolean yapmanız, ardından Done butonuna tıklamanız gerekir. Arduino node&#8217;larda çift tık ile ayarlarına girdiğinizde Type kutusunda Digital seçin, Pin kutusunda pin numarasını yazın. En üstte Arduino yazan kutunun sağındaki kalem sembolüne tıklayarak port kutusuna sizdeki portu yazın. Bende /dev/ttyS1 olarak gözüküyor. Bu konuyla ilgili olarak <a href="https://erolcum.blogspot.com/2022/09/node-red-minimal-server-kurulumu.html" target="_blank" rel="noreferrer noopener nofollow">blog sayfamdaki</a> &#8220;VirtualBox&#8217;da Debian 11 ve Node-RED kurulumu&#8221; başlığını inceleyiniz. Arduino node&#8217;ların altında resimdeki gibi connected (bağlı) yazmalıdır. Bunları daha kolay yapmanın bir yöntemi de kopyala yapıştır yöntemi <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Bunun için aşağıdaki json kodunu, menü tuşu ardından Import&#8217;a tıklayınca açılan pencereye yapıştırın ve Import butonuna tıklayın..</p>



<pre class="wp-block-code"><code>&#91;{"id":"8bd444b8c2c88a1d","type":"tab","label":"Flow 1","disabled":false,"info":"","env":&#91;]},{"id":"797ba27464a0a45e","type":"debug","z":"8bd444b8c2c88a1d","name":"debug 1","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":460,"y":60,"wires":&#91;]},{"id":"7957581b07b3a04c","type":"arduino out","z":"8bd444b8c2c88a1d","name":"LED 1","pin":"5","state":"OUTPUT","arduino":"c602eb6ed5689a22","x":470,"y":260,"wires":&#91;]},{"id":"04b05b9467602db3","type":"inject","z":"8bd444b8c2c88a1d","name":"","props":&#91;{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"true","payloadType":"bool","x":170,"y":260,"wires":&#91;&#91;"7957581b07b3a04c"]]},{"id":"341ecac0162e2fb8","type":"inject","z":"8bd444b8c2c88a1d","name":"","props":&#91;{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"false","payloadType":"bool","x":170,"y":300,"wires":&#91;&#91;"7957581b07b3a04c"]]},{"id":"e0c19514e3a64c4c","type":"debug","z":"8bd444b8c2c88a1d","name":"debug 2","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":460,"y":140,"wires":&#91;]},{"id":"ddd170f15709f854","type":"arduino in","z":"8bd444b8c2c88a1d","name":"Buton 2","pin":"3","state":"INPUT","arduino":"c602eb6ed5689a22","x":150,"y":140,"wires":&#91;&#91;"e0c19514e3a64c4c"]]},{"id":"c4c0d95b55b14b22","type":"arduino out","z":"8bd444b8c2c88a1d","name":"LED 2","pin":"6","state":"OUTPUT","arduino":"c602eb6ed5689a22","x":470,"y":380,"wires":&#91;]},{"id":"6071b83431e655e6","type":"inject","z":"8bd444b8c2c88a1d","name":"","props":&#91;{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"true","payloadType":"bool","x":170,"y":380,"wires":&#91;&#91;"c4c0d95b55b14b22"]]},{"id":"607536a47fb3a41d","type":"inject","z":"8bd444b8c2c88a1d","name":"","props":&#91;{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"false","payloadType":"bool","x":170,"y":420,"wires":&#91;&#91;"c4c0d95b55b14b22"]]},{"id":"072c7055d6888ac6","type":"arduino in","z":"8bd444b8c2c88a1d","name":"Buton 1","pin":"2","state":"INPUT","arduino":"c602eb6ed5689a22","x":150,"y":60,"wires":&#91;&#91;"797ba27464a0a45e"]]},{"id":"c602eb6ed5689a22","type":"arduino-board","device":"/dev/ttyS1"}]</code></pre>



<p>Json da xml gibi bir bilgi paylaşma formatıdır. Bir flow oluşturduysanız, bunu dışarı aktarmak için de Export&#8217;u kullanabilirsiniz. Artık sağ üstte bulunan Deploy butonuna basarak uygulamayı çalıştırabiliriz. Yaptığınız her değişiklikten sonra Deploy&#8217;a tıklamak gerekiyor. Breadboard üzerindeki butona basınca debug penceresinde mesaj olarak 1, parmağı çekince 0 yazacaktır. Inject true butona basınca breadboard üzerindeki led yanacak, false a basınca sönecektir.</p>



<figure class="wp-block-image size-large"><img data-recalc-dims="1" loading="lazy" decoding="async" width="696" height="275" src="https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/09/node_i7.png?resize=696%2C275&#038;ssl=1" alt="node i7" class="wp-image-18315" title="Node-RED nedir ? 11" srcset="https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/09/node_i7.png?resize=1024%2C405&amp;ssl=1 1024w, https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/09/node_i7.png?resize=300%2C119&amp;ssl=1 300w, https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/09/node_i7.png?resize=768%2C304&amp;ssl=1 768w, https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/09/node_i7.png?resize=1536%2C607&amp;ssl=1 1536w, https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/09/node_i7.png?resize=150%2C59&amp;ssl=1 150w, https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/09/node_i7.png?resize=696%2C275&amp;ssl=1 696w, https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/09/node_i7.png?resize=1068%2C422&amp;ssl=1 1068w, https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/09/node_i7.png?resize=1062%2C420&amp;ssl=1 1062w, https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/09/node_i7.png?w=1654&amp;ssl=1 1654w, https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/09/node_i7.png?w=1392&amp;ssl=1 1392w" sizes="auto, (max-width: 696px) 100vw, 696px" /></figure>



<p>Bu flow&#8217;u flow başlığına çift tık yapıp en altta enabled’a tıklayarak, disabled yani pasif hale getirelim. Cep tlelefonu tarayısından görebileceğimiz User Interface (kullanıcı arayüzü) i oluşturmak için aşağıdaki kodu import yapalım.. Burada Arduino node&#8217;ların dışında dashboard&#8217;dan text ve switch node&#8217;ları kullanıldı. Arduino in node&#8217;dan gelen bilgiyi değiştirmek için de change node&#8217;u kullanıldı.. </p>



<pre class="wp-block-code"><code>&#91;{"id":"2b4935223656c83d","type":"tab","label":"Flow 2","disabled":false,"info":"","env":&#91;]},{"id":"041adfd037beb04f","type":"arduino in","z":"2b4935223656c83d","name":"Buton 1","pin":"2","state":"INPUT","arduino":"c602eb6ed5689a22","x":172,"y":138,"wires":&#91;&#91;"1aa124a89df70f0d"]]},{"id":"446d2fee598b3d3f","type":"arduino in","z":"2b4935223656c83d","name":"Buton 2","pin":"3","state":"INPUT","arduino":"c602eb6ed5689a22","x":170,"y":200,"wires":&#91;&#91;"468ab9340c1c4746"]]},{"id":"d6beaa8a08af8f4d","type":"ui_text","z":"2b4935223656c83d","group":"13b08099b22db9ce","order":1,"width":0,"height":0,"name":"","label":"Buton 1","format":"&lt;font color={{msg.renk}}&gt;{{msg.payload}}","layout":"row-spread","className":"","x":580,"y":140,"wires":&#91;]},{"id":"1aa124a89df70f0d","type":"change","z":"2b4935223656c83d","name":"","rules":&#91;{"t":"set","p":"renk","pt":"msg","to":"(msg.payload=1)?\"green\":\"red\"","tot":"jsonata"},{"t":"set","p":"payload","pt":"msg","to":"(msg.payload=1)?\"TRUE\":\"FALSE\"","tot":"jsonata"}],"action":"","property":"","from":"","to":"","reg":false,"x":380,"y":140,"wires":&#91;&#91;"d6beaa8a08af8f4d"]]},{"id":"ab1ec14e49bb3f73","type":"ui_text","z":"2b4935223656c83d","group":"13b08099b22db9ce","order":1,"width":0,"height":0,"name":"","label":"Buton 2","format":"&lt;font color={{msg.renk}}&gt;{{msg.payload}}","layout":"row-spread","className":"","x":580,"y":200,"wires":&#91;]},{"id":"468ab9340c1c4746","type":"change","z":"2b4935223656c83d","name":"","rules":&#91;{"t":"set","p":"renk","pt":"msg","to":"(msg.payload=1)?\"green\":\"red\"","tot":"jsonata"},{"t":"set","p":"payload","pt":"msg","to":"(msg.payload=1)?\"TRUE\":\"FALSE\"","tot":"jsonata"}],"action":"","property":"","from":"","to":"","reg":false,"x":380,"y":200,"wires":&#91;&#91;"ab1ec14e49bb3f73"]]},{"id":"795af1c015bad908","type":"ui_switch","z":"2b4935223656c83d","name":"","label":"LED 1","tooltip":"","group":"13b08099b22db9ce","order":2,"width":0,"height":0,"passthru":true,"decouple":"false","topic":"topic","topicType":"msg","style":"","onvalue":"true","onvalueType":"bool","onicon":"","oncolor":"","offvalue":"false","offvalueType":"bool","officon":"","offcolor":"","animate":false,"className":"","x":170,"y":300,"wires":&#91;&#91;"29378cfa2bb2451e"]]},{"id":"29378cfa2bb2451e","type":"arduino out","z":"2b4935223656c83d","name":"LED 1","pin":"5","state":"OUTPUT","arduino":"c602eb6ed5689a22","x":570,"y":300,"wires":&#91;]},{"id":"9d9d5e3b21cabe81","type":"ui_switch","z":"2b4935223656c83d","name":"","label":"LED 2","tooltip":"","group":"13b08099b22db9ce","order":2,"width":0,"height":0,"passthru":true,"decouple":"false","topic":"topic","topicType":"msg","style":"","onvalue":"true","onvalueType":"bool","onicon":"","oncolor":"","offvalue":"false","offvalueType":"bool","officon":"","offcolor":"","animate":false,"className":"","x":170,"y":360,"wires":&#91;&#91;"ad1dbb708ae72db2"]]},{"id":"ad1dbb708ae72db2","type":"arduino out","z":"2b4935223656c83d","name":"LED 2","pin":"6","state":"OUTPUT","arduino":"c602eb6ed5689a22","x":570,"y":360,"wires":&#91;]},{"id":"c602eb6ed5689a22","type":"arduino-board","device":"/dev/ttyS1"},{"id":"13b08099b22db9ce","type":"ui_group","name":"Arduino","tab":"8074c8e957004d77","order":1,"disp":true,"width":"6","collapse":false,"className":""},{"id":"8074c8e957004d77","type":"ui_tab","name":"Home","icon":"dashboard","disabled":false,"hidden":false}]</code></pre>



<figure class="wp-block-image size-large"><img data-recalc-dims="1" loading="lazy" decoding="async" width="696" height="505" src="https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/09/node_i8.png?resize=696%2C505&#038;ssl=1" alt="node i8" class="wp-image-18317" title="Node-RED nedir ? 12" srcset="https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/09/node_i8.png?resize=1024%2C743&amp;ssl=1 1024w, https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/09/node_i8.png?resize=300%2C218&amp;ssl=1 300w, https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/09/node_i8.png?resize=768%2C557&amp;ssl=1 768w, https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/09/node_i8.png?resize=150%2C109&amp;ssl=1 150w, https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/09/node_i8.png?resize=696%2C505&amp;ssl=1 696w, https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/09/node_i8.png?resize=1068%2C775&amp;ssl=1 1068w, https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/09/node_i8.png?resize=579%2C420&amp;ssl=1 579w, https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/09/node_i8.png?resize=324%2C235&amp;ssl=1 324w, https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/09/node_i8.png?w=1096&amp;ssl=1 1096w" sizes="auto, (max-width: 696px) 100vw, 696px" /></figure>



<p>Deploy&#8217;a tıkladıktan sonra yeni bir Google Chrome sayfası açıp adrese http://localhost:1880/ui girin ve enter a basın. Cep telefonu tarayıcısında bilgisayarın ip adresini aynı şekilde ip_adresi:1880/ui olarak yazın. Windows&#8217;da bilgisayarın ip adresini görmek için komut isteminde <code>ipconfig</code>yazabilirsiniz. Karşınıza çıkan kullanıcı arayüzü ile led&#8217;leri yakıp söndürebilir, telefon ekranında, breadboard üzerindeki butona basıldığında <mark style="background-color:#ffffff" class="has-inline-color has-vivid-green-cyan-color">TRUE</mark>, basılmadığında <mark style="background-color:#ffffff" class="has-inline-color has-vivid-red-color">FALSE</mark> görürsünüz. NR her ortamda kurulabiliyor, Linux, Windows, MacOS veya Android.. İşinize yarayabilecek binlerde node&#8217;dan oluşan kütüphanesi var. Mesela, bir web sitesine http request yollayabilir, dönen cevabın içindeki bir bilgiyi sql veritabanına yazabilirsiniz. MQTT node&#8217;ları ile <a href="https://www.robolinkmarket.com/arduino-tabanli-gelistirme-kartlari" target="_blank" rel="noreferrer noopener">ESP8266/32</a> modüllerle haberleşerek ev otomasyon sistemi yapabilirsiniz. Öğrenmek isteyenler için internette çok kaynak var, örneğin ilk aşamada bu <a href="https://www.youtube.com/watch?v=Q2dstA55cZs&amp;list=PLim9MY6JkyUtuA1skLJE76S6n1UXINovs" target="_blank" rel="noreferrer noopener nofollow">youtube kanalını</a> tavsiye ederim. Daha profesyonel kullanımlar için <a href="https://www.youtube.com/watch?v=3AR432bguOY&amp;list=PLKYvTRORAnx6a9tETvF95o35mykuysuOw" target="_blank" rel="noreferrer noopener nofollow">bu kanalı</a> öneririm.. Node Red&#8217;i red etmeyin deneyin, pişman olmazsınız derim <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <mark style="background-color:#ffffff" class="has-inline-color has-luminous-vivid-orange-color">#projebaşlasın</mark></p>



<p><strong>Not</strong>: Blog sayfama Node-RED ve Tasmota ile ilgili <a href="https://erolcum.blogspot.com/2022/09/tasmota-esp-node-red.html" target="_blank" rel="noreferrer noopener nofollow">bir yazı</a> daha ekledim..</p>
<p>The post <a rel="nofollow" href="https://akademi.robolinkmarket.com/node-red-nedir/">Node-RED nedir ?</a> appeared first on <a rel="nofollow" href="https://akademi.robolinkmarket.com">Robolink Akademi</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://akademi.robolinkmarket.com/node-red-nedir/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">18287</post-id>	</item>
		<item>
		<title>Robonio GSM Shield Kullanımı</title>
		<link>https://akademi.robolinkmarket.com/robonio-gsm-shield-kullanimi/</link>
					<comments>https://akademi.robolinkmarket.com/robonio-gsm-shield-kullanimi/#comments</comments>
		
		<dc:creator><![CDATA[Kerem Akçora]]></dc:creator>
		<pubDate>Mon, 25 Jul 2022 08:50:59 +0000</pubDate>
				<category><![CDATA[Genel]]></category>
		<category><![CDATA[Arduino Projeleri]]></category>
		<guid isPermaLink="false">https://akademi.robolinkmarket.com/?p=17902</guid>

					<description><![CDATA[<p>Merhaba arkadaşlar bugün sizlere Robonio GSM Shield &#8216;i nasıl kullanacağınızı anlatacağım ardından sms ile led aç-kapa projesini yapacağız. ama önce Robonio GSM shieldi tanıyalım. Robonio GSM Shield üzerinde Sim800C GSM modülünü barındıran, arduino ile tam uyumlu shield yapısı ile kolay kullanım sağlayan pratik ve kolay kullanımlı bir üründür.Arduino kütüphaneleri ile kolayca SMS gönderme, sesli arama [&#8230;]</p>
<p>The post <a rel="nofollow" href="https://akademi.robolinkmarket.com/robonio-gsm-shield-kullanimi/">Robonio GSM Shield Kullanımı</a> appeared first on <a rel="nofollow" href="https://akademi.robolinkmarket.com">Robolink Akademi</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Merhaba arkadaşlar bugün sizlere <a href="https://www.robolinkmarket.com/robonio-gsm-shield-arduino-gsm-shield-imei-kayitlidir" target="_blank" rel="noreferrer noopener">Robonio GSM Shield &#8216;i</a> nasıl kullanacağınızı anlatacağım ardından sms ile led aç-kapa projesini yapacağız. ama önce Robonio GSM shieldi tanıyalım.</p>



<p>Robonio GSM Shield üzerinde Sim800C GSM modülünü barındıran, arduino ile tam uyumlu shield yapısı ile kolay kullanım sağlayan pratik ve kolay kullanımlı bir üründür.<br>Arduino kütüphaneleri ile kolayca SMS gönderme, sesli arama yapma, MMS ve internet bağlantısı gibi özellikleri kullanabilirsiniz.<br>Arduino harici raspberry pi veya diğer MCU sistemlerle AT protokolü ile kolayca projeler geliştirebilirsiniz. Pin yapısı otomatik olarak 3.3V ve 5V lojik sistemi destekler.<br>Ürün üzerinde GSM firmware güncelleme veya farklı uygulamalarda kullanmak için GSM modülün PWRKEY butonu bulunmaktadır. Ayrıca bir adet push buton ve LED uygulamalarınıza esneklik ve kolaylık katacaktır.<br>Dahili mikrofon bulunmaktadır. Dilerseniz harici mikrofon ve hoparlör ile kullanabilirsiniz.<br>Nano sim kart destekler.</p>



<h3 class="wp-block-heading"><mark class="has-inline-color has-luminous-vivid-orange-color">Dikkat Edilmesi Gerekenler:</mark></h3>



<p>Ürünü arduino ile kullanırken USB üzerinden bağlayarak kodlama yapabilirsiniz. Ancak hem PC hem de Arduino üzerindeki akım sınırlaması nedeni ile sadece USB üzerinden beslemede güç yetersiz kalabilir.<br>Arduino’nun güç girişinden veya Vin pininden 7.5V-12V arası besleme yapabilirsiniz.<br>Aynı anda USB ve güç girişi ile bağlı olduğu durumda GSM modül rahatça çalışırken bilgisayardan kod yükleme ve seri port görüntüleme gibi işlemleri yapabilirsiniz.</p>



<p><strong>NOT:</strong>&nbsp;<strong>IMEI numaraları BTK onaylı ve kayıtlıdır.</strong></p>



<p><strong>NOT:&nbsp;Bluetooth özelliğini kullanabilmeniz için U.FL konektöre sahip Bluetooth anteni temin etmeniz gereklidir.&nbsp; GSM anteni ürüne dahildir.</strong></p>



<h3 class="wp-block-heading"><mark class="has-inline-color has-luminous-vivid-orange-color">Ürün Özellikleri:</mark></h3>



<ul class="wp-block-list">
<li>Pil (batarya) ile kullanım,</li>



<li>Adaptör ile kullanım</li>



<li>7-12V kullanım aralığı</li>



<li>Kolay kullanım</li>



<li>GSM Kütüphanesi desteği</li>



<li>Türkçe içerik</li>



<li>Tüm operatörler ve 2G, 3G, 4.5G sim kartları  ile uyumlu</li>



<li>IMEI kayıtlı</li>



<li>Nano Sim Desteği</li>



<li>Arama/SMS/MMS/İnternet bağlantısı</li>



<li>Orijinal ve klon Arduino’lar ile uyumlu</li>



<li>Desteklenen modeller; Arduino UNO, Leonardo, Mega, Due</li>



<li>Kart üzerine oturmadan diğer Arduino modelleri ve Raspberry Pi , STM32 gibi diğer geliştirme kartları ile kullanılabilir</li>



<li>Otomatik lojik  seviye algılama sayesinde 5V ve 3.3V ile çalışan geliştirme kartlarını destekler</li>



<li>Güç bağlantısı tercihleri: Arduino’nun 5V pininden, 6-12V arası VIN pininden, 3.7V lipo / lion pil ile</li>



<li>Çalışırken lipo / lion pilleri şarj edebilme</li>



<li>Düşük güç tüketimi</li>



<li>Sim kart koruması</li>



<li>Dahili mikrofon</li>



<li>Harici mikrofon ve hoparlör çıkışı</li>



<li>Sim kart takıldığında/çıkarıldığında algılayabilme</li>



<li>GSM için açma kapama düğmesi</li>



<li>Kullanıcıya tanımlı dahili push buton ve LED</li>
</ul>



<p>Robonio GSM shield kartını tanıdığımıza göre örnek projemize geçelim.</p>



<h2 class="wp-block-heading"><mark class="has-inline-color has-luminous-vivid-orange-color">Malzemeler</mark>:</h2>



<p><a href="https://www.robolinkmarket.com/arduino-uno-r3-smd-klon" target="_blank" rel="noreferrer noopener">Arduino uno</a></p>



<p><a href="https://www.robolinkmarket.com/robonio-gsm-shield-arduino-gsm-shield-imei-kayitlidir" target="_blank" rel="noreferrer noopener">Robonio GSM Shield</a></p>



<p><a href="https://www.robolinkmarket.com/5mm-mavi-led-10-adet" target="_blank" rel="noreferrer noopener">5mm Led</a></p>



<h2 class="wp-block-heading"><mark class="has-inline-color has-luminous-vivid-orange-color">Devre Şeması</mark></h2>



<figure class="wp-block-image size-full"><img data-recalc-dims="1" loading="lazy" decoding="async" width="696" height="727" src="https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/09/trh.png?resize=696%2C727&#038;ssl=1" alt="trh" class="wp-image-18281" title="Robonio GSM Shield Kullanımı 13" srcset="https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/09/trh.png?w=752&amp;ssl=1 752w, https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/09/trh.png?resize=287%2C300&amp;ssl=1 287w, https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/09/trh.png?resize=150%2C157&amp;ssl=1 150w, https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/09/trh.png?resize=300%2C313&amp;ssl=1 300w, https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/09/trh.png?resize=696%2C727&amp;ssl=1 696w, https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/09/trh.png?resize=402%2C420&amp;ssl=1 402w" sizes="auto, (max-width: 696px) 100vw, 696px" /></figure>



<h2 class="wp-block-heading"><mark class="has-inline-color has-luminous-vivid-orange-color">Kodlar</mark></h2>



<p>Öncelikle Robonio GSM shield için hazırlanmış olan kütüphaneyi indirip arduino ide uygulamasına eklememiz gerekiyor. <a href="https://github.com/RobonioDev/Robonio-GSM-shield-library" target="_blank" rel="noreferrer noopener nofollow">Robonio GSM Shield Kütüphanesini </a>tıklayarak indirebilirsiniz.</p>



<pre class="wp-block-code"><code>#include &lt;RobonioGSM.h&gt;
RobonioGSM Robonio;
String smsText, smsNumber;
#define PhoneNumber  "+90**********" // Hangi numaradan emir alacaksa o numarayı girin
#define LED_pin 13

void setup() {

  digitalWrite(7, HIGH);
  delay(3000);
  digitalWrite(7, LOW);
  Robonio.start();
  delay(2000);
  Serial.begin(9600);
  delay(2000);
  Robonio.allSmsDelete  ();
  delay(2000);
  Serial.println("the system is working");
  Robonio.smsSend(PhoneNumber, "sistem basladi.");
}

void loop() {
  smsText = Robonio.smsRead(1);
  if (smsText.indexOf("OK") != -1) {
    if (smsText.length() &gt; 7) {
      smsNumber = Robonio.NumberSmsRead(1);
      Serial.println(smsNumber);
      smsText.toUpperCase();
      
      if (smsText.indexOf("LEDAC") != -1) {
        Serial.println("LED OPENED");
        digitalWrite(LED_pin, HIGH);
        Robonio.smsSend(PhoneNumber, "LED ACILDI");
      }
      else if (smsText.indexOf("LEDKAPAT") != -1) {
        Serial.println("LED CLOSED");
        digitalWrite(LED_pin, LOW);
        Robonio.smsSend(PhoneNumber, "LED KAPANDI");
      }
      else {
        Serial.println("tanimsiz SMS............");
      }
      Robonio.allSmsDelete();
    }
  }
}</code></pre>



<p>Kodu yükledikten 10-15 saniye sonra her şey doğru ise koda girdiğiniz telefon numarasına &#8220;sistem basladi&#8221; diye mesaj gelecek. Bu mesaj geldikten sonra &#8220;LEDAC&#8221; yazdığınızda 13. pine bağlı olan led açılır &#8220;LEDKAPAT&#8221; dediğinizde ise 13. pine bağlı olan led kapanır.</p>



<p>Kolay gelsin <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>



<p></p>
<p>The post <a rel="nofollow" href="https://akademi.robolinkmarket.com/robonio-gsm-shield-kullanimi/">Robonio GSM Shield Kullanımı</a> appeared first on <a rel="nofollow" href="https://akademi.robolinkmarket.com">Robolink Akademi</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://akademi.robolinkmarket.com/robonio-gsm-shield-kullanimi/feed/</wfw:commentRss>
			<slash:comments>15</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">17902</post-id>	</item>
		<item>
		<title>ENKODER VE TAKOMETRE NEDİR ?</title>
		<link>https://akademi.robolinkmarket.com/enkoder-ve-takometre-nedir/</link>
					<comments>https://akademi.robolinkmarket.com/enkoder-ve-takometre-nedir/#respond</comments>
		
		<dc:creator><![CDATA[Erol İşçioğlu]]></dc:creator>
		<pubDate>Tue, 05 Jul 2022 07:40:04 +0000</pubDate>
				<category><![CDATA[Genel]]></category>
		<category><![CDATA[Arduino Projeleri]]></category>
		<category><![CDATA[Nedir?]]></category>
		<guid isPermaLink="false">https://akademi.robolinkmarket.com/?p=17816</guid>

					<description><![CDATA[<p>Enkoder, bağlı olduğu motor milinin veya tekerleğin hareketlerine karşılık sinyal üreten elektromekanik bir cihazdır. Farklı sistemlerle çalışan tipleri olmakla birlikte optik çalışanlarda genel olarak enkoder ışık kesintisine bağlı olarak bir geri bildirim sağlamaktadır. Mutlak enkoder, güç verildiği andan itibaren dönen mile göre dijital bit dizileri şeklinde birbirine benzemeyen çıkış vererek milin konumunu belirlemektedir. Bu nedenle [&#8230;]</p>
<p>The post <a rel="nofollow" href="https://akademi.robolinkmarket.com/enkoder-ve-takometre-nedir/">ENKODER VE TAKOMETRE NEDİR ?</a> appeared first on <a rel="nofollow" href="https://akademi.robolinkmarket.com">Robolink Akademi</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Enkoder, bağlı olduğu motor milinin veya tekerleğin hareketlerine karşılık sinyal üreten elektromekanik bir cihazdır. Farklı sistemlerle çalışan tipleri olmakla birlikte optik çalışanlarda genel olarak enkoder ışık kesintisine bağlı olarak bir geri bildirim sağlamaktadır.</p>



<p>Mutlak enkoder, güç verildiği andan itibaren dönen mile göre dijital bit dizileri şeklinde birbirine benzemeyen çıkış vererek milin konumunu belirlemektedir. Bu nedenle açı tespitinde kullanılır. Artımsal enkoder ise, bağlı olduğu mil dönerken, pals olarak adlandırılan kare sinyal üreterek bulunduğu konumu bilgilendirmede ve de belli bir süre pals sayma işlemi yapılarak dönme hızı tespitinde kullanılır.</p>


<div class="wp-block-image">
<figure class="aligncenter"><img data-recalc-dims="1" loading="lazy" decoding="async" width="214" height="300" src="https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/07/otomatik-etiketleme-aplikatoru.jpg?resize=214%2C300&#038;ssl=1" alt="otomatik etiketleme aplikatoru" class="wp-image-17819" title="ENKODER VE TAKOMETRE NEDİR ? 15" srcset="https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/07/otomatik-etiketleme-aplikatoru.jpg?resize=214%2C300&amp;ssl=1 214w, https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/07/otomatik-etiketleme-aplikatoru.jpg?resize=150%2C211&amp;ssl=1 150w, https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/07/otomatik-etiketleme-aplikatoru.jpg?resize=300%2C421&amp;ssl=1 300w, https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/07/otomatik-etiketleme-aplikatoru.jpg?resize=299%2C420&amp;ssl=1 299w, https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/07/otomatik-etiketleme-aplikatoru.jpg?w=331&amp;ssl=1 331w" sizes="auto, (max-width: 214px) 100vw, 214px" /></figure>
</div>


<p>Otomatik etiketleme aplikatörü, fabrikada konveyör bant üzerinde ilerleyen kolilere etiket yapıştırmak için kullanılır. Aplikatörün, konveyör hızına uygun hızda etiketi koliye yapıştırabilmesi için cihaza artımsal enkoder bağlanmaktadır. 64mm çapında bir tekerlek 500 pals/tur bir enkoder a bağlanır. Tekerlek, konveyör banta temas edecek şekilde montajlanır, böylece aplikatör bant hızından haberdar olmuş olur. Aynı zamanda bantın kaç mm ilerlediği bilgisi de aplikatöre gelmiş olur, örneğin 50 pals geldiyse, tekerlek bir tur attığında bant yaklaşık 200mm (64mm x pi) ilerlediğinden, 50 pals, 20mm bantta ilerleme demektir.</p>


<div class="wp-block-image">
<figure class="aligncenter"><img data-recalc-dims="1" loading="lazy" decoding="async" width="133" height="300" src="https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/07/takometre.jpg?resize=133%2C300&#038;ssl=1" alt="takometre" class="wp-image-17821" title="ENKODER VE TAKOMETRE NEDİR ? 16" srcset="https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/07/takometre.jpg?resize=133%2C300&amp;ssl=1 133w, https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/07/takometre.jpg?resize=150%2C337&amp;ssl=1 150w, https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/07/takometre.jpg?resize=300%2C675&amp;ssl=1 300w, https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/07/takometre.jpg?resize=187%2C420&amp;ssl=1 187w, https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/07/takometre.jpg?w=333&amp;ssl=1 333w" sizes="auto, (max-width: 133px) 100vw, 133px" /></figure>
</div>


<p>Takometre, motor miline veya konveyör banta temas sağlanarak kullanılır, bize rpm (dakikadaki devir sayısı) veya metre/dakika birimleriyle hız bilgisi gösterir.</p>



<p>Burada yapacağımız basit bir arduino projesi, aynen artımsal enkoder gibi motor dönerken pals üretecektir. Tipik bir enkoder bir turda 500 pals verirken bizimki bir turda bir pals verecek. Motorun dönüş hızını yani rpm ölçeceğimizden bu projeye, takometre de diyebiliriz. Projede kullanacağımız&nbsp;modül&nbsp;10mm çatal aralığı olan bir sensördür, bir tarafında infrared led diğer tarafında npn bir transistör bulunmaktır.</p>



<h2 class="wp-block-heading"><span style="color: #ff6600;"><strong>LM393 Motor Hız Sensör Modülü</strong></span></h2>


<div class="wp-block-image">
<figure class="aligncenter"><img data-recalc-dims="1" loading="lazy" decoding="async" width="300" height="283" src="https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/07/lm393.jpg?resize=300%2C283&#038;ssl=1" alt="lm393" class="wp-image-17820" title="ENKODER VE TAKOMETRE NEDİR ? 17" srcset="https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/07/lm393.jpg?resize=300%2C283&amp;ssl=1 300w, https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/07/lm393.jpg?resize=150%2C141&amp;ssl=1 150w, https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/07/lm393.jpg?w=420&amp;ssl=1 420w" sizes="auto, (max-width: 300px) 100vw, 300px" /></figure>
</div>


<p>Araya bir nesne girip girmeme durumuna göre transistör iletimde veya yalıtımda olacak buna göre modül çıkış sinyali arada bir engel varsa HIGH (1), yoksa LOW (0) olacaktır. Proje düzeneği için, <a href="https://www.robolinkmarket.com/dc-cift-eksenli-tt-disli-motor">motor</a> miline bir dil çubuğu parçasını sıcak silikon ile tutturdum. İki HIGH sinyali arasında geçen süreyi ölçerek rpm bilgisini hesapladım. Motoru farklı hızlarda sürmek için Arduino uno nun PWM çıkışını (pin 3), <a href="https://www.robolinkmarket.com/dc-cift-eksenli-tt-disli-motor">L298 motor sürücü</a> modülünde ENA pinine girdim. L298 i 12V güç kaynağı ile besledim. Bu sayede Arduino IDE de, PWM çıkışına farklı değerler vererek, seri port ekranından hız bilgisini okuyor olacağız.</p>


<div class="wp-block-image">
<figure class="aligncenter"><img data-recalc-dims="1" loading="lazy" decoding="async" width="274" height="300" src="https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/07/lm393-arduino.jpg?resize=274%2C300&#038;ssl=1" alt="lm393 arduino" class="wp-image-17822" title="ENKODER VE TAKOMETRE NEDİR ? 18" srcset="https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/07/lm393-arduino.jpg?resize=274%2C300&amp;ssl=1 274w, https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/07/lm393-arduino.jpg?resize=150%2C164&amp;ssl=1 150w, https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/07/lm393-arduino.jpg?resize=300%2C328&amp;ssl=1 300w, https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/07/lm393-arduino.jpg?resize=384%2C420&amp;ssl=1 384w, https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/07/lm393-arduino.jpg?w=457&amp;ssl=1 457w" sizes="auto, (max-width: 274px) 100vw, 274px" /></figure>
</div>

<div class="wp-block-image">
<figure class="aligncenter"><img data-recalc-dims="1" loading="lazy" decoding="async" width="300" height="203" src="https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/07/l298n-arduino.jpg?resize=300%2C203&#038;ssl=1" alt="l298n arduino" class="wp-image-17823" title="ENKODER VE TAKOMETRE NEDİR ? 19" srcset="https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/07/l298n-arduino.jpg?resize=300%2C203&amp;ssl=1 300w, https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/07/l298n-arduino.jpg?resize=150%2C101&amp;ssl=1 150w, https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/07/l298n-arduino.jpg?w=513&amp;ssl=1 513w" sizes="auto, (max-width: 300px) 100vw, 300px" /></figure>
</div>


<p>Bağlantılar bu şekilde.. L298 kullanımı için Robolink Akademi’de bulunan <a href="https://akademi.robolinkmarket.com/arduino-ile-dc-motor-kontrolu/">bu yazıya</a> da bakabilirsiniz. GND leri ortak yapmayı unutmayın.</p>



<h2 class="wp-block-heading"><span style="color: #ff6600;">LM393 Arduino Kodu</span></h2>



<pre class="wp-block-code"><code>#define enA 3
#define in1 6
#define in2 7
#define sensor 2
unsigned long start_time = 0;
unsigned long end_time = 0;
int steps=0; // işlemlerin sırayla yapılabilmesi için tanımlandı
float temp=0;
float rpm=0; //dakikadaki devir sayısı

void setup() {
  Serial.begin(9600);
  pinMode(enA, OUTPUT);
  pinMode(in1, OUTPUT);
  pinMode(in2, OUTPUT);
  pinMode(sensor, INPUT);
  digitalWrite(in1, LOW);
  digitalWrite(in2, HIGH);
  analogWrite(enA, 30); // PWM Hız komutu
}

void loop() {

  if(digitalRead(sensor) &amp;&amp; steps==0)
  {
    start_time=millis();
    steps=1;
    delay(200);
  }

 if(digitalRead(sensor) &amp;&amp; steps==1)
  {
    end_time=millis();
    steps=0;
    temp=int(end_time - start_time); //İki HIGH arası geçen milisaniye
    rpm=60/(temp/1000.0); 
    Serial.println(rpm);
    delay(200);
  }
}
</code></pre>


<p>PWM değeri 30 un altındaysa motor dönmüyor.. Elde ettiğim veriler bu şekilde oluştu.. Gördüğünüz gibi rpm değeri motor voltajı ile orantılı olarak artmakta fakat pwm 125 ten sonra hız pek değişmemektedir. Projenin doğru ölçüm yaptığını takometre ile de doğruladım.</p>
<p><img data-recalc-dims="1" loading="lazy" decoding="async" class=" wp-image-17824 aligncenter" src="https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/07/pwm-degerleri.jpg?resize=448%2C191&#038;ssl=1" alt="pwm degerleri" width="448" height="191" title="ENKODER VE TAKOMETRE NEDİR ? 20" srcset="https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/07/pwm-degerleri.jpg?resize=300%2C128&amp;ssl=1 300w, https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/07/pwm-degerleri.jpg?resize=150%2C64&amp;ssl=1 150w, https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/07/pwm-degerleri.jpg?w=651&amp;ssl=1 651w" sizes="auto, (max-width: 448px) 100vw, 448px" /></p>


<p></p>
<p>The post <a rel="nofollow" href="https://akademi.robolinkmarket.com/enkoder-ve-takometre-nedir/">ENKODER VE TAKOMETRE NEDİR ?</a> appeared first on <a rel="nofollow" href="https://akademi.robolinkmarket.com">Robolink Akademi</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://akademi.robolinkmarket.com/enkoder-ve-takometre-nedir/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">17816</post-id>	</item>
		<item>
		<title>AD8232 Kalp Atış Hızı Sensörü Kullanımı &#8211; Arduino</title>
		<link>https://akademi.robolinkmarket.com/ad8232-kalp-atis-hizi-sensoru-kullanimi-arduino/</link>
					<comments>https://akademi.robolinkmarket.com/ad8232-kalp-atis-hizi-sensoru-kullanimi-arduino/#comments</comments>
		
		<dc:creator><![CDATA[Ecehan Çivril]]></dc:creator>
		<pubDate>Sat, 28 May 2022 10:12:12 +0000</pubDate>
				<category><![CDATA[Genel]]></category>
		<category><![CDATA[Arduino Projeleri]]></category>
		<guid isPermaLink="false">https://akademi.robolinkmarket.com/?p=17746</guid>

					<description><![CDATA[<p>Arkadaşlar merhaba, bu yazımızda AD8232 Kalp Atış Hızı Sensörü Arduino ile nasıl kullanılır bundan bahsedeceğiz. Arduino vb. mikrokontrolcüler ile kalp atış hızını ölçebileceğiniz, aldığınız analog sinyalleri grafik olarak EKG benzeri çıktılar alabileceğiniz AD8232 Kalp Atış Hızı Sensörü, EKG ve diğer biyopotansiyel ölçüm uygulamaları için tasarlanmıştır. Ölçüm probları, ortam kaynaklı dış gürültülere karşı stabil çalışacak şekilde [&#8230;]</p>
<p>The post <a rel="nofollow" href="https://akademi.robolinkmarket.com/ad8232-kalp-atis-hizi-sensoru-kullanimi-arduino/">AD8232 Kalp Atış Hızı Sensörü Kullanımı &#8211; Arduino</a> appeared first on <a rel="nofollow" href="https://akademi.robolinkmarket.com">Robolink Akademi</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Arkadaşlar merhaba, bu yazımızda <strong><span style="color: #ff6600;"><a style="color: #ff6600;" href="https://www.robolinkmarket.com/ad8232-kalp-atis-hizi-sensoru" target="_blank" rel="noopener">AD8232 Kalp Atış Hızı Sensörü</a></span></strong> Arduino ile nasıl kullanılır bundan bahsedeceğiz.</p>
<iframe loading="lazy"  id="_ytid_95741"  width="696" height="392"  data-origwidth="696" data-origheight="392" src="https://www.youtube.com/embed/IH7JLi8ERGg?enablejsapi=1&autoplay=0&cc_load_policy=0&cc_lang_pref=&iv_load_policy=1&loop=0&rel=1&fs=1&playsinline=0&autohide=2&theme=dark&color=red&controls=1&disablekb=0&" class="__youtube_prefs__  no-lazyload" title="YouTube player"  allow="fullscreen; accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen data-no-lazy="1" data-skipgform_ajax_framebjll=""></iframe>
<p>Arduino vb. mikrokontrolcüler ile kalp atış hızını ölçebileceğiniz, aldığınız analog sinyalleri grafik olarak EKG benzeri çıktılar alabileceğiniz AD8232 Kalp Atış Hızı Sensörü, EKG ve diğer biyopotansiyel ölçüm uygulamaları için tasarlanmıştır. Ölçüm probları, ortam kaynaklı dış gürültülere karşı stabil çalışacak şekilde geliştirilmiştir. Kart üzerinde kalp atış hızına bağlı olarak yanıp sönen bir LED bulunmaktadır. </p>
<p><strong>Uyarı:</strong> Biyomedikal sensörler tıbbi amaçlı kullanım için tasarlanmamıştır, herhangi bir hastalığın teşhisi veya tedavisinde kullanım için uygun değildir.</p>
<p><img data-recalc-dims="1" loading="lazy" decoding="async" class=" wp-image-17750 aligncenter" src="https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/05/ad8232z.jpg?resize=438%2C438&#038;ssl=1" alt="ad8232 kalp atış hızı sensörü" width="438" height="438" title="AD8232 Kalp Atış Hızı Sensörü Kullanımı - Arduino 25" srcset="https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/05/ad8232z.jpg?resize=300%2C300&amp;ssl=1 300w, https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/05/ad8232z.jpg?resize=150%2C150&amp;ssl=1 150w, https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/05/ad8232z.jpg?resize=420%2C420&amp;ssl=1 420w, https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/05/ad8232z.jpg?w=600&amp;ssl=1 600w" sizes="auto, (max-width: 438px) 100vw, 438px" /></p>
<h2><span style="color: #ff6600;">Kalp Atış Hızı Sensörü Özellikleri</span></h2>
<ul>
<li>Çalışma Gerilimi: 3.3 V</li>
<li>Analog Çıkış</li>
<li>Kablo bağlantısının çıktığını algılama</li>
<li>Güç Kapatma Pini (shutdown)</li>
<li>Led göstergesi</li>
<li>Biyomedikal ped bağlantısı için 3.5mm TRS fiş</li>
</ul>
<h2><span style="color: #ff6600;">Kalp Atış Hızı Sensörü Kullanımı</span></h2>
<p>Sensör, medikal pedler yardımıyla kullanılmaktadır. Kalbinizde meydana gelen elektriksel dalgaları pedler yardımıyla algılayarak grafik değerler okumanız sağlanıyor. Biz uygulamamızda arduino uno ile beraber sensörü kullanarak okumalar gerçekleştirdik.</p>
<p>Pedleri, sensör üzerinde yazdığı gibi LA olanı Sol kolumuza doğru, RA olanı Sağ kolumuza doğru ve RL olanı ise sağ bacak veya karın bölgesine yapıştırabilirsiniz.</p>
<p><img data-recalc-dims="1" loading="lazy" decoding="async" class=" wp-image-17749 aligncenter" src="https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/05/ad8232-vucut.jpg?resize=495%2C455&#038;ssl=1" alt="ad8232 vucut" width="495" height="455" title="AD8232 Kalp Atış Hızı Sensörü Kullanımı - Arduino 26" srcset="https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/05/ad8232-vucut.jpg?resize=300%2C276&amp;ssl=1 300w, https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/05/ad8232-vucut.jpg?resize=150%2C138&amp;ssl=1 150w, https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/05/ad8232-vucut.jpg?resize=457%2C420&amp;ssl=1 457w, https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/05/ad8232-vucut.jpg?w=600&amp;ssl=1 600w" sizes="auto, (max-width: 495px) 100vw, 495px" /></p>
<h2><span style="color: #ff6600;">Devre Şeması</span></h2>
<p><img data-recalc-dims="1" loading="lazy" decoding="async" class=" wp-image-17748 aligncenter" src="https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/05/ad9232-devre-semasi-1.jpg?resize=459%2C263&#038;ssl=1" alt="ad9232 devre semasi 1" width="459" height="263" title="AD8232 Kalp Atış Hızı Sensörü Kullanımı - Arduino 27" srcset="https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/05/ad9232-devre-semasi-1.jpg?resize=300%2C172&amp;ssl=1 300w, https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/05/ad9232-devre-semasi-1.jpg?resize=1024%2C588&amp;ssl=1 1024w, https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/05/ad9232-devre-semasi-1.jpg?resize=768%2C441&amp;ssl=1 768w, https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/05/ad9232-devre-semasi-1.jpg?resize=150%2C86&amp;ssl=1 150w, https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/05/ad9232-devre-semasi-1.jpg?resize=696%2C400&amp;ssl=1 696w, https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/05/ad9232-devre-semasi-1.jpg?resize=1068%2C613&amp;ssl=1 1068w, https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/05/ad9232-devre-semasi-1.jpg?resize=732%2C420&amp;ssl=1 732w, https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/05/ad9232-devre-semasi-1.jpg?w=1418&amp;ssl=1 1418w" sizes="auto, (max-width: 459px) 100vw, 459px" /></p>
<h2><span style="color: #ff6600;">Arduino Kodlar:</span></h2>
<p>Kodları yükledikten sonra araçlar &gt; Seri Cizici üzerinden grafikleri gözlemleyebilirsiniz.</p>


<pre class="wp-block-code"><code>void setup() {
Serial.begin(9600);
pinMode(10, INPUT); //  LO +
pinMode(11, INPUT); //  LO -
 
}
 
void loop() {
 
if((digitalRead(10) == 1)||(digitalRead(11) == 1)){
Serial.println('!');
}
else{
Serial.println(analogRead(A0));
}
delay(1);
}</code></pre>


<p><img data-recalc-dims="1" loading="lazy" decoding="async" class=" wp-image-17751 aligncenter" src="https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/05/seri-cizici.jpg?resize=506%2C305&#038;ssl=1" alt="seri cizici" width="506" height="305" title="AD8232 Kalp Atış Hızı Sensörü Kullanımı - Arduino 28" srcset="https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/05/seri-cizici.jpg?resize=300%2C181&amp;ssl=1 300w, https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/05/seri-cizici.jpg?resize=150%2C91&amp;ssl=1 150w, https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/05/seri-cizici.jpg?w=611&amp;ssl=1 611w" sizes="auto, (max-width: 506px) 100vw, 506px" /></p>
<p><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f680.png" alt="🚀" class="wp-smiley" style="height: 1em; max-height: 1em;" />Arduino projelerinin devamı için <span style="color: #ff6600;"><a style="color: #ff6600;" href="https://akademi.robolinkmarket.com/category/proje-uygulama/arduino-projeleri/" target="_blank" rel="noopener">Arduino Projeleri</a></span> kategorimizi ziyaret edebilirsiniz.&nbsp;</p>


<p></p>
<p>The post <a rel="nofollow" href="https://akademi.robolinkmarket.com/ad8232-kalp-atis-hizi-sensoru-kullanimi-arduino/">AD8232 Kalp Atış Hızı Sensörü Kullanımı &#8211; Arduino</a> appeared first on <a rel="nofollow" href="https://akademi.robolinkmarket.com">Robolink Akademi</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://akademi.robolinkmarket.com/ad8232-kalp-atis-hizi-sensoru-kullanimi-arduino/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">17746</post-id>	</item>
		<item>
		<title>Arduino ile NRF24L01 Kullanımı</title>
		<link>https://akademi.robolinkmarket.com/arduino-ile-nrf24l01-kullanimi/</link>
					<comments>https://akademi.robolinkmarket.com/arduino-ile-nrf24l01-kullanimi/#comments</comments>
		
		<dc:creator><![CDATA[Furkan Bakkal]]></dc:creator>
		<pubDate>Sat, 02 Apr 2022 20:37:32 +0000</pubDate>
				<category><![CDATA[Genel]]></category>
		<category><![CDATA[Arduino Projeleri]]></category>
		<category><![CDATA[Proje & Uygulama]]></category>
		<category><![CDATA[RF Uygulamalar]]></category>
		<guid isPermaLink="false">https://akademi.robolinkmarket.com/?p=17433</guid>

					<description><![CDATA[<p>Merhaba, bugünkü yazımızda Arduino ile kablosuz haberleşme alanında oldukça popüler olan NRF24L01 kullanımına göz atacağız. Bu projemizde iki Arduino&#8217;yu kablosuz haberleştirerek data aktarımı yapacağız. İlk önce malzemelerimize göz atalım. Malzeme Listesi NRF24L01 Nedir? Nasıl Çalışır? Arduino gibi geliştirme kartları ile kablosuz haberleşme sağlamak için birçok modül var fakat&#160; NRF24L01 en popüler olanı diyebiliriz. Hem ucuz [&#8230;]</p>
<p>The post <a rel="nofollow" href="https://akademi.robolinkmarket.com/arduino-ile-nrf24l01-kullanimi/">Arduino ile NRF24L01 Kullanımı</a> appeared first on <a rel="nofollow" href="https://akademi.robolinkmarket.com">Robolink Akademi</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Merhaba, bugünkü yazımızda <strong>Arduino</strong> ile kablosuz haberleşme alanında oldukça popüler olan <strong>NRF24L01</strong> kullanımına göz atacağız. Bu projemizde iki Arduino&#8217;yu kablosuz haberleştirerek data aktarımı yapacağız. İlk önce malzemelerimize göz atalım.</p>



<h2 class="wp-block-heading"><span style="color: #ff6600;"><strong>Malzeme Listesi</strong></span></h2>



<ul class="wp-block-list">
<li><a href="https://www.robolinkmarket.com/arduino-nano-klon-ch340" target="_blank" rel="noreferrer noopener">Arduino Nano/Uno</a> x2</li>



<li><a href="https://www.robolinkmarket.com/nrf24l01-modul-2" target="_blank" rel="noreferrer noopener">NRF24L01</a> x2</li>



<li>&nbsp;<a href="https://www.robolinkmarket.com/nrf24l01-tasiyici-kart-modulu" target="_blank" rel="noreferrer noopener">NRF24L01 Taşıyıcı Kart</a>&nbsp;x2</li>



<li><a href="https://www.robolinkmarket.com/40-pin-ayrilabilen-erkek-erkek-jumper-kablo-300mm" target="_blank" rel="noreferrer noopener">Jumper Kablolar</a></li>
</ul>



<h2 class="wp-block-heading"><span style="color: #ff6600;"><strong>NRF24L01 Nedir? Nasıl Çalışır?</strong></span></h2>



<p>Arduino gibi geliştirme kartları ile kablosuz haberleşme sağlamak için birçok modül var fakat&nbsp; <strong>NRF24L01 </strong>en popüler olanı diyebiliriz. Hem ucuz hem de uzun menzilli olması onu kablosuz haberleşme projelerinin vazgeçilmez bir parçası yapıyor.</p>



<p>NRF24L01 <strong>2.4GHz</strong>&nbsp;frekansında kablosuz haberleşme yapmanıza imkân sağlayan düşük güç tüketimine sahip bir modüldür.</p>


<div class="wp-block-image">
<figure class="aligncenter"><img data-recalc-dims="1" loading="lazy" decoding="async" width="300" height="300" src="https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/03/nrf1.jpg?resize=300%2C300&#038;ssl=1" alt="nrf1" class="wp-image-17698" title="Arduino ile NRF24L01 Kullanımı 29" srcset="https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/03/nrf1.jpg?resize=300%2C300&amp;ssl=1 300w, https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/03/nrf1.jpg?resize=150%2C150&amp;ssl=1 150w, https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/03/nrf1.jpg?resize=768%2C768&amp;ssl=1 768w, https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/03/nrf1.jpg?resize=696%2C696&amp;ssl=1 696w, https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/03/nrf1.jpg?resize=420%2C420&amp;ssl=1 420w, https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/03/nrf1.jpg?w=1000&amp;ssl=1 1000w" sizes="auto, (max-width: 300px) 100vw, 300px" /></figure>
</div>


<p>Antenli ve antensiz olmak üzere iki tane modeli vardır. Her iki modelin bağlantısı aynı olmakla beraber aralarındaki tek fark kablosuz iletişim menzilidir. Antensiz modelinde açık alanda <strong>100 metre</strong>ye kadar haberleşme sağlanabilirken antenli modelinde menzil <strong>1000 metre</strong>ye kadar varabiliyor.</p>


<div class="wp-block-image">
<figure class="aligncenter"><img data-recalc-dims="1" loading="lazy" decoding="async" width="300" height="300" src="https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/03/nrf2.jpg?resize=300%2C300&#038;ssl=1" alt="nrf2" class="wp-image-17699" title="Arduino ile NRF24L01 Kullanımı 30" srcset="https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/03/nrf2.jpg?resize=300%2C300&amp;ssl=1 300w, https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/03/nrf2.jpg?resize=150%2C150&amp;ssl=1 150w, https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/03/nrf2.jpg?w=384&amp;ssl=1 384w" sizes="auto, (max-width: 300px) 100vw, 300px" /></figure>
</div>


<p><strong>SPI&nbsp;</strong>arabirimini desteklemekte olup, Bu sayede tam 6 tane Arduino’nun bir ana Arduino ile haberleşmesini saylayabilirsiniz. Ama bugün sadece 2 Arduino arasındaki haberleşmeye örnek olacak bir proje gerçekleştireceğiz.</p>



<p>Modülün pinlerine ve kullanımına değinmek gerekirse, modülde toplam<strong> 8 tane pin</strong> bulunmakta ve biz aktif olarak bu pinlerin 7 tanesini haberleşmek için kullanacağız.</p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img data-recalc-dims="1" loading="lazy" decoding="async" width="696" height="351" src="https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/03/nrf4.jpg?resize=696%2C351&#038;ssl=1" alt="nrf4" class="wp-image-17701" title="Arduino ile NRF24L01 Kullanımı 31" srcset="https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/03/nrf4.jpg?w=800&amp;ssl=1 800w, https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/03/nrf4.jpg?resize=300%2C152&amp;ssl=1 300w, https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/03/nrf4.jpg?resize=768%2C388&amp;ssl=1 768w, https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/03/nrf4.jpg?resize=150%2C76&amp;ssl=1 150w, https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/03/nrf4.jpg?resize=696%2C351&amp;ssl=1 696w" sizes="auto, (max-width: 696px) 100vw, 696px" /></figure>
</div>

<p><strong><span class="has-inline-color has-black-color">GND</span>&nbsp;</strong>Toprak pinidir.</p>
<p><span class="has-inline-color has-vivid-red-color" style="color: #ff0000"><strong>VCC</strong> </span>Güç pinidir. 1,9 ila 3,9 arasında bir voltaj verebilirsiniz. Arduino ile kullanımda 3.3V çıkışa bağlayabilirsiniz. 5V pinine kesinlikle bağlamayın. Güç ile alakalı problemler yaşamamak için taşıyıcı kartı kullanımızı öneririm. Aksi halde iletişimde kopukluklar meydana gelebiliyor.</p>
<p><span class="has-inline-color has-luminous-vivid-amber-color"><strong>CE</strong></span>&nbsp;aktif bir HIGH pinidir. Seçildiğinde, NRF24L01 hangi moduna bağlı olarak veri gönderir ya da alır.</p>
<p><strong><span class="has-inline-color has-luminous-vivid-orange-color">CSN&nbsp;</span></strong>&nbsp;aktif bir&nbsp;LOW&nbsp;pinidir ve normalde&nbsp;HIGH&nbsp;tutulur. Bu pin&nbsp;LOW&nbsp;olduğunda NRF24L01, SPI portunu veri alımı moduna geçirir.</p>
<p><span class="has-inline-color has-vivid-green-cyan-color"><strong>SCK</strong></span> &nbsp;SPI haberleşme için gerekli olan saat hareketlerini kabul eder.</p>
<p><strong><span class="has-inline-color has-vivid-cyan-blue-color">MOSI</span></strong>&nbsp;&nbsp;NRF24L01’in SPI girdisidir.</p>
<p><strong><span class="has-inline-color has-vivid-purple-color">MISO</span></strong>&nbsp;&nbsp;NRF24L01’den SPI çıkışıdır.</p>
<p><strong>SCK</strong>, <strong>MISO</strong> ve <strong>MOSI</strong> pinleri SPI haberleşme ile alakalı olduğundan dolayı Arduino çeşidine göre farklılık gösterebilmektedir. Bu yüzden devreyi kurarken bu tabloya da göz atmayı ihmal etmeyin.</p>
<table class="tabler max550">
<tbody>
<tr class="tabler-header">
<td>&nbsp;</td>
<td>MOSI</td>
<td>MISO</td>
<td>SCK</td>
</tr>
<tr>
<td>Arduino Uno</td>
<td>11</td>
<td>12</td>
<td>13</td>
</tr>
<tr>
<td>Arduino Nano</td>
<td>11</td>
<td>12</td>
<td>13</td>
</tr>
<tr>
<td>Arduino Mega</td>
<td>51</td>
<td>50</td>
<td>52</td>
</tr>
</tbody>
</table>
<p><strong>NRF24L01</strong> modülünü tanıdığımıza göre devre şemasına geçebiliriz.</p>
<h2><span style="color: #ff6600"><strong>Arduino ile NRF24L01 Kullanımı</strong><strong> &#8211; Devre Şeması</strong></span></h2>
<p></p>

<div class="wp-block-image">
<figure class="aligncenter size-large is-resized"><img data-recalc-dims="1" loading="lazy" decoding="async" src="https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/03/receiver_bb.png?resize=696%2C584&#038;ssl=1" alt="receiver bb" class="wp-image-17702" width="696" height="584" title="Arduino ile NRF24L01 Kullanımı 32"></figure>
</div>

<p>Hem alıcı hem de verici için kullanacağımız devre aynı. Modüllerin alıcı ya da verici olma durumunu kodlarda belirtiyoruz.</p>


<figure class="wp-block-table"><table><tbody><tr><td>NRF24L01</td><td>Arduino&nbsp;Uno/Nano</td></tr><tr><td>VCC</td><td>5V (taşıyıcı kart)</td></tr><tr><td>GND</td><td>GND</td></tr><tr><td>CS</td><td>10</td></tr><tr><td>CE</td><td>9</td></tr><tr><td>MOSI</td><td>11</td></tr><tr><td>MISO</td><td>12</td></tr><tr><td>SCK</td><td>13</td></tr></tbody></table></figure>


<h2><span style="color: #ff6600"><strong>Arduino ile NRF24L01 Kullanımı</strong><strong> &#8211; Verici Kodları</strong></span></h2>


<figure class="wp-block-embed is-type-rich is-provider-gomme-tutucu wp-block-embed-gomme-tutucu"><div class="wp-block-embed__wrapper">
View the code on <a href="https://gist.github.com/furkanbakkal/b023be09dd2b35f4dc6f05c32aebcfe3" rel="nofollow noopener" target="_blank">Gist</a>.
</div></figure>


<h2><span style="color: #ff6600"><strong>Arduino ile NRF24L01 Kullanımı</strong><strong> &#8211; Alıcı Kodları</strong></span></h2>


<figure class="wp-block-embed is-type-rich is-provider-gomme-tutucu wp-block-embed-gomme-tutucu"><div class="wp-block-embed__wrapper">
View the code on <a href="https://gist.github.com/furkanbakkal/4abfb5912ab0b3e9badd0d67f9d1ff26" rel="nofollow noopener" target="_blank">Gist</a>.
</div></figure>


<p>Kodları derleyebilmek için gerekli olan <strong><a href="https://github.com/nRF24/RF24" target="_blank" rel="noopener nofollow">RF24 kütüphanesini</a></strong>&nbsp;Arduino IDE&#8217; ye eklemeyi unutmayın.</p>
<h2><span style="color: #ff6600"><b>Sonuç</b></span></h2>
<p>Eğer devreyi doğru kurduysanız, kodları Arduino&#8217;lara yüklediğinizde<strong> Alıcı Arduino</strong>&#8216;nun seri ekranında 1 saniye aralıklarla <strong>&#8220;Robolink Akademi</strong>&#8221; yazdığını fark etmelisiniz.</p>
<p>Bir projemizin sonuna geldik. Bu proje hakkında herhangi bir sorunuz olursa bu gönderiye aşağıdan<strong>&nbsp;yorum</strong> olarak yazabilir veya profilimdeki <strong>mail</strong>&nbsp;adresimden bana ulaşabilirsiniz.</p>
<p>İyi çalışmalar dilerim.</p>


<p></p>
<p>The post <a rel="nofollow" href="https://akademi.robolinkmarket.com/arduino-ile-nrf24l01-kullanimi/">Arduino ile NRF24L01 Kullanımı</a> appeared first on <a rel="nofollow" href="https://akademi.robolinkmarket.com">Robolink Akademi</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://akademi.robolinkmarket.com/arduino-ile-nrf24l01-kullanimi/feed/</wfw:commentRss>
			<slash:comments>6</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">17433</post-id>	</item>
		<item>
		<title>Arduino Uno ile Termometre Yapımı</title>
		<link>https://akademi.robolinkmarket.com/arduino-uno-ile-termometre-yapimi/</link>
					<comments>https://akademi.robolinkmarket.com/arduino-uno-ile-termometre-yapimi/#comments</comments>
		
		<dc:creator><![CDATA[Berkcan Gümüşışık]]></dc:creator>
		<pubDate>Fri, 01 Apr 2022 06:32:02 +0000</pubDate>
				<category><![CDATA[Arduino Projeleri]]></category>
		<category><![CDATA[Genel]]></category>
		<guid isPermaLink="false">https://akademi.robolinkmarket.com/?p=17690</guid>

					<description><![CDATA[<p>Bu uygulamamızda sizlerle birlikte Arduino ile kendimize bir termometre yaparak sıcaklık ölçmeyi ve sıcaklığa göre Led yanmasını sağlayan uygulama deneyimim sizlerle paylaşmaya çalışacağım. Kullanılacak Malzemeler Arduino Uno Breadbord 10 kΩ Potansiyometre 4 tane 220 Ω direnç RGB Led 16*2 LCD Ekran TMP36 Sıcaklık Sensörü Devre Şeması Devrenin Adım Adım Bağlantılarının Yapılması LCD ekranımızı Breadboard üzerine [&#8230;]</p>
<p>The post <a rel="nofollow" href="https://akademi.robolinkmarket.com/arduino-uno-ile-termometre-yapimi/">Arduino Uno ile Termometre Yapımı</a> appeared first on <a rel="nofollow" href="https://akademi.robolinkmarket.com">Robolink Akademi</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Bu uygulamamızda sizlerle birlikte Arduino ile kendimize bir termometre yaparak sıcaklık ölçmeyi ve sıcaklığa göre Led yanmasını sağlayan uygulama deneyimim sizlerle paylaşmaya çalışacağım.</p>



<p><strong>Kullanılacak Malzemeler</strong></p>



<ul class="wp-block-list"><li><a href="https://www.robolinkmarket.com/arduino-uno-r3-smd-klon" target="_blank" rel="noreferrer noopener">Arduino Uno</a></li><li>Breadbord</li><li>10 kΩ Potansiyometre</li><li>4 tane 220 Ω direnç</li><li>RGB Led</li><li>16*2 LCD Ekran</li><li>TMP36 Sıcaklık Sensörü</li></ul>



<p><strong>Devre Şeması</strong></p>



<figure class="wp-block-image size-full is-style-default"><img data-recalc-dims="1" loading="lazy" decoding="async" width="696" height="364" src="https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/03/image-1.png?resize=696%2C364&#038;ssl=1" alt="image 1" class="wp-image-17691" title="Arduino Uno ile Termometre Yapımı 33" srcset="https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/03/image-1.png?w=908&amp;ssl=1 908w, https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/03/image-1.png?resize=300%2C157&amp;ssl=1 300w, https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/03/image-1.png?resize=768%2C402&amp;ssl=1 768w, https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/03/image-1.png?resize=150%2C78&amp;ssl=1 150w, https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/03/image-1.png?resize=696%2C364&amp;ssl=1 696w, https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/03/image-1.png?resize=803%2C420&amp;ssl=1 803w" sizes="auto, (max-width: 696px) 100vw, 696px" /></figure>



<p><strong>Devrenin Adım Adım Bağlantılarının Yapılması</strong></p>



<ol class="wp-block-list" type="1"><li>LCD ekranımızı Breadboard üzerine alıyoruz. LCD ekranın GND ucunu jumper kabloyla – kutba, VCC kısmını jumper kabloyla + kutbuna bağlıyoruz. + kutbu jumper kabloyla 5V pinine, &#8211; kutbu jumper kabloyla GND pinine bağlıyoruz.</li><li>LCD ekranın RS bağlantı noktasını jumper kabloyla 12. pine , E bağlantı noktasını ise jumper kabloyla&nbsp; 11. pine bağlıyoruz.</li><li>220 Ohm direnci ise bir ayağı – kutba gelecek şekilde LED ucu ile bağlantı kuracak şekilde yerleştiriyoruz</li><li>Potansiyometremizin Terminal 1 bacağını – kutba, Terminal 2 bacağını + kutba bağlıyoruz. Ortadaki bacağını ise VD yani kontrasta bağlıyoruz.</li><li>LCD ekranımızın RW bacağını ve 2.led bacağımızı jumper kablo yardımıyla – kutba bağlıyoruz.</li><li>LCD ekranın DB4 bacağından başlayacak DB7 bacağına kadar sırasıyla 5,4,3 ve 2 numaralı pinlere jumper kablo yardımıyla bağlanır.</li><li>TMP sensörümüzün güç bacağını jumper kabloyla&nbsp; + kutba, orta bacağını jumper kabloyla A0 pinine , GND bacağını ise jumper kabloyla&nbsp; – kutba bağlıyoruz.</li><li>RGB ledimizi breadbord üzerine bağlıyoruz. 2. ayağı boşta kalacak şekilde dirençlerimizi bağlıyoruz.</li><li>Dirençlerimizi jumper kablo yardımıyla sırasıyla 7, 8 ve 9 pinlere bağlıyoruz. RGB ledimizin boşta kalan ayağını ise – kutba bağlıyoruz.</li></ol>



<p><strong>Kaynak Kodlar</strong></p>



<pre class="wp-block-code"><code>#include &lt;LiquidCrystal.h&gt;
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
int R=7;
int G=9;
int B=8;
void setup() 
{
  lcd.begin(16, 2);
  pinMode(R,OUTPUT);
  pinMode(G,OUTPUT);
  pinMode(B,OUTPUT);
  lcd.print("Sicaklik Olcumu:");
}
void loop()
{
  int read = analogRead(A0);
  float voltage = read * 5.0;
  voltage /= 1024.0;
  float c = (voltage - 0.5) * 100 ;                                            
  lcd.setCursor(0, 1);
  lcd.print(c);
  lcd.setCursor(6,1);
  lcd.print("C-");
  float f = (c * 9.0 / 5.0) + 32.0;  
  lcd.print(f);
  lcd.print(" F");
  delay(100);
  if(c &lt;= 0 or c &gt;= 100 )
  {
    analogWrite(R,255);
    analogWrite(G,0);
    analogWrite(B,0);
    delay(500);
  }
  else if( c &lt; 50)
  {
    analogWrite(R,0);
    analogWrite(G,255);
    analogWrite(B,0);
    delay(500);
  }
  else
  {
    analogWrite(R,0);
    analogWrite(G,0);
    analogWrite(B,255);
    delay(500);
  }
}
</code></pre>



<p>Arduino ile termometre yapımızı yazımız umarım sizler için faydalı olmuştur. Sizler de isterseniz mavi, yeşil, sarı ve kırmızı ledleri kullanarak renklerin ayrı ayrı yanmasını sağlayabilirsiniz.</p>
<p>The post <a rel="nofollow" href="https://akademi.robolinkmarket.com/arduino-uno-ile-termometre-yapimi/">Arduino Uno ile Termometre Yapımı</a> appeared first on <a rel="nofollow" href="https://akademi.robolinkmarket.com">Robolink Akademi</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://akademi.robolinkmarket.com/arduino-uno-ile-termometre-yapimi/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">17690</post-id>	</item>
		<item>
		<title>Arduino ile Güneş Takip Sistemi</title>
		<link>https://akademi.robolinkmarket.com/arduino-ile-gunes-takip-sistemi/</link>
					<comments>https://akademi.robolinkmarket.com/arduino-ile-gunes-takip-sistemi/#comments</comments>
		
		<dc:creator><![CDATA[Burcu Kartal]]></dc:creator>
		<pubDate>Fri, 01 Apr 2022 06:24:34 +0000</pubDate>
				<category><![CDATA[Genel]]></category>
		<category><![CDATA[Arduino Projeleri]]></category>
		<guid isPermaLink="false">https://akademi.robolinkmarket.com/?p=17531</guid>

					<description><![CDATA[<p>Merhaba arkadaşlar. Bu yazımızda sizlerle arduino ile güneş takip sistemi yapacağız. Bu proje son yıllarda çokça duyduğumuz güneş enerjili sistemlerin en verimli kullanmasını sağlayan bir sistemdir. Fakat biz tabi ki de ufak boyutlarda çalışıyor olacağız. 🙂 Şimdi artık projenin detaylarına geçelim. Kullanacağımız malzemeler; Sistemi anlatmaya geçmeden önce kısaca LDR elemanının ne işe yaradığını anlatmak isterim. [&#8230;]</p>
<p>The post <a rel="nofollow" href="https://akademi.robolinkmarket.com/arduino-ile-gunes-takip-sistemi/">Arduino ile Güneş Takip Sistemi</a> appeared first on <a rel="nofollow" href="https://akademi.robolinkmarket.com">Robolink Akademi</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Merhaba arkadaşlar. Bu yazımızda sizlerle arduino ile güneş takip sistemi yapacağız. Bu proje son yıllarda çokça duyduğumuz güneş enerjili sistemlerin en verimli kullanmasını sağlayan bir sistemdir. Fakat biz tabi ki de ufak boyutlarda çalışıyor olacağız. <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Şimdi artık projenin detaylarına geçelim.</p>



<p><span style="color: #ff9900;">Kullanacağımız malzemeler;</span></p>



<ul class="wp-block-list">
<li><span style="color: #ff6600;"><a href="https://www.robolinkmarket.com/arduino-uno-r3-klon" target="_blank" rel="noreferrer noopener">Arduino UNO</a></span></li>



<li><span style="color: #ff6600;">2x <a style="color: #ff6600;" href="https://www.robolinkmarket.com/ldr-5mm" target="_blank" rel="noopener">LDR</a></span></li>



<li><a href="https://www.robolinkmarket.com/tower-pro-micro-servo-9g-sg90" target="_blank" rel="noreferrer noopener"><span style="color: #ff6600;">Servo motor</span></a></li>



<li><a href="https://www.robolinkmarket.com/jumper-kablo" target="_blank" rel="noopener"><span style="color: #ff6600;">Jumper kablo çeşitleri</span></a></li>



<li><a href="https://www.robolinkmarket.com/standart-breadboard-165x5" target="_blank" rel="noreferrer noopener"><span style="color: #ff6600;">breadbord</span></a></li>



<li><span style="color: #ff6600;">2x 4.7k direnç</span></li>
</ul>



<p>Sistemi anlatmaya geçmeden önce kısaca LDR elemanının ne işe yaradığını anlatmak isterim. LDR, fotodirenç adıyla da bilinmektedir. Bunun sebebi ise üzerine düşen ışık şiddetine göre direnç değeri değişmesidir. LDR hakkında daha detaylı bilgi isterseniz <span style="color: #ff6600;"><a style="color: #ff6600;" href="https://akademi.robolinkmarket.com/ldr-nedir/" target="_blank" rel="noopener">tıklayarak</a></span> edinebilirsiniz.</p>



<p>Güneş takip sisteminin amacı ise batı ve doğu taraflarından ışık şiddeti ölçümü yapmak ve güneş panelini doğrudan ışık kaynağına yönlendirerek maksimum verimi almaktır. Bunu&nbsp; servo motor ve LDR ler ile yapacağız. Sensörlerin ışık şiddetiyle direnç değerleri değişecek ve arduino&#8217;nun PWM pinlerine bağlanarak anladığı voltaj sinyaline dönüştürmüş olacaktır. Alınan sinyalle servo motor hareket ederek panelin dönmesi sağlanacaktır.</p>



<p>Güneş takip sistemi, verimliliği ve maliyet analizleri ile ilgili daha detaylı bilgi için <span style="color: #ff9900;"><a href="https://prezi.com/p/l1qbc9kr3zai/gunes-takip-sistemi/" target="_blank" rel="noreferrer noopener nofollow">tıklayınız</a></span>.</p>



<p>Biz şimdi sistemimizi kurmaya geçelim. Sistemde sensör görevi görecek olan LDR&#8217;ler ışığın şiddetine göre yapacağımız standın servo motor yardımıyla güneşi takip etmesini sağlayacak. Böylece gün boyu güneşten tam verimi almış olacağız.&nbsp;</p>



<p><img decoding="async" class="emoji td-animation-stack-type0-2" role="img" src="https://s.w.org/images/core/emoji/13.1.0/svg/1f680.svg" alt="&#x1f680;" title="Arduino ile Güneş Takip Sistemi 42">Devre şeması;</p>



<figure class="wp-block-image"><img data-recalc-dims="1" loading="lazy" decoding="async" width="283" height="300" src="https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/02/devre-semasi.png?resize=283%2C300&#038;ssl=1" alt="devre semasi" class="wp-image-17535" title="Arduino ile Güneş Takip Sistemi 43" srcset="https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/02/devre-semasi.png?resize=283%2C300&amp;ssl=1 283w, https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/02/devre-semasi.png?resize=768%2C814&amp;ssl=1 768w, https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/02/devre-semasi.png?resize=150%2C159&amp;ssl=1 150w, https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/02/devre-semasi.png?resize=300%2C318&amp;ssl=1 300w, https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/02/devre-semasi.png?resize=696%2C738&amp;ssl=1 696w, https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/02/devre-semasi.png?resize=396%2C420&amp;ssl=1 396w, https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/02/devre-semasi.png?w=802&amp;ssl=1 802w" sizes="auto, (max-width: 283px) 100vw, 283px" /></figure>



<p><img decoding="async" class="emoji td-animation-stack-type0-2" role="img" src="https://s.w.org/images/core/emoji/13.1.0/svg/1f680.svg" alt="&#x1f680;" title="Arduino ile Güneş Takip Sistemi 42">Breadbord üzerindeki şemada şu şekildedir;</p>



<figure class="wp-block-image"><img data-recalc-dims="1" loading="lazy" decoding="async" width="300" height="179" src="https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/02/breadbord-sema.png?resize=300%2C179&#038;ssl=1" alt="breadbord sema" class="wp-image-17536" title="Arduino ile Güneş Takip Sistemi 45" srcset="https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/02/breadbord-sema.png?resize=300%2C179&amp;ssl=1 300w, https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/02/breadbord-sema.png?resize=1024%2C611&amp;ssl=1 1024w, https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/02/breadbord-sema.png?resize=768%2C459&amp;ssl=1 768w, https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/02/breadbord-sema.png?resize=150%2C90&amp;ssl=1 150w, https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/02/breadbord-sema.png?resize=696%2C416&amp;ssl=1 696w, https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/02/breadbord-sema.png?resize=1068%2C638&amp;ssl=1 1068w, https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/02/breadbord-sema.png?resize=703%2C420&amp;ssl=1 703w, https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/02/breadbord-sema.png?w=1288&amp;ssl=1 1288w" sizes="auto, (max-width: 300px) 100vw, 300px" /></figure>



<p><img decoding="async" class="emoji td-animation-stack-type0-2" role="img" src="https://s.w.org/images/core/emoji/13.1.0/svg/1f680.svg" alt="&#x1f680;" title="Arduino ile Güneş Takip Sistemi 42"> Arduino ile Güneş Takip Sistemi Kodları ise şu şekildedir;</p>



<pre class="wp-block-code"><code> #include &lt;Servo.h&gt; 
 
Servo tracker;  // servo motor tanıtıldı 
int eastLDRPin = 0;  //analog pinler atandı.
int westLDRPin = 1;
int eastLDR = 0;   //doğu ve batı sensörleri için değişkenler oluşturuldu.
int westLDR = 0;
int error = 0;
int calibration = 217;  //her iki sensör için aynı miktarda ışık aldığındaki hatanın sıfır olması için ayarlanan kalibrasyon değeri
int trackerPos = 90;    //servo motorun ilk konumu belirlendi.

void setup() 
{ 
  tracker.attach(11);  // servo motor 11. pine bağlandı.
} 
void loop() 
{ 
  eastLDR = calibration + analogRead(eastLDRPin);   
  westLDR = analogRead(westLDRPin);
  if(eastLDR&lt;350 &amp;&amp; westLDR&lt;350)  
  {
    while(trackerPos&lt;=160)  
    {
      trackerPos++;
      tracker.write(trackerPos);
      delay(100);
    }
  }
  error = eastLDR - westLDR;         //iki sensör arasındaki farkı belirleyin.
  if(error&gt;15)        //hata 15den büyükse doğu yönünde hareket eder. 
  {
    if(trackerPos&lt;=160)  
    {
      trackerPos++;
      tracker.write(trackerPos);  //sistemi doğuya taşır.
    }
  }
  else if(error&lt;-15)  //hata -15 den küçükse batı yönünde hareket eder. 
  {
    if(trackerPos&gt;20)  
    {
      trackerPos--;
      tracker.write(trackerPos);  //sistemi batıya taşır.
    }
  }
  delay(100);
}
</code></pre>


<p>Kodda belirtilmiş olan kalibrasyon değeri, devrede kullanılan dirençler ve kullanılan tellerin dirençleri arasındaki farktan dolayı, aynı miktarda ışık alsalar bile her iki sensörden alınan sinyaller farklı olmaktadır. Kalibrasyon değerini siz kendi kurulumunuza göre değiştirmelisiniz.</p>
<p>Kalibrasyon değerini kontrol etmek için iki sensörün arasına yani güneş panelinin bulunduğu üst plakanın ortasına ışık şiddetini doğrultun ve seri monitör üzerinden doğu ve batı sensör değerlerini okuyun. Bu iki değer arasındaki fark sizin kalibrasyon değeriniz olacaktır.&nbsp;</p>
<p><img data-recalc-dims="1" loading="lazy" decoding="async" class="alignnone size-medium wp-image-17673" src="https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/03/sistem1.jpeg?resize=225%2C300&#038;ssl=1" alt="sistem1" width="225" height="300" title="Arduino ile Güneş Takip Sistemi 47" srcset="https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/03/sistem1.jpeg?resize=225%2C300&amp;ssl=1 225w, https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/03/sistem1.jpeg?resize=768%2C1024&amp;ssl=1 768w, https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/03/sistem1.jpeg?resize=1152%2C1536&amp;ssl=1 1152w, https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/03/sistem1.jpeg?resize=150%2C200&amp;ssl=1 150w, https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/03/sistem1.jpeg?resize=300%2C400&amp;ssl=1 300w, https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/03/sistem1.jpeg?resize=696%2C928&amp;ssl=1 696w, https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/03/sistem1.jpeg?resize=1068%2C1424&amp;ssl=1 1068w, https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/03/sistem1.jpeg?resize=315%2C420&amp;ssl=1 315w, https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/03/sistem1.jpeg?w=1536&amp;ssl=1 1536w, https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/03/sistem1.jpeg?w=1392&amp;ssl=1 1392w" sizes="auto, (max-width: 225px) 100vw, 225px" />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <img data-recalc-dims="1" loading="lazy" decoding="async" class="alignnone size-medium wp-image-17674" src="https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/03/sistem2.jpeg?resize=225%2C300&#038;ssl=1" alt="sistem2" width="225" height="300" title="Arduino ile Güneş Takip Sistemi 48" srcset="https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/03/sistem2.jpeg?resize=225%2C300&amp;ssl=1 225w, https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/03/sistem2.jpeg?resize=768%2C1024&amp;ssl=1 768w, https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/03/sistem2.jpeg?resize=1152%2C1536&amp;ssl=1 1152w, https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/03/sistem2.jpeg?resize=150%2C200&amp;ssl=1 150w, https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/03/sistem2.jpeg?resize=300%2C400&amp;ssl=1 300w, https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/03/sistem2.jpeg?resize=696%2C928&amp;ssl=1 696w, https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/03/sistem2.jpeg?resize=1068%2C1424&amp;ssl=1 1068w, https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/03/sistem2.jpeg?resize=315%2C420&amp;ssl=1 315w, https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/03/sistem2.jpeg?w=1536&amp;ssl=1 1536w, https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/03/sistem2.jpeg?w=1392&amp;ssl=1 1392w" sizes="auto, (max-width: 225px) 100vw, 225px" />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<img data-recalc-dims="1" loading="lazy" decoding="async" class="alignnone size-medium wp-image-17675" src="https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/03/sistem3.jpeg?resize=225%2C300&#038;ssl=1" alt="sistem3" width="225" height="300" title="Arduino ile Güneş Takip Sistemi 49" srcset="https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/03/sistem3.jpeg?resize=225%2C300&amp;ssl=1 225w, https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/03/sistem3.jpeg?resize=768%2C1024&amp;ssl=1 768w, https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/03/sistem3.jpeg?resize=1152%2C1536&amp;ssl=1 1152w, https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/03/sistem3.jpeg?resize=150%2C200&amp;ssl=1 150w, https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/03/sistem3.jpeg?resize=300%2C400&amp;ssl=1 300w, https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/03/sistem3.jpeg?resize=696%2C928&amp;ssl=1 696w, https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/03/sistem3.jpeg?resize=1068%2C1424&amp;ssl=1 1068w, https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/03/sistem3.jpeg?resize=315%2C420&amp;ssl=1 315w, https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/03/sistem3.jpeg?w=1536&amp;ssl=1 1536w, https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/03/sistem3.jpeg?w=1392&amp;ssl=1 1392w" sizes="auto, (max-width: 225px) 100vw, 225px" /></p>
<p>Sistem yukarıda görüldüğü gibidir.</p>
<p><img decoding="async" class="emoji td-animation-stack-type0-2" role="img" src="https://s.w.org/images/core/emoji/13.1.0/svg/1f680.svg" alt="&#x1f680;" title="Arduino ile Güneş Takip Sistemi 42">Projeyle ilgili bir sıkıntı yaşarsanız yorumlara yazabilirsiniz. <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>
<p><img decoding="async" class="emoji td-animation-stack-type0-2" role="img" src="https://s.w.org/images/core/emoji/13.1.0/svg/1f680.svg" alt="&#x1f680;" title="Arduino ile Güneş Takip Sistemi 42">Yazılarımızın devamı için <span style="color: #ff6600"><a style="color: #ff6600" href="https://akademi.robolinkmarket.com/" target="_blank" rel="noopener">Robolink Akademi</a></span> sayfasını takipte kalın. Malzemeler içinde <span style="color: #ff6600"><a style="color: #ff6600" href="https://www.robolinkmarket.com/" target="_blank" rel="noopener">Robolink Marketi</a></span> ziyaret edebilirsiniz.</p>
<p>Hepinize iyi çalışmalar. <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p><p>The post <a rel="nofollow" href="https://akademi.robolinkmarket.com/arduino-ile-gunes-takip-sistemi/">Arduino ile Güneş Takip Sistemi</a> appeared first on <a rel="nofollow" href="https://akademi.robolinkmarket.com">Robolink Akademi</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://akademi.robolinkmarket.com/arduino-ile-gunes-takip-sistemi/feed/</wfw:commentRss>
			<slash:comments>6</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">17531</post-id>	</item>
		<item>
		<title>Arduino İle Akıllı Ev Sistemi</title>
		<link>https://akademi.robolinkmarket.com/arduino-ile-akilli-ev-sistemi/</link>
					<comments>https://akademi.robolinkmarket.com/arduino-ile-akilli-ev-sistemi/#comments</comments>
		
		<dc:creator><![CDATA[Bünyamin Öksüz]]></dc:creator>
		<pubDate>Thu, 31 Mar 2022 08:45:04 +0000</pubDate>
				<category><![CDATA[Genel]]></category>
		<category><![CDATA[Arduino Projeleri]]></category>
		<guid isPermaLink="false">https://akademi.robolinkmarket.com/?p=17654</guid>

					<description><![CDATA[<p>Arkadaşlar merhaba, bu yazımızda arduino ile akıllı ev sistemi nasıl yapılır bunlardan bahseceğiniz Bu proje sayesinde evinizi akıllı hale getirebileceksiniz. Arduino ile Akıllı Ev Sistemi Projesinin Özellikleri: Yangın Olup Olmadığını LCD’ye Yazdırır. Gaz Kaçağı Olup Olmadığını LCD’ye Yazdırır. Dışarıda Yağmur Yağıp Yağmadığını LCD’ye Yazdırır. Hava Sıcaklığını LCD’ye Yazdırır. Saksılarınızdaki Bitkilerin Nem Oranını LCD’ye Yazdırır Ve [&#8230;]</p>
<p>The post <a rel="nofollow" href="https://akademi.robolinkmarket.com/arduino-ile-akilli-ev-sistemi/">Arduino İle Akıllı Ev Sistemi</a> appeared first on <a rel="nofollow" href="https://akademi.robolinkmarket.com">Robolink Akademi</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Arkadaşlar merhaba, bu yazımızda arduino ile akıllı ev sistemi nasıl yapılır bunlardan bahseceğiniz Bu proje sayesinde evinizi akıllı hale getirebileceksiniz.</p>
<h2><span style="color: #ff6600;">Arduino ile Akıllı Ev Sistemi Projesinin Özellikleri:</span></h2>
<ul>
<li>Yangın Olup Olmadığını LCD’ye Yazdırır.</li>
<li>Gaz Kaçağı Olup Olmadığını LCD’ye Yazdırır.</li>
<li>Dışarıda Yağmur Yağıp Yağmadığını LCD’ye Yazdırır.</li>
<li>Hava Sıcaklığını LCD’ye Yazdırır.</li>
<li>Saksılarınızdaki Bitkilerin Nem Oranını LCD’ye Yazdırır Ve Eğer Nemsiz Ve Kuruysa Otomatik Sular.</li>
</ul>
<h2><span style="color: #ff6600;">Malzemeler:</span></h2>
<ul>
<li><a href="https://www.robolinkmarket.com/arduino-uno-r3-smd-klon" target="_blank" rel="noopener">Arduino Uno</a></li>
<li><a href="https://www.robolinkmarket.com/lpg-izobutan-propan-gaz-sensor-karti-mq6" target="_blank" rel="noopener">MQ-6 Sensör</a></li>
<li><a href="https://www.robolinkmarket.com/alev-sensor-modulu">Alev Sensörü</a></li>
<li><a href="https://www.robolinkmarket.com/toprak-nem-sensoru" target="_blank" rel="noopener">Toprak Ve Nem Sensörü</a></li>
<li><a href="https://www.robolinkmarket.com/yagmur-sensoru" target="_blank" rel="noopener">Yağmur Sensörü</a></li>
<li><a href="https://www.robolinkmarket.com/2x16-lcd-ekran-mavi-i2c-arayuzu-modulu" target="_blank" rel="noopener">2×16 LCD Ekran</a></li>
<li><a href="https://www.robolinkmarket.com/dht11-sicaklik-ve-nem-sensoru-karti" target="_blank" rel="noopener">DHT11 Sensör</a></li>
<li>8 Tane LED (İstediğiniz Renkte)</li>
<li>LED’ler için 330Ohm Direnç</li>
</ul>
<h2><span style="color: #ff6600;">Pin Bağlantıları</span></h2>
<ul>
<li>Yağmur Sensörü: A0</li>
<li>Yağmur Ledi: D5</li>
</ul>
<ul>
<li>Toprak Ve Nem Sensörü Pini: A1</li>
<li>Toprak Kırmızı Led: D3</li>
<li>Toprak Yeşil Led: D4</li>
<li>Toprak Sarı Led: D1</li>
<li>Toprak Su Motoru: D6</li>
<li>MQ-6 Gaz Sensörü: A2</li>
<li>Gaz Sensörü Buzzer: D7</li>
<li>Gaz Sensörü Yeşil Led: D9</li>
<li>Gaz Sensörü Kırmızı Led: D10</li>
<li>LCD Ekran I2C Pinleri:</li>
<li>SCL = A5</li>
<li>SDA = A4</li>
</ul>
<ul>
<li>Alev Sensörü: D11</li>
</ul>
<ul>
<li>Alev Sensörü Yesil Led: D12</li>
</ul>
<ul>
<li>Alev Sensörü Kırmızı Led: D13</li>
</ul>
<ul>
<li>Alev Sensörü Buzzer: D8</li>
</ul>
<ul>
<li>DHT11 Sensörü: D2</li>
</ul>
<ul>
<li>Boş Pinler;</li>
</ul>
<ul>
<li>Analog 3 pin ve Dijital 0 Pinleri Boştur</li>
</ul>
<ul>
<li>Arkadaşlar Alev Sensörünün D0(Dijital 0)pinini Arduinoda Dijital 11 Pine Bağlıyoru</li>
<li>Gaz Sensörünün A0(Analog 0)pinini Arduinoda A2 Pinine Bağlıyoruz</li>
<li>Toprak Ve Nem Sensörünün A0(Analog 0)pinini Arduinoda A1 Pinine Bağlıyoruz</li>
<li>Yağmur Sensörünün A0(Analog 0)pinini Arduinoda A0 Bağlıyoruz</li>
<li>DHT11 Sensörünün Sinyal Pinini Arduinoda D2 Pinine Bağlıyoruz</li>
<li>LCD Ekranın SCL Pinini Arduinoda A5 Pinine Bağlıyoruz</li>
<li>LCD Ekranın SDA Pinini Arduinoda A4 Pinine Bağlıyoruz</li>
<li>Bütün GND’ler Ve VCC’ler Ortaktır</li>
<li>VCC’ler +5V Bağlanılacak</li>
<li>GND’ler GND Pinine Bağlanacak</li>
</ul>
<h2><span style="color: #ff6600;">Devre Şeması ve Kodlar:</span></h2>
<p>Arkadaşlar Devre Şemasını Proteus Ve Fritzing Olarak Paylaşıyorum Proteusta Paylaştığım Devre ile Baskı Devre Çıktısı Alıp Kalıcı Bir Şekilde Kullanabilirsiniz</p>
<p>Proteus Baskı Şeması;</p>


<figure class="wp-block-image size-large"><img data-recalc-dims="1" loading="lazy" decoding="async" width="696" height="488" src="https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/03/Arduino_gommesiz.png?resize=696%2C488&#038;ssl=1" alt="Arduino gommesiz" class="wp-image-17662" title="Arduino İle Akıllı Ev Sistemi 52" srcset="https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/03/Arduino_gommesiz.png?resize=1024%2C718&amp;ssl=1 1024w, https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/03/Arduino_gommesiz.png?resize=300%2C210&amp;ssl=1 300w, https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/03/Arduino_gommesiz.png?resize=768%2C538&amp;ssl=1 768w, https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/03/Arduino_gommesiz.png?resize=150%2C105&amp;ssl=1 150w, https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/03/Arduino_gommesiz.png?resize=696%2C488&amp;ssl=1 696w, https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/03/Arduino_gommesiz.png?resize=1068%2C748&amp;ssl=1 1068w, https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/03/Arduino_gommesiz.png?resize=599%2C420&amp;ssl=1 599w, https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/03/Arduino_gommesiz.png?resize=100%2C70&amp;ssl=1 100w, https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/03/Arduino_gommesiz.png?w=1146&amp;ssl=1 1146w" sizes="auto, (max-width: 696px) 100vw, 696px" /></figure>



<p>Fritzing Şeması;</p>



<figure class="wp-block-image size-large"><img data-recalc-dims="1" loading="lazy" decoding="async" width="696" height="551" src="https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/06/arduino_akilli_ev_fritzing_dosyasi_bb.jpg?resize=696%2C551&#038;ssl=1" alt="arduino akilli ev fritzing dosyasi bb" class="wp-image-17803" title="Arduino İle Akıllı Ev Sistemi 53" srcset="https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/06/arduino_akilli_ev_fritzing_dosyasi_bb-scaled.jpg?resize=1024%2C811&amp;ssl=1 1024w, https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/06/arduino_akilli_ev_fritzing_dosyasi_bb-scaled.jpg?resize=300%2C238&amp;ssl=1 300w, https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/06/arduino_akilli_ev_fritzing_dosyasi_bb-scaled.jpg?resize=768%2C608&amp;ssl=1 768w, https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/06/arduino_akilli_ev_fritzing_dosyasi_bb-scaled.jpg?resize=1536%2C1216&amp;ssl=1 1536w, https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/06/arduino_akilli_ev_fritzing_dosyasi_bb-scaled.jpg?resize=2048%2C1622&amp;ssl=1 2048w, https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/06/arduino_akilli_ev_fritzing_dosyasi_bb-scaled.jpg?resize=150%2C119&amp;ssl=1 150w, https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/06/arduino_akilli_ev_fritzing_dosyasi_bb-scaled.jpg?resize=696%2C551&amp;ssl=1 696w, https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/06/arduino_akilli_ev_fritzing_dosyasi_bb-scaled.jpg?resize=1068%2C846&amp;ssl=1 1068w, https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/06/arduino_akilli_ev_fritzing_dosyasi_bb-scaled.jpg?resize=1920%2C1520&amp;ssl=1 1920w, https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/06/arduino_akilli_ev_fritzing_dosyasi_bb-scaled.jpg?resize=530%2C420&amp;ssl=1 530w, https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/06/arduino_akilli_ev_fritzing_dosyasi_bb-scaled.jpg?w=1392&amp;ssl=1 1392w" sizes="auto, (max-width: 696px) 100vw, 696px" /></figure>



<p></p>



<pre class="wp-block-code"><code>/*
 * Bu Projeyi Geliştirebilirsiniz
 * Yapımcı Bunyamin Oksuz
 * Kodu Çalıp Kendiniz Yapmışsınız Gibi Paylaşmayınız
 * Github Sayfasında Hangi Pinin Hangi Sensöre Veya Lede Bağlı Olduğu Yazıyor.
 * Kullanan arkadaşlara Teşekkürler.
*/
#include &lt;LiquidCrystal_I2C.h&gt;
LiquidCrystal_I2C lcd(0x27,16,2);

#include "DHT.h" // DHT 11 kütüphanesi
#define DHTPIN 2 //DHT Pini
#define DHTTYPE DHT11   // DHT 11 Tanımı

DHT dht(DHTPIN, DHTTYPE);
// Pinleri Tanımlıyoruz
int yagmurPin = A0;
int yagmurledPin = 5;
int nemdeger = 0;

// şuanda boşta olan pin sayısı Dijital: D0 Analog: A3

//Toprak Ve Nem
int Tkirmiziled = 11;
int Tyesilled = 7;
int Tsariled = 1;

// Alev Ve Gaz Sensorlerinin Pinler
int Gkirmiziled1 = 10;
int Gyesilled1 = 9;
int Gbuzzer1 = 4; 
int gazpin = A2;

int Akirmiziled2 = 13;
int Ayesilled2 = 12;
int Abuzzer2 = 8;
int alevpin = 3;

//toprak ve nem sensor
int topsensor = A1;
const int sumotor = 6;

// sensör esik değerleri
int gazsensoresigi = 400;
int yagmurdegeri;
int yagmurEsikdegeri = 800; 



void setup() {
  lcd.begin();
  
  // yagmur 
  pinMode(yagmurPin, INPUT); // Pin Çıkışları Ve Girişleri
  pinMode(yagmurledPin, OUTPUT);


  //Toprak Ve Nem
  pinMode(topsensor, INPUT);
  pinMode(Tkirmiziled, OUTPUT);
  pinMode(Tyesilled, OUTPUT);
  pinMode(Tsariled, OUTPUT);
  pinMode(Tkirmiziled, OUTPUT);
  
  
  // alev ve gaz 
  pinMode(Gkirmiziled1, OUTPUT);  
  pinMode(Akirmiziled2, OUTPUT);
  pinMode(Gyesilled1, OUTPUT);
  pinMode(Ayesilled2, OUTPUT);
  pinMode(Gbuzzer1, OUTPUT);
  pinMode(Abuzzer2, OUTPUT);
  pinMode(gazpin, INPUT);
  pinMode(alevpin, INPUT); 
   
  Serial.begin(9600); 
  Serial.println("Akıllı Ev Sistemi"); // Seri Port Ekranına Yazılacak Başlıklar

  lcd.clear();      
  lcd.setCursor(0,0); 
  lcd.print("Akilli Ev");
  lcd.setCursor(0,1); 
  lcd.print("Sistemi");
  delay(2000); 
   
  // dht 11 
  Serial.println(F("DHT Sensör Testi")); // Sensör Testi
  Serial.println("-------------------------");
  Serial.println("");
   
 dht.begin();
}

void loop() {

 lcd.clear();
  
   // DHT 11 Kısmı Ve Hava Durumu Kısmı
   // DHT11 İçin Ondalıklı Değişken Belirleyip Sıcaklığı Ve Nemi Okuyoruz 
   float h = dht.readHumidity();
   float t = dht.readTemperature();
   float f = dht.readTemperature(true);
  

   if (isnan(h) || isnan(t) || isnan(f)) { // Eger Dht 11 İçin belirlediğimiz değişkenlerden 1 tanesi okumuyorsa
    Serial.println(F("---------------------"));
    Serial.println(F("DHT SENSORU CALISMIYOR")); // Seri Ekrana DHT SENSORU ÇALIŞMIYOR Yazdırsın
    Serial.println(F("---------------------\n"));
    
    lcd.clear();      
    lcd.setCursor(0,0); 
    lcd.print("DHT SENSORU");
    lcd.setCursor(0,1); 
    lcd.print("CALISMIYOR!!!");
    delay(3000); 
    return;
   }
 
   float hif = dht.computeHeatIndex(f, h);

   float hic = dht.computeHeatIndex(t, h, false);
   
   // DHT 11 Seri Ekrana Yazdırılıcak Kısım
   Serial.print("---------------------");
   Serial.print("\nHava Durumu; ");
   Serial.print(F("\nNem: %"));
   Serial.print(h);
   Serial.print(F("\nSıcaklık: "));
   Serial.print(t);
   Serial.print(F("C "));
   Serial.print(f);
   Serial.print(F("F \nOrtalama Sıcaklık: ")); 
   Serial.print(hic);
   Serial.print(F("C "));
   Serial.print(hif);
   Serial.println(F("F"));
   Serial.print("---------------------\n");
   delay(1000);

   //DHT11 Verilerini LCD ekrana Yansıtıyoruz
   lcd.clear();      
   lcd.setCursor(0,0);
   lcd.print("Sicaklik:"); 
   lcd.print(t);
   lcd.print("C");
   lcd.setCursor(0,1); 
   lcd.print("Nem:%");
   lcd.print(h);
   delay(7000); 
  

   //Yağmur Sensörünün Olduğu Kısım
   yagmurdegeri = analogRead(yagmurPin);
   
   if(yagmurdegeri &gt; 980){
   Serial.print("---------------------");
   Serial.print("\n");
   Serial.println("Hava Durumu: ");
   delay(500);

   lcd.clear();
   lcd.setCursor(0,0); 
   lcd.print("Hava Durumu:");
   lcd.setCursor(0,1); 
   lcd.print("Gunesli");
   delay(3000);
   }
                                 
   if(yagmurdegeri &gt; 700 &amp;&amp; yagmurdegeri &lt;= 979){
   Serial.print("\n---------------------"); 
   Serial.print("\n");
   Serial.println("Hava Durumu: Hafif Sağanak Yağmur");
   delay(500);
   
   lcd.clear();
   lcd.setCursor(0,0); 
   lcd.print("Hava Durumu: Hafif ");
   lcd.setCursor(0,1); 
   lcd.print("Hafif Saganak");
   delay(3000); 
   }

   if(yagmurdegeri &gt; 351 &amp;&amp; yagmurdegeri &lt;= 699){
   Serial.print("\n---------------------"); 
   Serial.print("\n");
   Serial.println("Hava Durumu: Sağanak Yağmur");
   delay(500);
   
   lcd.clear();   
   lcd.setCursor(0,0); 
   lcd.print("Hava Durumu:");
   lcd.setCursor(0,1); 
   lcd.print("Saganak Yagmur");
   delay(3000); }

   if(yagmurdegeri &gt; 151 &amp;&amp; yagmurdegeri &lt;= 350){
   Serial.print("\n---------------------"); 
   Serial.print("\n");
   Serial.println("Hava Durumu: Şiddetli Sağanak");
   delay(500);
   
   lcd.clear();
   lcd.setCursor(0,0); 
   lcd.print("Hava Durumu:");
   lcd.setCursor(0,1); 
   lcd.print("Siddetli Saganak");
   delay(3000);}

   if(150 &gt; yagmurdegeri){
   Serial.print("\n---------------------"); 
   Serial.print("\n");
   Serial.println("Hava Durumu: Gök Gürültülü Fırtınalı ");
   delay(500);
   
   lcd.clear();
   lcd.setCursor(0,0); 
   lcd.print("Hava Durumu: Gok");
   lcd.setCursor(0,1); 
   lcd.print("Gurultulu Firtinali");
   delay(3000);  }
   
   if(yagmurdegeri &lt; yagmurEsikdegeri) //Yagmur Değeri yağmur Eşik Değerinden Küçükse Led'i Yakıcak 
    {
    digitalWrite(yagmurledPin, HIGH);
  }
  else // Eger Yagmur Degeri Büyükse Led Sönücek
  {
    digitalWrite(yagmurledPin, LOW);
  }
   
   delay(2000); 
    
   nemdeger = analogRead(A1); // Burası Toprak Ve Nem Sensörünün Olduğu Kısım
   
   if(nemdeger &gt; 901){ 
   Serial.print("\n---------------------");
   Serial.print("\n");
   Serial.println("Durum: Toprak Kuru");
   digitalWrite(Tkirmiziled,HIGH);
   
   lcd.setCursor(0,0); 
   lcd.print("Durum:");
   lcd.setCursor(0,1); 
   lcd.print("Toprak Kuru");
   delay(2000);
 
   // Toprak Kuru ise Su pompası Çalışacak Ve LCD Ekrana Yazdırılacak
   lcd.clear();
   lcd.setCursor(0,0);
   lcd.print("Su Motoru Acildi");
   
   digitalWrite(sumotor, HIGH);
   delay(3000);

   //Su Motorunun Kapandığını Yazdırdık Ve Su Motorunu Kapattık
   lcd.clear();
   lcd.setCursor(0,0);
   lcd.print("Su Motoru Kapandi");
   delay(500);
   
   digitalWrite(sumotor, LOW);
   delay(500);
   } 

  if(nemdeger &gt; 251 &amp;&amp; nemdeger &lt;= 900){
   Serial.print("\n---------------------");
   Serial.print("\n");
   Serial.println("Durum: Toprak Nemli");
   digitalWrite(Tyesilled, HIGH);
   delay(500);

   lcd.clear();
   lcd.setCursor(0,0); 
   lcd.print("Durum:");
   lcd.setCursor(0,1); 
   lcd.print("Toprak Nemli");
   delay(3000);}

  
   if(250 &gt; nemdeger){
   Serial.print("\n---------------------");
   Serial.print("\n");
   Serial.println("Durum: Toprak Yas");
   digitalWrite(Tsariled, HIGH);
   delay(500);

   lcd.clear();
   lcd.setCursor(0,0); 
   lcd.print("Durum:");
   lcd.setCursor(0,1); 
   lcd.print("Toprak Yas"); 
   delay(3000);}


  
  
  
  // Alev Ve Gaz Sensor
  int gazsensor = analogRead(gazpin);
  int alevsensor = digitalRead(alevpin);
  Serial.println("-------------------------");
  Serial.print("Gaz sensör degeri: ");
  Serial.println(gazsensor);
  Serial.print("alev sensör değeri: ");
  Serial.println(alevsensor);
  delay(1000);
  
  if (gazsensor &gt; gazsensoresigi  &amp;&amp; alevsensor==LOW){
    Serial.print("---------------------\n");
    Serial.print("Yangın: Yangın Var");
    Serial.print("\nGaz: Gaz Kaçağı Var");
    digitalWrite(Gkirmiziled1, HIGH);
    digitalWrite(Akirmiziled2, HIGH);
    
    digitalWrite(Gbuzzer1, HIGH);
    digitalWrite(Abuzzer2, HIGH);
    
    digitalWrite(Ayesilled2, LOW);
    digitalWrite(Gyesilled1, LOW);

    lcd.clear();  
    lcd.setCursor(0,0); 
    lcd.print("Gaz Kacagi Var!!");
    lcd.setCursor(0,1); 
    lcd.print("Yangin Var!!");
    delay(5000); 
  }
   else if (gazsensor &gt; gazsensoresigi)
  {
    Serial.print("---------------------\n");
    Serial.print("Gaz: Gaz Kacağı Var");
    digitalWrite(Gkirmiziled1, HIGH);
    digitalWrite(Akirmiziled2, LOW);
    
    digitalWrite(Gbuzzer1, HIGH);
    digitalWrite(Abuzzer2, LOW);
    
    digitalWrite(Ayesilled2, LOW);

    lcd.clear();  
    lcd.setCursor(0,0); 
    lcd.print("Durum:");
    lcd.setCursor(0,1); 
    lcd.print("Gaz Kacagi Var!!!");
    delay(5000); 
  }
  else if (alevsensor==LOW){ // yangın VAR
    Serial.print("---------------------\n");
    Serial.println("Yangın Var\n");
    digitalWrite(Akirmiziled2, HIGH);
    digitalWrite(Gkirmiziled1, LOW);
    
     digitalWrite(Gbuzzer1, LOW);
     digitalWrite(Abuzzer2, HIGH); 
        
    digitalWrite(Ayesilled2, LOW);
    digitalWrite(Gyesilled1, LOW);

    lcd.clear();  
    lcd.setCursor(0,0); 
    lcd.print("Durum:");
    lcd.setCursor(0,1); 
    lcd.print("Yangin Var!!!");
    delay(5000);  
    }
  
  else
  {
    Serial.print("---------------------\n");
    Serial.print("Gaz: Gaz Kaçağı Yok\n");
    Serial.print("Yangın Yok");;
    digitalWrite(Gkirmiziled1, LOW);
    digitalWrite(Akirmiziled2, LOW);
    
    digitalWrite(Gbuzzer1, LOW);
    digitalWrite(Abuzzer2, LOW);
    
    digitalWrite(Gyesilled1, HIGH);   
    digitalWrite(Ayesilled2, HIGH);

    lcd.clear();  
    lcd.setCursor(0,0); 
    lcd.print("Gaz Kacagi Yok");
    lcd.setCursor(0,1); 
    lcd.print("Yangin Yok");
    delay(3000); 
  }

   
}</code></pre>



<p>Arkadaşlar Proteus Ve Fritzing Dosyaları;</p>



<p><a href="https://drive.google.com/file/d/1dQP7hGZxF8Q7cr5iUDBAAH933rRZLJLh/view?usp=sharing" rel="nofollow noopener" target="_blank">https://drive.google.com/file/d/1dQP7hGZxF8Q7cr5iUDBAAH933rRZLJLh/view?usp=sharing</a></p>



<p>Projemizin sonuna geldik. Bu proje hakkında herhangi bir sorunuz olursa bu gönderiye yorum olarak yazabilir veya mail adresimden bana ulaşabilirsiniz.</p>



<p>İyi çalışmalar dilerim.</p>



<p><a href="https://github.com/Bunyaminoksuz" rel="nofollow noopener" target="_blank">https://github.com/Bunyaminoksuz</a></p>



<p><a href="https://www.youtube.com/bunyaminoksuz" rel="nofollow noopener" target="_blank">https://www.youtube.com/bunyaminoksuz</a></p>
<p>The post <a rel="nofollow" href="https://akademi.robolinkmarket.com/arduino-ile-akilli-ev-sistemi/">Arduino İle Akıllı Ev Sistemi</a> appeared first on <a rel="nofollow" href="https://akademi.robolinkmarket.com">Robolink Akademi</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://akademi.robolinkmarket.com/arduino-ile-akilli-ev-sistemi/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">17654</post-id>	</item>
		<item>
		<title>Kapadokya GSM Shield ile Toprak Nem Modülü Kullanımı</title>
		<link>https://akademi.robolinkmarket.com/kapadokya-gsm-shield-ile-toprak-nem-modulu-kullanimi/</link>
					<comments>https://akademi.robolinkmarket.com/kapadokya-gsm-shield-ile-toprak-nem-modulu-kullanimi/#respond</comments>
		
		<dc:creator><![CDATA[Kerem Akçora]]></dc:creator>
		<pubDate>Wed, 02 Mar 2022 06:00:16 +0000</pubDate>
				<category><![CDATA[Genel]]></category>
		<category><![CDATA[Arduino Projeleri]]></category>
		<guid isPermaLink="false">https://akademi.robolinkmarket.com/?p=17549</guid>

					<description><![CDATA[<p>Merhaba bugün sizlerle&#160;EMRE KONCA‘nın yapmış olduğu Kapadokya GSM Shield ile toprağın nemini ölçüp sulama işlemi yapacağız. Öncelikle Malzemelerimizi Tanıtalım KAPADOKYA GSM SHİELD Bu sheilde sim kart takılarak internet gerektirmeyen, çekmeyen yerlerde yada istediğiniz her yerde bu kartı kullanarak proje geliştirebilirsiniz. Bizim projemizde bu kartı neden kullanacağımızdan bahsedelim. ESP8266 gibi bir kart ile çalışabilirdik fakat her [&#8230;]</p>
<p>The post <a rel="nofollow" href="https://akademi.robolinkmarket.com/kapadokya-gsm-shield-ile-toprak-nem-modulu-kullanimi/">Kapadokya GSM Shield ile Toprak Nem Modülü Kullanımı</a> appeared first on <a rel="nofollow" href="https://akademi.robolinkmarket.com">Robolink Akademi</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Merhaba bugün sizlerle<a href="https://www.instagram.com/konca.emre/" target="_blank" rel="noreferrer noopener nofollow">&nbsp;EMRE KONCA</a>‘nın yapmış olduğu Kapadokya GSM Shield ile toprağın nemini ölçüp sulama işlemi yapacağız.</p>
<p>Öncelikle Malzemelerimizi Tanıtalım</p>
<ul>
<li>
<p><strong><span style="color: #ff6600;">KAPADOKYA GSM SHİELD</span></strong></p>
</li>
</ul>
<p>Bu sheilde sim kart takılarak internet gerektirmeyen, çekmeyen yerlerde yada istediğiniz her yerde bu kartı kullanarak proje geliştirebilirsiniz. Bizim projemizde bu kartı neden kullanacağımızdan bahsedelim. ESP8266 gibi bir kart ile çalışabilirdik fakat her yerde internet çekmiyor veya sürekli kopuyor bu yüzden kapadokya gsm sheild kullanacağız.</p>
<ul>
<li>
<p><strong><span style="color: #ff6600;">TOPRAK NEM SENSÖRÜ</span></strong></p>
</li>
</ul>
<p>Bu modül ise toprağın nemini ölçecek.</p>
<ul>
<li>
<p><strong><span style="color: #ff6600;">JUMPER KABLOLAR</span></strong></p>
</li>
</ul>
<p>Sensörler arası bağlantıyı sağlamak için kullanacağız.</p>
<ul>
<li>
<p><strong><span style="color: #ff6600;">ARDUİNO UNO</span></strong></p>
</li>
</ul>
<p>Projemizin beyni olarak sayabiliriz. Çoğu işlemi arduino yapacak.</p>
<ul>
<li><span style="color: #ff6600;"><strong>TOPRAK NEM SENSÖRÜ</strong></span></li>
</ul>
<p>Toprağın nemini ölçecek olan sensör.</p>
<ul>
<li><span style="color: #ff6600;"><strong>RÖLE</strong></span></li>
</ul>
<p>Sulama işlemi yapacak olan motoru aç-kapa yapmak için kullanacağız.</p>
<ul>
<li><span style="color: #ff6600;"><strong>SU MOTORU</strong></span></li>
</ul>
<p>Sulama işlemini yapacak olan motordur.</p>
<h3><span style="color: #ff6600;"><strong>Malzemelerin Satın Alma Linkleri:</strong></span></h3>
<ul>
<li><a href="https://www.robolinkmarket.com/arduino-uno-r3-smd-klon" target="_blank" rel="noreferrer noopener">https://www.robolinkmarket.com/arduino-uno-r3-smd-klon</a></li>
<li><a href="https://www.robolinkmarket.com/kapadokya-gsm-shield-arduino-gsm-shield" target="_blank" rel="noreferrer noopener">https://www.robolinkmarket.com/kapadokya-gsm-shield-arduino-gsm-shield</a></li>
<li><a href="https://www.robolinkmarket.com/20-pin-ayrilabilen-disi-erkek-jumper-kablo-200mm" target="_blank" rel="noreferrer noopener">https://www.robolinkmarket.com/20-pin-ayrilabilen-disi-erkek-jumper-kablo-200mm</a></li>
<li><a href="https://www.robolinkmarket.com/toprak-nem-sensoru" target="_blank" rel="noreferrer noopener">https://www.robolinkmarket.com/toprak-nem-sensoru</a></li>
<li><a href="https://www.robolinkmarket.com/5v-1-kanal-role-karti-7489" target="_blank" rel="noreferrer noopener">https://www.robolinkmarket.com/5v-1-kanal-role-karti-7489</a></li>
<li><a href="https://www.robolinkmarket.com/mini-dalgic-su-pompasi-3v-6v-ip68" target="_blank" rel="noreferrer noopener">https://www.robolinkmarket.com/mini-dalgic-su-pompasi-3v-6v-ip68</a></li>
</ul>
<h2><span style="color: #ff6600;"><strong>Devre Şeması</strong></span></h2>


<figure class="wp-block-image size-large"><img data-recalc-dims="1" loading="lazy" decoding="async" width="696" height="420" src="https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/02/sema.png?resize=696%2C420&#038;ssl=1" alt="sema" class="wp-image-17551" title="Kapadokya GSM Shield ile Toprak Nem Modülü Kullanımı 54" srcset="https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/02/sema.png?resize=1024%2C618&amp;ssl=1 1024w, https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/02/sema.png?resize=300%2C181&amp;ssl=1 300w, https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/02/sema.png?resize=768%2C464&amp;ssl=1 768w, https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/02/sema.png?resize=1536%2C927&amp;ssl=1 1536w, https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/02/sema.png?resize=150%2C91&amp;ssl=1 150w, https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/02/sema.png?resize=696%2C420&amp;ssl=1 696w, https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/02/sema.png?resize=1068%2C645&amp;ssl=1 1068w, https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/02/sema.png?w=1574&amp;ssl=1 1574w, https://i0.wp.com/akademi.robolinkmarket.com/wp-content/uploads/2022/02/sema.png?w=1392&amp;ssl=1 1392w" sizes="auto, (max-width: 696px) 100vw, 696px" /></figure>



<p>Devre şemasından sonra kapadokya shield kütüphanesini kuralım.&nbsp;<a href="https://github.com/ArduinoHaber/kapadokya-gsm-shield-library/archive/refs/heads/master.zip" target="_blank" rel="noreferrer noopener nofollow"><strong>buraya tıklayarak indirin</strong></a>.</p>



<h2 class="wp-block-heading">PROJE KODU</h2>



<p><span style="background-color:#ff0000" class="td_text_highlight_marker">KODU YÜKLEMEDEN ÖNCE TELEFON NUMARASINI KİMİN İLE MESAJLAŞACAK İSE O NUMARAYI GİRİN BAŞINA +90 MUTLAKA KOYUN!!!</span></p>



<pre class="wp-block-code"><code>
/*  kerem akçora
 *  instagram @akcorakerem
 * e-mail akcorakerem90@gmail.com
 */
#include &lt;KapadokyaGSM.h&gt;
KapadokyaGSM Kapadokya;
String smsMetni, smsNumarasi;
#define gonderilecekTelNumarasi  "+90***********" // Numarayı değiştirmeyi unutmayın :) 
#define toprak_nem A0
#define LED_pin 13

void setup() {
  pinMode(LED_pin, OUTPUT);
  Kapadokya.basla();
  delay(2000);
  Serial.begin(9600);
  delay(2000);
  Kapadokya.tumSmsSil();
  delay(2000);
  Serial.println("Sistem Calisiyor");
  Kapadokya.smsGonder(gonderilecekTelNumarasi, "Sistem acildi. %70 nem fazla %50 normal %30 kotu");
}

void loop() {
  smsMetni = Kapadokya.smsOku(1);
  if (smsMetni.indexOf("OK") != -1) {
    if (smsMetni.length() &gt; 7) {
      smsNumarasi = Kapadokya.numaraliSmsOku(1);
      Serial.println(smsNumarasi);
      smsMetni.toUpperCase();
      if (smsMetni.indexOf("SULA") != -1) {
        Serial.println("sulandı");
        digitalWrite(LED_pin, HIGH);
        delay(3000); //sulama süresini buradan ayarlayabilirsiniz
        digitalWrite(LED_pin, LOW);
        Kapadokya.smsGonder(gonderilecekTelNumarasi, "SULANDI");
      }

      if (smsMetni.indexOf("TOPRAK NEM?") != -1) {
        Serial.println("NEM SMSi Geldi");
        String nem = String(analogRead (toprak_nem)/ 10,23);
        String nem2 = "TOPRAK NEM %" + nem + "";
        char nemSMS2&#91;] = "";
        nem2.toCharArray(nemSMS2, 30);
        Serial.println(nemSMS2);
        Kapadokya.smsGonder(gonderilecekTelNumarasi, nemSMS2);
      }
      else {
        Serial.println("Tanimsiz SMS............");
      }
      Kapadokya.tumSmsSil();
    }
  }
}</code></pre>



<p>Kodu yükledikden sonra sistem çalışıyor diye mesaj gelecek.O mesajdan sonra TOPRAK NEM? yazıp gönderin yaklaşık 20 saniye içinde size değeri gönderir.</p>



<p>Proje ile alakalı bir problem yada geliştirmek isterseniz bana akcorakerem90@gmail.com üzerinden ulaşabilirsiniz.</p>



<p><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f680.png" alt="🚀" class="wp-smiley" style="height: 1em; max-height: 1em;" />Kapadokya <a href="https://akademi.robolinkmarket.com/kapadokya-gsm-shield-ile-hava-kalite-olcumu/" target="_blank" rel="noreferrer noopener">GSM Shield ile Hava Kalite Ölçümü</a> yazımızı okumanızı tavsiye ederiz.</p>
<p>The post <a rel="nofollow" href="https://akademi.robolinkmarket.com/kapadokya-gsm-shield-ile-toprak-nem-modulu-kullanimi/">Kapadokya GSM Shield ile Toprak Nem Modülü Kullanımı</a> appeared first on <a rel="nofollow" href="https://akademi.robolinkmarket.com">Robolink Akademi</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://akademi.robolinkmarket.com/kapadokya-gsm-shield-ile-toprak-nem-modulu-kullanimi/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">17549</post-id>	</item>
	</channel>
</rss>
