Isi kandungan:

Bangunkan Saya - Jam Penggera Pintar: 6 Langkah
Bangunkan Saya - Jam Penggera Pintar: 6 Langkah

Video: Bangunkan Saya - Jam Penggera Pintar: 6 Langkah

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

Bangunkan saya adalah jam penggera pintar yang juga dapat digunakan sebagai lampu pintar.

Ledstrip terbina dalam mensimulasikan cahaya semula jadi yang masuk ke bilik anda. Ini membolehkan cara yang tenang dan semula jadi untuk memulakan hari anda.

Jam penggera juga dilengkapi dengan paparan segmen 4 * 7 untuk membaca waktu, pembesar suara untuk bangun dengan muzik kegemaran anda, butang sentuh, ldr untuk menyesuaikan kecerahan jalur pendahuluan dan sensor suhu yang boleh anda gunakan untuk melihat suhu bilik anda.

Bekalan

Senarai harga tepat yang saya bayar boleh didapati di sini:

Pengawal mikro dan komputer:

Raspberry Pi 4I menggunakan raspberry pi 4 4GB namun, mana-mana model raspberry pi 3+ mestilah baik

Arduino Uno

Arduino digunakan untuk mengawal paparan jam segmen 4 * 7.

Sensor:

  • TMP36: sensor suhu
  • LDR: Perintang bergantung cahaya

Penggerak:

  • WS2801: Jalur pendahuluan yang boleh ditanggung secara individu
  • Paparan LCD: Paparan LCD 16 * 2.
  • Paparan jam segmen 4 * 7

IC:

  • 74HC595: Shiftregister untuk paparan lcd
  • MCP3008: Penukar analog ke digital 8-bit
  • Penukar tahap logik: Digunakan untuk berkomunikasi antara raspi dan arduino

Barang lain:

  • Penguat adafruit MAX9744 untuk memberi kuasa kepada pembesar suara
  • Mana-mana pembesar suara, saya menggunakan pembesar suara Visaton 4Ohm 8Watt (Art. No. 2240)
  • Bekalan kuasa 9volt untuk menguatkan penguat
  • Bekalan kuasa 5volt untuk membekalkan ledstrip dan komponen lain. Perlu diingat bahawa setiap led di ledstrip boleh menenggelamkan 60mA jadi pastikan bekalan kuasa anda mencukupi.
  • Beberapa perintang 220Ohm
  • Papan roti kecil untuk dimasukkan ke dalam beg anda.

Alat:

  • Setrika pematerian.
  • Sesuatu untuk membuat kes itu (saya menggunakan pencetak 3d dengan PLA dan PETG dan beberapa pelekat vinil untuk mendapatkan kesan kayu.)

Langkah 1: Menyiapkan Raspberry Pi

Raspberry pi adalah pengawal mikro utama kami.

Raspberry pi menjalankan pelayan laman web tempatan kami, pangkalan data, mengawal barisan hadapan, pembesar suara,…

Bahagian 1: Memasang Raspbian

Gunakan tutorial ini untuk memasang raspbian:

Pastikan SSH diaktifkan

Bahagian 2: Bersambung

Untuk berhubung dengan internet, anda perlu mendapatkan akses ke terminal raspberry pi anda. Saya cadangkan menggunakan dempul. Dalam jenis terminal:

wpa_passphrase "YourNetwork" "YourSSID" >> /etc/wpa_supplicant/wpa_supplicant.conf

"YourNetwork" adalah nama rangkaian wifi anda dan "YourSSID" adalah kata laluan rangkaian.

Setelah anda menambah rangkaian, cuba reboot Pi Raspberry.

Ketik perintah 'ping 8.8.8.8' ini akan menghantar paket ke pelayan google jika anda mendapat respons rangkaian anda disiapkan dan berfungsi!

Bahagian 3: Pasang program yang diperlukan

Kami memerlukan beberapa pemasangan program tambahan untuk menjalankan projek ini.

Sebelum kita memulakan, jalankan 2 arahan ini untuk memastikan bahawa semuanya sudah ditingkatkan.

sudo apt kemas kini

peningkatan sudo apt

Ini mungkin mengambil masa.

Apache

sudo apt install apache2 -y

sudo apt install php libapache2-mod-php -y

MariaDB

sudo apt pasang mariadb-server mariadb-client -y

sudo apt pasang php-mysql -y

PHPMyAdmin

sudo apt pasang phpmyadmin -y

Python pip

Kita perlu memasang pip untuk mengaktifkan beberapa perpustakaan python

pip3 pasang mysql-connector-python

pip3 memasang flask-socketio

pip3 memasang termos-cors

pip3 pasang gevent

pip3 memasang gevent-websocket

Langkah 2: Menyambungkan Elektronik

Menyambungkan Elektronik
Menyambungkan Elektronik
Menyambungkan Elektronik
Menyambungkan Elektronik

Saya telah menambah 2 skema, 1 adalah skema papan roti untuk tujuan ujian. Saya cadangkan membina skema pertama dan berusaha agar kod berfungsi.

Saya telah menambah fail fritzing di bawah.

Langkah 3: Reka Bentuk Pangkalan Data

Reka Bentuk Pangkalan Data
Reka Bentuk Pangkalan Data

Ini adalah skema pangkalan data yang saya buat. Kata-katanya dalam bahasa Belanda tetapi saya akan menerangkan setiap jadual secara terperinci.

Jadual 1: tblMuziek

Ini adalah jadual yang cukup asas. Ia menyimpan nama artis, nama lagu dan nama fail lagu.

Jadual 2: tblLedstrip

Jadual ini mengawasi keadaan jalur lekapan semasa dan menjimatkan keadaan jalur pendahuluan. Kami memerlukan ini untuk fungsi lampu pintar.

Jadual 3: tblSensoren

Jadual ini mengesan sensor di penggera kami. Kami menyimpan nama sensor dan saluran MCP3008

Jadual 4: tblMeting

Jadual ini menyimpan nilai sensor kita bersamaan dengan masa mereka.

Jadual 5: tblWekker

Jadual ini menyimpan kata laluan dan nama jam penggera anda (mis. Bilik Tidur) Jadual ini tidak wajib tetapi saya menambahkannya kerana saya menganggap bahawa anda akan mempunyai lebih daripada 1 jam penggera di rumah anda.

Jadual 6: tblAlarm

Ini mungkin jadual yang paling penting. Ini mengesan alarm yang telah anda tetapkan dan jam apa yang harus dilakukan (lagu mana yang akan dimainkan, urutan yang dipimpin, Pada hari apa ia harus dimatikan,…). Sangat penting untuk mengesan 2 tarikh. 1 tarikh digunakan untuk menyimpan pada jam berapa penggera akan berbunyi. Yang lain menjejaki kali terakhir penggera berbunyi. Untuk mengetahui hari kerja apa yang harus dilepaskan, saya menggunakan varchar yang mengandungi bilangan 7 digit. Angka pertama adalah hari Isnin, Selasa kedua, … Jika angka 1 maka ia harus mati, jika angka 0 tidak seharusnya. Contoh: 1111100 ini bermaksud penggera ini akan dimatikan pada hari Isnin, Selasa, Rabu, Khamis dan Jumaat.

Langkah 4: Persediaan Arduino

Langkah ini sangat mudah. Akan ada pautan ke github saya pada langkah seterusnya di mana anda boleh memuat turun fail arduino.

Apa yang dilakukan oleh program ini?

Program ini menunggu data bersiri masuk dari pi.

Sebaik sahaja data diterima, ia menguraikan keseluruhan rentetan dan menghantar kembali pengesahan kepada pi.

Rentetan itu akan seperti ini: '1201' ini bermaksud bahawa ia adalah 12:01. Saya menggunakan paparan anod 7segmen biasa ini bermaksud bahawa Digit harus tinggi dan A, B, C, D, E, F, G dan DP harus rendah untuk menghidupkannya. Sekiranya anda menggunakan katod biasa, anda harus menukar HIGH ke LOW & LOW ke HIGH.

Inilah pautan dengan lebih banyak maklumat mengenai bagaimana 7 paparan segmen berfungsi. (dengan penggunaan perpustakaan):

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

Berikut adalah pautan mengenai paparan 7 segmen tanpa penggunaan perpustakaan:

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

Langkah 5: Latar Belakang Raspberry Pi

Bahagian Belakang Raspberry Pi
Bahagian Belakang Raspberry Pi

Anda boleh memuat turun kod saya menggunakan Github. (https://github.com/VanHevelNico/WakeMeUp)

Cara memasang program:

Bahagian belakang ditulis dalam python menggunakan termos. Anda boleh membuat perkhidmatan yang memulakan program ini (app.py) secara automatik.

Anda harus memasukkan kod frontend dalam fail html pelayan apache yang kami muat turun sebelumnya. (/ var / html)

Bagaimana program ini berfungsi?

Apabila jam penggera dihidupkan, pergi ke alamat ip jam anda (ia akan dipaparkan di lcd)

Sebaik sahaja anda pergi ke alamat ip di penyemak imbas anda komputer anda akan menghantar permintaan socket.io ke backend yang mengatakan bahawa pelanggan telah berhubung. Apabila backend menerima ini, beberapa utas akan bermula yang akan saya jelaskan di bawah.

Persediaan

Ini menjadikan semua objek diperlukan.

DapatkanTemp

Ini membaca saluran mcp3008 0 dan menukar data binari ke suhu sebenar dan memasukkannya ke dalam pangkalan data dengan tarikh dan jam semasa.

DapatkanTempGrafiek

Ini mendapat 20 nilai terakhir dari sensor suhu dan memancarkannya ke bahagian depan.

tijd_sturen

Kaedah ini mendapat masa semasa dan memeriksa sama ada minit telah berubah. Sekiranya ia telah berubah, program akan menghantar masa baru ke arduino menggunakan komunikasi bersiri

semakAlarmen

Ini adalah kaedah yang paling penting. Ia akan mendapat semua penggera yang dihidupkan dan memeriksa apakah ada penggera yang harus mulai antara sekarang dan 5 minit yang lalu (ini adalah penyangga untuk memastikan setiap penggera diaktifkan ketika diperlukan). Sekiranya penggera harus dimatikan kita akan memulakan muzik, jalur pendahuluan, … Kita membaca perintang peka daya secara berterusan dan apabila nilainya turun di bawah 1000 (baca fsr ditekan) Kami menghidupkan penggera dan mengemas kini penggera di pangkalan data. Kami menetapkan tarikh penggera dimatikan untuk kali terakhir ke tarikh semasa.

statusLight

Kaedah ini memancarkan nilai ledstrip dan menyalakan ledstrip jika diperlukan.

lichtAanpassen

Ini adalah kaedah tambahan untuk memastikan lampu depan dan lampu penggera tidak bertentangan.

Langkah 6: Kes

Kes
Kes
Kes
Kes
Kes
Kes

Pautan ke fail saya boleh didapati di sini:

Saya menggunakan pencetak 3d untuk mencetak selongsong. Ia dicetak dalam 4 bahagian yang berbeza:

  1. Plat depan dengan lubang untuk pembesar suara dan beberapa dinding untuk paparan 7 segmen
  2. Lingkaran luar untuk ledstrip dalam PETG telus.
  3. Bahagian tengah
  4. Plat belakang dengan lubang untuk lcd dan lubang untuk kabel.

Pada model asal tidak ada lubang untuk paparan segmen 7 namun ini diperlukan kerana jika tidak, cahaya paparan segmen 7 tidak akan menyala.

Seperti yang anda lihat setelah meletakkan semua komponen di dalam saya menggunakan pelekat vinil dengan rupa kayu agar hasil akhirnya kelihatan lebih baik. Paparan jam bersinar melalui pelekat yang menghasilkan kesan yang sangat bagus.

Disyorkan: