güneş paneli ile arduino çalıştırma

Güneş Paneli ile LoRa Kullanımı

Güneş Paneli ile LoRa Kullanımı

Merhaba sevgili dostlar, bugün sizlerle beraber Güneş Paneli ile LoRa yı nasıl besleyeceğimizi ve enerjiye bağlı kalmadan Lipo pil ve güneş paneli sayesinde kesintisiz bir çalışma sağlayacağız.

güneşten enerji

Bu projemizde 5v luk güneş paneli 2000 mAh bir lipo pil ve TP4056 entegreleri kullanılmıştır.

Lipo pil üzerinden gelen enerji 4V civarında olduğu için direk arduino ve LoRa modüllerini besleyebilmektedir.

Özellikle enerjinin bulunmasının zor olduğu tarımsal alanlarda, çatılarda bu sistem sayesinde projenizi bağımsız olarak besleyebilirsiz.

İyi bir enerji optimizasyonu ile çok uzun süreli kullanım sağmanız oldukça kolay olacaktır.

1. Gerekli Malzemeler

HDC1080 Sıcaklık ve Nem Sensörü

HDC1080 Sıcaklık ve Nem Sensörü

Yüksek nemde mükemmel doğruluk sağlayan bu sıcaklık ve nem sensörü, hassas ölçümler için idealdir.

Ürün Sayfasına Git
LoRa Uzman Seti

LoRa Uzman Seti (E22-900T22D)

Kablosuz şifreli veri iletimi ve güvenli iletişim için tasarlanmış bu set, 900 MHz frekansında çalışır ve LoRa uygulamalarında güvenli veri iletimi sağlar.

Ürün Sayfasına Git
LoRa Başlangıç Seti

LoRa Başlangıç Seti (SX1278 E32-433T20D)

LoRa teknolojisi ile tanışmak isteyenler için 433 MHz bandında çalışan, SX1278 çipli modül ve anten içeren bir başlangıç setidir.

Ürün Sayfasına Git

Güneş paneli 5v 3w

2000 mAh kendinden korumalı Lipo Pil

tp4056 entegresi

2 Bağlantı Şeması

Şu sitedeki bağlantı şemasını biraz modifiye ettim

Lithium pil yerine Lipo pil kullandım ve out +/- çıkışlarını direk arduinonun 5v pinine bağladım. En sağdaki mcp1700 entegresi 3v3 volt ile çalışan modeller için ben arduino nano kullandığım için bu kısmı kaldırdım.

3 Çalışma Mantığı

TP4056 entegresi

Şu sitede tp4056 ile ilgili çok detaylı bilgiler bulunmakta okumanızı tavsiye ederim

Tp4056 entegresi ve DW entegresinin bulunduğu şema yukardadır. Entegrenin çalışma mantığının detaylarını videoda anlatıyor olacağım.

Akımı sınırlama için kullanılan Rprog direnç değerlerine karşılık gelen akım değeri

Biz bu projemizde 5v luk panellerden kullandık maalesef yine Türkiye de uygun fiyatlı ve gerçekten 5w 10w üretebilen bir panel bulamadım. Hatta aldığım panellerde maalesef %100 çalışmıyordu. Termal kamera altında baktığım bazı ücrelerin hiç enerji üretmediklerini gözlemledim.

Belki termal kamera 100% doğrulukla çalışıp çalışmadığını göstermez ancak akım olarak maximum 450 mA görebildim. Normalde 1A yakın değerler görmem gerekirdi. Bu arada panellerim 5v ve hepsi birbirine paralel baağlıdır.

4 Kod Kısmı

Güneş sistemleri ile enerji sağlaayacaksanız 1. önceliğiniz düşük güç tüketimi olmalıdır. Bu konuda fazla seçeneğiniz yok Arduino Nano oldukça başarılı ve neredeyse alternatifide yoktur. Misal Arduino Mega ile enerji tasaruflu bir proje yapamazsınız. Nano 10ma çektiği yerde mega 50ma ile kesenin ağzını açmaktadır.

Arduino da enerji tasarrufu için şu kütüphaneyi kullanıyorum ve heralde gördüğüm en yüksek puana sahip kütüphanedir.

Şimdi algoritmayı şu şekilde kuracağım. Arduino normal rutin çalışmasını devam ederken ara ara A0 pini üzerinden analog read yaparak 5v pinine gelen gerilimi okuyacağım. pil değeri 3.9V altına düşünce arduinoyu uyku moduna getireceğim ve böylelikle çekilen akımı mikro amper seviyelerine düşüreceğim. Bu sayede pil Tp4056 nın kritik seviyesinin altına düşmeden sistemi durdurup enerji dolması için sistemi bekleteceğim. Böylece çok uzun süre kullanım sağlayacağız.

Kod yapısı şimdilik şu şekilde

#include <LowPower.h>
int bekleme = 5000;
unsigned long sure = 0;

void setup() {
  // put your setup code here, to run once:
  Serial.begin(9600);
  pinMode(LED_BUILTIN, OUTPUT);
}

void loop() {

  if (millis() > sure + bekleme) {
    sure = millis();
    
    int sensorValue = analogRead(A0);
    // Convert the analog reading (which goes from 0 - 1023) to a voltage (0 - 5V):
    float voltage = sensorValue * (5.0 / 1023.0);
    // print out the value you read:
    Serial.println(voltage);

    if (voltage < 3.9) {
      Serial.print("hade ben uyumaya gidiyom");
      delay(100);
      for (int i = 0; i <= 5; i++)
      {
        LowPower.powerDown(SLEEP_8S, ADC_OFF, BOD_OFF);
      }
      delay(1000);
      Serial.print("ahh yeni uyandım");
      delay(100);
    }
  }

  digitalWrite(LED_BUILTIN, HIGH);
  delay(100);
  digitalWrite(LED_BUILTIN, LOW);
  delay(100);

}

Geçenlerde yaptığımız alıcı verici uygulamasını da tekrar güneş paneli ile çalıştırdık ve sonuç başarılı.

Yinede aklınıza takılan bir konu olursa Soru&Cevap sayfımıza sizleri bekleriz.