İçindekiler:

Wake Me Up - Akıllı Çalar Saat: 6 Adım
Wake Me Up - Akıllı Çalar Saat: 6 Adım

Video: Wake Me Up - Akıllı Çalar Saat: 6 Adım

Video: Wake Me Up - Akıllı Çalar Saat: 6 Adım
Video: ALARM CLOCK TRIES TO WAKE ME UP ⏰ #shorts #doods 2024, Kasım
Anonim
Wake Me Up - Akıllı Çalar Saat
Wake Me Up - Akıllı Çalar Saat

Wake me up, akıllı ışık olarak da kullanılabilen akıllı bir çalar saattir.

Yerleşik led şerit, odanıza gelen doğal ışığı simüle eder. Bu, güne başlamak için sakin ve doğal bir yol sağlar.

Çalar saat ayrıca saati okumak için 4*7 segment ekran, en sevdiğiniz müzikle uyanmak için hoparlörler, dokunmatik düğme, led şeridin parlaklığını ayarlamak için bir ldr ve ekranı görüntülemek için kullanabileceğiniz bir sıcaklık sensörü ile donatılmıştır. odanızın sıcaklığı.

Gereçler

Ödediğim tam fiyatların bir listesi burada bulunabilir:

Mikrodenetleyiciler ve bilgisayarlar:

Raspberry Pi 4I, ahududu pi 4 4GB kullandım, ancak herhangi bir ahududu pi modeli 3+ iyi olmalıdır

Arduino Uno'su

Arduino, 4*7 segment saat ekranını kontrol etmek için kullanılır.

Sensörler:

  • TMP36: sıcaklık sensörü
  • LDR: Işığa bağlı direnç

Aktüatörler:

  • WS2801: Bireysel olarak adreslenebilir led şerit
  • LCD ekran: 16*2 LCD ekran.
  • 4*7 segment saat göstergesi

IC'ler:

  • 74HC595: LCD ekran için Shiftregister
  • MCP3008: 8 bit Analogdan dijitale dönüştürücü
  • Mantık seviyesi dönüştürücü: Raspi ve arduino arasında iletişim kurmak için kullanılır

Diğer şey:

  • Hoparlörlere güç sağlamak için bir adafruit MAX9744 amplifikatör
  • Herhangi bir hoparlör, Visaton 4Ohm 8Watt tam aralıklı hoparlör kullandım (Ürün No. 2240)
  • Amplifikatöre güç sağlamak için 9 voltluk bir güç kaynağı
  • Led şerit ve diğer bileşenleri beslemek için 5 voltluk bir güç kaynağı. Led şeritteki her bir ledin 60mA çekebileceğini unutmayın, bu nedenle güç kaynağınızın yeterli olduğundan emin olun.
  • Birkaç 220Ohm direnç
  • Çantanıza koymak için küçük bir breadboard.

Aletler:

  • Bir havya.
  • Duruma uygun bir şey (Ahşap efekti elde etmek için PLA ve PETG içeren bir 3d yazıcı ve bazı vinil çıkartmalar kullandım.)

Adım 1: Raspberry Pi'yi Ayarlama

Raspberry pi, ana mikro denetleyicimizdir.

Ahududu pi, yerel web sunucumuzu, veritabanımızı çalıştırır, led şeridi, hoparlörleri,…

Bölüm 1: Raspbian Kurulumu

Raspbian'ı yüklemek için bu öğreticiyi kullanın:

SSH'nin etkin olduğundan emin olun

2. Bölüm: Bağlanmak

İnternete bağlanmak için ahududu pi'nizin terminaline erişim sağlamanız gerekir. macun kullanmanızı tavsiye ederim. Terminal tipinde:

wpa_passphrase "Ağınız" "SSID'niz" >> /etc/wpa_supplicant/wpa_supplicant.conf

"Ağınız", wifi ağınızın adıdır ve "YourSSID", ağın şifresidir.

Ağı ekledikten sonra Raspberry Pi'yi yeniden başlatmayı deneyin.

'ping 8.8.8.8' komutunu yazın, yanıt alırsanız ağınız kurulmuş ve çalışıyorsa google sunucularına bir paket gönderecektir!

Bölüm 3: Gerekli programları yükleyin

Bu projeyi başlatmak ve çalıştırmak için bazı ekstra programlar yüklememiz gerekecek.

Başlamadan önce, her şeyin yükseltildiğinden emin olmak için bu 2 komutu çalıştırın.

sudo uygun güncelleme

sudo uygun yükseltme

Bu biraz zaman alabilir.

Apaçi

sudo apt apache2'yi yükleyin -y

sudo apt kurulum php libapache2-mod-php -y

MariaDB

sudo apt mariadb sunucusunu kurun mariadb-client -y

sudo apt kurulumu php-mysql -y

PHPMyAdmin

sudo apt phpmyadmin kurulumu -y

piton pip

Bazı python kitaplıklarını etkinleştirmek için pip kurmamız gerekiyor

pip3 mysql-connector-python'u kurun

pip3 yükleme şişesi-socketio

pip3 flask-cors yükleyin

pip3 kurulum geventi

pip3 kurulum gevent-websocket

Adım 2: Elektroniği Bağlama

Elektroniklerin Bağlanması
Elektroniklerin Bağlanması
Elektroniklerin Bağlanması
Elektroniklerin Bağlanması

2 şema ekledim, 1'i test amaçlı bir devre tahtası şemasıdır. İlk şemayı oluşturmanızı ve kodu çalıştırmaya çalışmanızı öneririm.

Fritzing dosyalarını aşağıya ekledim.

Adım 3: Veritabanı Tasarımı

Veri tabanı tasarımı
Veri tabanı tasarımı

Bu benim yaptığım veritabanı şeması. Sözcükler hollandaca ama her tabloyu ayrıntılı olarak açıklayacağım.

Tablo 1: tblMuziek

Bu oldukça basit bir tablo. Sanatçı adını, şarkı adını ve bir şarkının dosya adını kaydeder.

Tablo 2: tblLedstrip

Bu tablo led şeridin mevcut durumunu takip eder ve led şeridin durumunu kaydeder. Akıllı ışık işlevi için buna ihtiyacımız var.

Tablo 3: tblSensoren

Bu tablo, alarmımızdaki sensörlerin kaydını tutar. Sensörün adını ve MCP3008'in kanalını saklarız

Tablo 4: tblMeting

Bu tablo, sensörlerimizin değerlerini zamanlarıyla birlikte saklar.

Tablo 5: tblWekker

Bu tablo çalar saatinizin şifresini ve adını saklar (örn. Yatak Odası) Bu tablo zorunlu değildir ancak evinizde 1'den fazla çalar saatiniz olacağını varsaydığım için ekledim.

Tablo 6: tblAlarm

Bu muhtemelen en önemli tablodur. Ayarladığınız alarmları ve saatin ne yapması gerektiğini takip eder (hangi şarkı çalınacak, hangi led dizisi, Hangi günlerde çalmalı,…). 2 tarihi takip etmek çok önemlidir. Alarmın hangi saatte çalması gerektiğini kaydetmek için 1 tarih kullanılır. Diğeri, alarmın en son ne zaman çaldığını takip eder. Hafta içi hangi günün başlaması gerektiğini bilmek için 7 basamaklı bir varchar kullandım. İlk hane Pazartesi, ikinci Salı… Eğer 1 ise sönmeli, 0 ise çıkmamalı. Örnek: 1111100, bu alarmın Pazartesi, Salı, Çarşamba, Perşembe ve Cuma günleri çalması gerektiği anlamına gelir.

Adım 4: Arduino Kurulumu

Bu adım çok kolaydır. Bir sonraki adımda arduino dosyasını indirebileceğiniz github'uma bir bağlantı olacak.

Program ne yapar?

Program seri verinin pi'den gelmesini bekler.

Veri alınır alınmaz dizgeyi ayrıştırır ve pi'ye bir onay gönderir.

Dize şöyle bir şey olacaktır: '1201' bu, saatin 12:01 olduğu anlamına gelir. Ortak bir anot 7 segmentli ekran kullandım, bu, onları açmak için Rakamların yüksek ve A, B, C, D, E, F, G ve DP'nin düşük olması gerektiği anlamına gelir. Ortak bir katot kullanıyorsanız, YÜKSEK'i DÜŞÜK'e ve DÜŞÜK'ü YÜKSEK'e değiştirmelisiniz.

İşte 7 segmentli ekranların nasıl çalıştığı hakkında daha fazla bilgi içeren bir bağlantı. (kütüphane kullanımı ile):

www.instructables.com/id/Using-a-4-digit-7…

İşte kitaplık kullanmadan yaklaşık 7 segment ekran bağlantısı:

create.arduino.cc/projecthub/SAnwandter1/p…

Adım 5: Raspberry Pi Arka Uç

Ahududu Pi Arka Uç
Ahududu Pi Arka Uç

Kodumu Github kullanarak indirebilirsiniz. (https://github.com/VanHevelNico/WakeMeUp)

Program nasıl kurulur:

Arka uç, şişe kullanılarak python ile yazılmıştır. Bu programı (app.py) otomatik olarak başlatan bir servis yapabilirsiniz.

Ön uç kodunu daha önce indirdiğimiz apache sunucusunun html dosyasına koymalısınız. (/var/html)

Program nasıl çalışıyor?

Çalar saat açıldığında saatinizin ip adresine gidin (lcd'de görüntülenecektir)

Tarayıcınızda o ip adresine gider gitmez bilgisayarınız arka uca bir istemcinin bağlandığını söyleyen bir socket.io isteği gönderir. Arka uç bunu aldığında, aşağıda açıklayacağım birkaç iş parçacığı başlayacak.

Kurmak

Bu, gereken tüm nesneleri başlatır.

GetTemp

Bu, mcp3008 kanal 0'ı okur ve ikili verileri gerçek sıcaklığa dönüştürür ve geçerli tarih ve saat ile veritabanına koyar.

GetTempGrafiek

Bu, sıcaklık sensörünün son 20 değerini alır ve bunu ön uca yayar.

tijd_sturen

Bu yöntem geçerli saati alır ve dakikanın değişip değişmediğini kontrol eder. Değişmişse program seri haberleşmeyi kullanarak yeni zamanı arduinoya gönderir.

kontrolAlarmanlar

Bu en önemli yöntemdir. Açılan tüm alarmları alır ve bu alarmlardan herhangi birinin şimdi ile 5 dakika önce arasında geçmesi gerekip gerekmediğini kontrol eder (bu, her alarmın gerektiğinde çalışmasını sağlamak için bir arabellektir). Alarmın çalması gerekiyorsa müziği başlatırız, led şerit, … Kuvvete duyarlı rezistörü sürekli okuruz ve değer 1000'in altına düştüğünde (fsr'ye basarız) Alarmı kapatır ve alarmı güncelleriz. veri tabanı. Alarmın son kez çaldığı tarihi şimdiki tarihe ayarladık.

durumIşık

Bu yöntem led şeridin değerini yayar ve gerekirse led şeridi açar.

lichtAanpassen

Bu, led şerit ve alarm ışığının çakışmadığından emin olmak için ekstra bir yöntemdir.

Adım 6: Vaka

Durum
Durum
Durum
Durum
Durum
Durum

Dosyalarımın bağlantısı burada bulunabilir:

Kasayı basmak için bir 3d yazıcı kullandım. 4 farklı parçada basılmıştır:

  1. Hoparlör için delikli ön plaka ve 7 segmentli ekran için bazı duvarlar
  2. Şeffaf PETG'de led şerit için dış halka.
  3. orta kısım
  4. LCD için bir deliği ve kablolar için bir deliği olan arka plaka.

Orijinal modelde 7 segmentli ekran için delik yoktu ancak bu gereklidir çünkü aksi takdirde 7 segmentli ekranın ışığı parlamaz.

Gördüğünüz gibi, tüm bileşenleri yerleştirdikten sonra, sonucun daha iyi görünmesi için ahşap görünümlü vinil çıkartmalar kullandım. Saat ekranı, çok hoş görünümlü bir efekt yaratan çıkartmanın içinden parlıyor.

Önerilen: