Isi kandungan:

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, Disember
Anonim
Rumah Pintar oleh Raspberry Pi
Rumah Pintar oleh Raspberry Pi

Sudah ada beberapa produk di luar sana yang menjadikan flat anda lebih pintar, tetapi kebanyakannya adalah penyelesaian eksklusif. Tetapi mengapa anda memerlukan sambungan internet untuk menukar lampu dengan telefon pintar anda? Itulah salah satu sebab untuk saya membina penyelesaian Rumah Pintar saya sendiri.

Saya memprogram aplikasi pelayan yang berjalan pada Raspberry Pi. Ini adalah projek sumber terbuka berasaskan Java yang membolehkan anda mengkonfigurasi flat anda dan menghubungkan beberapa klien dan 'unit terkawal'. Saya menunjukkan penyelesaian yang mengendalikan suis bekalan kuasa rc, memainkan muzik dan video pada Raspberry Pi, menunjukkan status pada cermin pintar dan dapat dikendalikan oleh aplikasi android dan dua aplikasi kerikil. Sumber dihoskan di github

Langkah 1: Perkara yang Anda Perlu

Perkara yang Anda Perlu
Perkara yang Anda Perlu

Untuk menyiapkan Rumah Pintar, anda memerlukan 'ramuan' berikut

  • Raspberry Pi sekurang-kurangnya model 2 B
  • Pengirim 433 MHz, seperti ini
  • 3 kabel pelompat yang menghubungkan Raspberry Pi dan pengirimnya
  • Beberapa soket kawalan radio pada 433 MHz
  • Telefon pintar Android untuk menjalankan aplikasi pelanggan

Selain itu, anda boleh memperluas Rumah Pintar dengan lebih banyak pilihan pelanggan dan unit seperti ini

  • Jam pintar pebble
  • Cermin Pintar, lihat projek ini
  • Jalur LED terkawal 433 MHz, lihat

Langkah 2: Sediakan Raspberry Pi untuk 433 MHz

Sediakan Raspberry Pi untuk 433 MHz
Sediakan Raspberry Pi untuk 433 MHz
Sediakan Raspberry Pi untuk 433 MHz
Sediakan Raspberry Pi untuk 433 MHz

Pada langkah berikut, anda memerlukan akses ke baris arahan pada Raspberry Pi. Untuk mendapatkan akses, anda boleh membaca arahan

Sambungkan pengirim 433 MHz dengan Raspberry Pi seperti yang ditunjukkan dalam gambar di atas

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

Sambungkan juga antena 17cm ke pin ANT (pengirim). Itu meningkatkan isyarat yang ketara.

Oleh kerana kita memerlukan beberapa perpustakaan dari git repositori lain, kita harus memasang git

sudo apt-get install git-core -y

Untuk menyediakan komunikasi Raspberry Pi untuk 433 MHz, kami memerlukan perpustakaan Pi kabel untuk pengendalian GPIO yang lebih baik.

git klon git: //git.drogon.net/wiringPi

cd wiringPi./ membina

Kemudian kita memerlukan perpustakaan yang melaksanakan protokol bekalan kuasa rc.

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

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

Pelaksanaan 'kirim' membolehkan anda menghantar kod untuk menukar sebahagian besar bekalan kuasa yang ada.

Dalam persediaan Rumah Pintar saya, saya juga mempunyai jalur LED rc yang dijelaskan oleh arahan ini: https://www.instructables.com/id/RC-controlled-LED… Untuk menetapkan warna untuk jalur LED ini, anda memerlukan penghantaran lain yang boleh dilaksanakan yang membolehkan anda untuk menghantar sebarang nilai Integer (Yang mengekodkan warna).

Oleh itu, kumpulkan 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 yang boleh dilaksanakan / usr / bin / send dan / usr / bin / sendInt

Langkah 3: Sediakan Pelayan Rumah Pintar

Pertama sekali anda perlu memasang beberapa pakej. Aplikasi Smart Home berasaskan Java dan berjalan lancar dengan openjdk-11. Saya tidak pasti mengenai persekitaran jangka masa Java yang lain. Mplayer adalah pemain muzik baris perintah minimalis. Omxplayer menggunakan grafik Raspberry Pi untuk pengekodan video, jadi ini harus digunakan untuk video. Semut program diperlukan untuk membina aplikasi java.

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

Sediakan direktori untuk fail balang dan log.

sudo mkdir / opt / neo

sudo chown pi: pi / opt / neo mkdir / rumah / pi / Log

Konfigurasikan skrip permulaan untuk memulakan aplikasi secara automatik semasa boot. Oleh itu, salin skrip rumah pintar yang dilampirkan ke dalam direktori /etc/init.d/ Saya juga membuat skrip di / usr / bin / yang mengarahkan perintah ke skrip yang dilampirkan, jadi saya hanya memasukkan rumah pintar ke konsol untuk melaksanakan 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

Kini tiba masanya untuk memeriksa repositori dan membina aplikasinya. Sekiranya anda tidak mahu menyusunnya sendiri, anda boleh memuat turun smarthome.jar yang dilampirkan dan memindahkannya ke / opt / neo /

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

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

Cuba mulakan rumah pintar dan periksa fail log. Untuk mendapatkan akses untuk GPIO, aplikasi mesti dimulakan dengan sudo.

sudo permulaan-rumah pintar

log kucing / smarthome.log

Anda harus melihat mesej ralat Fail konfigurasi tidak ada yang mengarahkan kita ke langkah seterusnya. Repositori mengandungi readme yang menerangkan fail konfigurasi. Anda boleh melihatnya dengan baik di github:

Salin xml ini ke /home/pi/controlcenter.xml, kemudian tetapkan lokasi untuk pelayan media anda dan ubah kandungan yang anda perlukan. Sebaik sahaja anda selesai membuat konfigurasi dan memulakan semula smart-home (sudo smart-home restart) anda akan melihat kandungan berikut di smarthome.log

24.05-08: 26 MAKLUMAT JAUH oleh de.neo.smarthome.cronjob. CronJob@15aeb7ab: Jadualkan kerja cron

24.05-08: 26 MAKLUMAT JAUH oleh [trigger.light]: Tunggu 79391760 ms untuk pelaksanaan 24.05-08: 26 MAKLUMAT RMI dengan Tambah pengendali web (5061 / ledstrip) 24.05-08: 26 MAKLUMAT RMI dengan Tambah pengendali laman web (5061 / tindakan) 24.05-08: 26 MAKLUMAT RMI dengan Tambah pengendali laman web (5061 / mediaserver) 24.05-08: 26 MAKLUMAT RMI dengan Tambah pengendali web (5061 / suis) 24.05-08: 26 MAKLUMAT RMI dengan Tambah pengendali laman web (5061 / controlcenter) 24.05-08: 26 MAKLUMAT RMI oleh Start webserver dengan 5 pengendali (localhost: 5061) 24.05-08: 26 REMOTE INFORMATION oleh Controlcenter: Tambah 1. unit kawalan: MyUnit (xyz)…

Pelayan web kini dijalankan:-)

Langkah 4: Tetapkan Pelanggan

Tetapkan Pelanggan
Tetapkan Pelanggan
Tetapkan Pelanggan
Tetapkan Pelanggan
Tetapkan Pelanggan
Tetapkan Pelanggan

Pelanggan Android telefon pintar

Repositori git untuk aplikasi rumah pintar juga mengandungi sumber untuk klien android, jadi anda boleh menyusunnya sendiri. Tetapi saya melampirkan APK untuk langkah ini, yang menjadikannya lebih mudah. Kali pertama anda memulakan aplikasi, ia meminta pelayan anda, seperti pada gambar pertama di atas. Masukkan url pelayan dan token keselamatan.

Sepatutnya itu. Anda kini mempunyai akses ke pelayan dan mengawal flat anda, memainkan muzik dan menonton video dari jauh di Raspberry Pi anda. Perhatikan bahawa anda boleh menambahkan widget ke skrin utama anda, yang menjadikan suis dan kawalan muzik lebih mudah diakses.

Pelanggan Smartwatch Pebble

Sumber untuk dua pelanggan kerikil dihoskan di github. Satu aplikasi menunjukkan fail muzik yang sedang dimainkan: https://github.com/dabastynator/PebbleRemoteMusic… Ini juga membolehkan anda menjeda / memainkan dan menaikkan atau menurunkan kelantangan.

Aplikasi kedua mencetuskan tiga tindakan: https://github.com/dabastynator/PebbleControl Nama pencetus adalah: mobile.come_home mobile.leaving dan mobile.go_to_bed. Sekiranya anda menentukan peraturan acara untuk pencetus ini dalam konfigurasi anda - xml anda mencetuskannya dengan jam tangan anda.

Ini semua sumber terbuka, tetapi anda tidak perlu menyusunnya sendiri, saya juga melampirkan aplikasi kerikil. Muat turun PBW dengan telefon pintar anda, telefon anda harus memasangnya di jam tangan anda. Aplikasi kerikil memerlukan konfigurasi untuk bercakap dengan pelayan. Saya melampirkan tangkapan skrin seperti apa tetapan saya.

Pelanggan Smartwatch Garmin

Terdapat juga pelanggan yang tersedia untuk Garmin Smartwatches. Aplikasi ini boleh didapati di app store garmin connect dan boleh dipasang di sini:

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

Pelanggan Cermin Pintar

Saya sudah membuat arahan yang menerangkan cara membuat Cermin Pintar, lihat https://www.instructables.com/id/Smart-Mirror-by-R…. Kod sumber juga dihoskan di github: https:// github.com/dabastynator/SmartMirror. Perisian Cermin Pintar membaca konfigurasi dari fail smart_config.js yang bukan merupakan bahagian dari git repositori. Kandungan fail konfigurasi kelihatan seperti senarai ini:

var mOpenWeatherKey = 'your-open-wheather-key';

var mSecurity = 'token keselamatan-anda';

Anda juga harus menyesuaikan dua baris pertama fail smart_mirror.js untuk menentukan alamat ip pelayan Rumah Pintar dan lokasi untuk mendapatkan cuaca yang tepat.

Lebih ramai pelanggan

Aplikasi pelayan adalah pelayan web sederhana. Ini membolehkan anda mencetuskan tindakan dari mana-mana pelanggan yang anda mahukan dengan panggilan web mudah. Dalam demo-video saya menunjukkan tasker aplikasi android yang digabungkan dengan AutoVoice. Ini membolehkan saya mencetuskan peristiwa dengan perintah suara yang sederhana. Contohnya "ok google, time to sleep" boleh mencetuskan mobile.go_to_bed. Tetapi anda juga boleh melakukan panggilan web misalnya dari IFTTT. Bagaimana dengan jalur LED berkelip kuning untuk pemberitahuan e-mel?

Anda boleh meminta pelayan panggilan web seperti pautan berikut (ganti ip, port dan token dengan konfigurasi anda)

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

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 = keselamatan-…

Langkah 5: Kesimpulannya

Masih ada beberapa ciri untuk dilaksanakan: Oleh kerana pelayan hanya menyediakan klien web-api sederhana melakukan banyak pengundian. Untuk mengurangkan pengundian, saya mahukan integrasi MQTT untuk pemberitahuan yang lebih baik. Juga bekalan kuasa wifi harus berfungsi lebih dipercayai daripada bekalan kuasa rc kerana rc hanyalah komunikasi sehala.

Membuat projek ini menyeronokkan. Dan cukup bagus untuk mengendalikan flat dengan beberapa peranti, walaupun sambungan internet terputus.

Disyorkan: