Isi kandungan:

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

Video: Cara Mengawal Outlet Menggunakan Raspberry Pi: 6 Langkah

Video: Cara Mengawal Outlet Menggunakan Raspberry Pi: 6 Langkah
Video: #1 - Tutorial Menggunakan Raspberry Pi, Dari Nol 2024, Julai
Anonim
Cara Mengawal Outlet Menggunakan Pi Raspberry
Cara Mengawal Outlet Menggunakan Pi Raspberry
Cara Mengawal Outlet Menggunakan Pi Raspberry
Cara Mengawal Outlet Menggunakan Pi Raspberry
Cara Mengawal Outlet Menggunakan Raspberry Pi
Cara Mengawal Outlet Menggunakan Raspberry Pi

Dalam Instructable ini, saya akan menunjukkan kepada anda bagaimana membuat antara muka web untuk mengawal outlet di rumah anda menggunakan Raspberry Pi. Saya memilih untuk menulis projek ini ketika melihat pertandingan Sensor, dan kerana projek ini melibatkan penggunaan sensor untuk membaca kod dari alat kawalan jauh yang disediakan dengan cawangan yang anda beli, saya fikir projek ini akan sesuai.

Saya akan berusaha untuk memastikan tahap ini setinggi mungkin dan menyediakan kod untuk menjadikan semuanya berfungsi. Untuk anda semua monyet kod di luar sana, jangan ragu untuk mencari kod tersebut, dan periksa saya dalam komen! Saya sentiasa berusaha untuk memperbaiki. Ada banyak perkara yang berlaku dalam ini, jadi jika anda mempunyai pertanyaan mengenai langkah apa pun, silakan tinggalkan komen supaya saya dapat mengemas kini Instructable dengan perincian yang diperlukan.

Projek ini menggunakan saluran kawalan frekuensi radio pada 433MHz ditambah dengan pemancar RF yang disambungkan ke pi raspberry anda. Outlet dilengkapi dengan alat kawalan jauh yang dapat menghidupkan / mematikan outlet, tetapi itu tidak menyeronokkan! Kami sebaliknya akan menggunakan pelayan web yang berjalan pada raspberry pi yang membolehkan sesiapa sahaja yang tersambung ke rangkaian untuk menghidupkan atau mematikan outlet tertentu. Bahagian depan web untuk projek ini sangat sesuai kerana mana-mana peranti yang disambungkan ke web di rangkaian anda boleh digunakan sebagai alat kawalan jauh anda.

Ini adalah projek yang saya impikan untuk disiapkan selama bertahun-tahun, dan walaupun masih ada ruang untuk penambahan, projek yang dijelaskan sebagai berikut adalah sistem berfungsi.

Bekalan

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

Langkah 1: Sediakan Pi Raspberry Anda

Sediakan Pi Raspberry Anda
Sediakan Pi Raspberry Anda

Mulakan dengan memasang Raspbian versi terbaru pada Raspberry Pi baru anda. Sekiranya anda merancang untuk menggunakan Pi yang sudah ada (yang dapat anda lakukan sepenuhnya), semua yang anda perlukan adalah memastikan bahawa anda mempunyai Python 3 pada Pi anda, kerana itulah yang ditulis oleh semua kod sumber yang saya sediakan., taip

ular sawa3

ke dalam baris arahan. Sekiranya anda mempunyai Python 3, anda mesti melihat terminal python terbuka. Keluar terminal dengan menutup atau menaip

keluar ()

Setelah anda mengesahkannya, anda perlu memasang termos pada Pi anda. Flask membolehkan kami membuat pelayan web kami. Dari baris arahan Pi, ketik

sudo pip3 pasang termos

Sekiranya anda tidak memasang pip pada Pi anda, anda perlu menaip

sudo apt-get install python3-pip

Saya lebih suka mengembangkan pada Raspberry Pi saya dari keselesaan komputer desktop saya. Sekiranya anda terlalu memilih pilihan ini, anda perlu memasang semacam persekitaran ke SSH ke dalam Pi. PuTTY akan berfungsi, tetapi saya lebih suka mempunyai GUI (antara muka pengguna grafik), yang kelihatan seperti anda langsung menggunakan Pi. Untuk pilihan GUI, anda ingin memasang VNC Viewer ke komputer yang anda rancangkan. Terdapat juga tetapan yang perlu anda sesuaikan pada Pi anda. Arahan untuk mengubah tetapan boleh didapati di sini.

Langkah 2: Menyambungkan Perkakasan Anda

Menyambungkan Perkakasan Anda
Menyambungkan Perkakasan Anda

Pada ketika ini, sudah tiba masanya untuk membuat semua hubungan fizikal yang perlu anda lakukan sebagai persediaan untuk menyediakan kod sumber untuk projek ini. Anda akan menyambungkan pin pemancar dan penerima ke pin GPIO Pi anda. Anda ingin merujuk gambarajah pin pin GPIO secara beragama. Untuk melakukannya, buka terminal pada Pi anda dan taip

mencubit

Berikut adalah sambungan yang saya buat. Anda mungkin mempunyai konfigurasi yang berbeza jika anda membeli perkakasan pemancar / penerima yang berbeza daripada yang saya nyatakan dalam pengenalan. Sekiranya anda memutuskan untuk memilih nombor pin yang berbeza daripada yang saya nyatakan di bawah, jangan takut! Semasa anda memuat turun kod sumber, cukup ubah nombor pin yang diperlukan dalam fail RxTx.py.

Penerima (cip besar):

  • GND - Apa-apa pin tanah yang ditentukan
  • DATA - Pin 11
  • DER - Tidak bersambung
  • + 5V - Mana-mana pin + 5V yang ditentukan
  • ------
  • + 5V - Mana-mana pin + 5V yang ditetapkan
  • GND - Apa-apa pin tanah yang ditentukan
  • GND - Tidak bersambung
  • ANT - Tidak bersambung

Catatan: Anda mungkin menyambungkan antena seperti yang diperlukan, tetapi saya rasa tidak perlu. Cip kecil ini sangat sensitif dan dapat mengesan isyarat dengan jarak sekurang-kurangnya 50 kaki dari tempat ia duduk dan melalui sekurang-kurangnya dua dinding.

Pemancar:

  • P - Pin 3.3V
  • DA - Pin 7
  • G - Mana-mana pin tanah yang ditentukan
  • AN - tidak bersambung

Catatan: Sekali lagi, anda mungkin menyambungkan antena ke pemancar mengikut keperluan, tetapi saya rasa tidak perlu. Julatnya lebih daripada mencukupi (50 + kaki).

Langkah 3: Menambah Kod

Ini adalah bahagian di mana saya menghabiskan sebahagian besar masa saya ketika membangunkan projek ini. Saya cuba memberi komen sebanyak mungkin, tetapi saya mungkin meninggalkan jurang yang mungkin memerlukan penjelasan sekiranya ada di antara anda yang meluangkan masa untuk memahaminya. Sekiranya ini berlaku kepada anda, sila tinggalkan komen!

Bahasa yang terlibat di sini adalah:

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

Python digunakan dalam pelayan termos dan di

RxTx.py

fail, yang mengendalikan penghantaran dan penerimaan kod. CSS digunakan dalam menghasilkan gaya laman web. Siapa yang mahukan laman web yang membosankan !? Javascript digunakan dalam pengendalian acara (menekan butang, dll.). HTML adalah asas pembinaan laman web. Akhirnya, JQuery / Ajax digunakan untuk berkomunikasi antara halaman web dan backend Python.

Sekiranya semua bahasa ini terdengar menakutkan, jangan risau! Saya hanya tahu Python akan memasuki projek ini, yang kebetulan merupakan bahasa yang melibatkan pengekodan paling sedikit, lihatlah … Cukuplah untuk mengatakan, luangkan masa anda untuk menyusun kod jika itu yang anda pilih untuk lakukan. Sekiranya anda tidak mahu, anda tidak perlu!

Berikut adalah struktur direktori yang saya pilih untuk menggunakan laman web ini. Folder zip yang dilampirkan pada langkah ini mengandungi semua kod sumber dalam struktur berikut.

Outlet Switch-> comm-- DataRW.py-- keys.py-- RxTx.py-> laman web-- statik ----- favicon.ico ----- style.css-- templat ----- index.html ----- jadual.html-- app.py-- data.file

Anda boleh meletakkan folder Outlet Switch di mana sahaja pada Pi anda. Apabila anda sudah bersedia untuk menjalankan pelayan web anda, buka terminal pada Pi anda, dan

cd

(ubah direktori) ke direktori halaman web. Kemudian taip

python3 app.py

ke terminal. Sekiranya tidak ada kesilapan, anda harus berusaha!

P. S. Harap bersabar jika anda menghadapi bug. Saya cuba mengetuk semuanya sebelum memuat naik.

Langkah 4: Cubalah

Cubalah!
Cubalah!

Setelah menggunakan kod, anda dapat merasakan antara muka web di hujung jari anda. Kawalan sistem sangat mudah:

  • Anda boleh menambah seberapa banyak outlet yang anda mahu menggunakan antara muka web.
  • Penghapusan semudah mengklik edit, memilih outlet yang ingin anda hapus, dan mengklik hapus.

Video YouTube di atas menunjukkan cara sebenarnya untuk menambah saluran keluar ke senarai anda. Untuk meringkaskan apa yang ditunjukkan:

  • Pertama masukkan tajuk outlet di medan Judul
  • Klik atau sentuh di luar medan Tajuk untuk membolehkan program memeriksa bahawa tajuk itu belum ada. Anda tidak boleh mempunyai gelaran dengan nama yang sama
  • Setelah disahkan, butang ON Code dan OFF Code diaktifkan.
  • Tekan dan tahan butang ON pada alat kawalan jauh yang disediakan dan cepat klik butang ON Code pada antara muka. Tahan butang pada alat kawalan jauh sehingga kod binari anda mengisi medan bersebelahan.
  • Ulangi langkah sebelumnya untuk OFF Code.
  • Klik OK, dan sekarang anda sudah bersedia untuk menukar outlet ini!

Seperti yang dinyatakan dalam pengenalan, projek ini tidak 100% lengkap untuk kegunaan saya sendiri. Komponen terbesar yang belum saya selesaikan dan laksanakan adalah kemampuan penjadualan. Saya merancang untuk membenarkan pengguna membina jadual yang membolehkan kedai dihidupkan dan dimatikan pada waktu yang ditentukan secara automatik.

Langkah 5: Menyahpepijat dan Fail RxTx.py

Menyahpepijat dan Fail RxTx.py
Menyahpepijat dan Fail RxTx.py
Menyahpepijat dan Fail RxTx.py
Menyahpepijat dan Fail RxTx.py
Penyahpepijatan dan Fail RxTx.py
Penyahpepijatan dan Fail RxTx.py
Menyahpepijat dan Fail RxTx.py
Menyahpepijat dan Fail RxTx.py

Satu-satunya batasan sistem yang diketahui ialah terdapat kemungkinan ketidaksesuaian antara kedai vendor yang berbeza. Mesej kod hidup dan mati adalah 25 bit untuk sistem saya, dan jika sistem mempunyai panjang mesej yang berbeza, ia tidak serasi dengan projek ini. Sekiranya anda betul-betul mengikuti arahan dan anda masih menghadapi masalah untuk menyelesaikannya, berikut adalah kaedah terbaik untuk menyelesaikan masalah ini.

  • Pastikan matplotlib dipasang pada Pi anda. Anda boleh melakukan ini dengan memasukkan perkara berikut ke terminal Pi:

    • ular sawa3

    • import matplotlib

    • Sekiranya anda menerima ralat, anda perlu memasang matplotlib.
    • Keluar dari shell python menggunakan

      keluar ()

  • Untuk memasang matplotlib, ketik

    sudo pip3 pasang matplotlib

  • ke terminal
  • Muat turun fail test.py yang dilampirkan, dan letakkan di sebelah fail RxTx.py pada Pi anda
  • Buka terminal python dan ubah direktori ke dalam folder comm.
  • Jenis

    python3 test.py

  • Apabila tertulis "** Memulakan Rakaman **", tekan dan tahan butang ON atau OFF pada alat kawalan jauh anda sehingga rakaman berakhir.
  • Program ini akan memuatkan angka matplotlib yang kelihatan serupa dengan perkara di atas. Zum masuk sehingga anda melihat isyarat berulang seperti yang ditunjukkan dalam gambar di atas.
  • Hitung jumlah logik 1 dan logik 0 untuk setiap mesej, di mana mesej adalah satu lelaran dari isyarat berulang yang dilihat di atas. Sekiranya jumlahnya 25, fail RxTx.py kemungkinan tidak salah. Sekiranya anda menemui sesuatu selain 25, pastikan untuk memberi komen di bawah ini, dan saya akan menyusun semula fail RxTx.py agar lebih terbuka (atau jangan ragu untuk mencuba).

Bagaimana jika saya tidak melihat isyarat berulang?

Sekiranya anda tidak melihat isyarat berulang, salah satu daripada dua perkara adalah salah. Pertama, periksa bahawa semua sambungan wayar pelompat anda dibuat dengan betul. Sekiranya semuanya kelihatan baik, anda mungkin mempunyai penerima yang buruk. Adakah anda membeli yang saya cadangkan? Semasa saya membeli cip penerima pertama saya, ia sangat bising. Begitu bising saya tidak dapat mendapat isyarat yang jelas. Saya kemudian mengembalikan cip itu dan mengambil yang saya pautkan, dan ia tidak dapat berfungsi dengan lebih baik.

Langkah 6: Nikmati

Anda tahu mempunyai kemampuan untuk menghidupkan / mematikan outlet dari telefon, tablet, komputer, atau peranti berkemampuan web anda yang lain! Beritahu saya pendapat anda dalam komen!

Disyorkan: