Daftar Isi:

Cara Mengontrol Outlet Menggunakan Raspberry Pi: 6 Langkah
Cara Mengontrol Outlet Menggunakan Raspberry Pi: 6 Langkah

Video: Cara Mengontrol Outlet Menggunakan Raspberry Pi: 6 Langkah

Video: Cara Mengontrol Outlet Menggunakan Raspberry Pi: 6 Langkah
Video: Cara Koneksi (Akses) Raspberry Pi Lewat Laptop - Remote Dekstop Raspberry Pi 2024, Juli
Anonim
Cara Mengontrol Outlet Menggunakan Raspberry Pi
Cara Mengontrol Outlet Menggunakan Raspberry Pi
Cara Mengontrol Outlet Menggunakan Raspberry Pi
Cara Mengontrol Outlet Menggunakan Raspberry Pi
Cara Mengontrol Outlet Menggunakan Raspberry Pi
Cara Mengontrol Outlet Menggunakan Raspberry Pi

Dalam Instruksi ini, saya akan menunjukkan kepada Anda cara membuat antarmuka web untuk mengontrol outlet di rumah Anda menggunakan Raspberry Pi. Saya memilih untuk menulis proyek ini ketika saya melihat kontes Sensor, dan karena proyek ini melibatkan penggunaan sensor untuk membaca kode dari remote yang disediakan dengan outlet yang Anda beli, saya pikir proyek ini akan sangat cocok.

Saya akan bekerja untuk menjaga ini setinggi mungkin dan memberikan kode untuk membuat ini semua berfungsi. Untuk kalian semua kode monyet di luar sana, jangan ragu untuk menggali kode, dan teliti saya di komentar! Saya selalu mencari untuk meningkatkan. Ada sedikit hal yang terjadi dalam hal ini, jadi jika Anda memiliki pertanyaan tentang langkah apa pun, silakan tinggalkan komentar sehingga saya dapat memperbarui Instructable dengan detail yang diperlukan.

Proyek ini menggunakan outlet yang dikontrol frekuensi radio pada 433MHz yang digabungkan dengan pemancar RF yang terhubung ke raspberry pi Anda. Outletnya dilengkapi dengan remote yang bisa menghidupkan/mematikan stopkontak, tapi itu tidak menyenangkan! Kami malah akan menggunakan server web yang berjalan pada raspberry pi yang memungkinkan siapa saja yang terhubung ke jaringan untuk menghidupkan atau mematikan outlet tertentu. Front-end web untuk proyek ini sangat ideal karena perangkat apa pun yang terhubung ke web di jaringan Anda dapat digunakan sebagai remote Anda.

Ini adalah proyek yang saya impikan untuk diselesaikan selama bertahun-tahun, dan meskipun masih ada ruang untuk penambahan, proyek yang dijelaskan sebagai berikut adalah sistem fungsional.

Perlengkapan

  • Raspberry Pi (Saya menggunakan RPi 3 Model B+)
  • Pemancar dan Penerima 433MHz (saya menggunakan yang ini)
  • Outlet 433MHz (saya menggunakan ini)
  • Jumper Wanita-ke-Wanita (Saya membeli banyak ini)
  • Komputer atau perangkat genggam yang mampu mengakses internet

Langkah 1: Siapkan Raspberry Pi Anda

Siapkan Pi Raspberry Anda
Siapkan Pi Raspberry Anda

Mulailah dengan menginstal versi terbaru Raspbian di Raspberry Pi baru Anda. Jika Anda berencana untuk menggunakan Pi yang sudah ada (yang benar-benar dapat Anda lakukan), yang Anda perlukan hanyalah memastikan Anda memiliki Python 3 di Pi Anda, karena itulah semua kode sumber yang saya berikan. Untuk melakukan ini, Tipe

python3

ke dalam baris perintah. Jika Anda memiliki Python 3, Anda akan melihat terminal python terbuka. Keluar dari terminal dengan menutup atau mengetik

keluar()

Setelah Anda mengkonfirmasi ini, Anda perlu menginstal labu ke Pi Anda. Flask memungkinkan kita untuk membuat server web kita. Dari baris perintah Pi, ketik

sudo pip3 instal labu

Jika Anda tidak menginstal pip di Pi Anda, Anda harus mengetik

sudo apt-get install python3-pip

Saya lebih suka mengembangkan di Raspberry Pi saya dari kenyamanan komputer desktop saya. Jika Anda juga lebih suka opsi ini, Anda perlu menginstal semacam lingkungan ke SSH ke dalam Pi. Putty akan berfungsi, tetapi saya lebih suka memiliki GUI (antarmuka pengguna grafis), yang membuatnya tampak seperti Anda langsung menggunakan Pi. Untuk opsi GUI, Anda akan ingin menginstal VNC Viewer ke komputer yang Anda rencanakan untuk dikerjakan. Ada juga pengaturan yang perlu Anda sesuaikan pada Pi Anda. Petunjuk untuk mengubah pengaturan dapat ditemukan di sini.

Langkah 2: Menghubungkan Perangkat Keras Anda

Menghubungkan Perangkat Keras Anda
Menghubungkan Perangkat Keras Anda

Pada titik ini, inilah saatnya untuk membuat semua koneksi fisik yang perlu Anda lakukan sebagai persiapan untuk menyiapkan kode sumber untuk proyek ini. Anda akan menghubungkan pin pemancar dan penerima ke pin GPIO Pi Anda. Anda akan ingin mereferensikan diagram pinout pin GPIO secara religius. Untuk melakukannya, buka terminal di Pi Anda dan ketik

pinout

Berikut ini adalah koneksi yang saya buat. Anda mungkin memiliki konfigurasi yang berbeda jika Anda membeli perangkat keras pemancar/penerima yang berbeda dari yang saya sebutkan di pendahuluan. Jika Anda memutuskan untuk memilih nomor pin yang berbeda dari yang saya tunjukkan di bawah, jangan takut! Saat Anda mengunduh kode sumber, cukup ubah nomor pin sesuai kebutuhan dalam file RxTx.py.

Penerima (chip besar):

  • GND - Pin ground yang ditunjuk
  • DATA - Pin 11
  • DER - Tidak terhubung
  • +5V - Pin +5V apa pun yang ditunjuk
  • ------
  • +5V - Pin +5V apa pun yang ditunjuk
  • GND - Pin ground yang ditunjuk
  • GND - Tidak terhubung
  • ANT - Tidak terhubung

Catatan: Anda dapat menyambungkan antena sesuai kebutuhan, tetapi ternyata saya tidak perlu melakukannya. Chip kecil ini ternyata sangat sensitif dan dengan setia mendeteksi sinyal hingga setidaknya 50 kaki dari tempatnya duduk dan melalui setidaknya dua dinding.

Pemancar:

  • P - Pin 3.3V
  • DA - Pin 7
  • G - Pin ground yang ditunjuk
  • AN - tidak terhubung

Catatan: Sekali lagi, Anda dapat menghubungkan antena ke pemancar sesuai kebutuhan, tetapi ternyata saya tidak perlu melakukannya. Jangkauannya lebih dari cukup (50+ft).

Langkah 3: Menambahkan Kode

Ini adalah bagian di mana saya menghabiskan sebagian besar waktu saya ketika saya mengembangkan proyek ini. Saya mencoba berkomentar sebanyak mungkin, tetapi saya mungkin meninggalkan celah yang mungkin memerlukan penjelasan jika ada di antara Anda yang meluangkan waktu untuk mencoba memahaminya. Jika ini terjadi pada Anda, silakan tinggalkan komentar!

Bahasa yang terlibat di sini adalah:

  • Python
  • CSS
  • Javascript
  • HTML
  • JQuery/Ajax

Python digunakan di server flask dan di

RxTx.py

file, yang menangani pengiriman dan penerimaan kode. CSS digunakan dalam menghasilkan gaya halaman web. Siapa yang menginginkan situs web yang membosankan!? Javascript digunakan di salah satu penanganan acara (menekan tombol, dll.). HTML adalah blok bangunan inti dari halaman web. Akhirnya, JQuery/Ajax digunakan untuk berkomunikasi antara halaman web dan backend Python.

Jika semua bahasa ini terdengar menakutkan, jangan khawatir! Saya hanya tahu Python masuk ke proyek ini, yang kebetulan merupakan bahasa yang melibatkan paling sedikit pengkodean, lihat saja… Cukuplah untuk mengatakan, luangkan waktu Anda menyisir kode jika itu yang Anda pilih untuk dilakukan. Jika Anda tidak mau, Anda tidak perlu melakukannya!

Berikut ini adalah struktur direktori yang saya pilih untuk digunakan dengan halaman web ini. Folder zip yang dilampirkan pada langkah ini berisi semua kode sumber dalam struktur berikut.

Sakelar Outlet-> comm-- DataRW.py-- keys.py-- RxTx.py-> halaman web-- static----- favicon.ico----- style.css-- templates----- index.html----- schedule.html-- app.py-- data.file

Anda dapat meletakkan folder Outlet Switch di mana saja di Pi Anda. Saat Anda siap menjalankan server web, buka terminal di Pi Anda, dan

CD

(ubah direktori) ke direktori halaman web. Kemudian ketik

python3 app.py

ke dalam terminal. Jika tidak ada kesalahan, Anda harus melakukannya dengan baik!

P. S. Harap bersabar jika Anda mengalami bug. Saya mencoba meremas semuanya sebelum mengunggah.

Langkah 4: Cobalah

Cobalah!
Cobalah!

Sekarang setelah Anda menjalankan kode, Anda bisa merasakan antarmuka web di ujung jari Anda. Kontrol sistem ini sangat sederhana:

  • Anda dapat menambahkan outlet sebanyak yang Anda inginkan menggunakan antarmuka web.
  • Penghapusan semudah mengklik edit, memilih outlet yang ingin Anda hapus, dan mengklik hapus.

Video YouTube di atas menunjukkan bagaimana cara menambahkan outlet baru ke daftar Anda. Untuk meringkas apa yang ditampilkan:

  • Pertama masukkan judul outlet di kolom Judul
  • Klik atau sentuh di luar bidang Judul untuk mengizinkan program memeriksa bahwa judul belum ada. Anda tidak dapat memiliki gelar dengan nama yang sama
  • Setelah divalidasi, tombol ON Code dan OFF Code diaktifkan.
  • Tekan dan tahan tombol ON pada remote yang Anda sediakan dan dengan cepat klik tombol ON Code pada antarmuka. Tahan tombol pada remote hingga kode biner Anda mengisi bidang yang berdekatan.
  • Ulangi langkah sebelumnya untuk OFF Code.
  • Klik OK, dan sekarang Anda siap untuk berpindah outlet ini!

Seperti disebutkan dalam pendahuluan, proyek ini tidak 100% selesai untuk penggunaan saya sendiri. Komponen terbesar yang belum saya selesaikan dan terapkan adalah kemampuan penjadwalan. Saya berencana untuk mengizinkan pengguna membuat jadwal yang memungkinkan outlet dinyalakan dan dimatikan pada waktu yang ditentukan secara otomatis.

Langkah 5: Debugging dan File RxTx.py

Debug dan File RxTx.py
Debug dan File RxTx.py
Debugging dan File RxTx.py
Debugging dan File RxTx.py
Debug dan File RxTx.py
Debug dan File RxTx.py
Debugging dan File RxTx.py
Debugging dan File RxTx.py

Satu-satunya batasan sistem yang diketahui adalah bahwa ada kemungkinan ketidakcocokan di antara outlet vendor yang berbeda. Pesan kode hidup dan mati adalah 25 bit untuk sistem saya, dan jika suatu sistem memiliki panjang pesan yang berbeda, itu tidak langsung kompatibel dengan proyek ini. Jika Anda benar-benar mengikuti instruksi dan Anda masih mengalami masalah dalam menjalankannya, berikut ini adalah cara terbaik untuk men-debug masalah.

  • Pastikan Anda telah menginstal matplotlib di Pi Anda. Anda dapat melakukan ini dengan mengetikkan yang berikut ke terminal Pi:

    • python3

    • impor matplotlib

    • Jika Anda menerima kesalahan, maka Anda perlu menginstal matplotlib.
    • Keluar dari shell python menggunakan

      keluar()

  • Untuk menginstal matplotlib, ketik

    sudo pip3 instal matplotlib

  • ke terminal
  • Unduh file test.py terlampir, dan letakkan di samping file RxTx.py di Pi
  • Buka terminal python dan ubah direktori ke folder comm.
  • Jenis

    python3 test.py

  • Saat tertulis "**Started Recording**," tekan dan tahan tombol ON atau OFF pada remote hingga perekaman berakhir.
  • Program akan memuat gambar matplotlib yang terlihat seperti di atas. Perbesar hingga Anda melihat sinyal berulang seperti yang ditunjukkan pada foto di atas.
  • Hitung total logika 1 dan logika 0 untuk setiap pesan, di mana sebuah pesan adalah satu iterasi dari sinyal berulang yang terlihat di atas. Jika totalnya 25, file RxTx.py kemungkinan besar tidak salah. Jika Anda menemukan sesuatu selain 25, pastikan untuk berkomentar di bawah, dan saya akan memperlengkapi kembali file RxTx.py agar lebih terbuka (atau jangan ragu untuk mencobanya).

Bagaimana jika saya tidak melihat sinyal berulang?

Jika Anda tidak melihat sinyal berulang, salah satu dari dua hal ini salah. Pertama, periksa apakah semua koneksi kabel jumper Anda dibuat dengan benar. Jika semuanya terlihat baik, Anda mungkin memiliki penerima yang buruk. Apakah Anda membeli yang saya sarankan? Ketika saya membeli chip receiver pertama saya, sangat bising. Sangat berisik sehingga saya tidak bisa mendapatkan sinyal yang jelas. Saya kemudian mengembalikan chip itu dan mengambil yang saya tautkan, dan itu tidak bisa bekerja lebih baik.

Langkah 6: Nikmati

Anda tahu memiliki kemampuan untuk menghidupkan/mematikan outlet dari ponsel, tablet, komputer, atau perangkat lain yang mendukung web! Beri tahu saya pendapat Anda di komentar!

Direkomendasikan: