Âcil duruma hazırlık -2

 Âcil duruma hazırlık başlıklı yazımda, âcil durumlara hazırlık bâbında alınması gereken tedbirlerden bahsetmiş ve küçük ölçekli güç kaynaklarından bahsetmiştim. Bahsettiğim yazıda " Elinizde 12v 7AH'lik bir veya birkaç akü varsa, bunları dolu durumda tutup, âcil durumlarda az da olsa aydınlatma ve haberleşme ihtiyacınızı karşılayabilirsiniz." demiştim.

Bu yazıda kendi gerçekleştirdiğim devreyle ilgili bilgiler vereceğim.


Akü doldurucunun şeması

Devrenin özellikleri şöyledir:

- 12v 7AH'lik bir aküyü tampon şarj şablonuna uygun olarak azamî 1A'lik bir akımla şarj eder.

- Devre, akım sınırlama özelliğine sâhiptir.

- Aküyü doldurma gerilimini ve akımını ve  elektrik kesildiğinde keza akünün deşarj akım ve gerilimini bilgisayarınızdan anlık olarak tâkip edebilirsiniz.

- Akünün sıcaklığını anlık olarak tâkip edebilirsiniz.

- Akünün aşırı dolması, aşırı boşalması ve  sıcaklığının 45 derecenin üzerine çıkması hâlinde sesli ikaz.

- Elektrik kesildiğinde ortam karanlık ise 12v'luk bir LED kamp lambasının otomatik olarak yakılması.

- 12v ve 5v çıkış gerilimlerine sâhip 2 adet güç kaynağı çıkışı.

- Devreye 12v'luk sistemler için uygun güneş paneli bağlama imkânı.

Yukarıda gerçekleştirdiğim devrenin şemasını görüyorsunuz. Doğrusal (lineer) gerilim düşürme devrelerinde, giriş gerilimi ile çıkış gerilimi arasındaki fark ISI olarak harcandığı için hem devrenin verimi düşüktür hem de ısı problemleri ortaya çıkar. Aynı şekilde gerilim yükseltme devrelerini doğrusal olarak tasarlamak da oldukça zordur. Bu yüzden yukarıdaki devrede bu işlemler için anahtarlamalı güç kaynakları (SMPS) kullanılmıştır.

12v'luk bir kurşun-asit aküyü doldurmak için farklı doldurma şablonları gereklidir. En basit hâliyle önce 14.4v'luk bir gerilimle akü doldurulmaya başlanır (float) ve istenilen gerilim seviyesine ulaşıldıktan sonra da -eğer doldurma devresi aküden ayrılmayacaksa- 13.6v ile tampon doldurma evresine (trickle) geçilir. Ben, aküyü sürekli doldurma devresine bağlı tutacağımdan, float doldurma şablonundan vazgeçerek, sürekli olarak 13.6v ile tampon şarjda devreyi tutmaya karar verdim. Bu durumda, bana 13.6v'luk bir güç kaynağı gerekli olacaktı. Akımın da ayarlı olmasını istediğim için bu amaçla piyasada kolayca bulunan XL4015 modülünü kullandım. XL4105 esas itibarıyla bir gerilim düşürücü devre olduğu için, girişinde daha yüksek bir gerilim olması gereklidir. Bu amaçla çıkış gerilimi 19v. olan laptop adaptörleri kullanılabilir. Ancak benim elimde boşta 12v'luk bir SMPS güç kaynağı olduğundan, XL4015 modülünden önce bir de gerilim yükseltme devresine ihtiyaç duydum ve bu amaçla da XL6009 modülünü kullandım.

XL6009 modülünün girişine 12v'luk adaptörümü bağlayarak çıkışını 17v'a ayarladım. 17v. çıkışı da XL4015 modülünün girişine uygulayıp çıkışını D3 diyodunun çıkışında 13.6v'a ayarladım. (Aşağıya bakınız.) Akım sınırlamasını ise 1A ile sınırladım.

Eğer elinizde 19v'luk bir güç kaynağı varsa, XL6009 modülünü kullanmadan gerilimi doğrudan A ve B noktaları üzerinden XL4015 modülüne verebilirsiniz. Tabii ki D1 ve D2 diyotlarına DİKKAT ederek. Bu diyotların ne işe yaradığı aşağıda anlatılacaktır.

Akım sınırlama ayarlamasını şöyle yapabilirsiniz:

XL4015 modülünün çıkışını, araya AVOmetrenizi 10A  kademesine alıp seri bağlayarak 1A'den daha yüksek akım çeken bir yüke bağlayın. Benim elimde 12v. altında 1.6A çeken bir araba lambası vardı onu kullandım. XL4015 modülünün girişine 17v. gerilim uygulayıp akım ayarlama trimpotu ile akımı 1A'e ayarlayın.

Akünün akım ve gerilimini ölçmek için de XL4015 modülünün çıkışı bir schottky diyot üzerinden INA219 modülüne bağlanmıştır. Schottky diyot kullanılmasının sebebi, elektriğin kesik olduğu durumlarda akü gerilimi ile ESP8266'lı (Wemod D1 mini) kontrol devresinin çalışmasını sağlamak, devrenin geri kalan kısmının güç harcamasını önlemektir. Schottky diyotların üzerindeki gerilim düşümü normal diyotlara göre oldukça düşük olduğu için devrede (3) adet diyodun tamamı schottky olanlardan seçilmiştir.

INA219 ve DS18B20'nin beslemesi ise Wemos D1 mini devresinin sağladığı 3.3v ile yapılmıştır.

Devre, akünün gerilimini ve şarj akımını Wemos D1 üzerindeki yazılım ile sürekli kontrol etmektedir. Elektrik kesildiğinde ve ortam karanlık olduğunda, Q1 MOSFET'i üzerinden 12v'luk bir LED kamp lambasına akü üzerinden elektrik sağlanmaktadır. Akü geriliminin 12v'tan yüksek olmasına karşı bir tedbir olmak üzere, MOSFET PWM ile sürülmekte ve böylece LED lambanın ömrünün kısalmasının önüne geçilmektedir.

Devre elektriğin kesildiğini R2 ve R3 gerilim bölücüsü ile sağlanan işaret ile anlamaktadır. Yukarıda da belirttiğim gibi benim devremde XL4015 modülünün girişinde 17v. gerilim bulunmaktadır. R2 ve R3 gerilim bölücülerin orta noktasında 2.9v'luk bir işaret oluşmakta ve bu gerilim seviyesini ESP8266 H olarak görmekte, elektriğin var olduğunu anlamaktadır. Eğer XL4015 modülüne doğrudan 19v. uygulamayı düşünüyorsanız, R2 ve R3 gerilim bölücünün orta noktasında 3.3v'a yakın bir gerilim oluşacaktır. Ani bir gerilim yükselmesinde ESP82662nın girişi yanabileceğinden, R2 direncini 33k olarak seçmelisiniz.

Karanlık algılama ise Wemos D1 mininin A0 analog girişine bağlanan bir LDR ve direnç/trimpot devresiyle sağlanmaktadır.

Wemos D1 mini devresi, 5v ile beslenmelidir. 5v. elde etmek için 7805'li bir gerilim regülatörü kullanmaktan, ısı ve güç harcaması problemlerinin önüne geçmek için vazgeçilmiş ve LM2596'lı bir gerilim düşürücü modül kullanmıştır. DİKKAT! Wemos D1 mini'yi devreye takmadan / bağlamadan önce LM2596 modülünün çıkışını 5v'a ayarlamalısınız. Ayarlama yapmadan Wemos D1'i devreye bağlarsanız, Wemos'u yakabilirsiniz!

Akü doldurma esnasında akünün ne kadar ısındığını kontrol etmek üzere DS18B20'li bir sıcaklık algılayıcısı kullanılmıştır.

Devrede dikkat edilecek hususlardan birisi de GND'lardır. Eğer benim yaptığım gibi XL6009'lu bir gerilim yükseltme devresi kullanacaksanız, girişe uygulanan güç kaynağının GND'ı ile XL6009'un GND'unu diğer devrelerin GND'u ile ASLA BİRİBİRİNE BAĞLAMAYIN! Zira, XL4015 modülündeki şönt sebebiyle bu iki nokta arasında bir potansiyel farkı mevcuttur. Bu amaçla devrede iki farklı GND sembolü kullanılmıştır.

Bu devreyi sadece âcil aydınlatma için değil,  Âcil duruma hazırlık başlıklı yazımda belirttiğim ara devre ile el telsizinizi kullanmak veya aküsünü doldurmak için de kullanabilirsiniz. Bu durumda bağlantının doğrudan akünün (+) ve (-) kutuplarına yapılması gerektiği açıktır.

Güneş pili ile kullanım

Eğer elinizde 12v.luk sistemler için kullanabileceğiniz bir güneş paneli varsa, bu durumda girişteki D1 ve D2 diyotlarını kullanmalısınız. Eğer güneş paneli kullanmayacaksanız D1 ve D2 diyotlarna gerek yoktur.

ESP8266 üzerindeki yazılım

Diğer pek çok kontrol devresinde olduğu gibi, bu devrede de ESP8266'nın yazılımı ESPHome / Home Assistant sistemiyle uyumlu olarak hazırlanmıştır. Bu sayede elektrik varken sistemi Home Assistant üzerinden gözleyebileceğiniz gibi, elektiğin kesili olduğu durumlarda da ESP8266 (Wemos D1 mini) üzerindeki yazılım çalışmaya devam edecektir.

Bu arada, Wemos D1 mininin D8 kapısına bağlanan bir aktif buzzer ile sisteme 3 adet ikaz sesi eklenmiştir. Eğer akü gerilimi 14.5v.'un üzerine çıkarsa yarım saniye aralıklarla alarm sesi çıkarılır. Eğer akü gerilimi 10.5v'un altına düşerse 2 saniye aralıklarla alarm sesi çıkarılır. Eğer akü sıcaklığı 45 derece santigratın üzerine çıkarsa üc adet kısa dıt sesi 3 saniye aralıklarla çıkarılır.

Yazılımın yaml kodu şöyledir:

------

esphome:
  name: aku-1
  friendly_name: aku-1
 
esp8266:
  board: d1_mini_lite

logger:

api:
  encryption:
    key: "kendi KEY'iniz"

ota:
  - platform: esphome
    password: "kendi şifreniz"

wifi:
  ssid: !secret ssid
  password: !secret wifi_password
   ap:
    ssid: "Aku-1 Fallback Hotspot"
    password: "xxxxxxxxxxxxxxxxxxxxxxxxxx"
#UYGULAMA KISMI
captive_portal:

i2c:
  sda: D2
  scl: D1
  scan: true

one_wire:
  - platform: gpio
    pin:  D5

sensor:
  - platform: ina219
    address: 0x40
    shunt_resistance: 0.1 ohm
    current:
      name: "Akü Şarj Akımı"
      id: aku_akim
    bus_voltage:
      name: "Akü Gerilimi"
      id: aku_voltaj
    update_interval: 2s

  - platform: adc
    pin: A0
    name: "Ortam Işık Gerilimi"
    id: ortam_isik_voltaj
    update_interval: 5s

  - platform: dallas_temp
    address: 0x0000000000000000000000  # BURAYA KULLANDIĞINIZ DS18B20'nin ADRESİNİ YAZACAKSINIZ!!!
    name: "Akü Sıcaklığı"
    id: aku_sicaklik
    update_interval: 30s

binary_sensor:
  - platform: analog_threshold
    name: "Karanlık Durumu"
    sensor_id: ortam_isik_voltaj
    threshold: 0.95
    id: karanlik_mi

  - platform: gpio
    pin:
      number: D6
      mode: INPUT
    name: "Şebeke Elektriği"
    id: sebeke_var_mi
    device_class: power

output:
  - platform: esp8266_pwm
    pin: D7
    id: mosfet_pwm
    frequency: 1000 Hz
 
  - platform: gpio
    pin: D8
    id: buzzer_pin

light:
  - platform: monochromatic
    name: "Acil Durum Ledi"
    output: mosfet_pwm
    id: acil_led
    restore_mode: ALWAYS_OFF

script:
  - id: alarm_yuksek_voltaj
    mode: parallel
    then:
      - output.turn_on: buzzer_pin
      - delay: 500ms
      - output.turn_off: buzzer_pin
      - delay: 500ms

  - id: alarm_dusuk_voltaj
    mode: parallel
    then:
      - output.turn_on: buzzer_pin
      - delay: 2s
      - output.turn_off: buzzer_pin
      - delay: 2s

  - id: alarm_yuksek_sicaklik
    mode: restart
    then:
      - repeat:
          count: 3
          then:
            - output.turn_on: buzzer_pin
            - delay: 150ms
            - output.turn_off: buzzer_pin
            - delay: 150ms
      - delay: 3s

interval:
  - interval: 2s
    then:
      - if:
          condition:
            and:
              - binary_sensor.is_on: karanlik_mi
              - binary_sensor.is_off: sebeke_var_mi
              - sensor.in_range:
                  id: aku_voltaj
                  above: 11.0
          then:
            - light.turn_on:
                id: acil_led
                brightness: !lambda |-
                  float v = id(aku_voltaj).state;
                  if (v <= 12.0) return 1.0f;
                  return 12.0f / v;
          else:
            - light.turn_off: acil_led

      # ALARM KONTROLLERİ
      - if:
          condition:
            sensor.in_range:
              id: aku_voltaj
              above: 14.5
          then:
            - script.execute: alarm_yuksek_voltaj
          else:
            - if:
                condition:
                  sensor.in_range:
                    id: aku_voltaj
                    below: 10.5
                then:
                  - script.execute: alarm_dusuk_voltaj
                else:
                  - if:
                      condition:
                        sensor.in_range:
                          id: aku_sicaklik
                          above: 45.0 #
                      then:
                        - script.execute: alarm_yuksek_sicaklik
                      else:
                        - output.turn_off: buzzer_pin

Yorumlar

Bu blogdaki popüler yayınlar

Si4732 ile "Minyatür" DEV Alıcı

APRS monitör