Daftar Isi:

Bangunkan Saya - Jam Alarm Cerdas: 6 Langkah
Bangunkan Saya - Jam Alarm Cerdas: 6 Langkah

Video: Bangunkan Saya - Jam Alarm Cerdas: 6 Langkah

Video: Bangunkan Saya - Jam Alarm Cerdas: 6 Langkah
Video: Weker Kring Pink Suara Nyaring 2024, November
Anonim
Bangunkan Saya - Jam Alarm Cerdas
Bangunkan Saya - Jam Alarm Cerdas

Wake me up adalah jam alarm pintar yang juga dapat digunakan sebagai lampu pintar.

Strip led built-in mensimulasikan cahaya alami yang masuk ke kamar Anda. Ini memungkinkan cara yang tenang dan alami untuk memulai hari Anda.

Jam alarm juga dilengkapi dengan tampilan segmen 4*7 untuk membaca waktu, speaker untuk bangun tidur dengan musik favorit Anda, tombol sentuh, ldr untuk menyesuaikan kecerahan ledstrip dan sensor suhu yang dapat Anda gunakan untuk melihat suhu kamar Anda.

Perlengkapan

Daftar harga pasti yang saya bayar dapat ditemukan di sini:

Mikrokontroler dan komputer:

Raspberry Pi 4I menggunakan raspberry pi 4 4GB namun, setiap model raspberry pi 3+ seharusnya baik-baik saja

Arduino Uno

Arduino digunakan untuk mengontrol tampilan jam segmen 4*7.

Sensor:

  • TMP36: sensor suhu
  • LDR: Resistor yang bergantung pada cahaya

Aktuator:

  • WS2801: Strip led yang dapat dialamatkan secara individual
  • Layar LCD: Layar LCD 16*2.
  • 4*7 segmen tampilan jam

IC:

  • 74HC595: Shiftregister untuk tampilan lcd
  • MCP3008: Konverter Analog ke digital 8-bit
  • Konverter level logika: Digunakan untuk berkomunikasi antara raspi dan arduino

Hal-hal lain:

  • Amplifier adafruit MAX9744 untuk memberi daya pada speaker
  • Semua speaker, saya menggunakan speaker full range Visaton 4Ohm 8Watt (Art. No. 2240)
  • Catu daya 9volt untuk memberi daya pada amplifier
  • Catu daya 5 volt untuk mensuplai ledstrip dan komponen lainnya. Perlu diingat bahwa setiap led di ledstrip dapat menyedot 60mA jadi pastikan catu daya Anda mencukupi.
  • Beberapa resistor 220Ohm
  • Papan tempat memotong roti kecil untuk dimasukkan ke dalam kasing Anda.

Peralatan:

  • Sebuah besi solder.
  • Sesuatu untuk membuat kasing (saya menggunakan printer 3d dengan PLA dan PETG dan beberapa stiker vinil untuk mendapatkan efek kayu.)

Langkah 1: Menyiapkan Raspberry Pi

Raspberry pi adalah pengontrol mikro utama kami.

Raspberry pi menjalankan server web lokal kami, database, mengontrol strip led, speaker, …

Bagian 1: Menginstal Raspbian

Gunakan tutorial ini untuk menginstal raspbian:

Pastikan SSH diaktifkan

Bagian 2: Mendapatkan terhubung

Untuk terhubung ke internet, Anda perlu mendapatkan akses ke terminal raspberry pi Anda. Saya sarankan menggunakan dempul. Dalam jenis terminal:

wpa_passphrase "Jaringan Anda" "SSID Anda" >> /etc/wpa_supplicant/wpa_supplicant.conf

"YourNetwork" adalah nama jaringan wifi Anda dan "YourSSID" adalah kata sandi jaringan.

Setelah Anda menambahkan jaringan, coba reboot Raspberry Pi.

Ketik perintah 'ping 8.8.8.8' ini akan mengirim paket ke server google jika Anda mendapat respons jaringan Anda sudah diatur dan berfungsi!

Bagian 3: Instal program yang dibutuhkan

Kita perlu menginstal beberapa program tambahan untuk menjalankan dan menjalankan proyek ini.

Sebelum kita mulai, jalankan 2 perintah ini untuk memastikan bahwa semuanya telah ditingkatkan.

sudo apt update

sudo apt upgrade

Ini mungkin memakan waktu cukup lama.

Apache

sudo apt install apache2 -y

sudo apt install php libapache2-mod-php -y

MariaDB

sudo apt install mariadb-server mariadb-client -y

sudo apt install php-mysql -y

PHPMyAdmin

sudo apt install phpmyadmin -y

Piton Python

Kita perlu menginstal pip untuk mengaktifkan beberapa pustaka python

pip3 instal mysql-connector-python

pip3 menginstal flask-socketio

pip3 menginstal flask-cors

pip3 menginstal gevent

pip3 instal gevent-websocket

Langkah 2: Menghubungkan Elektronik

Menghubungkan Elektronik
Menghubungkan Elektronik
Menghubungkan Elektronik
Menghubungkan Elektronik

Saya telah menambahkan 2 skema, 1 adalah skema papan tempat memotong roti untuk tujuan pengujian. Saya merekomendasikan membangun skema pertama dan mencoba membuat kode berfungsi.

Saya telah menambahkan file fritzing di bawah ini.

Langkah 3: Desain Basis Data

Desain Basis Data
Desain Basis Data

Ini adalah skema database yang saya buat. Kata-katanya dalam bahasa belanda tetapi saya akan menjelaskan setiap tabel secara rinci.

Tabel 1: tblMuziek

Ini tabel yang cukup mendasar. Ini menyimpan nama artis, nama lagu dan nama file dari sebuah lagu.

Tabel 2: tblLedstrip

Tabel ini melacak status ledstrip saat ini dan menyimpan status ledstrip. Kami membutuhkan ini untuk fungsi smartlight.

Tabel 3: tblSensoren

Tabel ini melacak sensor di alarm kami. Kami menyimpan nama sensor dan saluran MCP3008

Tabel 4: tblMeting

Tabel ini menyimpan nilai sensor kami bersama dengan waktunya.

Tabel 5: tblWekker

Tabel ini menyimpan kata sandi dan nama jam alarm Anda (misalnya Kamar Tidur) Tabel ini tidak wajib tetapi saya menambahkannya karena saya berasumsi bahwa Anda akan memiliki lebih dari 1 jam alarm di rumah Anda.

Tabel 6: tblAlarm

Ini mungkin meja yang paling penting. Itu melacak alarm yang telah Anda atur dan apa yang harus dilakukan jam (lagu mana yang diputar, urutan yang memimpin, Pada hari apa seharusnya berbunyi, …). Sangat penting untuk melacak 2 tanggal. 1 tanggal digunakan untuk menyimpan pada jam berapa alarm harus berbunyi. Yang lain melacak terakhir kali alarm berbunyi. Untuk mengetahui hari kerja apa yang harus dimatikan, saya menggunakan varchar yang berisi sejumlah 7 digit. Digit pertama adalah Senin, Selasa kedua, … Jika 1 maka harus mati, jika 0 tidak. Contoh: 1111100 ini berarti alarm ini harus berbunyi pada hari Senin, Selasa, Rabu, Kamis dan Jumat.

Langkah 4: Pengaturan Arduino

Langkah ini sangat mudah. Akan ada tautan ke github saya pada langkah berikutnya di mana Anda dapat mengunduh file arduino.

Apa yang dilakukan program?

Program menunggu data serial masuk dari pi.

Segera setelah data diterima, ia mem-parsing string dan mengirimkan kembali konfirmasi ke pi.

String akan menjadi seperti ini: '1201' ini berarti 12:01. Saya menggunakan tampilan 7segmen anoda umum ini berarti bahwa Digit harus tinggi dan A, B, C, D, E, F, G dan DP harus rendah untuk menyalakannya. Jika Anda menggunakan katoda umum, Anda hanya perlu mengubah HIGH ke LOW & LOW ke HIGH.

Berikut tautan dengan info lebih lanjut tentang cara kerja tampilan 7 segmen. (dengan menggunakan perpustakaan):

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

Berikut tautan tentang tampilan 7 segmen tanpa menggunakan perpustakaan:

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

Langkah 5: Raspberry Pi Backend

Latar Belakang Raspberry Pi
Latar Belakang Raspberry Pi

Anda dapat mengunduh kode saya menggunakan Github. (https://github.com/VanHevelNico/WakeMeUp)

Cara menginstal program:

Backend ditulis dengan python menggunakan labu. Anda dapat membuat layanan yang memulai program ini (app.py) secara otomatis.

Anda harus meletakkan kode frontend di file html dari server apache yang kami unduh sebelumnya. (/var/html)

Bagaimana cara kerja program?

Ketika jam alarm dihidupkan pergi ke alamat ip jam Anda (itu akan ditampilkan di lcd)

Segera setelah Anda membuka alamat ip itu di browser Anda, komputer Anda akan mengirim permintaan socket.io ke backend yang mengatakan bahwa klien telah terhubung. Ketika backend menerima ini, beberapa utas akan dimulai yang akan saya jelaskan di bawah.

Mempersiapkan

Ini menginisialisasi semua objek yang dibutuhkan.

GetTemp

Ini membaca mcp3008 saluran 0 dan mengubah data biner ke suhu aktual dan memasukkannya ke dalam database dengan tanggal dan jam saat ini.

GetTempGrafiek

Ini mendapatkan 20 nilai terakhir dari sensor suhu dan memancarkannya ke frontend.

tijd_sturen

Metode ini mendapatkan waktu saat ini dan memeriksa apakah menit telah berubah. Jika telah berubah program mengirimkan waktu baru ke arduino menggunakan komunikasi serial

cekAlarm

Ini adalah metode yang paling penting. Itu mendapatkan semua alarm yang dihidupkan dan memeriksa apakah salah satu dari alarm ini harus berbunyi antara sekarang dan 5 menit yang lalu (ini adalah penyangga untuk memastikan setiap alarm berbunyi saat dibutuhkan). Jika alarm harus berbunyi kami akan memulai musik, strip led, … Kami membaca resistor sensitif gaya terus menerus dan ketika nilainya turun di bawah 1000 (baca fsr ditekan) Kami mematikan alarm dan memperbarui alarm di basis data. Kami mengatur tanggal alarm berbunyi untuk terakhir kalinya ke tanggal saat ini.

statusLight

Metode ini memancarkan nilai ledstrip dan menyalakan ledstrip jika diperlukan.

lichtAanpassen

Ini metode ekstra untuk memastikan ledstrip dan lampu alarm tidak bentrok.

Langkah 6: Kasus

Kasus
Kasus
Kasus
Kasus
Kasus
Kasus

Tautan ke file saya dapat ditemukan di sini:

Saya menggunakan printer 3d untuk mencetak casing. Ini dicetak dalam 4 bagian yang berbeda:

  1. Pelat depan dengan lubang untuk speaker dan beberapa dinding untuk tampilan 7 segmen
  2. Cincin luar untuk strip led dalam PETG transparan.
  3. Bagian tengah
  4. Pelat belakang dengan lubang untuk lcd dan lubang untuk kabel.

Pada model aslinya tidak ada lubang untuk layar 7 segmen namun ini diperlukan karena jika tidak, cahaya layar 7 segmen tidak akan bersinar.

Seperti yang Anda lihat setelah memasukkan semua komponen, saya menggunakan stiker vinil dengan tampilan kayu untuk membuat hasil akhirnya terlihat lebih baik. Tampilan jam bersinar melalui stiker yang menciptakan efek tampilan yang sangat bagus.

Direkomendasikan: