Iklan

Kami telah berbicara tentang manfaat relatif Arduino dan Raspberry Pi sebelumnya - mereka masing-masing memiliki kekuatan. Mereka tidak perlu menjadi salah satu atau pilihan - gabungkan mereka untuk mendapatkan yang terbaik dari kedua dunia. Otomatisasi rumah adalah kandidat yang sempurna untuk ini. Pasar otomatisasi rumah dibanjiri dengan sistem konsumen yang mahal, tidak kompatibel satu sama lain dan mahal untuk dipasang. Jika Anda memiliki Raspberry Pi Raspberry Pi: Tutorial Tidak ResmiBaik Anda pemilik Pi saat ini yang ingin mempelajari lebih lanjut atau calon pemilik perangkat ukuran kartu kredit ini, ini bukan panduan yang ingin Anda lewatkan. Baca lebih banyak dan Arduino, Anda pada dasarnya dapat mencapai hal yang sama dengan harga yang sangat murah, dengan asumsi Anda bersedia untuk meluangkan waktu dan upaya.

Pembaruan: Karena artikel ini ditulis, saya telah menemukan OpenHAB, platform otomatisasi rumah sumber terbuka dan gratis yang berjalan pada Raspberry Pi dan dapat diintegrasikan dengan sejumlah besar perangkat rumah pintar off-the-shelf juga Arduino. Lihat video di bawah ini untuk mengetahui tentang puncaknya, lalu pergilah ke video kami

instagram viewer
Memulai dengan OpenHAB di Raspberry Pi Memulai dengan OpenHAB Home Automation di Raspberry PiOpenHAB adalah platform otomatisasi rumah sumber terbuka yang matang yang berjalan pada berbagai perangkat keras dan sedang protokol agnostik, artinya dapat terhubung ke hampir semua perangkat keras otomasi rumah di pasaran hari ini. Baca lebih banyak panduan untuk mempelajari lebih lanjut.

Heimcontrol.js adalah aplikasi Node.js yang dibangun untuk dijalankan pada Raspberry Pi. Dikombinasikan dengan Arduino dan beberapa soket kendali jarak jauh, membuat pengontrolan peralatan AC menjadi mudah. Anda dapat menambahkan sensor suhu, dan bahkan mengontrol TV Anda - tetapi kami akan menjaga hal-hal mendasar hari ini dan memperluas proyek dalam tutorial selanjutnya.

Berikut ini rincian proyek:

  • Raspberry Pi akan bertindak sebagai otak dan gerbang operasi - itu akan menjalankan aplikasi Node, terikat pada database Mongo, dan melayani antarmuka front-end ke browser web apa pun.
  • Arduino, yang ditenagai dari Pi, akan menghubungkan antara elektronik - saklar daya kontrol radio, untuk saat ini.

Untuk melakukan ini, Anda perlu:

  • Arduino dan Raspberry Pi
  • Beberapa soket dan pengontrol yang dikendalikan dari jarak jauh (saya gunakan ini)
  • Hub USB yang didukung
Soket-RC

Sebelum kita mulai, inilah video demo dari pencipta proyek sendiri.

Mulai Baru

Kami akan menggunakan Raspian untuk proyek ini 11 Sistem Operasi yang Berjalan pada Raspberry Pi AndaApa pun proyek Raspberry Pi Anda, ada sistem operasi untuk itu. Kami membantu Anda menemukan Raspberry Pi OS terbaik untuk kebutuhan Anda. Baca lebih banyak , dan saya sangat menyarankan mulai dari instalasi baru jika Anda sebelumnya pernah melakukan peretasan lainnya. Unduh yang terbaru Gambar raspian, salin ke kartu SD Anda, dan pastikan untuk memperluas sistem file dan mengaktifkan SSH. Sisa panduan ini akan menganggap Anda telah melakukannya, dan terhubung melalui SSH menggunakan pengguna default.

Jika Anda belum pernah melakukan ini sebelumnya, video ini menjelaskan proses mempersiapkan kartu SD Anda di OS X:

Dan yang ini untuk pengguna Windows:

Persiapan

Proses instalasi cukup melelahkan, dan berasal dari instruksi di sini. Sayangnya, ini sudah ketinggalan zaman atau tidak dirancang untuk Raspian, jadi saya sudah banyak menyesuaikannya di bawah. Kode di bawah ini sebagian besar dapat disisipkan dalam blok - Anda tidak perlu menempel satu per satu. Karena kami menyusun beberapa hal pada Pi itu sendiri, berhati-hatilah bahwa seluruh proses ini akan memakan waktu lama. Saya akan mengatakan, buatkan sendiri secangkir teh untuk Anda - tetapi ketika saya mengatakan "waktu yang lama", maksud saya adalah bagian terbaik dari sehari - jadi 178 cangkir akan lebih tepat.

Semua perintah harus diketik ke Terminal, dan Anda mungkin perlu menekan Enter di beberapa titik. Beberapa perintah pertama ini akan memperbarui sistem dan menginstal prasyarat:

sudo apt-get update sudo apt-get upgrade. sudo apt-get install git-core git scon build-essential scon libpcre ++ - dev xulrunner-dev libboost-dev libboost-program-options-dev libboost-thread-dev libboost-filesystem-dev. 

Selanjutnya kita perlu menginstal Node:

sudo mkdir / opt / node. wget http://nodejs.org/dist/v0.10.2/node-v0.10.2-linux-arm-pi.tar.gz. tar xvzf node-v0.10.2-linux-arm-pi.tar.gz. sudo cp -r node-v0.10.2-linux-arm-pi / * / opt / node. sudo ln -s / opt / node / bin / node / usr / local / bin / node. sudo ln -s / opt / node / bin / npm / usr / local / bin / npm. 

Tambahkan variabel PATH ke profil Anda sehingga OS tahu di mana Node berada. Gunakan editor teks nano sebagai berikut:

sudo nano / etc / profile. 

Temukan baris yang mengatakan ekspor PATH dan ganti dengan:

NODE_JS_HOME = "/ opt / node" PATH = "$ PATH: $ NODE_JS_HOME / bin" ekspor PATH.

Tekan Ctrl-X untuk keluar, dan Y untuk menyimpan.

Anda mungkin harus keluar dan masuk lagi agar perubahan jalur diterapkan, tetapi Anda dapat menguji dengan perintah:

simpul mana. 

Jika Anda tidak mendapatkan keluaran apa pun yang mengarah ke biner Node, terjadi kesalahan.

Mongo

Pekerjaan selanjutnya adalah menginstal Mongo. Mongo adalah database No-SQL berbasis dokumen yang semakin banyak digunakan oleh aplikasi web. Sayangnya, ini membutuhkan waktu lama untuk menginstal karena kami harus mengkompilasinya. Saat menjalankan perintah berikut, Anda akan mendapatkan banyak kesalahan seperti:

{input standar}: 13085: Peringatan: swp {b} penggunaan sudah usang untuk arsitektur ini. 

Jangan khawatir tentang ini. Jadi, jalankan perintah ini untuk menginstal Mongo:

git clone git: //github.com/RickP/mongopi.git. cd mongopi. scons. sudo scons --prefix = / opt / mongo instal scons -c. 

Ketika itu selesai, kita perlu sedikit lebih banyak pengaturan terlebih dahulu untuk memperbaiki masalah izin dan memastikan itu berjalan pada saat startup.

sudo useradd mongodb. sudo mkdir / data / dbb. sudo chown $ USER / data / db. cd /etc/init.d. sudo wget -O mongodb https://gist.github.com/ni-c/fd4df404bda6e87fb718/raw/36d45897cd943fbd6d071c096eb4b71b37d0fcbb/mongodb.sh. sudo chmod + x mongodb. sudo update-rc.d mongodb default. mongod

Perintah terakhir ini akan meluncurkan server Mongo, dan Anda harus membuka Terminal baru untuk melanjutkan dengan perintah lainnya. Saya tidak sepenuhnya yakin dengan langkah ini, jadi jika ada yang bisa memperbaikinya di komentar tentang cara meluncurkan mongod secara otomatis saat start up, itu akan sangat dihargai. Untuk saat ini, ia berfungsi, tidak dengan elegan.

sudo shutdown -r sekarang

Akhirnya, saatnya untuk menginstal aplikasi Node Heimcontrol.js.

cd ~ pi. git clone git: //github.com/ni-c/heimcontrol.js.git. cd heimcontrol.js. npm instal. 

Anda dapat mulai menjalankan aplikasi dengan mengetik


simpul heimcontrol.js. 

Pada titik ini, Anda harus dapat mengakses antarmuka kontrol dengan http://localhost: 8080 dari Pi, atau ganti localhost dengan alamat IP jika Anda mengaksesnya dari komputer lain (dan Anda juga bisa mengatur penerusan porta Apa Port Forwarding & Bagaimana Itu Bisa Membantu Saya? [MakeUseOf Menjelaskan]Apakah Anda menangis sedikit di dalam ketika seseorang memberi tahu Anda ada masalah port forwarding dan itulah mengapa aplikasi baru Anda yang mengkilap tidak akan berfungsi? Xbox Anda tidak akan membiarkan Anda bermain game, unduhan torrent Anda menolak ... Baca lebih banyak untuk mengaksesnya dari mana saja di dunia), jadi saya sarankan Anda untuk melihat-lihat dan memeriksa apakah semuanya bekerja dengan database sebelum melampirkan Arduino.

Perangkat keras

Akhirnya saya ingin relay yang dirancang dengan kabel, tetapi untuk sekarang saya akan menggunakan opsi yang lebih aman dari sakelar yang dikendalikan radio.

Saya telah menggunakan beberapa set £ 20 yang cukup murah dari Maplin yang datang dengan 3 soket, dan membuka remote control sehingga saya bisa berinteraksi langsung dengan chip 433 MHz di dalamnya. Saya menemukan petunjuk untuk ini sini.

rc-controller-hack

Anda juga dapat membeli pemancar individu 433 MHz yang siap digunakan di eBay atau dari pemasok elektronik hobi. Yang perlu Anda lakukan adalah menghubungkan VCC ke 5 V di Arduino, GNDs, dan satu pin kontrol - ingat yang mana yang Anda gunakan. (Skema oleh Willi Thiel)

arduino-rcswitch

Plugin bekerja dengan mengirim "kode tristate", tetapi ini akan berbeda di setiap pabrik. Mengacu kepada Dokumentasi RCSwitch untuk menemukan kode persis Anda. Ini panduan wiki dapat membantu juga.

Komunikasi dengan Arduino dilakukan menggunakan perpustakaan Node yang disebut duino. Hentikan aplikasi Heimcontrol jika sedang berjalan dan instal jembatan Arduino menggunakan perintah berikut.

npm pasang duino. 

Arduino harus dimiliki kode ini diunggah - Saya sarankan Anda menyalin dan menempel untuk menginstal ini dari komputer yang berbeda. Ini pada dasarnya adalah program pendengar yang merespons perintah serial dari Pi, tetapi tidak ada yang menghentikan Anda memperluasnya dengan fitur Anda sendiri.

pengaturan-rc

Dengan aplikasi web diluncurkan, buka Pengaturan menu> Arduino.

heimcontrol-menu-pengaturan

Dari sana Anda dapat menambahkan item baru, memilih metode RCSwitch, pin pemancar Anda, dan kode alamat tristate. Ingatlah untuk menyimpan, lalu kembali ke layar layar utama untuk tombol baru Anda.

pengaturan rcswitch

Bug:

Setelah berjam-jam men-debug kode, saya menemukan nomor pin satu digit tidak berfungsi - pastikan pemancar Anda ditempatkan pada pin 10 untuk memastikan.

Saya juga menemukan bahwa plugin Arduino telah dikodekan dengan bit akhir yang salah untuk kode tristate yang diperlukan penerima saya. Penjelasan kecil pertama: kode tristate terdiri dari 3 byte informasi. Yang pertama menentukan kami nomor jaringan (1-4), dan yang kedua memberikan alamat transceiver (sekali lagi, 1-4, menghasilkan maksimum 16 soket dialamatkan). Byte terakhir terdiri dari dua bit padding, ditambah 2 bit untuk on / off. Sayangnya, byte terakhir di-hardcod ke plugin Arduino - dan dalam kasus saya, kode on / off salah.

Saya harus mengedit secara manual plugins / arduino / index.js untuk menggunakan kode yang benar. Jika Anda menggunakan soket remote control yang sama dengan saya, ubah baris 80 dan seterusnya ke:

// Kirim kode RC. if (item.value) {return that.pins [item.pin] .triState (item.code + "FFFF"); // ubah dari FF0F. } else {return that.pins [item.pin] .triState (item.code + "FFF0"); // ubah dari FF00. }

Berikut adalah video demo dari semua yang berfungsi:

Saya akan meninggalkannya di sini pada saat ini, tetapi pembacaan sensor dan remote IR ada juga didukung. Saya mungkin akan mengunjungi kembali ini di kemudian hari dengan beberapa peningkatan lagi. Jika ini semua terlalu rumit untuk Anda, mungkin lihat ini proyek Arduino yang ramah bagi pemula 15 Proyek Arduino Hebat untuk PemulaTertarik pada proyek Arduino tetapi tidak yakin harus mulai dari mana? Proyek-proyek pemula ini akan mengajarkan Anda cara memulai. Baca lebih banyak .

James memiliki gelar BSc dalam Artificial Intelligence, dan bersertifikat CompTIA A + dan Network +. Dia adalah pengembang utama MakeUseOf, dan menghabiskan waktu luangnya bermain VR paintball dan boardgames. Dia telah membangun PC sejak dia masih kecil.