Bluetooth ve C# ile PIC18F4550 Kullanılarak Ortam Sıcaklığının Takip Edilmesi

Merhaba arkadaşlar bugün sizlerle Bluetooth ile C#  ve PIC18F4550 kullanılarak LM35 entegresinden ortamın sıcaklık takibini gerçekleştireceğiz .Neden bu proje ? bu soruya cevap verecek olursak arkadaşlar  ortamın sıcaklığının takip edilmesine bağlı olarak   röle tetiklenmesinde, Motor uygulamalarında,fan kontrolünde kablosuz iletişim kullanılan cihazların soğutucu veya ısıtıcıların kontrolünde, termometrelerin kullanıldığı alanlarda ,hobi projelerinde ve bunlara bağlı olan tüm sistemlerde kullanılması   beni bu projenin yapımına götürmüştür.Bu cevaptan sonra isterseniz projeye adım adım başlayalım arkadaşlar ;.

GEREKSİNİM PROGRAMLARI

  • C# programını kendi bilgisayarınızın özelliğine ve bu programa ait istediğiniz sürümü Microsoft Visual C# ifadesine tıklayarak,
  • PIC18f4550 mikrodenetleyiciye ait yapılan yazılımın derlenmesi için CCS C Complier ifadesine tıklayarak,
  • Elektronik devre tasarımının yapılabilmesi için Proteus ISIS ifadesine tıklayarak,
  • Arayüz programı ile proteus ISIS ortamında çizilen elektronik devrenin similasyonunu gerçekleştrimek için Virtual Serial Port ifadesine tıklayarak üye olunması şartı ile deneme sürümlerini indirip programları inceleyebilir kullanabilirsiniz.

PROJENİN AMACI

Evet arkadaşlar bu projede neler öğreneceğiz sorusuna aşağıdaki maddelerle açıklayacak olursak;

  1. Bluetooth  iletişim protokolü, LM35 ,  2×16 LCD ekran kavramlarını öğrenmek.
  2. PIC18F4550 mikrodenetleyicisine   ait gömülü yazılım kodları , açık kaynak kodu olarak kullanılarak yazılımda kullanılan komutlarının kullanım amaçlarını öğrenmek.
  3. PIC18F4550  mikrodenetleyicisinin   PC ile nasıl haberleşeceğini göstermek ve öğrenmek.
  4. C# arayüz programı ile gerçek elektronik devreye gereksinim duymadan  hem elektronik devrenin hemde gömülü yazılımın proteus isis ortamında nasıl test edilir sorusuna cevap vermek.

TEORİK BİLGİLER

Bluetooth :

Bluetooth kısa mesafeli veri iletiminde kullanılan özelleştirilmiş radyo frekansıdır. İletişim frekansı ise 2.45 GHz- 2.48 GHz arasındadır. Bunun yanında Bluetooth bağlantı sırasında saniyede 1600 kez frekans değişimi olur bu değişimden dolayı bluetooth ,  WLAN gibi aynı frekansı kullanan diğer protokollerden az etkilenir. Bunun yanında  veri iletiminde kayda değer bir problem gerçekleşmez. Bluetooth iletişim protokolünde bir diğer gürültü önleme şekli ise bu iletişim protokolünde verilerin paketler halinde iletilmesidir.Bluetooth Logo

HC06 Bluetooth Modül;

HC06 kablosuz bağlantı için tasarlanmıştır ve bluetooth 2.0’ı desteklemektedir. İletişim mesafesi 10 metre civarındadır. Çalışma gerilimi 1.8V-3.6 V aralığındadır. Bu modülün bir diğer iletişim  biçimi ise UART iletişimdir.

HC06

LM35 Sıcaklık Sensörü :

LM35 bir sıcaklık sensörüdür. Sıcaklık değerini ise 0C olarak ölçer  ve mikroişlemci / mikrodenetleyici’ye sinyali  analog sinyal olarak verir. Ölçüm aralığı -55 ile 150 0C ,besleme gerilimi ise 4V-30V arasındadır.

FE0DHQ4HV2AIB01.LARGE

MALZEME LİSTESİ
Proje kapsamında teorik bilgiler verildikten sonra projenin devamı için gerekli olan malzemeler aşağıdaki tabloda yer verilmiştir.

MALZEME ADI MALZEME ADET MALZEME ADI MALZEME ADET
Breadboard 2 Data Kabloları N TANE
PIC18F4550 1 2×16 LCD Ekran 1
10 K Potansiyometre N TANE 100 Ohm 1
LM35 1 *** ***
8MHZ CRYSTAL 1 *** ***
15 pF 1 *** ***
100 nf 1 *** ***
hc06 1 *** ***

ŞEMATİK DEVRE
Bu projenin şematik bölümü Proteus ISIS programında  çizilmiştir. Şematik kısmına bakılacak olursa  seri iletişim için HC-06 modülünün Rx pini PIC18f4550 ‘nin Tx pinine gene HC-06 modülünün Tx pini PIC18f4550 ‘nin Rx pinine  bağlanmıştır.

Devre Resim

KAYNAK KODLARI

Bu projenin gömülü yazılımı CCS C  de   derlenmiştir. Komutlara bakılacak olursa her satır yanında.     ‘ // ‘ ifadelerinin yanında açıklamaları bulunmaktadır . Arkadaşlar kaynak kodlarının yanındaki açıklamaları dikkate alarak proje çalışmanıza devam etmeniz önerilir.

 /*   Program Adı : Bluetooth -LM35 Sıcaklık Takip Programı
      Donanım     : PIC18F4550
      Derleyici   : CCS C 5.0.1
      MCU         : 8 MHz
      Yazan       : Adil Teoman Kurt
      Adres       : https://electrolog.blog
 */
#include   
//Pic18 için kütüphane kod içerisine ekleniyor//
#device ADC=10        
//10 bitlik veri alınıyor ve (5V/2^10) değeri belirleniyor)
#include      
//Matematik Kütüphanesi ekleniyor//
#fuses HS,CPUDIV1,NOPROTECT,NOLVP,NOBROWNOUT,NOPUT,NOWRT,NODEBUG,NOCPD
// PIC18f4550 konfigürasyon ayarları yapılıyor
#use delay(clock=8000000) 
// Harici osilatörün frekansı belirleniyor 
#use rs232 (baud=9600, xmit=pin_c6, rcv=pin_c7, parity=N, stop=1)
//Bluetooth için seri iletişim hattı ayarlanıyor//
#use fast_io(a) 
//Mikrodenetleyicinin A portu Kullanıma alınıyor//
#use fast_io(d) 
//Mikrodenetleyicinin D portu Kullanıma alınıyor//

// ***** LCD EKRAN PIN AYARLARI *****//
#define LCD_ENABLE_PIN PIN_d6
#define LCD_RS_PIN PIN_d7                                  
#define LCD_RW_PIN FALSE
#define LCD_DATA4 PIN_d5                                 
#define LCD_DATA5 PIN_d4                                   
#define LCD_DATA6 PIN_d3                                   
#define LCD_DATA7 PIN_d2
#include 
unsigned long int veri; // Sıcaklım değeri işaretsiz olarak ayarlandı//
float gerilim,sicaklik;  // Sıcaklık ve gerilim değeri ise float olarak alındı// 
int i=0;
void main ()
{
   setup_timer_1(T1_DISABLED);   // timer1 pasif ediliyor//
   setup_timer_2(T2_DISABLED,0,1); //timer2 pasif ediliyor//   
   setup_CCP1(CCP_OFF);  //Compare capture power 1 pasif edilior//
   setup_CCP2(CCP_OFF);   //Compare capture power 2 pasif edilior//       
   setup_psp(PSP_DISABLED); //PSP pasif ediliyor//
   
   set_tris_a(0x01);// A portunun 0.biti giriş diğerleri çıkış olarak ayarlanıyor//    
   set_tris_d(0x00);// B portunun çıkış olarak ayarlanıyor//  
   lcd_init(); // LCD ekranın pikselleri aktif ediliyor
   setup_adc(adc_clock_div_32); // ADC clock sinyali 32 ye bölünüyor//  
   setup_adc_ports(AN0);// ADC 0. bite ait kapı aktif hale getiriliyor// 
   set_adc_channel(0);   // 0. bit kanal olarak set ediliyor//
  
   printf(lcd_putc,"\felectrolog.blog");
   // LCD ekransilinip ilk satıra  String yazdırlıyor//
   delay_ms(500);
   //Mikrodenetleyici 500 ms bekleme  moduna alınıyor//
   printf(lcd_putc,"\nBluetooth Uyg.");
   // LCD ekransilinip ilk satıra  String yazdırlıyor//
   delay_ms(2000);
   //Mikrodenetleyici 2000 ms bekleme moduna alınıyor//
   printf(lcd_putc,"\fSICAKLIK");
   // Ekrana SICAKLIK yazısı yazdırılıyor
   delay_ms(500);
   //Mikrodenetleyici 500 ms bekleme moduna alınıyor//
   printf(lcd_putc,"\nPROGRAMI ");
   // LCD ekran silinip ikinci satıra  String yazdırlıyor//
   delay_ms(2000);
   //Mikrodenetleyici 2000 ms bekleme moduna alınıyor//
   while(true)
   {
     delay_us(20); 
     //Mikrodenetleyici 20 ms bekleme moduna alınıyor//
     veri=read_adc(); 
     // Set edilen kanaldan LM35 den analog giriş alınıp digital  veri kutusuna aktarılıyor// 
     gerilim=(0.0048828125*veri)*1000;
     // Veri değeri gerilime hesaplanıyor//
     sicaklik=(gerilim/10)+2;
     // Gerilim değeri sıcaklığa döndürülüyor//  
     printf("%4.1f\n",sicaklik);
     // Sıcaklık ifadesi  Bluetooth üzerinden bilgisayara aktarılıyor//
     printf(lcd_putc,"\fTemp :%4.1f'C",sicaklik);
     //Sıcaklık değeri LCD ekrana yazdırılıyor// 
     delay_ms(5);
     //Mikrodenetleyici 20 ms bekleme moduna alınıyor
     if(sicaklik<30) // Sıcaklık değeri 30'un altında ise
      {
        lcd_gotoxy(0,2);
        printf(lcd_putc,"Oda Sicakligi");
      }
     else
      {
        lcd_gotoxy(0,2);
        printf(lcd_putc,"\fYuksek Sicaklik");
      }  
     
   }
}

C# ARAYÜZ PANELİ
Bu projenin arayüz programı Microsoft Visiual Studio  programında oluşturulmuştur . Programın ‘Connection settings’ bölümü ile bağlantı ayarları yapılır. ‘Connect ‘ kısmı ile PC ve PIC18f4550 ile bağlantı kurulur. ‘LOW TEMPRATURE’ yazan bölüm ise oda sıcaklığının değerine göre mesaj kısmını içerir. Grafik bölümü ise sıcaklığın dinamik olarak grafiğe aktarıldığı kısımdır. Buna ek olarak grafik üzerine gelinerek mouse  sağ tuşuna basılarak grafik yakınlaştırılır veya uzaklaştırılır ve aynı zamanda jpeg olarak grafik kaydedilebilir.

C# Arayüz Prog2

 

PROJENİN VİDEOSU

Bu projenin hem kart modülleri hemde sıcaklık takip programının çalışmasının videosuna C# + Bluetooth + PIC18F4550 sıcaklık takip videousu ifadesine tıklayarak izleyebilirsiniz.

EK DOSYALAR

Bu bölüm ise C# arayüz panelinin .exe dosyasını ,PIC18f550 mikrodenetleyicsinin  gömülü yazılımının proteus ISIS programında kullanılmasını sağlayan .hex dosyasını ve proteus devresine ait yüksek çözünürlüklü resimini içerir.

C#+Diğer Dosyaları indir

BİLGİLENDİRME

   Proje hakkında  merak ettiklerinizi  iletişim adresinden sorabilir veya yorum kısmına yazabilirsiniz arkadaşlar projede iyi çalışmalar.

Hoşçakalın…..

Bir Cevap Yazın

Aşağıya bilgilerinizi girin veya oturum açmak için bir simgeye tıklayın:

WordPress.com Logosu

WordPress.com hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.