MikroC & Discovery Kit ile Wi-Fi Web Server Uygulaması | Osman Görkem YOĞURTÇU

Osman Görkem YOĞURTÇU

MikroC & Discovery Kit ile Wi-Fi Web Server Uygulaması

  • 3 sene önce, Osman Görkem YOĞURTÇU tarafından yazılmıştır.
  • 0 Yorum
  • Genel,mikroC

Merhabalar,

Bu proje ile STM32F4 Discovery kitini kullanarak küçük bir web sayfasını kablosuz olarak internet üzerinden yayınlayacağız.Bu web sayfası üzerinden röle kontrolü , analog verileri okuma, sıcaklık ve nem bilgilerini yayınlamanın yanısıra LCD ekran üzerinden de wi-fi bağlantı bilgilerini görebileceğiz.Proje için kullanacağımız donanımlar şöyle;

1 adet STM32F4 Discovery Kit
1 adet STM32F4 Discovery Shield
1 adet Wifi Plus Click
1 adet ADC Click
1 adet HTU21D Click
1 adet Relay Click
1 adet 2×16 LCD Display

Bu donanımlara kısaca değinelim;

Discovery kit ile 2×16 LCD ekran hepimizin tanıdığı donanımlar ve bunları pas geçiyorum. Discovery Shield, kullanıcıların üzerine Discovery Kit ve ‘Click’ adı verilen çevre donanımların monte edilerek kolay prototip oluşturmasını sağlayan bir karttır.Üzerinde 3.3V regülatör, CAN,  USB-UART çevirici ve 4 adet MikroBus(Click’lerin takıldığı terminal) bulunur.

stm32f4_discovery_shield

 

Wifi Plus Click, Microchip’in  IEEE 802.11 standartını destekleyen MRF24WB0MA Wi-Fi modülünü barındırır.Modülün üzerinde dahili anten mevcuttur.400 metre çekim mesafesi olduğu yazıyor.(Test etmedim) 4-wire SPI protokolü ile çalışır.Fakat Click üzerinde bulunan  MCW1001A kontrolcüsü sayesinde biz donanımı UART üzerinden kontrol edeceğiz.

Web

ADC Click,  MCP3204 analog-dijital çeviri entegresi ve MCP6284 op-amp entegresinden oluşur.ADC entegresi SPI arayüzü ile haberleşir.12 bir çözünürlüğe sahiptir.2.7V’da max 50k örnekleme alır.

Web

HTU21D Click, üzerinde HTU21D sıcaklık ve nem sensörünü barındırır.0-100RH aralığında nem ve -40+120 derece santigrat aralığında sıcaklık ölçer.Sensör I2C ile haberleşir.Başlangıç sinyal çözünürlüğü nem için 12bit , sıcaklık içinse 14 bittir.

htu21d_click

Relay Click ise 2 adet transistör ve röle devresinden oluşur.Rölelerin konumları önlerindeki ledler ile gözlemlenebilir.Ayrıca her Click’in power ledi bulunmaktadır.

Web

Yazmış olduğumuz programa göre Wifi Plus Click; MikroBus 1’e, HTU21D Click; MikroBus 2’ye, ADC Click; MikroBus 3’e ve Relay Click MikroBus 4’e takılmalıdır.LCD bağlantıları program içerisinde verilmiştir.LCD arka ekran aydınlatmasının beslemesini ayrı bir kaynaktan sağlayın.Zira USB gerilimi hepsini kaldırmıyor.

click1 click2

Projenin yazılım kısmında Mikroelektronika firmasının MikroC For ARM derleyicisini kullandım.Bu platform zengin kütüphane ve örnek dosyaları ile kullanıcılara hızlı proje gerçekleştirme olanağı sunuyor.En büyük dezavantajı kütüphanelerin açık kaynak olmaması.Donanımların kontrollerini sağlamak için MikroC’nin hazır kütüphane ve örneklerinden faydalandım.Derleyicinin içerisinde başlangıçta Wi-Fi kütüphanesi bulunmamaktadır.Bu kütüphaneyi ekleyebilmek için MikroElektronika’nın “Package Manager” programını kurmamız gerekir.Daha sonra elimizdeki wifi library dosyasına çift tıklayarak bu program ile açıyoruz.Açılan ekranın “Target compiler” kısmından “mikroC for ARM” seçerek “install package” butonu ile kütüphaneyi yüklüyoruz.İşlem tamamlandıktan sonra derleyiciyi çalıştırarak kütüphanenin eklendiğini görebiliriz.

package manager

Sistemin yazılımı şöyle;

Çalışma resmi;

IMG_20150129_025830

Programdan kısaca bahsedecek olursak;

Baslangic_Ayarlari(); fonksiyonu ile dijital I/O, UART, SPI, I2C gibi donanımlarımızı set ediyoruz.InitWiFi(); fonksiyonunu wifi ayarlarını set etmek için kullanıyoruz.Bu fonksiyon bağlantı profil ayarlamaları, wpa güvenlik ayarları, SSID ayarları ile MAC adresi ve IP adresi gibi tüm ağ parametrelerini set eder.SearchSSID(); fonksiyonu kapsama alanı içerisindeki diğer wifi modemleri tarar.Program içerisinde aşağıdaki satırlara bağlanacağımız modemin isim ve şifresini yazın.

Büyük-küçük harf, boşluk gibi durumlara dikkat edilmeli.Aksi halde bağlantı kurulmaz.Bağlantı kurulamadığında ise LCD ekranda kapsama alanındaki modem isimleri sırayla görüntülenir.

Not: Sisteme yerel ağdan erişmek için 192.168.20.60 kullanırız.Dışarıdan erişmek için bağlanacağınız modemin 80. portunu açmalı ve cihazımızın ip’sini bu porta yönlendirmeliyiz.Google’a modeminizin markasıyla birlikte port yönlendirme olarak aratırsanız gerekli bilgiler çıkacaktır.Dışarıdan erişmek için kullanacağımız ip ise modemimizin dış ip olacaktır.Bunuda whatismyip.com adresinden öğrenebilirsiniz.

ConnectToAp(); fonksiyonu ile SSID ve şifresini belirttiğimiz cihaza bağlantı sağlanır ve LCD ekranda “AccessPoint bağlanıldı” yazısı görüntülenir.

RunHttpServer(); fonksiyonu ise TCP/IP üzerinden web sayfamızı yayınlamamızı sağlar.Alt fonksiyonlarında ADC, Sıcaklık&Nem, Röle kontrolleri yapılarak web sayfasının ilgili yerlerine yazdırılır.

Web_Server

WiFi, TCP/IP , SPI ve I2C gibi konularda çok fazla bilgiye sahip değilim.Bunları öğrenip sıfırdan protokollerini oluşturmam yıllarımı alır ki zaten o zaman MikroC kullanmam.Bu projeyle 3 gün uğraştım.MikroC benim gibi çok fazla detaya girmeden proje geliştirmek isteyenler için çok çok ideal.Kütüphane fonksiyonlarının kullanımını detaylı incelemek isteyenler derleyicinin Library Manager kısmına bakabilirler.

Sistemin çalışma videosunu ve kaynak kodlarını ekleyerek yazımı sonlandırıyorum.Unutmadan, HTML konusundaki yardımları için Serhat Ali YÜCE‘ye teşekkürlerimi iletiyim.Hepinize saygı ve selamlar.


Proje dosyalarını indirmek için aşağıdaki linki kullabilirsiniz.

İNDİR

Bir Yorum Yazın