İçindekiler:
2025 Yazar: John Day | [email protected]. Son düzenleme: 2025-01-13 06:58
Kış mevsimi üzücü olabilir. Uyandın, hava karanlık ve yataktan çıkman gerekiyor. Duymak isteyeceğiniz son şey çalar saatinizin rahatsız edici sesidir. Benim gibi sabahları uyanmakta zorluk çekiyorsanız, bu çalar saat tam da ihtiyacınız olan şey.
Bu eğitimde, bir Gündoğumu Alarm Saati oluşturacağız. Uyanmak istediğiniz saat ve dakikayı ayarlayabileceğiniz, ancak gün doğumu gibi bir süre boyunca yatak odanızı aydınlatmak için ışık kullanmanın faydası ile sizi rahatsız eden bir alarm yerine gün doğumu gibi bir çalar saat. zil!
Alarmı telefonunuzdan saate kurmanıza izin veren bir uygulama oluşturmak için bir bluetooth modülü de kullanacağız. LCD ekran haftanın saatini, tarihini ve gününü gösterecektir. Gün doğumu lambaları piyasada mevcuttur, ancak pahalı olabilirler (Google'da hızlı bir arama 100 € aralığındaki ürünleri döndürür), kırılgan ve oldukça klinik görünümlü olabilir. Bu yüzden Arduino Okul Projem için kendim yapmaya karar verdim. Tüm parçalar bir sonraki adımda listelenecektir. Kod, Github repo gündoğumu-alarm-saatimden indirilebilir. Hadi başlayalım:)
tüm kodlar şu adreste bulunabilir:
Adım 1: Parçaları Toplama
Gün doğumumuzu simüle etmek için girişimiz olarak bir saat ve çıkışımız olarak ultra parlak bir LED kullanacağız.
Devreyi kurmak için ihtiyacımız olacak:
- Arduino Uno-clockmodule RTC DS3231 - ışığın parlaklığını kontrol etmek için bir MOSFET - süper parlak bir LED (2, bir sıcak, bir soğuk aldım) - LED'i çalıştırmak için 9V pil - bir devre tahtası - bir LCD Ekran (16:2)- Bluetooth adaptörü hc-05, böylece alarmı kurmak için bir uygulama kullanabiliriz.
İhtiyacınız olan her şey www.martoparts.nl adresinden satın alınabilir
Adım 2: Devrenin Montajı
Devremin taslağını inceleyebilirsiniz, ne yazık ki programda RTC DS3231'i bulamadığım için bununla yapmak zorunda kaldım. Bağlantılar gerçekte biraz farklıdır, işte bağlantılar. (bluetooth modülü taslakta yok ama nasıl çalıştığını aşağıda anlatacağım çünkü oldukça zor)
RTC DS3231GND, arduino'da GND'ye gidiyor
VCC 5v'ye gidiyor
SDA arduino'ya gidiyor
SCL arduino'ya gidiyor SQW & 32KMOSFET kullanmayacağız
Kapı pini Arduino Uno'da pin~9'a gider çünkü PWMDrain pini LED'in negatif tarafına gider Kaynak pini ArduinoLCD'de GND'ye giderGND arduino'da GND'ye gider
VCC 5VSDA'ya gidiyor arduino'da A4'e gidiyor SKL arduino'da A5'e gidiyorLED- mosfet+'a gidiyor 5v9v pile gidiyor Herhangi bir yerel mağazadan 9v pil satın alabilir, bir konektör şeridi ile arduinoya takın.
Bluetooth modülü hc-055V, arduino'dan 5V'a gidiyor
GND, arduino'da GND'ye gidiyor
Şimdi 2 giriş daha var ama işte zor kısım geliyor, arduinoTX üzerindeki bu 2 girişin zıt girişlerini hc-05'ten arduino'da RX'e gidiyor hc-05'ten arduino'da TX'e gidiyor
Önemli: Arduino'nuza kod yüklerken TX & RX'in HC-05'ten BAĞLANTISINI KESMEYİN, yoksa derleyicide "kodu yüklerken bir şeyler ters gitti" diyen bir hata alırsınız.
Adım 3: LCD Ekranı ve Saati Ayarlama
LCD ekran için kullanılan kütüphane sıvı kristaldir ve şu adreste bulunabilir: https://github.com/fdebrabander/Arduino-LiquidCrys… Zip dosyasını indirin, kaydedin ve Arduino'nuzun /libraries klasörüne yerleştirin.
Saati çalıştırmak için kullandığım kitaplık Rinky-Dinky Electronics https://www.rinkydinkelectronics.com/library.php?id=73 adresinde bulunabilir ve DS3231 sayfasında olduğunuzdan emin olun. Zip dosyasını indirin, kaydedin ve Arduino'nuzun kitaplıklar klasörüne yerleştirin.
Zaman
Arduino kodunuza DS3231 veya DS1307 kitaplığını ekleyin
Saati ayarlamak için bu 3 kod satırını kaldırın:
// rtc.setDOW(PAZARTESİ); // Haftanın Günü'nü SUNDAY olarak ayarla// rtc.setTime(23, 57, 0); // Saati 12:00:00 (24 saat formatı) olarak ayarlayın // rtc.setDate(14, 1, 2019); // Tarihi 1 Ocak 2014 olarak ayarlayın
LCD ekran
Arduino kodunuza liqduicrystal_i2c kitaplığını ekleyin
LCD Ekrana yazdırmak için şunu kullanın:
lcd.setCursor(col, row) // basılan metnin konumulcd.print(~) // basılan metin
Adım 4: Kodlama
Kodu şuradan indirin: github:
LCD ekranınızda saati ayarlamak için bu 3 satırın yorumunu kaldırın:
// rtc.setDOW(PAZARTESİ); // Haftanın Günü'nü SUNDAY olarak ayarla// rtc.setTime(23, 57, 0); // Saati 12:00:00 (24 saat formatı) olarak ayarlayın // rtc.setDate(14, 1, 2019); // Tarihi 1 Ocak 2014 olarak ayarlayın
lcd.setCuros(col, row) kullanın; metnin ekrandaki konumunu ayarlamak için
lcd.setCursor(0, 2);
ve ekrana bir şey yazdırmak için print()
lcd.print(rtc.getDateStr());
İsterseniz bu değişkenleri değiştirin
int fadeTime = 1; // Işığın maxint'e ne kadar süre söneceği setHour = 02; // Uyanmak için saati ayarlayın (askeri saat)int setMin = 49; // Uyanmak için dakikayı ayarla int uled = 9; // Pinout'u PWM ile ayarla
Bluetooth modülü kodu
String firstHalf = getValue(input, ':', 0); // ":" ye kadar ilk girişi kontrol edin
String saniyeHalf = getValue(input, ':', 1); // ":" den sonraki ikinci girişi kontrol et
// bluetooth modülünü kullanmıyorsanız bu kodu kullanın
// //if (t.hour == setHour && t.min == setMin) // Uyanma vaktinin gelip gelmediğini kontrol edin! // { // Başlat(); // }
// ilk 2 hane girişlerini kontrol edin, ardından ikinci 2 hane girişini kontrol edin
if (t.hour == firstHalf.toInt() && t.min == secondHalf.toInt()) { start(); } }
// stringleri ayırmak için mantık
String getValue(Dize verisi, karakter ayırıcı, int dizin) { int bulundu = 0; int strIndex = { 0, -1 }; int maxIndex = data.length() - 1;
for (int i = 0; i <= maxIndex && bulundu <= dizin; i++) { if (data.charAt(i) == ayırıcı || i == maxIndex) { bulundu++; strIndex[0] = strIndex[1] + 1; strIndex[1] = (i == maxIndex) ? ben+1: ben; } } dönüş bulundu> dizin ? data.substring(strIndex[0], strIndex[1]): ""; }
Adım 5: Test Zamanı
Kodunuzu derleyin ve bileşenlerin çalışıp çalışmadığını test edin!
6. Adım: Bluetooth Uygulaması Kurulumu
Her alarm kurmak istediğimde kodun içine girmeyi can sıkıcı bulduğum için, alarmı kuracak bir uygulama yapmak istedim, bu çok daha kolay.
Http://ai2.appinventor.mit.edu adresine gidin, burada alarmı kurmamıza izin veren basit bir uygulama yapabiliriz, basit tasarım kurulumunu (bunu daha sonra her zaman değiştirebilirsiniz) ve bunun için kullanılan kodu ekledim. bluetooth bağlantısı. Ardından uygulamanızı yayınlayabilir ve bir QR kodu kullanarak veya uygulamayı doğrudan bilgisayarınıza indirip ardından kabloyla telefonunuza taşıyarak telefonunuza bağlanabilirsiniz. (ekran görüntüsü)
7. Adım: Vakayı Oluşturma
Arduino saatinizin etrafında her zaman farklı bir kasa oluşturabilirsiniz. Kendi çalar saat kasamı oluşturmak için ahşap ve mat pleksiglas kullandım. Kasanın içinden parlayan ışığı net bir şekilde görebilmeniz için mat pleksiglas seçtim ama saatin içini göremiyorsunuz.
Adım 8: Tamamlandı
Kodu arduino'nuza yüklediğinize, kasayı oluşturduğunuza ve saatinizi doğru bir şekilde kurup kurmadığınızı kontrol ettiğinize göre, bluetooth uygulamasında bir alarm ayarlayabilir ve daha doğal bir şekilde uyanmaya başlayabilirsiniz!:)