Merhaba bu projede esp8266 kartının analog girişini çoğaltacağız. Esp8266 kartında 1 tane analog giriş var ve bazı projelerde bir giriş yetersiz kalıyor.Bu yüzden ads1115 modülü ile analog girişleri 4+1 olacak şekilde toplam 5 adet analog girişi sağmış olacağız. 4+1 derken kart bize 4 tane analog giriş veriyor 1 tanede esp’nin üzerinde bulunuyor. Ama bu kart normalde 0-1023 arası değer veren sensörleri, 0-7500 arası bir değer verir hale getiriyor. Bize 0-100 arası değer vermesini istediğimiz zaman 75 böleceğiz.
ADS1115 NEDİR?
ADS1115 entegresi sayesinde 16-bit çözünürlükte saniyede 860 ölçüm yapabilme yeteneğine sahiptir. Dahili amfisi sayesinde düşük seviyedeki sinyalli 16 kat güçlendirebilir. 2V – 5V arası gerilimlerle çalışabilir. Haberleşme için I2C arayüzünü kullanan bir modül.
Malzemeler
- Esp8266 nodemcu kartı x1
- ads1115 x1
- toprak nem sensörü x4 (toprak nem şart değil başka analog çıkış veren potansiyometre yada başka bir sensör kullanabilir)
Devre şeması
Kod
Kütüphanesi https://github.com/adafruit/Adafruit_ADS1X15/archive/refs/heads/master.zip
#include <Adafruit_ADS1X15.h>
Adafruit_ADS1115 ads;
void setup(void)
{
Serial.begin(9600);
ads.begin();
}
void loop(void)
{
int16_t toprak0, toprak1, toprak2, toprak3;
toprak0 = ads.readADC_SingleEnded(0);
toprak1 = ads.readADC_SingleEnded(1);
toprak2 = ads.readADC_SingleEnded(2);
toprak2 = ads.readADC_SingleEnded(3);
Serial.println(" ");
Serial.print("toprak1%:"); Serial.print(toprak0 / 75); //gelen veriyi75 böldük çünkü bize 0-100 arası değer vermesini istiyoruz
Serial.print("toprak2%: "); Serial.print(toprak1 / 75); //gelen veriyi75 böldük çünkü bize 0-100 arası değer vermesini istiyoruz
Serial.print("toprak3%: "); Serial.print(toprak2 / 75); //gelen veriyi75 böldük çünkü bize 0-100 arası değer vermesini istiyoruz
Serial.print("toprak4%: "); Serial.print(toprak3 / 75); //gelen veriyi75 böldük çünkü bize 0-100 arası değer vermesini istiyoruz
delay(1000);
}