Daftar Isi:

Rumah Pintar oleh Raspberry Pi: 5 Langkah (dengan Gambar)
Rumah Pintar oleh Raspberry Pi: 5 Langkah (dengan Gambar)

Video: Rumah Pintar oleh Raspberry Pi: 5 Langkah (dengan Gambar)

Video: Rumah Pintar oleh Raspberry Pi: 5 Langkah (dengan Gambar)
Video: Rumah pintar ~ raspberry pi kontrol on off lampu 2024, Juli
Anonim
Rumah Pintar oleh Raspberry Pi
Rumah Pintar oleh Raspberry Pi

Sudah ada beberapa produk di luar sana yang membuat flat Anda lebih pintar, tetapi kebanyakan dari mereka adalah solusi eksklusif. Tapi mengapa Anda membutuhkan koneksi internet untuk menyalakan lampu dengan smartphone Anda? Itulah salah satu alasan bagi saya untuk membangun solusi Smart Home saya sendiri.

Saya memprogram aplikasi server yang berjalan pada Raspberry Pi. Ini adalah proyek open source berbasis java yang memungkinkan Anda untuk mengonfigurasi flat Anda dan menghubungkan beberapa klien dan 'unit yang dapat dikontrol'. Saya menunjukkan solusi yang menangani sakelar catu daya rc, memutar musik dan video di Raspberry Pi, menunjukkan status di cermin pintar dan dapat dikontrol oleh aplikasi android dan dua aplikasi pebble. Sumber di-host di github

Langkah 1: Hal-hal yang Anda Butuhkan

Hal yang Anda Butuhkan
Hal yang Anda Butuhkan

Untuk menyiapkan Rumah Pintar, Anda memerlukan 'bahan' berikut

  • Raspberry Pi setidaknya model 2 B
  • Pengirim 433 MHz, kira-kira seperti ini
  • 3 kabel jumper yang menghubungkan Raspberry Pi dan pengirim
  • Beberapa soket kontrol radio pada 433 MHz
  • Ponsel cerdas Android untuk menjalankan aplikasi klien

Selain itu, Anda dapat memperluas Rumah Pintar dengan lebih banyak klien dan unit opsional seperti ini

  • Jam tangan pintar kerikil
  • Smart Mirror, lihat proyek ini
  • Strip LED terkontrol 433 MHz, lihat ini

Langkah 2: Siapkan Raspberry Pi untuk 433 MHz

Siapkan Raspberry Pi untuk 433 MHz
Siapkan Raspberry Pi untuk 433 MHz
Siapkan Raspberry Pi untuk 433 MHz
Siapkan Raspberry Pi untuk 433 MHz

Dalam langkah-langkah berikut Anda memerlukan akses ke baris perintah di Raspberry Pi. Untuk mendapatkan akses, Anda dapat membaca instruksi ini

Hubungkan pengirim 433 MHz dengan Raspberry Pi seperti yang ditunjukkan pada gambar di atas

  • GND (pengirim) 6 GND (raspi)
  • VCC (pengirim) 2 + 5V (raspi)
  • DATA (pengirim) 11 GPIO 17 (raspi)

Harap sambungkan juga antena 17cm ke pin ANT (pengirim). Itu meningkatkan sinyal yang signifikan.

Karena kita memerlukan beberapa perpustakaan dari repositori git lain, kita harus menginstal git

sudo apt-get install git-core -y

Untuk mengatur Raspberry Pi untuk komunikasi 433 MHz, kita memerlukan pustaka Pi kabel untuk penanganan GPIO yang lebih baik.

git clone git://git.drogon.net/wiringPi

cd wiringPi./build

Maka kita membutuhkan perpustakaan yang mengimplementasikan protokol catu daya rc.

git clone git://github.com/dabastynator/rcswitch-pi.git

cd rcswitch-pi buat cp send /usr/bin/

Eksekusi 'kirim' memungkinkan Anda mengirim kode untuk mengganti sebagian besar catu daya yang tersedia.

Dalam pengaturan Smart Home saya, saya juga memiliki strip LED rc yang dijelaskan oleh instruksi ini: https://www.instructables.com/id/RC-controlled-LED… Untuk mengatur warna untuk strip LED ini, Anda memerlukan executable pengiriman lain yang memungkinkan Anda untuk mengirim nilai Integer (Itu mengkodekan warna).

Oleh karena itu, kompilasi sendInt.cpp di repo rcswitch-pi dan pindahkan ke /usr/bin/sendInt.

sudo g++ sendInt.cpp -o /usr/bin/sendInt /home/pi/rcswitch-pi/RCSwitch.o -I/home/pi/rcswitch-pi -lwiringPi

Sekarang Anda seharusnya dapat mengirim perintah rc dengan dua executable /usr/bin/send dan /usr/bin/sendInt

Langkah 3: Siapkan Server Rumah Pintar

Pertama-tama Anda perlu menginstal beberapa paket. Aplikasi Smart Home berbasis java dan berjalan dengan baik dengan openjdk-11. Saya tidak yakin tentang lingkungan runtime Java lainnya. mplayer adalah pemutar musik baris perintah minimalis. Omxplayer menggunakan grafik Raspberry Pi untuk encoding video, jadi ini harus digunakan untuk video. Program ant diperlukan untuk membangun aplikasi java.

sudo apt-get install mplayer omxplayer openjdk-11-jdk ant -y

Atur direktori untuk file jar dan untuk log.

sudo mkdir /opt/neo

sudo chown pi:pi /opt/neo mkdir /home/pi/Logs

Konfigurasikan skrip mulai untuk memulai aplikasi secara otomatis saat boot. Oleh karena itu salin skrip rumah pintar terlampir ke direktori /etc/init.d/ Saya juga membuat skrip di /usr/bin/ yang menyalurkan perintah ke skrip terlampir, jadi saya cukup memasukkan rumah pintar ke konsol untuk menjalankan perintah.

sudo cp smart-home /etc/init.d/smart-home

sudo chmod +x /etc/init.d/smart-home sudo sh -c "echo '#! /bin/bash' > /usr/bin/smart-home" sudo sh -c "echo '/etc/init. d/smart-home \$1' >> /usr/bin/smart-home" sudo chmod +x /usr/bin/smart-home Sudo update-rc.d smart-home default

Sekarang saatnya untuk checkout repositori dan membangun aplikasi. Jika Anda tidak ingin mengkompilasi sendiri, Anda dapat mengunduh smarthome.jar terlampir dan memindahkannya ke /opt/neo/

git clone [email protected]:dabastynator/SmartHome.git

ant -f SmartHome/de.neo.smarthome.build/build.ant build_remote cp SmartHome/de.neo.smarthome.build/build/jar/* /opt/neo/

Cobalah untuk memulai rumah pintar dan periksa file log. Untuk mendapatkan akses GPIO, aplikasi harus dimulai dengan sudo.

Sudo rumah pintar mulai

Cat Logs/smarthome.log

Anda akan melihat pesan kesalahan File konfigurasi tidak ada yang mengarahkan kita ke langkah berikutnya. Repositori berisi readme yang menjelaskan file konfigurasi. Anda dapat melihat ini dirender dengan baik di github:

Salin xml ini ke /home/pi/controlcenter.xml, lalu atur lokasi untuk server media Anda dan ubah konten sesuai kebutuhan. Setelah Anda menyelesaikan konfigurasi dan memulai ulang smart-home (sudo smart-home restart), Anda akan melihat konten berikut di smarthome.log

24.05-08:26 INFORMASI JAUH oleh de.neo.smarthome.cronjob. CronJob@15aeb7ab: Jadwalkan tugas cron

24.05-08:26 INFORMASI JAUH oleh [trigger.light]: Tunggu 79391760 ms untuk eksekusi 24.05-08:26 INFORMASI RMI oleh Add web-handler (5061/ledstrip) 24.05-08:26 INFORMASI RMI oleh Add web-handler (5061 /action) 24.05-08:26 INFORMASI RMI oleh Add web-handler (5061/mediaserver) 24.05-08:26 INFORMASI RMI oleh Add web-handler (5061/switch) 24.05-08:26 INFORMASI RMI oleh Add web-handler (5061/controlcenter) 24.05-08:26 INFORMASI RMI oleh Start webserver dengan 5 handler (localhost:5061) 24.05-08:26 INFORMASI JARAK JAUH oleh Controlcenter: Tambahkan 1. unit kontrol: MyUnit (xyz) …

Web-server sekarang berjalan:-)

Langkah 4: Atur Klien

Atur Klien
Atur Klien
Atur Klien
Atur Klien
Atur Klien
Atur Klien

Klien Android ponsel cerdas

Repositori git untuk aplikasi rumah pintar juga berisi sumber untuk klien android, sehingga Anda dapat mengompilasinya sendiri. Tapi saya lampirkan APK untuk langkah ini, itu membuatnya lebih mudah. Pertama kali Anda memulai aplikasi, itu meminta Anda untuk server, seperti pada gambar pertama di atas. Masukkan url server dan token keamanan.

Itu harusnya. Anda sekarang memiliki akses ke server dan mengontrol flat Anda, memutar musik dan menonton video dari jarak jauh di Raspberry Pi Anda. Perhatikan bahwa Anda dapat menambahkan widget ke layar beranda, yang membuat sakelar dan kontrol musik lebih mudah diakses.

Klien Pebble Smartwatch

Sumber untuk dua klien kerikil di-host di github. Satu aplikasi menunjukkan file musik yang sedang diputar: https://github.com/dabastynator/PebbleRemoteMusic… Ini juga memungkinkan Anda untuk menjeda/memutar dan volume naik/turun.

Aplikasi kedua memicu tiga tindakan: https://github.com/dabastynator/PebbleControl Nama pemicunya adalah: mobile.come_home mobile.leaving dan mobile.go_to_bed. Jika Anda menentukan aturan peristiwa untuk pemicu ini di konfigurasi-xml Anda, Anda memicunya dengan arloji Anda.

Semuanya open source, tetapi Anda tidak perlu mengkompilasinya sendiri, saya juga melampirkan aplikasi pebble. Unduh PBW dengan ponsel cerdas Anda, ponsel Anda harus menginstalnya di jam tangan Anda. Aplikasi kerikil memerlukan konfigurasi untuk berbicara dengan server. Saya melampirkan tangkapan layar seperti apa tampilan pengaturan saya.

Klien Garmin Smartwatch

Ada juga klien yang tersedia untuk Garmin Smartwatches. Aplikasi ini tersedia di toko aplikasi garmin connect dan dapat diinstal di sini:

apps.garmin.com/en-US/apps/c745527d-f2af-4…

Klien Cermin Cerdas

Saya sudah membuat instruksi yang menjelaskan cara membuat Cermin Cerdas, lihat ini https://www.instructables.com/id/Smart-Mirror-by-R…. Kode sumber juga di-host di github: https:// github.com/dabastynator/SmartMirror. Perangkat lunak Smart Mirror membaca konfigurasi dari file smart_config.js yang bukan bagian dari repositori git. Isi file konfigurasi akan terlihat seperti daftar ini:

var mOpenWeatherKey = 'kunci cuaca-buka-Anda';

var mSecurity = 'token-keamanan-Anda';

Anda juga harus menyesuaikan dua baris pertama dari file smart_mirror.js untuk menentukan alamat ip server Smart Home dan lokasi untuk mendapatkan cuaca yang tepat.

Lebih banyak klien

Aplikasi server adalah server web sederhana. Ini memungkinkan Anda untuk memicu tindakan dari klien mana pun yang Anda inginkan dengan panggilan web sederhana. Dalam demo-video saya menunjukkan tasker aplikasi Android dalam kombinasi dengan AutoVoice. Ini memungkinkan saya untuk memicu peristiwa dengan perintah suara sederhana. Misalnya "ok google, waktunya tidur" dapat memicu mobile.go_to_bed. Tetapi Anda juga dapat melakukan panggilan web misalnya dari IFTTT. Bagaimana dengan strip LED berkedip kuning untuk notifikasi email?

Anda dapat meminta server untuk kemungkinan panggilan web seperti tautan berikut (ganti ip, port, dan token dengan konfigurasi Anda)

localhost:5061/controlcenter/api?token=secu…

localhost:5061/action/api?token=security-to…

localhost:5061/mediaserver/api?token=securi…

localhost:5061/switch/api?token=security-to…

localhost:5061/ledstrip/api?token=security-…

Langkah 5: Kesimpulan

Masih ada beberapa fitur untuk diterapkan: Karena server hanya menyediakan web-api sederhana, klien melakukan banyak polling. Untuk mengurangi polling, saya ingin integrasi MQTT untuk notifikasi yang lebih baik. Juga catu daya wifi harus berkinerja lebih andal daripada catu daya rc karena rc hanyalah komunikasi satu arah.

Itu membuat banyak kesenangan berkembang untuk proyek ini. Dan cukup keren untuk mengontrol flat dengan beberapa perangkat, bahkan jika koneksi internet terputus.

Direkomendasikan: