Pendahuluan
Hitung Azimut dan Altitude Matahari Menggunakan Arduino – Sudut azimut dan elevasi merupakan dua konsep penting dalam ilmu matahari yang digunakan untuk menentukan posisi matahari di atas horizon.
Sudut azimut adalah sudut yang ditentukan dari arah utara horizon menuju matahari. Azimut matahari dapat digunakan untuk menentukan arah cahaya matahari yang masuk ke suatu ruangan atau bangunan.
Sudut Elevasi adalah ketinggian matahari di atas horizon. Elevasi dapat diukur dalam derajat, dimulai dari 0 derajat di horizon, dengan 90 derajat sebagai ketinggian maksimum di langit. Elevasi matahari dapat digunakan untuk menentukan intensitas cahaya matahari yang masuk ke suatu ruangan atau bangunan.
Kedua konsep ini sangat penting dalam desain arsitektur, khususnya dalam desain bangunan yang mengoptimalkan penggunaan cahaya matahari.
Dengan mengetahui sudut azimut dan elevasi matahari, arsitek dapat menentukan arah dan intensitas cahaya matahari yang masuk ke suatu ruangan, sehingga dapat mengoptimalkan pencahayaan alami dan menghemat biaya penerangan.
Selain itu, kedua konsep ini juga digunakan dalam bidang fotovoltaik dan penerangan jalan, untuk menentukan arah dan intensitas cahaya matahari yang diterima oleh panel surya atau lampu jalan.
Secara umum, kedua (azimute dan altitude) konsep ini sangat penting dalam menentukan posisi matahari dan memanfaatkan cahayanya untuk keperluan manusia. Sudut azimut dan elevasi matahari harus diperhitungkan dalam desain arsitektur, fotovoltaik, dan penerangan jalan untuk mengoptimalkan penggunaan cahaya matahari.
Kode Program
Untuk menghitung sudut azimut dan sudut altitude atau elevasi, kita membutuhkan parameter yaitu Latitude, Longitude, UTC Offset, Tanggal, Bulan, Hari, Jam, Menit dan Detik.
Disini kita membutuhkan sebuah library untuk mempermudah kita dalam melakukan perhitungan. Nama librarynya adalah SolarCalculator, silahkan download dengan klik tombol berikut:
Masukkan library ke Arduino IDE. Setelah itu, modif sedikit librarynya. Buka file SolarCalculator.cpp, cari baris:
double H = GMST + longitude - ra;
lalu ubah dengan:
double H = GMST - (latitude*1.795 ) - ra;
Lalu gunakan kode program berikut dan upload ke board arduino yang anda gunakan. Jika sudah diupload, buka serial monitor:
#include <SolarCalculator.h>
#include <TimeLib.h>
double latitude = 5.57157;
double longitude = 95.36569;
int utc_offset = 7;
int _year = 2023;
int _month = 1;
int _day = 11;
int _hour = 15;
int _minute = 0;
int _second = 0;
double az, el;
void setup() {
Serial.begin(9600);
// Set system time to compile time
setTime(toUtc(compileTime()));
// Set time manually (hr, min, sec, day, mo, yr)
setTime(_hour, _minute, _second, _day, _month, _year);
// Get current time
time_t utc = now();
calcHorizontalCoordinates(utc, latitude, longitude, az, el);
Serial.println((String)"Azimuth : " + (az) + " Derajat");
Serial.println((String)"Elevation/Altitude : " + el + " Derajat");
Serial.println();
}
void loop() {
}
// Code from JChristensen/Timezone Clock example
time_t compileTime()
{
const uint8_t COMPILE_TIME_DELAY = 8;
const char *compDate = __DATE__, *compTime = __TIME__, *months = "JanFebMarAprMayJunJulAugSepOctNovDec";
char chMon[4], *m;
tmElements_t tm;
strncpy(chMon, compDate, 3);
chMon[3] = '\0';
m = strstr(months, chMon);
tm.Month = ((m - months) / 3 + 1);
tm.Day = atoi(compDate + 4);
tm.Year = atoi(compDate + 7) - 1970;
tm.Hour = atoi(compTime);
tm.Minute = atoi(compTime + 3);
tm.Second = atoi(compTime + 6);
time_t t = makeTime(tm);
return t + COMPILE_TIME_DELAY;
}
time_t toUtc(time_t local)
{
return local - utc_offset * 3600L;
}
Hasil
Jika sudah, maka anda akan melihat hasilnya seperti pada gambar dibawah ini. Kode program diatas, telah di samakan dengan website Sun Cal atau Sun Earth Tool.

Itulah kode program yang dapat saya bagikan kepada anda. Semoga artikel Hitung Azimut dan Altitude Matahari menggunakan Arduino ini bermanfaat untuk anda.
Mungkin anda menyukai artikel ini :
- Port Arduino tidak terdeteksi CH340 di Windows dan Linux
- Cara Ambil Data API atau Fetch API Javascript
- Komunikasi ATtiny85 Serial Monitor Arduino IDE
- Cara Program NodeMCU V3 ESP8266 Blink LED
- Teks Logo ATtiny85 OLED 128×64 Tanpa Library