Spisu treści:
- Krok 1: Zbieranie części
- Krok 2: Montaż obwodu
- Krok 3: ustawienie wyświetlacza LCD i zegara
- Krok 4: Kodowanie
- Krok 5: Czas na testy
- Krok 6: Konfiguracja aplikacji Bluetooth
- Krok 7: Budowanie sprawy
- Krok 8: Gotowe
Wideo: Budzik Sunrise z wyświetlaczem LCD i aplikacją Bluetooth: 8 kroków
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:31
Zima może być smutna. Budzisz się, jest ciemno i musisz wstać z łóżka. Ostatnią rzeczą, którą chcesz usłyszeć, jest denerwujący dźwięk budzika. Jeśli tak jak ja masz problem z budzeniem się rano, ten budzik jest właśnie tym, czego potrzebujesz.
W tym samouczku zbudujemy budzik o wschodzie słońca. Jest to budzik, jak każdy inny, ponieważ możesz ustawić godzinę i minutę, o której chcesz się obudzić, ale z korzyścią, jaką jest użycie światła do rozjaśnienia sypialni przez pewien czas, jak wschód słońca, aby Cię obudzić, zamiast irytującego brzęczyk!
Wykorzystamy również moduł bluetooth do stworzenia aplikacji, która pozwoli Ci ustawić budzik za pomocą telefonu na zegar. Wyświetlacz LCD pokaże godzinę, datę i dzień tygodnia. Lampy Sunrise istnieją na rynku, ale mogą być drogie (szybkie wyszukiwanie w Google zwraca produkty w przedziale 100 euro), delikatne i dość klinicznie wyglądające. Dlatego postanowiłem zrobić własne dla mojego Arduino School Project. Wszystkie części zostaną wymienione w następnym kroku. Kod można pobrać z mojego repozytorium Github sunrise-budzik. Zaczynajmy:)
cały kod można znaleźć na:
Krok 1: Zbieranie części
Użyjemy zegara jako wejścia i ultrajasnej diody LED jako wyjścia, aby symulować nasz wschód słońca.
Do zbudowania obwodu będziemy potrzebować:
- Arduino Uno - moduł zegara RTC DS3231 - MOSFET do sterowania jasnością światła - super jasna dioda LED (kupiłem 2, jedna ciepła, jedna zimna) - bateria 9V do zasilania diody - płytka stykowa - wyświetlacz LCD (16:2)- Adapter Bluetooth hc-05 dzięki czemu możemy użyć aplikacji do ustawienia alarmu.
Wszystko, czego potrzebujesz, możesz kupić na www.martoparts.nl
Krok 2: Montaż obwodu
Możesz odwołać się do szkicu mojego układu, niestety nie mogłem znaleźć w programie RTC DS3231, więc musiałem z tym zrobić. Połączenia są nieco inne w rzeczywistości, oto połączenia. (modułu bluetooth nie ma w szkicu, ale wyjaśnię, jak to działa poniżej, bo to dość trudne)
RTC DS3231GND przechodzi do GND na arduino
VCC idzie do 5v
SDA idzie na arduino
SCL idzie na arduino Nie będziemy używać SQW i 32KMOSFET
Pin bramki przechodzi do pinu ~ 9 na Arduino Uno, ponieważ jego pin PWMDrain przechodzi do ujemnej strony diody LED Pin Source przechodzi do GND na ArduinoLCD-DisplayGND przechodzi do GND na arduino
VCC idzie na 5VSDA idzie na A4 na arduinoSKL idzie na A5 na arduinoLED- idzie na mosfet+ idzie na akumulator 5v9v Możesz kupić baterię 9v w każdym lokalnym sklepie, podłącz do arduino listwą złączową.
Moduł Bluetooth hc-055V idzie do 5V z arduino
GND idzie do GND na arduino
Teraz są jeszcze 2 wejścia, ale nadchodzi trudna część, musimy połączyć przeciwne wejścia tych 2 na arduinoTX z hc-05 idzie do RX na arduinoRX z hc-05 idzie do TX na arduino
Ważne: Upewnij się, że ODŁĄCZASZ TX i RX od HC-05 podczas przesyłania kodu na arduino, w przeciwnym razie w kompilatorze pojawi się błąd z informacją „coś poszło nie tak z przesyłaniem kodu”.
Krok 3: ustawienie wyświetlacza LCD i zegara
Biblioteka używana do wyświetlacza LCD jest ciekłokrystaliczna i można ją znaleźć pod adresem: https://github.com/fdebrabander/Arduino-LiquidCrys… Pobierz plik zip, zapisz go i umieść w folderze Arduino/libraries
Bibliotekę, której używam do uruchamiania zegara, można znaleźć na stronie Rinky-Dinky Electronics https://www.rinkydinkelectronics.com/library.php?id=73 i upewnij się, że jesteś na stronie DS3231. Pobierz plik zip, zapisz go i umieść w folderze bibliotek Arduino.
Czas
Dołącz bibliotekę DS3231 lub DS1307 do swojego kodu arduino
Odkomentuj te 3 wiersze kodu, aby ustawić czas:
// rtc.setDOW(PONIEDZIAŁEK); // Ustaw dzień tygodnia na NIEDZIELĘ// rtc.setTime(23, 57, 0); // Ustaw czas na 12:00:00 (format 24-godzinny) // rtc.setDate(14, 1, 2019); // Ustaw datę na 1 stycznia 2014 r.
Wyświetlacz LCD
Dołącz bibliotekę liqduicrystal_i2c do swojego kodu arduino
Aby drukować na wyświetlaczu LCD, użyj
lcd.setCursor(col, row) // pozycja tekstu printlcd.print(~) // tekst wydrukowany
Krok 4: Kodowanie
Pobierz kod na: github:
Odkomentuj te 3 linie, aby ustawić zegar na wyświetlaczu LCD:
// rtc.setDOW(PONIEDZIAŁEK); // Ustaw dzień tygodnia na NIEDZIELĘ// rtc.setTime(23, 57, 0); // Ustaw czas na 12:00:00 (format 24-godzinny) // rtc.setDate(14, 1, 2019); // Ustaw datę na 1 stycznia 2014 r.
Użyj lcd.setCuros(kol, wiersz); aby ustawić pozycję tekstu na wyświetlaczu
lcd.setCursor(0, 2);
i print(), aby wydrukować coś na wyświetlaczu
lcd.print(rtc.getDateStr());
Zmień te zmienne, jeśli chcesz
int czas zanikania = 1; // Jak długo światło będzie blaknąć do maxint setHour = 02; // Ustaw godziny budzenia (czas wojskowy)int setMin = 49; // Ustaw minutę budzenia int uled = 9; // Ustaw pinout z PWM
Kod modułu Bluetooth
String firstHalf = getValue(input, ':', 0); // sprawdź pierwsze wejście do ":"
String secondHalf = getValue(wejście, ':', 1); // sprawdź drugie wejście po ":"
// użyj tego kodu, jeśli nie używasz modułu bluetooth
// //if (t.hour == setHour && t.min == setMin) // Sprawdź, czy czas się obudzić! // { // początek(); // }
// sprawdź pierwsze 2 cyfry wejścia, następnie sprawdź drugie 2 cyfry wejścia
if (t.godzina == pierwszaPołowa.toInt() && t.min == drugaPołowa.toInt()) { start(); } }
// logika do oddzielenia ciągów
String getValue(String data, char separator, int index) { int found = 0; int strIndex = { 0, -1 }; int maxIndex = data.length() - 1;
for (int i = 0; i <= maxIndex && znaleziony <= indeks; i++) { if (data.charAt(i) == separator || i == maxIndex) { znaleziony++; strIndex[0] = strIndex[1] + 1; strIndex[1] = (i == maxIndex) ? i+1: ja; } } return found> index ? data.substring(strIndex[0], strIndex[1]): ""; }
Krok 5: Czas na testy
Skompiluj swój kod i przetestuj, czy komponenty działają!
Krok 6: Konfiguracja aplikacji Bluetooth
Ponieważ uważałem za irytujące zagłębianie się w kod za każdym razem, gdy chciałem ustawić alarm, chciałem stworzyć aplikację, która ustawi alarm, co jest o wiele łatwiejsze.
Wejdź na https://ai2.appinventor.mit.edututaj możemy stworzyć prostą aplikację, która pozwoli nam ustawić alarm, dołączyłem prostą konfigurację projektu (zawsze możesz to później poprawić) i kod używany do połączenie Bluetooth. Następnie możesz opublikować swoją aplikację i połączyć się z nią na telefonie, używając kodu QR lub bezpośrednio pobierając aplikację na komputer, a następnie przenosząc ją za pomocą kabla do telefonu. (zrzut ekranu)
Krok 7: Budowanie sprawy
Zawsze możesz zbudować inną obudowę wokół zegara arduino. Wykorzystałem drewno i matową pleksi do budowy własnej obudowy budzika. Wybrałem matową pleksi, dzięki czemu widać wyraźnie światło przechodzące przez kopertę, ale nie widać wnętrza zegara.
Krok 8: Gotowe
Teraz, gdy wgrałeś kod do swojego arduino, zbuduj obudowę i sprawdziłeś, czy poprawnie zmontowałeś swój zegar, możesz ustawić alarm w aplikacji bluetooth i zacząć budzić się bardziej naturalnie!:)
Zalecana:
Inteligentny budzik: inteligentny budzik z Raspberry Pi: 10 kroków (ze zdjęciami)
Inteligentny budzik: inteligentny budzik z Raspberry Pi: Czy kiedykolwiek chciałeś mieć inteligentny zegar? Jeśli tak, to jest to rozwiązanie dla Ciebie! Zrobiłem Inteligentny Budzik, jest to zegar, w którym możesz zmienić godzinę alarmu zgodnie ze stroną internetową. Gdy alarm się włączy, rozlegnie się dźwięk (brzęczyk) i 2 światła będą
Budzik LED Sunrise: 5 kroków (ze zdjęciami)
Budzik LED Sunrise: Problemy ze wstawaniem rano? Nienawidzisz ostrego, przeszywającego dźwięku alarmu? Czy wolałbyś sam zrobić coś, co prawdopodobnie mógłbyś kupić za mniej pieniędzy i czasu? W takim razie sprawdź ten budzik LED Sunrise! Alarmy wschodu są zaprojektowane tak, aby
SENSOR SUHU DENGAN LCD DAN LED (Czujnik temperatury z wyświetlaczem LCD i LED): 6 kroków (ze zdjęciami)
CZUJNIK SUHU DENGAN LCD DAN LED (Czujnik temperatury z wyświetlaczem LCD i LED): hai, powiedz Devi Rivaldi mahasiswa UNIVERSITAS NUSA PUTRA z Indonezji, możesz powiedzieć, że możesz korzystać z czujników na swoim wyświetlaczu z Arduino z wyjściem ke LCD i LED. Ini adalah pembaca suhu dengan desain saya sendiri, dengan sensor ini anda
Budzik Sunrise z Arduino: 9 kroków (ze zdjęciami)
Budzik Sunrise z Arduino: Zima może być smutna. Budzisz się, jest ciemno i musisz wstać z łóżka. Ostatnią rzeczą, którą chcesz usłyszeć, jest ryczący dźwięk budzika. Mieszkam w Londynie i ciężko mi się obudzić rano. Tęsknię też za wstawaniem do
Budzik LED Sunrise z konfigurowalnym alarmem utworu: 7 kroków (ze zdjęciami)
Budzik LED Sunrise z konfigurowalnym alarmem piosenki: moja motywacja Tej zimy moja dziewczyna miała wiele problemów z budzeniem się rano i wydawała się cierpieć na SAD (sezonowe zaburzenie afektywne). Zauważam nawet, o ile trudniej jest obudzić się zimą, skoro słońce nie wstało