Ana Sayfa STM32F429 Discovery STM32F429 Discovery ile Akıllı Dijital Termometre

STM32F429 Discovery ile Akıllı Dijital Termometre

6 min read
3
0
2,883

Merhaba arkadaşlar,

Bu çalışmamızda,STM32F429 Discovery ile Dallas’ın DS18B20 sıcaklık sensörünü kullanarak basit bir akıllı dijital termometre yapmaya çalıştık.

Bu uygulamamızda sisteme basit de olsa akıllı bir özellik katmak istedik.Bunun içinde,30 derece altında ekranda beyaz bir şerit kaymaktadır.30 derece üstünde ise turuncu bir şerit kaymaktadır.Sizler çok daha değişik uygulamalar düşünebilirsiniz.Videomuzda da biraz bahsettik.Mesala;sıcaklık yükseldiği zaman bir fan çalışabilir,sıcaklık arttığı zaman sesli bir uyarı verdirebilirsiniz.Bu örneklerimizi arttırmamız mümkündür.Temel olarak sistem bundan ibarettir.Dilerseniz kullanılan malzemelere geçelim.

Kullanılan Malzemeler

  • STM32F429 Discovery
  • DS18B20 Sıcaklık Sensörü
  • Jumper Kablolar
  • Bread Board

Sensör hakkında detaylı bilgiyi buradan öğrenebilirsiniz.

DS18B20

 

 

 

 

 

 

 

 

 

 

STM32f429 kartımız ile sensörümüz arasındaki gerekli bağlantılar şekilde ayrıntılı olarak gösterilmektedir.

main.c kodları


#include "defines.h"
#include "stm32f4xx.h"

#include "stm32f4xx_rcc.h"
#include "stm32f4xx_gpio.h"
#include "tm_stm32f4_delay.h"
#include "tm_stm32f4_onewire.h"
#include "tm_stm32f4_usart.h"
#include "tm_stm32f4_ds18b20.h"
#include "tm_stm32f4_fonts.h"
#include "tm_stm32f4_ili9341_ltdc.h"
#include "tm_stm32f4_disco.h"
#include <stdio.h>

#define EXPECTING_SENSORS 1

int main(void) {
char buf[40];
uint8_t devices, i, j, count;
uint8_t device[EXPECTING_SENSORS][8];
float temps[EXPECTING_SENSORS];

SystemInit();

TM_DELAY_Init();

TM_OneWire_Init();
TM_ILI9341_Init();
TM_ILI9341_Rotate(TM_ILI9341_Orientation_Landscape_2);
TM_ILI9341_Fill(ILI9341_COLOR_RED);
TM_ILI9341_Puts(75, 160, "www.roboturka.com", &TM_Font_11x18, ILI9341_COLOR_RED, ILI9341_COLOR_WHITE);
TM_ILI9341_Puts(110, 200, "Bilal Kaya", &TM_Font_11x18, ILI9341_COLOR_RED, ILI9341_COLOR_WHITE);
TM_ILI9341_Puts(72, 30, "Dijital Termometre", &TM_Font_11x18, ILI9341_COLOR_RED, ILI9341_COLOR_WHITE);

devices = TM_OneWire_First();
count = 0;
while (devices) {
count++;

TM_OneWire_GetFullROM(&device[count - 1][0]);

devices = TM_OneWire_Next();
}

for (i = 0; i < count; i++) {
TM_DS18B20_SetResolution(&device[i][0], TM_DS18B20_Resolution_12bits);
}

TM_DS18B20_SetAlarmHighTemperature(&device[0][0], 25);

TM_DS18B20_DisableAlarmTemperature(&device[1][0]);

while (1) {

TM_DS18B20_StartAll();

while (!TM_DS18B20_AllDone());

for (i = 0; i < count; i++) {

TM_DS18B20_Read(&device[i][0], &temps[i]);

sprintf(buf, "Sicaklik: %3.5f", temps[i]);
TM_ILI9341_Puts(72, 90, buf, &TM_Font_11x18, ILI9341_COLOR_WHITE, ILI9341_COLOR_RED);
if(temps[i]<30)
{
TM_ILI9341_Puts(30, 120, "Sicaklik Normal Gibi :-)", &TM_Font_11x18, ILI9341_COLOR_WHITE, ILI9341_COLOR_WHITE);
TM_ILI9341_Puts(30, 120, "Sicaklik Artiyor Gibi :-)", &TM_Font_11x18, ILI9341_COLOR_RED, ILI9341_COLOR_RED);
}
if(temps[i]>30)
{
TM_ILI9341_Puts(30, 120, "Sicaklik Artiyor Gibi :-)", &TM_Font_11x18, ILI9341_COLOR_ORANGE, ILI9341_COLOR_ORANGE);

TM_ILI9341_Puts(30, 120, "Sicaklik Normal Gibi :-)", &TM_Font_11x18, ILI9341_COLOR_RED, ILI9341_COLOR_RED);

}
}

Delayms(1000);
}
}

Çalışma Videosu

Umarız faydalı bir çalışma olmuştur.

Saygılar.

Buna Benzer Yazılar Göster !
Daha Fazlasını Yükle - Konuk Yazar
Daha Fazla Göster -  STM32F429 Discovery

3 Yorumlar

  1. ömer

    23 Haziran 2015 at 14:57

    lütfen burda kulllandığınız kutubhaneleri keıle nasıl eklediğinizi anlatırmısınız
    kutubhanalerı eklıyorum solda kırmızı çarpı çıkıyor
    bu sorunu nasıl çözebiliriz

    Reply

    • Bilal Kaya

      23 Haziran 2015 at 18:13

      Tamam Ömer,isteğin dikkate alınmıştır.
      İyi çalışmalar,

      Reply

  2. Ferit

    10 Ekim 2018 at 14:50

    Bunun proje dosyası yok mu kütüphaneleri ekleyemediğimiz için 40 tane uyarı veriyor
    zip halinde falan
    ona göre üzerinde çalışalım geliştirelim
    tabi paylaşmak isterseniz

    Reply

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Bak Bakalım ?

Lazer İşleme Makinesi Yapımı

Merhaba arkadaşlar,bu projemizde sizlerle birlikte lazer işleme makinesi yapımını göreceği…